/* Final UI/UX Polish — Digital Showcase Pro
 * Developer: Ochidoz Ltd — https://www.ochidoz.com
 * Purpose: finishing layer for consistency, accessibility, mobile refinement, and premium visual rhythm.
 */
:root{
  --dsp-polish-focus: color-mix(in srgb, var(--dsp-primary, #0f4c81) 70%, #ffffff 30%);
  --dsp-polish-surface: var(--dsp-surface, #ffffff);
  --dsp-polish-muted: var(--dsp-muted, #64748b);
  --dsp-polish-radius: var(--dsp-radius, 18px);
  --dsp-polish-shadow: var(--dsp-shadow, 0 18px 45px rgba(15,23,42,.10));
  --dsp-polish-transition: 180ms ease;
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{overflow-x:hidden;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}
img,svg,video,canvas{max-width:100%;height:auto;}
a{transition:color var(--dsp-polish-transition),background-color var(--dsp-polish-transition),border-color var(--dsp-polish-transition),box-shadow var(--dsp-polish-transition),transform var(--dsp-polish-transition);}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible,.menu-toggle:focus-visible,.button:focus-visible,.wp-block-button__link:focus-visible{outline:3px solid var(--dsp-polish-focus);outline-offset:3px;box-shadow:0 0 0 6px color-mix(in srgb, var(--dsp-polish-focus) 22%, transparent);}
.skip-link{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;}
.skip-link:focus{left:1rem;top:1rem;width:auto;height:auto;z-index:100000;padding:.8rem 1rem;border-radius:999px;background:#111827;color:#fff;text-decoration:none;box-shadow:var(--dsp-polish-shadow);}
.site,.site-main,.content-area{min-width:0;}
.site-main{isolation:isolate;}
.container,.site-container,.wrap,.entry-content > .alignwide{width:min(100% - 2rem,var(--dsp-container-width,1200px));margin-inline:auto;}
.entry-content > *{margin-block-start:clamp(1rem,1.6vw,1.5rem);}
.entry-content > :first-child{margin-block-start:0;}
.entry-title,.page-title,.section-title,.wp-block-heading{letter-spacing:-.025em;line-height:1.08;}
p,.entry-content li{line-height:1.75;}
button,.button,.wp-block-button__link,input[type="button"],input[type="submit"],.woocommerce a.button,.woocommerce button.button,.woocommerce input.button{min-height:44px;border-radius:var(--dsp-button-radius,var(--dsp-polish-radius));font-weight:700;letter-spacing:.01em;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;line-height:1.1;transform:translateY(0);}
button:hover,.button:hover,.wp-block-button__link:hover,input[type="button"]:hover,input[type="submit"]:hover,.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(15,23,42,.12);}
input:not([type="checkbox"]):not([type="radio"]),select,textarea{width:100%;min-height:44px;border-radius:calc(var(--dsp-polish-radius) - 6px);border:1px solid color-mix(in srgb, var(--dsp-polish-muted) 30%, transparent);padding:.78rem .95rem;background:#fff;transition:border-color var(--dsp-polish-transition),box-shadow var(--dsp-polish-transition),background-color var(--dsp-polish-transition);}
textarea{min-height:120px;resize:vertical;}
input:hover,select:hover,textarea:hover{border-color:color-mix(in srgb, var(--dsp-primary,#0f4c81) 50%, #94a3b8);}
.card,.service-card,.portfolio-card,.testimonial-card,.product-card,.post-card,.woocommerce ul.products li.product,.wp-block-post{border-radius:var(--dsp-card-radius,var(--dsp-polish-radius));overflow:hidden;transition:transform var(--dsp-polish-transition),box-shadow var(--dsp-polish-transition),border-color var(--dsp-polish-transition);}
.card:hover,.service-card:hover,.portfolio-card:hover,.testimonial-card:hover,.product-card:hover,.post-card:hover,.woocommerce ul.products li.product:hover,.wp-block-post:hover{transform:translateY(-3px);box-shadow:var(--dsp-polish-shadow);}
.site-header{backdrop-filter:saturate(140%) blur(10px);}
.main-navigation a,.footer-navigation a{min-height:40px;display:inline-flex;align-items:center;}
.main-navigation .current-menu-item > a,.main-navigation .current_page_item > a{font-weight:800;}
.hero,.dsp-hero,.hero-section{position:relative;overflow:hidden;}
.hero :where(h1,h2),.dsp-hero :where(h1,h2){max-width:12ch;}
.hero :where(p,.hero-description),.dsp-hero :where(p,.hero-description){max-width:68ch;}
.dsp-section,.section,.homepage-section{padding-block:clamp(3rem,6vw,6rem);}
.dsp-grid,.services-grid,.portfolio-grid,.testimonials-grid,.woocommerce ul.products{gap:clamp(1rem,2vw,1.75rem);}
.site-footer{margin-top:clamp(3rem,6vw,6rem);}
.site-footer a{text-decoration-thickness:1px;text-underline-offset:.18em;}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.25;}
.woocommerce .price{font-weight:800;}
.woocommerce div.product .summary{min-width:0;}
.woocommerce-cart table.cart td.actions .coupon{display:flex;gap:.75rem;flex-wrap:wrap;}
.woocommerce-cart table.cart td.actions .coupon .input-text{min-width:min(100%,260px);}
.woocommerce-checkout .col2-set,.woocommerce-cart .cart-collaterals{gap:clamp(1rem,3vw,2rem);}
@media (max-width: 782px){
  .container,.site-container,.wrap,.entry-content > .alignwide{width:min(100% - 1.25rem,var(--dsp-container-width,1200px));}
  .dsp-section,.section,.homepage-section{padding-block:clamp(2.25rem,10vw,4rem);}
  .entry-title,.page-title{font-size:clamp(2rem,10vw,3rem);}
  .hero :where(h1,h2),.dsp-hero :where(h1,h2){max-width:100%;}
  button,.button,.wp-block-button__link,input[type="button"],input[type="submit"],.woocommerce a.button,.woocommerce button.button,.woocommerce input.button{width:auto;min-width:44px;}
  .wp-block-buttons{gap:.75rem;}
  .woocommerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr));}
  .woocommerce-cart table.cart td.actions .coupon{display:grid;grid-template-columns:1fr;}
  .woocommerce-cart table.cart td.actions .coupon .button{width:100%;}
}
@media (max-width: 480px){
  .woocommerce ul.products{grid-template-columns:1fr;}
  .button,.wp-block-button__link,.woocommerce a.button,.woocommerce button.button,.woocommerce input.button{width:100%;}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important;}
  .card:hover,.service-card:hover,.portfolio-card:hover,.testimonial-card:hover,.product-card:hover,.post-card:hover,.woocommerce ul.products li.product:hover,.wp-block-post:hover,button:hover,.button:hover,.wp-block-button__link:hover,input[type="button"]:hover,input[type="submit"]:hover{transform:none!important;}
}

/* Hotfix 5.4.3: requested homepage and mobile header refinements */
.dsp-home .dsp-home-section.dsp-section,
.dsp-home .dsp-section.dsp-home-section {
	padding-top: clamp(3rem, 5.5vw, 4.75rem);
	padding-bottom: clamp(3rem, 5.5vw, 4.75rem);
}
.dsp-home .dsp-section--top-slider {
	padding-top: 0;
	padding-bottom: 0;
}
.dsp-home .dsp-section__header--center,
.dsp-home .dsp-section-heading {
	margin-bottom: clamp(1.25rem, 3vw, 2rem);
}
.dsp-free-audit-form button[type="submit"] {
	width: auto;
	cursor: pointer;
}
.dsp-form-message--success {
	margin: 0 0 1rem;
	padding: .85rem 1rem;
	border-radius: 14px;
	background: #ecfdf5;
	color: #065f46;
	font-weight: 800;
}
@media (max-width: 780px) {
	.site-header__inner,
	.dsp-header-builder__inner {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: .75rem;
		flex-wrap: nowrap;
	}
	.site-branding,
	.dsp-header-builder__branding,
	.dsp-header-builder__zone--left,
	.dsp-header-builder__row--brand {
		min-width: 0;
		max-width: calc(100% - 64px);
		flex: 1 1 auto;
	}
	.custom-logo-link,
	.dsp-header-builder__logo-link {
		display: inline-flex;
		max-width: 100%;
	}
	.custom-logo,
	.custom-logo-link img,
	.dsp-header-builder__logo,
	.dsp-header-builder__branding img {
		max-width: min(150px, 58vw) !important;
		height: auto !important;
	}
	.menu-toggle,
	.dsp-header-builder__toggle {
		position: relative;
		z-index: 1002;
		flex: 0 0 auto;
		margin-left: auto;
	}
	.dsp-header-builder__zone--center:has(.dsp-header-builder__toggle) {
		flex: 0 0 auto;
		margin-left: auto;
	}
	.dsp-home .dsp-home-section.dsp-section,
	.dsp-home .dsp-section.dsp-home-section {
		padding-top: 2.5rem;
		padding-bottom: 2.5rem;
	}
	.dsp-home .dsp-section--top-slider {
		padding-top: 0;
		padding-bottom: 0;
	}
}
