@font-face{font-family:'Alex Brush';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/AlexBrush-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Alex Brush';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/AlexBrush.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/Manrope-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Manrope';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/Manrope.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/PlayfairDisplay-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/PlayfairDisplay.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
/* HEADER — transparent overlay on hero; liquid-glass white on scroll */
header{position:fixed;top:0;left:0;right:0;background:transparent;padding:clamp(1rem,1.8vw,1.8rem) clamp(1.5rem,4vw,5.5rem);display:flex;justify-content:space-between;align-items:center;z-index:200;gap:clamp(.6rem,1.5vw,1.5rem);flex-wrap:nowrap;transform:translateY(0);transition:background .4s ease,padding .4s ease,box-shadow .4s ease,border-color .4s ease,transform .35s ease;border-bottom:1px solid transparent;}
header.hide{transform:translateY(-100%);}
header.scrolled{background:rgba(255,255,255,.68);backdrop-filter:blur(18px) saturate(180%);-webkit-backdrop-filter:blur(18px) saturate(180%);box-shadow:0 4px 30px rgba(0,0,0,.06);border-bottom:1px solid rgba(0,0,0,.06);padding:clamp(.6rem,1.1vw,1rem) clamp(1.5rem,4vw,5.5rem);}
.logo{display:flex;align-items:center;min-width:fit-content;}
.logo a{display:flex;align-items:center;}
.logo img{height:clamp(96px,9.5vw,168px);width:auto;transition:height .4s ease;}
header.scrolled .logo img{height:clamp(50px,5vw,80px);}
nav{display:flex;gap:clamp(1.5rem,3vw,4rem);align-items:center;flex:1;justify-content:flex-start;flex-wrap:nowrap;min-width:0;}
nav a{position:relative;font-family:'Playfair Display',serif;color:#fff;text-decoration:none;font-size:clamp(.68rem,1vw,1.05rem);font-weight:500;transition:color .35s ease;text-transform:uppercase;letter-spacing:.6px;white-space:nowrap;text-shadow:0 1px 4px rgba(0,0,0,.25);padding-bottom:4px;}
nav a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1.5px;background:currentColor;transition:width .35s cubic-bezier(.65,0,.35,1);}
header.scrolled nav a{color:var(--charcoal);text-shadow:none;}
nav a:hover,nav a.active{color:var(--rich-gold);}
nav a:hover::after,nav a.active::after{width:100%;}
.header-end{display:flex;align-items:center;justify-content:space-between;flex:1;min-width:0;gap:clamp(.6rem,1.5vw,1.5rem);}
/* equal space between logo and the nearest menu item on each side */
header{--nav-logo-gap:clamp(1rem,3vw,4rem);}
.header-start{display:flex;align-items:center;flex:1;min-width:0;gap:clamp(.6rem,1.5vw,1.5rem);}
.header-start>nav{justify-content:flex-end;margin-right:var(--nav-logo-gap);}
.cta-left{flex:none;}
header .cta-right{display:none;}
.nav-right{flex:none;margin-left:var(--nav-logo-gap);}
.header-right{margin-left:auto;display:flex;align-items:center;gap:clamp(.6rem,1.3vw,1.8rem);justify-content:flex-end;flex:none;}
.phone-cta{display:flex;align-items:center;gap:.4rem;color:#fff;font-size:clamp(.68rem,1vw,1.05rem);font-weight:500;white-space:nowrap;transition:color .4s ease;text-shadow:0 1px 4px rgba(0,0,0,.25);}
.phone-cta svg{width:14px;height:14px;stroke:#fff;fill:none;transition:stroke .4s ease;flex:none;}
header.scrolled .phone-cta{color:var(--charcoal);text-shadow:none;}
header.scrolled .phone-cta svg{stroke:var(--charcoal);}
.cta-btn{background:transparent;border:1px solid var(--rich-gold,#D7BB51);color:#fff;padding:clamp(.45rem,.9vw,.8rem) clamp(.8rem,1.6vw,1.8rem);font-family:'Manrope',sans-serif;font-size:clamp(.68rem,1vw,1.05rem);font-weight:500;cursor:pointer;transition:background .35s ease,color .35s ease,border-color .35s ease,transform .3s ease,box-shadow .3s ease;text-decoration:none;display:inline-block;white-space:nowrap;}
.cta-btn:hover{background:#fff;color:var(--deep-teal);transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.18);}
header.scrolled .cta-btn{border-color:var(--antique-gold,#AA8D3F);color:var(--charcoal);}
header.scrolled .cta-btn:hover{background:var(--deep-teal);color:#fff;border-color:var(--antique-gold,#AA8D3F);box-shadow:0 10px 24px rgba(30,73,81,.25);}

/* HAMBURGER — hidden on desktop, shown only ≤1024px (tablet + phone) */
.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;width:34px;height:34px;background:none;border:none;cursor:pointer;padding:0;z-index:210;}
.hamburger span{display:block;width:26px;height:2px;background:#fff;transition:background .4s ease,transform .3s ease,opacity .3s ease;}
header.scrolled .hamburger span{background:var(--charcoal);}

/* MOBILE DRAWER */
.drawer-backdrop{position:fixed;inset:0;background:rgba(10,15,15,.45);z-index:290;opacity:0;pointer-events:none;transition:opacity .35s ease;}
.drawer-backdrop.open{opacity:1;pointer-events:auto;}
.mobile-drawer{position:fixed;top:0;right:0;height:100vh;height:100dvh;width:min(320px,82vw);background:#fff;z-index:300;box-shadow:none;transform:translateX(100%);transition:transform .4s cubic-bezier(.4,0,.2,1),box-shadow .4s ease;visibility:hidden;display:flex;flex-direction:column;padding:1.6rem 1.8rem 2rem;overflow-y:auto;}
.mobile-drawer.open{transform:translateX(0);box-shadow:-10px 0 35px rgba(0,0,0,.18);visibility:visible;}
.drawer-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:2.2rem;}
.drawer-logo{height:48px;width:auto;}
.drawer-close{background:none;border:none;font-size:1.8rem;line-height:1;cursor:pointer;color:var(--charcoal);padding:.2rem .4rem;}
.drawer-nav{display:flex;flex-direction:column;gap:1.3rem;margin-bottom:auto;}
.drawer-nav a{display:block;font-family:'Playfair Display',serif;font-size:1.15rem;text-transform:uppercase;letter-spacing:1px;color:var(--charcoal);text-decoration:none;transition:color .3s ease,padding-left .3s ease;border-left:2px solid transparent;padding-left:0;}
.drawer-nav a.active,.drawer-nav a:hover{color:var(--deep-teal);padding-left:.7rem;border-left-color:var(--rich-gold);}
.drawer-footer{display:flex;flex-direction:column;gap:1rem;padding-top:1.5rem;margin-top:1.5rem;border-top:1px solid #eee;}
.drawer-footer .phone-cta{color:var(--charcoal);text-shadow:none;font-size:1.15rem;}
.drawer-footer .phone-cta svg{stroke:var(--charcoal);}
.cta-btn-solid{background:var(--deep-teal);color:#fff;border:none;padding:.9rem 1.5rem;font-family:'Manrope',sans-serif;font-size:1.15rem;font-weight:600;cursor:pointer;text-align:center;width:100%;transition:background .3s ease,transform .3s ease,box-shadow .3s ease;}
.cta-btn-solid:hover{background:#0f3a46;transform:translateY(-2px);box-shadow:0 10px 22px rgba(30,73,81,.3);}
body.drawer-open{overflow:hidden;}

/* FOOTER — 5 columns: logo+social / about / quick links / products / contact */
footer{background:var(--deep-teal);color:#fff;padding:clamp(2.5rem,5vw,4rem) clamp(1.5rem,5vw,3rem) clamp(1.5rem,3vw,2rem);overflow:hidden;}
.footer-grid{display:grid;grid-template-columns:.85fr 1.15fr 1fr 1fr 1.15fr;gap:clamp(1.5rem,3vw,2.5rem);max-width:1400px;margin:0 auto clamp(2.5rem,4vw,3.5rem);}
.footer-section h3{font-family:'Playfair Display',serif;font-size:clamp(1rem,1.6vw,1.15rem);font-weight:500;margin-bottom:1rem;text-transform:uppercase;letter-spacing:.8px;}
.footer-section p,.footer-section a,.footer-section li{font-size:clamp(.82rem,1.4vw,.92rem);line-height:1.8;color:rgba(255,255,255,.85);}
.footer-section a{text-decoration:none;transition:color .3s;}
.footer-section a:hover{color:var(--rich-gold);}
.footer-logo-badge{width:clamp(90px,9vw,115px);height:clamp(90px,9vw,115px);margin-bottom:clamp(1.5rem,3vw,2.2rem);}
.social-links{display:flex;gap:.6rem;margin-top:.9rem;}
.social-links a{width:34px;height:34px;background:rgba(255,255,255,.12);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .3s;color:#fff;}
.social-links a svg{width:16px;height:16px;transition:transform .3s;}
.social-links a:hover svg{transform:scale(1.15);}
.social-links a:hover{background:var(--rich-gold);color:var(--deep-teal);}
.footer-contact-item{display:flex;align-items:flex-start;gap:.6rem;margin-bottom:.9rem;}
.footer-contact-item svg{width:16px;height:16px;stroke:#fff;fill:none;flex:none;margin-top:.2rem;}
.footer-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:clamp(1.3rem,2.5vw,1.7rem);display:flex;justify-content:space-between;flex-wrap:wrap;gap:.8rem;max-width:1400px;margin:0 auto;font-size:clamp(.75rem,.95vw,.76rem);line-height:1.5;}
.footer-bottom p{color:rgba(255,255,255,.75);margin:0;}
.footer-bottom a{color:rgba(255,255,255,.75);text-decoration:none;}
.footer-bottom a:hover{color:var(--rich-gold);}
.footer-bottom strong{color:#fff;}

/* logo links */
.drawer-logo-link{display:flex;align-items:center;}
.footer-section a.footer-logo-link{display:inline-block;line-height:0;font-size:0;}
.footer-logo-link img{transition:transform .4s cubic-bezier(.34,1.56,.64,1);}
.footer-logo-link:hover img{transform:scale(1.05);}
.logo a img{transition:height .4s ease,transform .4s cubic-bezier(.34,1.56,.64,1);}
.logo a:hover img{transform:scale(1.04);}

/* FOOTER MOBILE ACCORDION */
.footer-section h3{display:flex;justify-content:space-between;align-items:center;}
.footer-toggle-icon{display:none;width:14px;height:14px;position:relative;flex:none;}
.footer-toggle-icon::before,.footer-toggle-icon::after{content:'';position:absolute;background:#fff;transition:transform .3s ease;}
.footer-toggle-icon::before{left:0;top:50%;width:100%;height:1.5px;transform:translateY(-50%);}
.footer-toggle-icon::after{top:0;left:50%;width:1.5px;height:100%;transform:translateX(-50%);}
.footer-accordion.open .footer-toggle-icon::after{transform:translateX(-50%) scaleY(0);}
.footer-content{overflow:hidden;}

/* MEDIA QUERIES EXTRACT */
@media (max-width:1024px){
  nav{display:none;}
  .header-start{display:none;}
  header .cta-right{display:block;}
  .phone-cta{display:none;}
  .hamburger{display:flex;}
  .footer-grid{grid-template-columns:1fr 1fr;}
}

@media (max-width:768px){
  .footer-grid{grid-template-columns:1fr 1fr;text-align:left;}
}

@media (max-width:480px){
  header{padding:1rem 1.25rem;}
  header.scrolled{padding:.7rem 1.25rem;}
  header .cta-btn{display:none;}
  .footer-grid{grid-template-columns:1fr;text-align:center;}
  .social-links{justify-content:center;}
  .footer-contact-item{justify-content:center;}
  .footer-bottom{flex-direction:column;text-align:center;}
}

@media (max-width:360px){
  .logo img{height:52px;}
  .drawer-logo{height:42px;}
  .mobile-drawer{width:88vw;padding:1.3rem 1.4rem 1.6rem;}
  .footer-logo-badge{width:80px;height:80px;}
}

@media (max-width:600px){
  .footer-grid{grid-template-columns:1fr;text-align:left;}
  .footer-section:first-child{text-align:center;margin-bottom:.5rem;}
  .footer-section:first-child .footer-logo-badge{margin-left:auto;margin-right:auto;}
  .footer-section:first-child .social-links{justify-content:flex-start;}
  .footer-section:first-child h3{text-align:left;}
  .footer-accordion{border-bottom:1px solid rgba(255,255,255,.15);padding-bottom:.9rem;}
  .footer-accordion h3{cursor:pointer;margin-bottom:0;padding:.4rem 0;}
  .footer-toggle-icon{display:block;}
  .footer-accordion .footer-content{max-height:0;transition:max-height .4s ease;}
  .footer-accordion.open .footer-content{max-height:400px;padding-top:.8rem;}
  .footer-bottom{flex-direction:column;text-align:center;}
}

/* Custom Scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: #fcfaf8; }
::-webkit-scrollbar-thumb { background: #1E4951; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: #D7BB51; }


/* BREADCRUMB */
.crumbs { max-width: 1500px; margin: 0 auto; padding: clamp(1.2rem, 2.5vw, 1.8rem) clamp(1.5rem, 4vw, 5.5rem) 0; font-size:clamp(.75rem,1.2vw, .85rem); color: #5f5f5a; display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-family: \'Manrope\', sans-serif; }
.crumbs a { color: #5f5f5a; text-decoration: none; transition: color .3s ease; }
.crumbs a:hover { color: var(--deep-teal); }
.crumbs .sep { width: 5px; height: 5px; border-top: 1.2px solid #b5b5ad; border-right: 1.2px solid #b5b5ad; transform: rotate(45deg); }
.crumbs .current { color: var(--charcoal); font-weight: 600; }



:where(img){height:auto;}

/* Hero video: poster image paints first (LCP), video fades in once it plays */
.hero-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
video.hero-video[data-src]{opacity:0;transition:opacity .8s ease;}
video.hero-video.is-playing{opacity:1;}

/* touch devices: no hover overlay (it needed a first tap); tapping the card opens the product page */
@media (hover:none){
  .poverlay,.product-overlay{display:none;}
}

/* ---- WordPress additions ---- */
.skip-link{position:absolute;left:-9999px;top:0;z-index:100000;background:#fff;color:#171813;padding:.7rem 1rem;font-weight:600;text-decoration:none}
.skip-link:focus{left:1rem;top:1rem;outline:2px solid #D7BB51}
a.cta-btn-solid{display:block;text-decoration:none}
.phone-cta a{color:inherit;text-decoration:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.csp-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #D7BB51;outline-offset:3px}
.pagination{margin-top:clamp(2rem,4vw,3.5rem)}
.pagination .nav-links{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}
.pagination .page-numbers{min-width:40px;height:40px;padding:0 .8rem;display:inline-flex;align-items:center;justify-content:center;border:1px solid #cfd1dc;color:#1E4951;text-decoration:none;font-family:'Manrope',sans-serif;font-size:.9rem;transition:background .3s,color .3s}
.pagination a.page-numbers:hover,.pagination .page-numbers.current{background:#1E4951;color:#fff;border-color:#1E4951}
a.cta-btn{line-height:normal;text-align:center}

/* Mobile safety net: never justify text on small screens (also overrides inline justify pasted into editor content) */
@media (max-width:767px){[style*="text-align: justify"],[style*="text-align:justify"],.has-text-align-justify,.about-text p{text-align:left !important;hyphens:manual;}}

/* Legibility: soft dark scrim behind the transparent header so white nav text keeps 4.5:1 on bright hero frames */
header:not(.scrolled)::before{content:'';position:absolute;left:0;right:0;top:0;height:calc(100% + 40px);z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(6,10,11,.72) 0%,rgba(6,10,11,.55) 50%,rgba(6,10,11,0) 100%);}
/* Gold tokens: small gold text on light backgrounds uses the darker tone (5:1); bright gold stays for large text, lines and dark backgrounds */
:root{--gold-text:#7A6024;}
header.scrolled nav a:hover,header.scrolled nav a.active{color:var(--gold-text);}

/* Touch targets: at least 44x44px of hit area on touch screens; the visible size is unchanged (extra area via ::after / padding).
   "body" prefix so these win over the per-page copies of the header/footer rules. */
@media (max-width:1024px){
  body .social-links a{position:relative;}
  body .social-links a::after,body .arrows button::after,body .drawer-close::after{content:'';position:absolute;inset:-5px;}
  body .arrows button{position:relative;}
  body .arrows button::after{inset:-7px -4px;}
  body .drawer-close{position:relative;min-width:44px;min-height:44px;}
  body .view-more,body .view-link{position:relative;}
  body .view-more::after,body .view-link::after{content:'';position:absolute;left:0;right:0;top:-16px;bottom:-16px;}
  body .crumbs a,body .footer-bottom a,body .footer-contact-item a,body .footer-content li a,body .info-value a,body .contact-lines a,body .phone-cta a{display:inline-block;padding:14px 10px;margin:-14px -10px;}
  body .footer-content li{margin:0;}
}

/* Mobile menu: larger button, call / WhatsApp row, transform + opacity only.
   "body" prefix so these also win over the per-page copies of the header rules. */
@media (max-width:1024px){
  body .hamburger{width:48px;height:48px;gap:6px;align-items:center;margin-right:-6px;border-radius:50%;-webkit-tap-highlight-color:transparent;}
  body .hamburger span{width:30px;height:2.5px;border-radius:2px;}
  body .hamburger:active{transform:scale(.94);}
  body .hamburger:focus-visible{outline:2px solid var(--rich-gold);outline-offset:2px;}
}
/* drawer slides with transform only; the shadow is static (hidden with the drawer) and visibility flips after the slide-out */
body .mobile-drawer{box-shadow:-10px 0 35px rgba(0,0,0,.18);transition:transform .4s cubic-bezier(.4,0,.2,1),visibility 0s linear .4s;will-change:transform;}
body .mobile-drawer.open{transition:transform .4s cubic-bezier(.4,0,.2,1),visibility 0s;}
body .drawer-nav a{transition:color .3s ease,transform .3s ease;padding-left:.2rem;}
body .drawer-nav a.active,body .drawer-nav a:hover{padding-left:.2rem;transform:translateX(.6rem);}
body .drawer-contact{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:-.8rem 0 1.6rem;}
body .drawer-contact:has(a:only-child){grid-template-columns:1fr;}
body .drawer-contact a{display:flex;align-items:center;justify-content:center;gap:.55rem;min-height:48px;padding:0 .8rem;font:700 .85rem/1.2 'Manrope',sans-serif;letter-spacing:.05em;text-transform:uppercase;text-decoration:none;border:1px solid var(--deep-teal);transition:transform .25s ease,opacity .25s ease;-webkit-tap-highlight-color:transparent;}
body .drawer-contact a svg{width:20px;height:20px;flex:none;}
body .drawer-contact .dc-call{background:var(--deep-teal);color:#fff;}
body .drawer-contact .dc-call svg{fill:none;stroke:currentColor;stroke-width:1.8;}
body .drawer-contact .dc-wa{background:#fff;color:var(--deep-teal);}
body .drawer-contact .dc-wa svg{fill:#25D366;stroke:none;}
body .drawer-contact a:active{transform:scale(.97);}
@media (prefers-reduced-motion:reduce){body .mobile-drawer,body .mobile-drawer.open{transition:none;}body .drawer-nav a{transition:none;}}

/* Logged-in visitors: the WordPress admin bar (32px, 46px on tablets) must not cover the fixed header */
@media (min-width:601px){body.admin-bar header{top:32px;}}
@media (min-width:601px) and (max-width:782px){body.admin-bar header{top:46px;}}
@media (max-width:600px){body.admin-bar header:not(.scrolled){top:46px;}}

.js footer .reveal{opacity:0;transform:translateY(16px);transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1);}
.js footer .reveal.in-view{opacity:1;transform:translateY(0);}
@media (prefers-reduced-motion:reduce){footer .reveal{opacity:1!important;transform:none!important;transition:none!important;}}

/* Scroll reveal v2: softer, longer entrance with fade-and-rise; photos unveil with a wipe + settle. */
html.js .reveal:not(.revealed){transition:opacity 1.1s cubic-bezier(.22,1,.36,1),transform 1.2s cubic-bezier(.22,1,.36,1);will-change:opacity,transform;}
html.js .reveal:not(.in-view){opacity:0;transform:translate3d(0,32px,0);}
html.js .reveal.in-view{opacity:1;transform:none;filter:none;}
html.js .about-photo.reveal:not(.in-view) img,html.js .testi-photo.reveal:not(.in-view) img{transform:scale(1.1);}
html.js .about-photo.reveal:not(.revealed) img,html.js .testi-photo.reveal:not(.revealed) img{transition:transform 1.8s cubic-bezier(.22,1,.36,1);}
@media (prefers-reduced-motion:no-preference){.hero-video{animation:heroSettle 2.6s cubic-bezier(.22,1,.36,1) both;}}
@keyframes heroSettle{from{transform:scale(1.08);}to{transform:scale(1);}}
@media (prefers-reduced-motion:reduce){html.js .reveal,html.js .reveal:not(.in-view){opacity:1!important;transform:none!important;filter:none!important;transition:none!important;}}

.sec p strong,.sec p b,.hero p strong,.hero p b,.section-heading strong,.section-heading b{font-weight:700;}

body .drawer-nav a,body .drawer-footer a,body .drawer-contact a{text-shadow:none;}

/* Footer v2: bigger logo + description, gold socials, gold-underlined headings, column separators, compact credits */
body footer .footer-grid{grid-template-columns:1.35fr 1fr 1fr 1.35fr;gap:0;align-items:stretch;max-width:1400px;}
body footer .footer-logo-badge{width:clamp(150px,15vw,210px);height:clamp(150px,15vw,210px);margin-bottom:1rem;}
body footer .footer-desc{max-width:340px;margin:0 0 1.1rem;font-size:clamp(.82rem,1.1vw,.92rem);line-height:1.6;color:rgba(255,255,255,.88);}
body footer .social-links{margin-top:.4rem;gap:.8rem;}
body footer .social-links a{width:38px;height:38px;background:transparent;border:1.5px solid var(--rich-gold);color:var(--rich-gold);}
body footer .social-links a svg{width:17px;height:17px;}
body footer .social-links a:hover{background:var(--rich-gold);color:var(--deep-teal);}
body footer .footer-section h3{justify-content:flex-start;position:relative;font-size:clamp(1rem,1.5vw,1.3rem);letter-spacing:1px;padding-bottom:.9rem;margin-bottom:1.3rem;}
body footer .footer-section h3::after{content:'';position:absolute;left:0;bottom:0;width:34px;height:2px;background:var(--rich-gold);}
body footer .footer-contact-item svg{stroke:var(--rich-gold);}
body footer .footer-bottom{border-top:1px solid rgba(255,255,255,.14);align-items:center;font-size:.72rem;}
body footer .footer-bottom p,body footer .footer-bottom a{font-size:.72rem;color:rgba(255,255,255,.8);}
body footer .footer-bottom img{height:12px!important;}
@media (min-width:1025px){
  body footer .footer-section + .footer-section{border-left:1px solid rgba(255,255,255,.14);padding-left:clamp(1.5rem,3.4vw,3.5rem);}
  body footer .footer-section{padding-right:clamp(1rem,2vw,2rem);}
  body footer .footer-section:last-child{padding-right:0;}
}
@media (max-width:1024px){
  body footer .footer-grid{grid-template-columns:1fr 1fr;gap:2rem 1.5rem;}
  body footer .footer-section:first-child{grid-column:1/-1;}
}
@media (max-width:600px){
  body footer .footer-grid{grid-template-columns:1fr;gap:1.2rem;}
  body footer .footer-desc{margin-left:auto;margin-right:auto;text-align:center;}
  body footer .footer-section:first-child .social-links{justify-content:center;}
  body footer .footer-section h3{padding-bottom:.4rem;margin-bottom:0;}
  body footer .footer-section h3::after{display:none;}
}

body footer .footer-contact-item span{font-size:clamp(.82rem,1.4vw,.92rem);line-height:1.8;color:rgba(255,255,255,.85);font-family:inherit;}

/* Footer v3: shorter footer (tighter padding, smaller logo, no "Social media" heading) */
body footer{padding-top:clamp(1.6rem,2.6vw,2.4rem);padding-bottom:clamp(.9rem,1.6vw,1.3rem);}
body footer .footer-grid{margin-bottom:clamp(1rem,1.8vw,1.5rem);}
body footer .footer-logo-badge{width:clamp(120px,11vw,165px);height:clamp(120px,11vw,165px);margin-bottom:.5rem;}
body footer .footer-desc{margin-bottom:.8rem;line-height:1.5;}
body footer .footer-section:first-child h3{display:none;}
body footer .social-links{margin-top:0;}
body footer .footer-section h3{padding-bottom:.65rem;margin-bottom:.9rem;}
body footer .footer-section li,body footer .footer-section li a{line-height:1.7;}
body footer .footer-contact-item{margin-bottom:.6rem;}
body footer .footer-bottom{padding-top:.9rem;gap:.5rem;}

/* Footer v4: compact */
body footer{padding-top:1.4rem;padding-bottom:.8rem;}
body footer .footer-grid{margin-bottom:.9rem;}
body footer .footer-logo-badge{width:clamp(96px,8.5vw,124px);height:clamp(96px,8.5vw,124px);margin-bottom:.35rem;display:block;}
body footer .footer-desc{font-size:.8rem;line-height:1.45;margin:0 0 .6rem;max-width:380px;}
body footer .social-links{gap:.6rem;}
body footer .social-links a{width:32px;height:32px;}
body footer .social-links a svg{width:15px;height:15px;}
body footer .footer-section h3{font-size:1rem;padding-bottom:.5rem;margin-bottom:.7rem;}
body footer .footer-section li,body footer .footer-section li a,body footer .footer-contact-item,body footer .footer-contact-item span,body footer .footer-contact-item a{font-size:.85rem;line-height:1.55;}
body footer .footer-contact-item{margin-bottom:.45rem;}
body footer .footer-bottom{padding-top:.7rem;}

/* Footer v5: long logo description set small and wide to keep the footer short */
body footer .footer-desc{font-size:.72rem;line-height:1.4;max-width:none;margin:0 0 .5rem;padding-right:.5rem;}

/* Footer v6: logo a little larger */
body footer .footer-logo-badge{width:clamp(120px,10.5vw,150px);height:clamp(120px,10.5vw,150px);}

/* Footer v7: a little more breathing room */
body footer{padding-top:clamp(2rem,3.4vw,3rem);padding-bottom:clamp(1.1rem,2vw,1.6rem);}
body footer .footer-grid{margin-bottom:clamp(1.3rem,2.4vw,2rem);}
body footer .footer-section h3{padding-bottom:.7rem;margin-bottom:1rem;}
body footer .footer-section li,body footer .footer-section li a{line-height:1.85;}
body footer .footer-contact-item{margin-bottom:.75rem;}
body footer .footer-desc{margin-bottom:.8rem;}
body footer .footer-bottom{padding-top:1.1rem;}

/* WhatsApp floating button (number from Theme Settings > Branding & Contact) */
.wa-float{position:fixed;right:clamp(14px,2vw,26px);bottom:clamp(14px,2.4vw,28px);z-index:250;width:56px;height:56px;border-radius:50%;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 22px rgba(0,0,0,.28);text-decoration:none;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease;}
.wa-float svg{width:30px;height:30px;fill:currentColor;}
.wa-float:hover{transform:scale(1.08);box-shadow:0 12px 28px rgba(0,0,0,.35);}
.wa-float::before{content:'';position:absolute;inset:0;border-radius:50%;border:2px solid #25D366;animation:waPulse 2.4s ease-out infinite;}
@keyframes waPulse{0%{transform:scale(1);opacity:.7;}100%{transform:scale(1.5);opacity:0;}}
@media (max-width:600px){.wa-float{width:52px;height:52px;}}
@media (prefers-reduced-motion:reduce){.wa-float::before{animation:none;}}
body.drawer-open .wa-float{display:none;}
@media (max-width:768px){body.has-enq-bar .wa-float{bottom:84px;}}
/* keep the credits clear of the floating WhatsApp button */
body footer .footer-bottom{padding-right:clamp(0px,6vw,84px);}
@media (max-width:768px){body footer .footer-bottom{padding-right:0;padding-bottom:84px;}}

/* Banner titles on every page: same line height and spacing as the Home hero title */
body .hero h1,body .hero .hero-title{line-height:1.14;margin-bottom:1rem;}

/* [gold]...[/gold] highlight (any heading or paragraph) */
.gold-text{color:#B8932F;}
.hero h1 .gold-text,.hero .hero-title .gold-text{background:linear-gradient(180deg,#F3D675,#C9A445);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;text-shadow:none;}
.hero p .gold-text{color:var(--rich-gold,#D7BB51);font-weight:700;}

/* client logo marquee (Home + Insights) */
.logo-cell{display:flex;align-items:center;justify-content:center;min-height:clamp(96px,10vw,148px);padding:clamp(.4rem,.9vw,.9rem);position:relative;border:1px solid transparent;transition:background-color .3s ease,box-shadow .3s ease,transform .3s ease,border-color .3s ease;}
.logo-cell:not(:empty){border-color:rgba(255,255,255,.2);}
.logo-cell:not(:empty):hover,.logo-cell.is-active{background:#fff;border-color:#fff;box-shadow:0 10px 24px rgba(0,0,0,.22);transform:translateY(-2px);}
.logo-cell img{width:auto;max-width:90%;height:clamp(54px,6.4vw,92px);margin:0 auto;object-fit:contain;filter:brightness(0) invert(1);opacity:.92;transition:filter .3s ease,opacity .3s ease,transform .4s cubic-bezier(.34,1.56,.64,1);}
.logo-cell:hover img,.logo-cell.is-active img{filter:none;opacity:1;transform:scale(1.06);}
/* emblems with a solid centre (e.g. Shore Oyster) keep their own colours — a white silhouette would be a blank disc */
.logo-cell--solid img,.logo-cell--solid:hover img{filter:none;opacity:1;}
/* La Mar file is white-on-transparent: white by default, black on the white hover tile */
.logo-cell--light:hover img,.logo-cell--light.is-active img{filter:invert(1);}
/* clients: two marquee rows, all logos in each; top row moves left to right, bottom row right to left */
.logo-marquee{min-width:0;overflow:hidden;display:flex;flex-direction:column;gap:clamp(.6rem,1vw,1rem);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);}
.marquee-row{overflow:hidden;}
.marquee-track{display:flex;width:max-content;animation:marqueeRight var(--dur,50s) linear infinite;}
.marquee-row.is-rev .marquee-track{animation-name:marqueeLeft;}
@media (hover:hover){.logo-marquee:hover .marquee-track{animation-play-state:paused;}}
.logo-marquee.is-paused .marquee-track{animation-play-state:paused;} /* touch: tap a logo to pause, tap anywhere else to resume (components.js) */
.marquee-track .logo-cell{flex:0 0 auto;width:clamp(150px,13vw,200px);min-height:clamp(84px,8vw,124px);margin-right:clamp(.5rem,.9vw,.9rem);}
.marquee-track .logo-cell img{height:clamp(44px,5vw,76px);}
@keyframes marqueeRight{from{transform:translate3d(-50%,0,0);}to{transform:translate3d(0,0,0);}}
@keyframes marqueeLeft{from{transform:translate3d(0,0,0);}to{transform:translate3d(-50%,0,0);}}
@media (max-width:768px){
  .marquee-track .logo-cell{width:128px;min-height:78px;margin-right:.5rem;}
  .marquee-track .logo-cell img{height:44px;}
  .logo-marquee{margin-top:.5rem;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);}
}
@media (prefers-reduced-motion:reduce){.marquee-track{animation:none;}.marquee-row{overflow-x:auto;}}

/* Banner readability: soft bottom-weighted dark layer behind the title; the picture stays clearly visible.
   Video heroes (home / blog) already carry their own overlay. */
.hero:not(:has(.hero-video)){isolation:isolate;}
.hero:not(:has(.hero-video))::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(0deg,rgba(0,0,0,.5) 0%,rgba(0,0,0,.3) 35%,rgba(0,0,0,0) 70%);}

/* reCAPTCHA v3 badge hidden; the required notice is printed under the contact form instead */
.grecaptcha-badge{visibility:hidden !important;}
.recaptcha-note{margin:1rem 0 0;font-size:.75rem;line-height:1.5;color:#7a7a75;}
.recaptcha-note a{color:inherit;text-decoration:underline;}

/* Mobile: editor line breaks inside banner paragraphs leave ragged one-word lines; let the text wrap naturally (headings keep theirs). */
@media (max-width:768px){.hero p br{display:none;}}
