/* ============================================================================
   ZEYA — "Classic Luxury" design system.
   Shared by the static site and the WordPress theme.

   The supplied palette: Luxury Gold #C9A24D, Champagne Gold #E2C275,
   Warm Ivory #F8F3E8, Champagne Cream #EADBC8, Taupe #B8A28D,
   Espresso Brown #2B2118, Charcoal #171411 and White #FFFFFF.
   Darker shades preserve text contrast.
   Change a token, not a rule.

   The reset is scoped with :where(.zeya-body) so it carries zero specificity
   and cannot leak into the WordPress admin bar, the block editor or plugin
   widgets. Every custom class is prefixed `zeya-`.
   ========================================================================= */

:root{
  /* Supplied palette. Existing component aliases share these five colours. */
  --zeya-ivory:#F8F3E8;
  --zeya-champagne:#EADBC8;
  --zeya-champagne-gold:#E2C275; /* Light gold accent on dark grounds and photos. */
  --zeya-taupe:#B8A28D;
  --zeya-espresso:#2B2118;
  --zeya-charcoal:#171411;
  --zeya-white:#FFFFFF;
  --zeya-black:var(--zeya-charcoal);
  --zeya-chocolate:var(--zeya-espresso);
  --zeya-gold:#C9A24D;
  --zeya-cream:var(--zeya-ivory);
  --zeya-cream-lift:var(--zeya-champagne);
  --zeya-cream-line:var(--zeya-taupe);
  --zeya-gold-ink:#806120; /* Darker gold for readable small text and buttons. */
  --zeya-gold-soft:var(--zeya-champagne);
  --zeya-body:var(--zeya-espresso);
  --zeya-muted:#665748; /* Dark taupe for secondary text on ivory. */

  /* type */
  --zeya-serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --zeya-sans:'Inter',-apple-system,'Segoe UI',Arial,sans-serif;

  /* rhythm */
  --zeya-gutter:clamp(20px,5vw,72px);
  --zeya-max:1320px;
  --zeya-nav-h:92px;      /* bar height while it rides over the hero */
  --zeya-nav-h-sm:68px;   /* and once it has gone solid */
  --zeya-topbar-h:40px;   /* the contact strip above the bar */
  --zeya-logo-h:64px;     /* wordmark height, one per bar height */
  --zeya-logo-h-sm:52px;
  --zeya-ease:cubic-bezier(.16,1,.3,1);
  --zeya-shadow:0 26px 70px rgba(43,33,24,.12);
}

/* --------------------------------------------------------------- reset --- */
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--zeya-nav-h) + 24px)}
body.zeya-body{margin:0;background:var(--zeya-cream);color:var(--zeya-body);
  font:400 16px/1.75 var(--zeya-sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
:where(body.zeya-body) :where(h1,h2,h3,h4,p,figure,ul,ol,dl,dd,blockquote){margin:0}
:where(body.zeya-body) :where(ul,ol){list-style:none;padding:0}
:where(body.zeya-body) a{color:inherit;text-decoration:none}
:where(body.zeya-body) img{display:block;width:100%;height:auto}
:where(body.zeya-body) svg{display:block;width:20px;height:20px}
:where(body.zeya-body) :where(button,input,textarea,select){font:inherit;color:inherit}
:where(body.zeya-body) button{cursor:pointer;background:none;border:0}
::selection{background:var(--zeya-gold);color:var(--zeya-black)}
:focus-visible{outline:2px solid var(--zeya-gold-ink);outline-offset:4px}

/* ----------------------------------------------------------- typography --- */
:where(body.zeya-body) :where(h1,h2,h3,h4){font-family:var(--zeya-serif);font-weight:400;
  color:var(--zeya-black);line-height:1.04;letter-spacing:-.02em}
:where(body.zeya-body) h1{font-size:clamp(44px,7vw,104px)}
:where(body.zeya-body) h2{font-size:clamp(34px,4.4vw,62px)}
:where(body.zeya-body) h3{font-size:clamp(24px,2.2vw,30px);line-height:1.15}
:where(body.zeya-body) em{font-style:italic}

.zeya-eyebrow{font-family:var(--zeya-sans);font-size:11px;font-weight:500;
  letter-spacing:.24em;text-transform:uppercase;line-height:1.6;
  color:var(--zeya-gold-ink);margin:0}

/* --------------------------------------------------------------- layout --- */
.zeya-container{width:min(100% - var(--zeya-gutter)*2,var(--zeya-max));margin-inline:auto}
.zeya-container--wide{max-width:1560px}
.zeya-section{padding-block:clamp(72px,9vw,140px)}
#zeya-main{overflow-x:clip}
.zeya-section--chocolate{background:var(--zeya-chocolate);color:var(--zeya-cream)}
.zeya-section--chocolate :is(h1,h2,h3,h4){color:var(--zeya-cream)}
.zeya-section--chocolate .zeya-eyebrow{color:var(--zeya-gold)}
.zeya-section--black{background:var(--zeya-black);color:var(--zeya-cream)}
.zeya-section--black :is(h1,h2,h3,h4){color:var(--zeya-cream)}
.zeya-section--black .zeya-eyebrow{color:var(--zeya-gold)}

.zeya-sr-only,.zeya-icons-sprite,.zeya-hp{position:absolute!important;width:1px!important;
  height:1px!important;padding:0!important;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.zeya-skip{position:fixed;left:20px;top:-120px;z-index:200;background:var(--zeya-cream-lift);
  color:var(--zeya-black);padding:14px 22px;transition:top .2s}
.zeya-skip:focus{top:12px}
.zeya-no-scroll{overflow:hidden}

/* -------------------------------------------------------------- buttons --- */
.zeya-btn{display:inline-flex;align-items:center;gap:12px;padding:16px 30px;
  font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  border:1px solid transparent;transition:background .3s var(--zeya-ease),
  color .3s var(--zeya-ease),border-color .3s var(--zeya-ease),transform .3s var(--zeya-ease)}
.zeya-btn:hover{transform:translateY(-2px)}
.zeya-btn__arrow{width:16px;height:16px;transition:transform .3s var(--zeya-ease)}
.zeya-btn:hover .zeya-btn__arrow{transform:translateX(5px)}
.zeya-btn--gold{background:var(--zeya-gold);color:var(--zeya-black);border-color:var(--zeya-gold)}
.zeya-btn--gold:hover{background:var(--zeya-black);color:var(--zeya-gold);border-color:var(--zeya-black)}
.zeya-btn--ivory{background:var(--zeya-cream-lift);color:var(--zeya-black);border-color:var(--zeya-cream-lift)}
.zeya-btn--ivory:hover{background:var(--zeya-gold);border-color:var(--zeya-gold)}
.zeya-btn--outline{border-color:currentColor;color:inherit}
.zeya-btn--outline:hover{background:var(--zeya-gold);color:var(--zeya-black);border-color:var(--zeya-gold)}
.zeya-btn--line{border-color:currentColor;padding:12px 22px}
.zeya-btn--line:hover{background:var(--zeya-gold);color:var(--zeya-black);border-color:var(--zeya-gold)}
.zeya-btn--block{width:100%;justify-content:center}

/* The rule is drawn with ::after so the link can carry a 44px hit area
   without the underline drifting away from the text. */
.zeya-back-link{position:relative;display:inline-flex;align-items:center;gap:8px;
  min-height:44px;padding-block:11px;font-size:12px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--zeya-gold-ink);transition:opacity .25s}
.zeya-back-link::after{content:"";position:absolute;left:0;right:0;bottom:11px;
  height:1px;background:currentColor}
.zeya-back-link:hover{opacity:.65}
.zeya-section--chocolate .zeya-back-link{color:var(--zeya-gold)}

/* --------------------------------------------------------------- topbar --- */
/* A dark contact strip in the page flow above the header. It scrolls away with
   the page; main.js sets --zeya-header-top so the fixed bar follows it up and
   then docks at the very top. Without JS the bar simply sits beneath it. */
.zeya-topbar{position:relative;height:var(--zeya-topbar-h);background:var(--zeya-charcoal);
  color:rgba(248,243,232,.8);font-size:12.5px;letter-spacing:.02em}
.zeya-topbar__inner{height:100%;display:flex;align-items:center;justify-content:space-between;
  gap:24px}
.zeya-topbar__info{display:flex;align-items:center;gap:clamp(18px,2.6vw,40px);min-width:0}
.zeya-topbar__item{display:inline-flex;align-items:center;gap:9px;white-space:nowrap;
  transition:color .25s}
.zeya-topbar__item svg{flex:none;width:15px;height:15px;color:var(--zeya-champagne-gold)}
a.zeya-topbar__item{min-height:var(--zeya-topbar-h)}
a.zeya-topbar__item[href]:hover{color:var(--zeya-champagne-gold)}
.zeya-topbar__links{display:flex;align-items:center;gap:clamp(16px,2.2vw,32px)}
.zeya-topbar__links a{display:flex;align-items:center;min-height:var(--zeya-topbar-h);
  font-size:11.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:var(--zeya-ivory);white-space:nowrap;transition:color .25s}
.zeya-topbar__links a:hover{color:var(--zeya-champagne-gold)}
.zeya-topbar+.zeya-header{top:var(--zeya-header-top,var(--zeya-topbar-h))}
.zeya-header.is-open,.zeya-topbar+.zeya-header.is-open{top:var(--zeya-adminbar-h,0px)}

/* --------------------------------------------------------------- header --- */
/* Transparent while the hero is on screen, solid once it has scrolled away. */
.zeya-header{position:fixed;inset:var(--zeya-header-top,var(--zeya-topbar-h)) 0 auto;z-index:100;height:var(--zeya-nav-h);
  color:var(--zeya-cream);transition:background .4s var(--zeya-ease),
  color .4s var(--zeya-ease),box-shadow .4s var(--zeya-ease),height .4s var(--zeya-ease)}
.zeya-header::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(to bottom,rgba(23,20,17,.78) 0%,rgba(23,20,17,.68) 58%,rgba(23,20,17,.50) 100%);
  opacity:1;transition:opacity .4s var(--zeya-ease)}
/* Scrolled, the bar turns solid but keeps its full height. */
.zeya-header.is-scrolled,.zeya-header--solid,.zeya-header.is-open{
  background:var(--zeya-cream);color:var(--zeya-black);
  box-shadow:0 1px 0 var(--zeya-cream-line)}
/* The solid inner-page bar and the open menu are compact, and the wordmark
   compresses with them, so the clearance around the logo stays the same. */
.zeya-header--solid,.zeya-header.is-open{
  --zeya-logo-h:var(--zeya-logo-h-sm);height:var(--zeya-nav-h-sm)}
/* The frosted bar is kept OFF the open state on purpose: a live
   `backdrop-filter` makes the header a containing block for position:fixed
   descendants, which would collapse the full-screen mobile panel inside it. */
.zeya-header:is(.is-scrolled,.zeya-header--solid):not(.is-open){
  background:rgba(248,243,232,.94);-webkit-backdrop-filter:blur(14px);
  backdrop-filter:blur(14px)}
.zeya-header.is-scrolled::after,.zeya-header--solid::after,.zeya-header.is-open::after{opacity:0}
.zeya-header__inner{height:100%;display:flex;align-items:center;justify-content:space-between;
  gap:clamp(24px,4vw,64px)}

/* The wordmark is sized by HEIGHT, never width. The artwork is 720x341, so a
   width rule lets it grow taller than the bar and clip the "Curtains & Blinds"
   line underneath; height-first means it can never outgrow its container. */
.zeya-logo{display:flex;align-items:center;flex-shrink:0;height:var(--zeya-logo-h);
  transition:height .4s var(--zeya-ease)}
.zeya-logo__img{width:auto;height:100%;object-fit:contain;
  transition:filter .4s var(--zeya-ease)}
/* Frame the supplied PNG's transparent margins without changing its artwork. */
.zeya-logo{position:relative;aspect-ratio:1298/364;overflow:hidden}
.zeya-logo__img{position:absolute;max-width:none;width:auto;height:219.78022%;
  top:-56.31868%;left:-11.40216%;object-fit:contain}

/* Render the hero tagline at screen resolution, preserving the supplied wordmark. */
.zeya-header:not(.is-scrolled):not(.zeya-header--solid):not(.is-open) .zeya-logo__img{
  clip-path:polygon(0 0,100% 0,100% 65.5%,32.5% 65.5%,32.5% 100%,0 100%)}
.zeya-header:not(.is-scrolled):not(.zeya-header--solid):not(.is-open) .zeya-logo::after{
  content:"Curtains & Blinds";position:absolute;left:32.5%;right:0;bottom:0;
  padding-inline:20px;pointer-events:none;
  background:linear-gradient(currentColor,currentColor) left center/16px 1px no-repeat,
    linear-gradient(currentColor,currentColor) right center/16px 1px no-repeat;
  color:#b58a49;font:600 8.5px/1 var(--zeya-sans);letter-spacing:.2em;
  text-align:center;text-transform:uppercase;white-space:nowrap;
  text-shadow:0 1px 1px rgba(0,0,0,.4)}
@media(max-width:700px){
  .zeya-header:not(.is-scrolled):not(.zeya-header--solid):not(.is-open) .zeya-logo::after{
    padding-inline:10px;background-size:7px 1px;font-size:6px;letter-spacing:.12em}
}

.zeya-nav{display:flex;align-items:center;gap:clamp(20px,2.6vw,40px)}
.zeya-nav__list{display:flex;align-items:center;gap:clamp(14px,1.9vw,30px)}
/* Each item is a 44px target whose label sits on one shared baseline, so the
   indicator rule under the active link lines up right across the bar. */
.zeya-nav__link{position:relative;display:flex;align-items:center;min-height:44px;
  padding-block:11px;font-size:13px;font-weight:500;letter-spacing:.14em;
  text-transform:uppercase;white-space:nowrap;transition:color .25s}
.zeya-nav__link::after{content:"";position:absolute;left:0;bottom:10px;width:100%;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:right;
  transition:transform .35s var(--zeya-ease)}
.zeya-nav__link:hover::after,.zeya-nav__link.is-active::after{transform:scaleX(1);transform-origin:left}
/* The current-page marker needs two values, not one: gold reads muddy on the
   hero photograph AND thin on the cream bar. Champagne gold carries it over the
   image; the darker gold ink carries it once the bar goes solid. */
.zeya-nav__link.is-active{color:var(--zeya-champagne-gold)}
.zeya-header:is(.is-scrolled,.zeya-header--solid,.is-open) .zeya-nav__link.is-active{
  color:var(--zeya-gold-ink)}

.zeya-nav-products{position:relative;display:flex;align-items:center;gap:6px}
/* The tap toggle for the mobile panel: a labelled pill, not a bare arrow. */
.zeya-product-menu summary{list-style:none;display:inline-flex;align-items:center;gap:10px;
  min-height:44px;padding:0 20px;border:1px solid var(--zeya-cream-line);border-radius:999px;
  font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
  color:var(--zeya-muted);cursor:pointer;transition:border-color .25s,color .25s}
.zeya-product-menu summary:hover,.zeya-product-menu[open] summary{border-color:var(--zeya-gold);
  color:var(--zeya-gold-ink)}
.zeya-product-menu summary::-webkit-details-marker{display:none}
.zeya-product-menu summary svg{width:12px;height:12px;transform:rotate(90deg);
  transition:transform .3s var(--zeya-ease)}
.zeya-product-menu[open] summary svg{transform:rotate(-90deg)}

/* The panel: product collections in a 2x2 grid, the sector page on its own
   row beneath, and a quiet foot linking to the full catalogue. */
.zeya-product-menu__panel{position:absolute;top:calc(100% + 14px);left:50%;
  transform:translateX(-50%);width:min(620px,calc(100vw - 48px));display:grid;gap:12px;
  padding:22px 22px 18px;background:var(--zeya-ivory);color:var(--zeya-black);
  border-top:2px solid var(--zeya-gold);box-shadow:0 30px 80px rgba(23,20,17,.24);text-align:left}
.zeya-product-menu__label{margin:0;padding-inline:10px;font-size:10px;font-weight:600;
  letter-spacing:.24em;text-transform:uppercase;color:var(--zeya-gold-ink)}
.zeya-product-menu__grid+.zeya-product-menu__label{margin-top:6px}
.zeya-product-menu__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
.zeya-product-menu__item{display:flex;align-items:center;gap:14px;padding:10px;
  border:1px solid transparent;transition:background .25s,border-color .25s}
.zeya-product-menu__item:hover{background:var(--zeya-champagne);border-color:var(--zeya-cream-line)}
.zeya-product-menu__thumb{flex:0 0 auto;width:64px;height:64px;overflow:hidden;
  background:var(--zeya-espresso)}
.zeya-product-menu__item--wide .zeya-product-menu__thumb{width:112px}
.zeya-product-menu__thumb img{width:100%;height:100%;object-fit:cover;
  transition:transform .6s var(--zeya-ease)}
.zeya-product-menu__item:hover .zeya-product-menu__thumb img{transform:scale(1.08)}
.zeya-product-menu__text{display:grid;gap:3px;min-width:0}
.zeya-product-menu__name{font-family:var(--zeya-serif);font-size:20px;line-height:1.15;
  color:var(--zeya-black);transition:color .25s}
.zeya-product-menu__note{font-size:12px;line-height:1.45;color:var(--zeya-muted)}
.zeya-product-menu__item[aria-current] .zeya-product-menu__name{color:var(--zeya-gold-ink)}
.zeya-product-menu__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:8px 20px;margin-top:4px;padding:14px 10px 0;border-top:1px solid var(--zeya-cream-line);
  font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.zeya-product-menu__foot a{font-weight:600;color:var(--zeya-gold-ink);transition:color .25s}
.zeya-product-menu__foot a:hover{color:var(--zeya-black)}
.zeya-product-menu__foot>span{color:var(--zeya-muted)}
.zeya-menu-columns{display:grid;grid-template-columns:1fr 1.3fr;gap:24px}
.zeya-menu-categories{display:grid;align-content:start;gap:2px}
.zeya-menu-category{display:flex;align-items:center;justify-content:space-between;gap:16px;
  width:100%;min-height:48px;padding:12px;border:0;background:transparent;color:inherit;
  font:inherit;font-size:13px;letter-spacing:.04em;text-transform:uppercase;text-align:left;cursor:pointer}
.zeya-menu-category[aria-expanded="true"],.zeya-menu-category:hover{background:var(--zeya-champagne);color:var(--zeya-gold-ink)}
.zeya-menu-category span{font-size:22px}
.zeya-menu-products{display:grid;align-content:start}
.zeya-menu-products[hidden]{display:none}
.zeya-menu-products a{display:block;padding:11px 12px;min-height:44px;font-size:14px;line-height:1.5}
.zeya-menu-products a:hover{background:var(--zeya-champagne);color:var(--zeya-gold-ink)}
.zeya-menu-products .zeya-menu-all{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--zeya-gold-ink)}
.zeya-menu-category:focus-visible,.zeya-menu-products a:focus-visible{outline:2px solid var(--zeya-gold-ink);outline-offset:-2px}
@media(max-width:900px){
  .zeya-menu-columns{grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:8px}
  .zeya-menu-category{font-size:11px;padding:10px 6px;letter-spacing:0}
  .zeya-menu-products a{font-size:12px;padding:10px 6px}
}

/* Desktop: the panel drops on hover (js/main.js toggles [open]), so the
   summary toggle has no job and is hidden; it stays in the mobile panel,
   where the menu is still tap-to-expand.
   The ::before bridges the 14px gap so the pointer can travel from the
   Collections link into the panel without the menu closing underneath it. */
@media (min-width:901px){
  .zeya-nav-products{gap:0}
  .zeya-product-menu summary{display:none}
  .zeya-product-menu[open] .zeya-product-menu__panel{animation:zeya-menu-in .26s var(--zeya-ease) both}
  .zeya-product-menu__panel::before{content:"";position:absolute;left:0;right:0;
    top:-16px;height:16px}
}
@keyframes zeya-menu-in{from{opacity:0;transform:translate(-50%,-8px)}
  to{opacity:1;transform:translate(-50%,0)}}

.zeya-burger{display:none;width:44px;height:44px;padding:10px;flex-direction:column;
  justify-content:center;gap:5px}
.zeya-burger__bar{display:block;height:1px;background:currentColor;
  transition:transform .3s var(--zeya-ease),opacity .2s}
.zeya-header.is-open .zeya-burger__bar:nth-child(1){transform:translateY(6px) rotate(45deg)}
.zeya-header.is-open .zeya-burger__bar:nth-child(2){opacity:0}
.zeya-header.is-open .zeya-burger__bar:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* ----------------------------------------------------------------- hero --- */
/* The full-bleed opener every page shares: photograph, two-stop scrim,
   centred display type. Three sizes — tall (home), default, product. */
.zeya-hero{position:relative;display:grid;place-items:center;isolation:isolate;
  min-height:clamp(440px,68vh,680px);padding-block:calc(var(--zeya-nav-h) + 56px) 72px;
  background:var(--zeya-black);overflow:hidden;text-align:center}
/* The home page hero fills the viewport; svh keeps it honest on mobile,
   where the browser chrome slides in and out of 100vh. */
.zeya-hero--tall{min-height:100vh;min-height:100svh}
.zeya-hero--product{min-height:clamp(400px,58vh,580px)}
.zeya-hero__media{position:absolute;inset:0;z-index:-2}
.zeya-hero__media img,.zeya-hero__media video{width:100%;height:100%;object-fit:cover}
.zeya-hero__video{background:var(--zeya-black)}
.zeya-hero__scrim{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(to bottom,rgba(43,33,24,.62) 0%,rgba(43,33,24,.34) 45%,rgba(43,33,24,.78) 100%)}
.zeya-hero__inner{display:grid;justify-items:center;gap:22px;color:var(--zeya-cream);
  max-width:1000px}
.zeya-hero__eyebrow{font-family:var(--zeya-sans);font-size:11px;font-weight:600;
  letter-spacing:.3em;text-transform:uppercase;color:var(--zeya-champagne-gold);margin:0;
  text-shadow:0 1px 3px rgba(43,33,24,.95),0 1px 18px rgba(43,33,24,.85)}
.zeya-hero__title{color:var(--zeya-ivory);text-shadow:0 2px 40px rgba(43,33,24,.45);
  font-size:clamp(46px,8vw,118px);line-height:.98;letter-spacing:-.025em}
.zeya-hero__title em{font-style:normal;color:inherit}
.zeya-hero__sub{max-width:60ch;font-size:clamp(15px,1.3vw,18px);line-height:1.7;
  color:rgba(248,243,232,.94);text-shadow:0 1px 14px rgba(43,33,24,.6)}
.zeya-hero__actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:8px}
.zeya-hero__crumbs{position:absolute;left:0;right:0;bottom:0;padding-block:16px;
  border-top:1px solid rgba(248,243,232,.18);background:rgba(43,33,24,.35);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.zeya-hero__crumbs .zeya-crumbs{justify-content:center;color:rgba(248,243,232,.8)}
.zeya-hero__crumbs .zeya-crumbs a:hover{color:var(--zeya-gold)}
.zeya-hero__crumbs .zeya-crumbs [aria-current]{color:var(--zeya-gold)}

/* -------------------------------------------------------------- marquee --- */
/* A full-bleed track of repeated runs; animations.css sets it moving. The
   overflow clip is what keeps the over-wide track from widening the page. */
.zeya-marquee{background:var(--zeya-black);color:var(--zeya-cream);overflow:hidden}
.zeya-marquee__track{display:flex;width:max-content;padding-block:20px}
.zeya-marquee__run{display:flex;flex:none;align-items:center;
  gap:clamp(30px,5vw,72px);padding-right:clamp(30px,5vw,72px);
  font-size:11px;letter-spacing:.24em;text-transform:uppercase;white-space:nowrap}
.zeya-marquee__run span{position:relative;padding-left:18px}
.zeya-marquee__run span::before{content:"";position:absolute;left:0;top:50%;width:6px;height:6px;
  margin-top:-3px;background:var(--zeya-gold);transform:rotate(45deg)}

/* ------------------------------------------------------- section heading --- */
.zeya-section-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);
  gap:clamp(24px,5vw,80px);align-items:start;padding-bottom:clamp(36px,4vw,64px)}
.zeya-section-heading>.zeya-eyebrow{padding-top:.9em}
.zeya-section-heading>div{display:grid;gap:22px;justify-items:start}
.zeya-section-heading p{max-width:52ch}
.zeya-section-heading__row{justify-self:stretch;width:100%;display:flex;flex-wrap:wrap;
  align-items:baseline;justify-content:space-between;gap:18px clamp(20px,3vw,48px)}
.zeya-section-heading__row .zeya-btn{flex:0 0 auto}

/* ---------------------------------------------------------- collections --- */
.zeya-collections{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,32px)}
.zeya-collection{display:grid;gap:18px;align-content:start}
.zeya-collection__image{position:relative;overflow:hidden;background:var(--zeya-black)}
.zeya-collection__image img{aspect-ratio:3/4;object-fit:cover;
  transition:transform .9s var(--zeya-ease)}
.zeya-collection:hover .zeya-collection__image img{transform:scale(1.06)}
.zeya-collection__veil{position:absolute;inset:0;
  background:linear-gradient(to top,rgba(43,33,24,.55),rgba(43,33,24,0) 55%)}
.zeya-collection__number{position:absolute;left:22px;bottom:18px;font-family:var(--zeya-serif);
  font-size:42px;line-height:1;color:var(--zeya-gold)}
.zeya-collection__title{display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  border-bottom:1px solid var(--zeya-cream-line);padding-bottom:14px}
.zeya-collection__arrow{color:var(--zeya-gold-ink);transition:transform .3s var(--zeya-ease)}
.zeya-collection:hover .zeya-collection__arrow{transform:translate(4px,-4px)}
.zeya-collection p{max-width:40ch}

/* ---------------------------------------------------------------- steps --- */
.zeya-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,48px)}
.zeya-step{display:grid;gap:14px;align-content:start;padding-top:26px;
  border-top:1px solid var(--zeya-cream-line)}
.zeya-section--chocolate .zeya-step{border-top-color:rgba(248,243,232,.22)}
.zeya-step__num{font-family:var(--zeya-serif);font-size:15px;letter-spacing:.2em;
  color:var(--zeya-gold-ink)}
.zeya-section--chocolate .zeya-step__num{color:var(--zeya-gold)}
.zeya-step p{max-width:38ch}

/* ---------------------------------------------------------------- split --- */
.zeya-split{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(28px,5vw,88px);
  align-items:center}
.zeya-split--reverse .zeya-split__media{order:2}
.zeya-split__media{position:relative;overflow:hidden;background:var(--zeya-black)}
.zeya-split__media img{aspect-ratio:4/5;object-fit:cover;transition:transform 1s var(--zeya-ease)}
.zeya-split__media:hover img{transform:scale(1.04)}
.zeya-split__copy{display:grid;gap:22px;justify-items:start;max-width:56ch}

/* --------------------------------------------------------- about story --- */
.zeya-hero--about{min-height:min(860px,88svh);place-items:end start;text-align:left}
.zeya-hero--about .zeya-hero__scrim{background:linear-gradient(90deg,rgba(23,20,17,.82) 0%,
  rgba(23,20,17,.48) 48%,rgba(23,20,17,.08) 78%),linear-gradient(0deg,rgba(23,20,17,.54),transparent 45%)}
.zeya-hero--about .zeya-hero__inner{justify-items:start;max-width:var(--zeya-max);padding-bottom:clamp(8px,3vw,44px)}
.zeya-hero--about .zeya-hero__title{max-width:8ch;font-size:clamp(66px,10vw,150px);line-height:.8}
.zeya-hero--about .zeya-hero__sub{width:min(100%,560px);margin-top:10px;padding-top:20px;
  border-top:1px solid rgba(248,243,232,.42);font-size:13px;letter-spacing:.14em;text-transform:uppercase}
.zeya-about-intro{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);align-items:start}
.zeya-about-intro .zeya-split__media{margin-top:clamp(40px,8vw,110px)}
.zeya-about-intro .zeya-split__copy{padding-top:clamp(10px,2vw,30px)}
.zeya-story-chapter{display:block;font-size:10px;font-weight:600;letter-spacing:.22em;
  text-transform:uppercase;color:var(--zeya-gold-ink)}
.zeya-section--chocolate .zeya-story-chapter,.zeya-section--black .zeya-story-chapter{color:var(--zeya-gold)}
.zeya-story-details{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
  gap:clamp(40px,8vw,120px);align-items:start}
.zeya-story-details>div{display:grid;gap:22px;max-width:52ch}
.zeya-story-details__list{display:grid;counter-reset:zeya-detail}
.zeya-story-details__list li{display:grid;grid-template-columns:42px 1fr;gap:18px;align-items:baseline;
  padding:18px 0;border-bottom:1px solid rgba(248,243,232,.22);font-family:var(--zeya-serif);
  font-size:clamp(25px,3vw,42px);line-height:1.15;counter-increment:zeya-detail}
.zeya-story-details__list li::before{content:"0" counter(zeya-detail);font:500 10px/1 var(--zeya-sans);
  letter-spacing:.16em;color:var(--zeya-gold)}
.zeya-story-details__list li:first-child{border-top:1px solid rgba(248,243,232,.22)}
.zeya-story-details__close{grid-column:2;max-width:52ch;color:rgba(248,243,232,.78)}
.zeya-story-copy{display:grid;gap:20px;justify-items:start}
.zeya-story-process{position:relative;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:center}
.zeya-story-process__media{overflow:hidden}
.zeya-story-process__media img{width:100%;aspect-ratio:4/5;object-fit:cover}
.zeya-story-process__label{position:sticky;top:calc(var(--zeya-nav-h-sm) + 36px);display:grid;gap:14px}
.zeya-story-copy__emphasis{padding-left:22px;border-left:2px solid var(--zeya-gold);
  color:var(--zeya-black);font-family:var(--zeya-serif);font-size:clamp(20px,2vw,28px);line-height:1.35}
.zeya-story-finale{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);
  align-items:center;gap:clamp(32px,6vw,96px);text-align:left;padding-block:clamp(24px,4vw,56px)}
.zeya-story-finale__statement{padding-right:clamp(24px,4vw,60px);border-right:1px solid rgba(201,165,88,.45)}
.zeya-story-finale h2{max-width:15ch;font-size:clamp(40px,4.4vw,68px);line-height:1.08;letter-spacing:-.025em;text-wrap:balance}
.zeya-story-finale h2 br{display:inline-block;width:.25em;content:""}
.zeya-story-finale__body{display:grid;gap:24px;justify-items:start}
.zeya-story-finale p{max-width:48ch;color:rgba(248,243,232,.8);font-size:clamp(16px,1.25vw,18px);line-height:1.8;margin:0}
.zeya-story-finale .zeya-btn{margin-top:8px;max-width:100%;white-space:normal;text-align:left}
@media(max-width:900px){
  .zeya-story-finale{grid-template-columns:1fr;gap:28px}
  .zeya-story-finale__statement{padding-right:0;padding-bottom:28px;border-right:0;border-bottom:1px solid rgba(201,165,88,.45)}
  .zeya-story-finale h2{max-width:22ch}
}

/* -------------------------------------------------------------- process --- */
.zeya-process{display:grid;gap:0;counter-reset:step}
.zeya-process__step{display:grid;grid-template-columns:minmax(0,150px) minmax(0,1fr);
  gap:clamp(20px,4vw,64px);padding-block:clamp(28px,3.5vw,52px);
  border-top:1px solid var(--zeya-cream-line);align-items:start}
.zeya-process__step:last-child{border-bottom:1px solid var(--zeya-cream-line)}
.zeya-process__num{font-family:var(--zeya-serif);font-size:clamp(40px,5vw,76px);line-height:1;
  color:var(--zeya-gold)}
.zeya-process__step>div{display:grid;gap:14px}
.zeya-process__step h2{font-size:clamp(26px,2.6vw,40px)}
.zeya-process__step p{max-width:58ch}

/* ---------------------------------------------------------------- legal --- */
.zeya-legal__intro{max-width:62ch;font-family:var(--zeya-serif);
  font-size:clamp(19px,1.9vw,26px);line-height:1.5;color:var(--zeya-black)}
.zeya-legal{display:grid;gap:0;margin-top:clamp(30px,4vw,56px)}
.zeya-legal__clause{display:grid;grid-template-columns:minmax(0,150px) minmax(0,1fr);
  gap:clamp(16px,3vw,48px);padding-block:clamp(26px,3.2vw,46px);
  border-top:1px solid var(--zeya-cream-line);align-items:start}
.zeya-legal__clause:last-child{border-bottom:1px solid var(--zeya-cream-line)}
.zeya-legal__num{font-family:var(--zeya-serif);font-size:clamp(34px,4vw,62px);line-height:1;
  color:var(--zeya-gold)}
.zeya-legal__clause>div{display:grid;gap:16px}
.zeya-legal__clause h2{font-size:clamp(23px,2.3vw,36px)}
.zeya-legal__points{display:grid;gap:12px;max-width:66ch}
.zeya-legal__points li{position:relative;padding-left:24px;line-height:1.75}
.zeya-legal__points li::before{content:"";position:absolute;left:0;top:.72em;
  width:6px;height:6px;background:var(--zeya-gold);transform:rotate(45deg)}

/* ------------------------------------------------------- catalog / cards --- */
.zeya-collection-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;
  align-items:center;gap:24px 48px;margin-bottom:36px;padding-bottom:28px;
  border-bottom:1px solid var(--zeya-cream-line)}
.zeya-collection-heading__copy{max-width:66ch}
.zeya-collection-heading h2{font-size:clamp(42px,5vw,66px);margin-bottom:14px}
.zeya-collection-heading p{max-width:60ch;color:var(--zeya-muted);line-height:1.7}
.zeya-collection-heading .zeya-btn{justify-self:end;white-space:nowrap}
@media(max-width:700px){
  .zeya-collection-heading{grid-template-columns:minmax(0,1fr);gap:22px;
    margin-bottom:24px;padding-bottom:24px}
  .zeya-collection-heading .zeya-btn{justify-self:start}
}
.zeya-catalog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,30px)}
.zeya-product{display:grid;gap:0;background:var(--zeya-cream-lift);
  border:1px solid var(--zeya-cream-line);transition:transform .5s var(--zeya-ease),
  box-shadow .5s var(--zeya-ease),border-color .5s var(--zeya-ease)}
.zeya-product:hover{transform:translateY(-6px);box-shadow:var(--zeya-shadow);
  border-color:var(--zeya-gold)}
.zeya-product__image{position:relative;overflow:hidden;background:var(--zeya-black)}
.zeya-product__image img{aspect-ratio:4/5;object-fit:cover;transition:transform .9s var(--zeya-ease)}
.zeya-page--curtains .zeya-product__image img,
.zeya-page--blinds .zeya-product__image img,
#curtains .zeya-product__image img,
#blinds .zeya-product__image img,
.zeya-catalog-grid--motorized .zeya-product__image img{aspect-ratio:3/2;object-position:center}
.zeya-product:hover .zeya-product__image img{transform:scale(1.07)}
.zeya-product__veil{position:absolute;inset:0;opacity:0;transition:opacity .5s var(--zeya-ease);
  background:linear-gradient(to top,rgba(43,33,24,.5),rgba(43,33,24,0) 60%)}
.zeya-product:hover .zeya-product__veil{opacity:1}
.zeya-product__copy{display:grid;gap:12px;padding:clamp(20px,2vw,30px)}
.zeya-product__copy p{font-size:15px;color:var(--zeya-muted);max-width:38ch}
.zeya-product__action{display:inline-flex;align-items:center;gap:10px;margin-top:4px;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--zeya-gold-ink)}
.zeya-product__action span{transition:transform .3s var(--zeya-ease)}
.zeya-product:hover .zeya-product__action span{transform:translateX(5px)}

.zeya-catalog-toolbar{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;
  gap:16px;padding-bottom:clamp(28px,3vw,48px)}
.zeya-catalog-toolbar span{font-size:11px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--zeya-muted)}
.zeya-section--chocolate .zeya-catalog-toolbar span{color:var(--zeya-gold-soft)}

.zeya-collection-nav{display:flex;flex-wrap:wrap;gap:12px;padding-block:clamp(28px,4vw,56px)}
.zeya-collection-nav a{display:inline-flex;align-items:center;gap:10px;padding:13px 24px;
  border:1px solid var(--zeya-cream-line);font-size:11px;letter-spacing:.18em;
  text-transform:uppercase;transition:background .3s,color .3s,border-color .3s}
.zeya-collection-nav a:hover{background:var(--zeya-chocolate);color:var(--zeya-cream);
  border-color:var(--zeya-chocolate)}

/* ---------------------------------------------------------- breadcrumbs --- */
.zeya-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:11px;
  letter-spacing:.16em;text-transform:uppercase}
.zeya-crumbs a{transition:color .25s}
.zeya-crumbs a:hover{color:var(--zeya-gold)}

/* Light panels carry their own colours, so dropping one into a dark band
   (a product grid inside .zeya-section--chocolate) cannot wash the text out. */
:is(.zeya-product,.zeya-formcard,.zeya-specs,.zeya-methods,.zeya-product-menu)
  :is(h1,h2,h3,h4){color:var(--zeya-black)}
:is(.zeya-product,.zeya-formcard) p{color:var(--zeya-muted)}
.zeya-section--chocolate .zeya-product__action,
.zeya-section--chocolate .zeya-specs dt,
.zeya-section--chocolate .zeya-field__label{color:var(--zeya-gold-ink)}

/* -------------------------------------------------------- product detail --- */
.zeya-product-detail{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(380px,.88fr);
  gap:clamp(36px,6vw,96px);align-items:start}
.zeya-product-detail__media{position:sticky;top:calc(var(--zeya-nav-h-sm) + 28px);overflow:hidden}
.zeya-product-detail__media img{aspect-ratio:3/2;object-fit:cover;object-position:center;
  background:var(--zeya-cream-lift)}
.zeya-product-detail__media figcaption{position:absolute;right:18px;bottom:18px;padding:10px 14px;
  background:rgba(38,26,25,.88);color:var(--zeya-cream);font-size:10px;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;backdrop-filter:blur(8px)}
.zeya-product-detail__media figcaption span{padding-inline:6px;color:var(--zeya-gold)}
.zeya-detail-copy{display:grid;gap:28px;justify-items:start}
.zeya-detail-copy__intro{display:grid;gap:18px}
.zeya-detail-copy__intro h2{font-size:clamp(38px,4.4vw,64px);line-height:.98;max-width:12ch}
.zeya-detail-lead{font-family:var(--zeya-serif);font-size:clamp(20px,2vw,27px);line-height:1.35;
  color:var(--zeya-chocolate)}
.zeya-detail-points{display:grid;width:100%;border-block:1px solid var(--zeya-cream-line)}
.zeya-detail-points li{position:relative;padding:13px 0 13px 24px;font-size:13px;font-weight:600;
  letter-spacing:.04em;color:var(--zeya-chocolate)}
.zeya-detail-points li+li{border-top:1px solid var(--zeya-cream-line)}
.zeya-detail-points li::before{content:"";position:absolute;left:2px;top:19px;width:7px;height:7px;
  background:var(--zeya-gold-ink);transform:rotate(45deg)}
.zeya-spec-block{display:grid;gap:14px;width:100%}
.zeya-spec-block h3{font-size:clamp(23px,2vw,30px)}
.zeya-specs{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;width:100%;
  background:var(--zeya-cream-line);border:1px solid var(--zeya-cream-line)}
.zeya-specs>div{display:grid;gap:6px;padding:18px 20px;background:var(--zeya-cream)}
.zeya-specs dt{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--zeya-gold-ink)}
.zeya-specs dd{font-size:15px;color:var(--zeya-black)}

/* ------------------------------------------------------ whatsapp enquiry --- */
/* A quiet outline button beside the primary CTA: brand palette for the
   frame and type, WhatsApp green only on the glyph, which carries the
   recognition. It fills green on hover. */
.zeya-btn--whatsapp{background:transparent;color:var(--zeya-espresso);
  border-color:var(--zeya-taupe)}
.zeya-btn--whatsapp svg{width:18px;height:18px;flex-shrink:0;color:#17803F;
  transition:color .3s var(--zeya-ease)}
.zeya-btn--whatsapp:hover{background:#17803F;color:#FFF;border-color:#17803F}
.zeya-btn--whatsapp:hover svg{color:#FFF}

/* The product enquiry panel: one framed block, so the two routes read as a
   pair instead of two unrelated buttons. Equal-width actions; when WhatsApp
   is not configured its button is display:none and the enquiry link takes
   the full row. */
.zeya-enquire{display:grid;gap:6px;width:100%;margin-top:6px;
  padding:24px clamp(20px,2.4vw,30px) 26px;
  background:var(--zeya-chocolate);border:1px solid var(--zeya-chocolate)}
.zeya-enquire__title{font:400 clamp(24px,2.1vw,30px)/1.15 var(--zeya-serif);
  color:var(--zeya-cream);letter-spacing:-.01em}
.zeya-enquire__note{font-size:13px;line-height:1.6;color:var(--zeya-gold-soft)}
.zeya-enquire__actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
  gap:12px;margin-top:14px}
.zeya-enquire__actions .zeya-btn{justify-content:center;min-height:52px;
  padding:14px 20px;font-size:11px;letter-spacing:.14em}
.zeya-enquire .zeya-btn--whatsapp{color:var(--zeya-cream);border-color:var(--zeya-gold-soft)}

/* WhatsApp's own green, deliberately outside the ZEYA palette: the bubble is
   a platform affordance, and people look for that colour. Icon only; the
   accessible name lives on the anchor's aria-label. It takes the consultation
   pill's corner, so only one float is ever shown. */
.zeya-wa-float{position:fixed;right:clamp(16px,3vw,32px);bottom:clamp(16px,3vw,32px);
  z-index:90;display:inline-flex;align-items:center;justify-content:center;
  width:58px;height:58px;border-radius:50%;
  background:#25D366;color:#FFF;
  box-shadow:0 14px 34px rgba(43,33,24,.28);
  transition:background .3s var(--zeya-ease),
  transform .3s var(--zeya-ease),box-shadow .3s var(--zeya-ease)}
.zeya-wa-float:hover{background:#1DA851;color:#FFF;
  transform:translateY(-2px);box-shadow:0 18px 40px rgba(43,33,24,.34)}
.zeya-wa-float__icon{width:30px;height:30px;flex-shrink:0}
.zeya-wa-float[hidden]{display:none}

@media (max-width:640px){
  .zeya-wa-float{width:54px;height:54px}
  .zeya-wa-float__icon{width:28px;height:28px}
}

/* The consultation pill holds the WhatsApp bubble's corner until a number is
   configured (main.js hides it then). It skips the contact page, where the
   form it points to is already on screen. */
.zeya-consult-float{position:fixed;right:clamp(16px,3vw,32px);bottom:clamp(16px,3vw,32px);
  z-index:90;display:inline-flex;align-items:center;gap:10px;min-height:52px;
  padding:0 22px 0 18px;border-radius:999px;
  background:var(--zeya-gold-ink);color:var(--zeya-ivory);
  font:500 11px/1 var(--zeya-sans);letter-spacing:.14em;text-transform:uppercase;
  box-shadow:0 14px 34px rgba(43,33,24,.28);
  transition:background .3s var(--zeya-ease),
  transform .3s var(--zeya-ease),box-shadow .3s var(--zeya-ease)}
.zeya-consult-float:hover{background:var(--zeya-espresso);color:var(--zeya-ivory);
  transform:translateY(-2px);box-shadow:0 18px 40px rgba(43,33,24,.34)}
.zeya-consult-float__icon{width:20px;height:20px;flex-shrink:0}
.zeya-consult-float[hidden],.zeya-page--contact .zeya-consult-float{display:none}

/* .zeya-btn sets display, which would otherwise override [hidden] and show
   WhatsApp buttons before a number exists. */
.zeya-btn[hidden]{display:none}

@media (max-width:640px){
  .zeya-consult-float{min-height:48px;padding:0 18px 0 15px;font-size:10px}
}

@media (prefers-reduced-motion:reduce){
  .zeya-wa-float,.zeya-consult-float{transition:none}
  .zeya-wa-float:hover,.zeya-consult-float:hover{transform:none}
}

/* -------------------------------------------------------------- contact --- */
.zeya-contact{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);
  gap:clamp(28px,4vw,64px);align-items:start}
.zeya-contact__aside{display:grid;gap:28px;align-content:start}
.zeya-contact__aside img{aspect-ratio:4/5;object-fit:cover}
.zeya-contact__info{display:grid;gap:18px}
.zeya-methods{display:grid;gap:1px;background:var(--zeya-cream-line);
  border:1px solid var(--zeya-cream-line)}
.zeya-method{display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  padding:16px 20px;background:var(--zeya-cream);transition:background .25s}
.zeya-method[href]:hover{background:var(--zeya-cream-lift)}
.zeya-method>span:first-child{font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--zeya-gold-ink)}
.zeya-method>span:last-child{font-size:15px;color:var(--zeya-black);text-align:right}
.zeya-method[aria-disabled="true"]{cursor:default}
.zeya-method[hidden],.zeya-methods[hidden]{display:none}

.zeya-formcard{display:grid;gap:16px;padding:clamp(24px,3vw,48px);
  background:var(--zeya-cream-lift);border:1px solid var(--zeya-cream-line)}
.zeya-form-intro{color:var(--zeya-muted)}

/* ----------------------------------------------------------------- form --- */
.zeya-form{display:grid;gap:18px;margin-top:8px}
.zeya-field{display:grid;gap:8px}
.zeya-field__label{font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--zeya-gold-ink)}
.zeya-input,.zeya-textarea{width:100%;padding:14px 16px;background:var(--zeya-cream);
  border:1px solid var(--zeya-cream-line);color:var(--zeya-black);font-size:15px;
  transition:border-color .25s,background .25s}
.zeya-input:focus,.zeya-textarea:focus{outline:none;border-color:var(--zeya-gold);
  background:var(--zeya-ivory)}
.zeya-textarea{min-height:150px;resize:vertical}
.zeya-field__error{font-size:12px;color:#8C2F1B;min-height:1em}
.zeya-form-status,.zeya-form__status{font-size:14px;padding:14px 16px;
  border:1px solid var(--zeya-cream-line);background:var(--zeya-cream)}
.zeya-form-status:empty,.zeya-form__status:empty{display:none}

/* ------------------------------------------------------------ footer CTA --- */
.zeya-footer-cta{position:relative;isolation:isolate;background:var(--zeya-black);
  color:var(--zeya-cream);padding-block:clamp(72px,9vw,140px);text-align:center;overflow:hidden}
.zeya-footer-cta__media{position:absolute;inset:0;z-index:-2}
.zeya-footer-cta__media img{width:100%;height:100%;object-fit:cover;object-position:center}
.zeya-footer-cta__scrim{position:absolute;inset:0;z-index:-1;
  background:linear-gradient(to bottom,rgba(43,33,24,.72) 0%,rgba(43,33,24,.5) 50%,rgba(43,33,24,.82) 100%)}
.zeya-footer-cta__inner{display:grid;justify-items:center;gap:22px}
.zeya-footer-cta .zeya-eyebrow{color:var(--zeya-gold)}
.zeya-footer-cta h2{color:var(--zeya-cream);font-size:clamp(34px,5vw,74px)}
.zeya-footer-cta p{max-width:52ch;color:rgba(248,243,232,.78)}

/* --------------------------------------------------------------- footer --- */
/* One light band in the ivory / champagne / gold palette: a closing
   invitation (the home page closes on a CTA of its own and hides it), four
   columns and a legal line. The contact rows and social icons ship without an
   href — main.js links them once real details are configured and CSS keeps the
   unlinked ones out of the layout, so nothing here points nowhere. */
.zeya-footer{background:linear-gradient(180deg,var(--zeya-ivory) 0%,var(--zeya-champagne) 100%);
  color:var(--zeya-muted);border-top:1px solid rgba(201,162,77,.35)}
.zeya-footer .zeya-eyebrow{color:var(--zeya-gold-ink)}

.zeya-footer__invitation{display:flex;flex-wrap:wrap;align-items:center;
  justify-content:space-between;gap:clamp(28px,4vw,64px);padding-block:clamp(46px,6vw,78px)}
.zeya-footer__invitation h2{margin-top:14px;font-size:clamp(40px,5vw,72px);line-height:1.02;
  color:var(--zeya-espresso)}
.zeya-footer__invitation h2 em{color:var(--zeya-gold)}
.zeya-footer__invitation-action{display:grid;gap:22px;justify-items:start;max-width:300px}
.zeya-footer__invitation-action p{font-size:14px}
.zeya-footer__invitation .zeya-btn{min-height:48px;font-size:10px;
  background:var(--zeya-espresso);border-color:var(--zeya-espresso);color:var(--zeya-ivory)}
.zeya-footer__invitation .zeya-btn:hover{background:var(--zeya-gold-ink);
  border-color:var(--zeya-gold-ink);color:var(--zeya-ivory)}
.zeya-page--home .zeya-footer__invitation{display:none}

.zeya-footer__grid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));
  gap:clamp(26px,3.5vw,56px);padding-block:clamp(40px,5vw,66px);
  border-top:1px solid rgba(201,162,77,.28)}
.zeya-footer__brand{display:grid;gap:14px;align-content:start}
.zeya-footer__brand .zeya-logo{height:clamp(64px,6.5vw,88px)}
.zeya-footer__brand .zeya-logo__img{opacity:1}
.zeya-footer__line{margin-top:4px;font-family:var(--zeya-serif);font-size:clamp(26px,2.3vw,32px);
  line-height:1.12;color:var(--zeya-espresso)}
.zeya-footer__line em{color:var(--zeya-gold-ink)}
.zeya-footer__note{max-width:36ch;font-size:13px;line-height:1.7}

/* Each column label sits over a hairline, so the four heads read as one row. */
.zeya-footer__col{display:grid;gap:2px;align-content:start}
.zeya-footer__col>.zeya-eyebrow{margin-bottom:12px;padding-bottom:12px;font-size:13px;
  border-bottom:1px solid rgba(201,162,77,.28)}
.zeya-footer__link{position:relative;display:inline-flex;align-items:center;width:fit-content;
  min-height:38px;font-size:13px;color:var(--zeya-espresso);transition:color .25s}
.zeya-footer__link::after{content:"";position:absolute;left:0;right:0;bottom:9px;height:1px;
  background:currentColor;transform:scaleX(0);transform-origin:right;
  transition:transform .35s var(--zeya-ease)}
.zeya-footer__link:hover{color:var(--zeya-gold-ink)}
.zeya-footer__link:hover::after{transform:scaleX(1);transform-origin:left}

.zeya-footer__location{margin:2px 0 8px;font-size:14px;color:var(--zeya-espresso)}
.zeya-footer__contact .zeya-method{display:grid;gap:3px;min-height:44px;margin:6px 0;
  padding:0;background:none;border:0}
/* Unlinked rows are hidden (the location line already names the studio);
   hours are plain text by nature, so they always show. */
.zeya-footer__contact .zeya-method:not([href]):not([data-zeya-contact="hours"]){display:none}
.zeya-footer__contact .zeya-method>span:first-child{font-size:10px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--zeya-muted)}
.zeya-footer__contact .zeya-method>span:last-child{position:relative;width:fit-content;
  font-size:14px;text-align:left;color:var(--zeya-espresso);transition:color .25s}
.zeya-footer__contact .zeya-method>span:last-child::after{content:"";position:absolute;
  left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleX(0);
  transform-origin:right;transition:transform .35s var(--zeya-ease)}
.zeya-footer__contact .zeya-method[href]:hover{background:none}
.zeya-footer__contact .zeya-method[href]:hover>span:last-child{color:var(--zeya-gold-ink)}
.zeya-footer__contact .zeya-method[href]:hover>span:last-child::after{transform:scaleX(1);
  transform-origin:left}
.zeya-footer__enquiry{display:inline-flex;align-items:center;gap:8px;margin-top:12px;
  min-height:40px;font-size:13px;color:var(--zeya-gold-ink);
  text-decoration:underline;text-underline-offset:6px}
.zeya-footer__enquiry:hover{color:var(--zeya-espresso)}

.zeya-social{display:flex;gap:10px;margin-top:8px}
.zeya-social__link{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;
  border:1px solid rgba(201,162,77,.5);color:var(--zeya-gold-ink);
  transition:background .25s,color .25s,border-color .25s,transform .25s var(--zeya-ease)}
.zeya-social__link svg{width:18px;height:18px}
.zeya-social__link:hover{transform:translateY(-2px);background:var(--zeya-gold-ink);
  border-color:var(--zeya-gold-ink);color:var(--zeya-ivory)}
.zeya-social__link:not([href]){display:none}

.zeya-footer__bar{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 24px;text-align:center;
  padding-block:20px;border-top:1px solid rgba(201,162,77,.28);font-size:11px;
  letter-spacing:.04em;color:var(--zeya-muted)}

/* Reference-inspired gold and ivory editorial layout. */
/* The call to action carries the shared 6px button radius and the same small
   uppercase label as the links beside it, so it reads as the one emphasised
   item in the bar rather than as a separate widget. */
.zeya-nav__cta{border-radius:6px;padding:12px 22px;min-height:42px;
  background:var(--zeya-gold-ink);color:var(--zeya-ivory);border-color:var(--zeya-gold-ink);
  font-size:12px;font-weight:600;letter-spacing:.12em;white-space:nowrap}
.zeya-nav__cta:is(:hover,:focus-visible){background:var(--zeya-espresso);
  color:var(--zeya-ivory);border-color:var(--zeya-espresso)}
.zeya-btn{border-radius:6px}
.zeya-btn--gold{background:var(--zeya-gold-ink);color:var(--zeya-ivory);
  border-color:var(--zeya-gold);font-size:11px;font-weight:600;letter-spacing:.12em}
.zeya-btn--gold:hover{background:var(--zeya-gold-ink);color:var(--zeya-ivory);border-color:var(--zeya-gold)}
.zeya-section--chocolate .zeya-product__action{color:var(--zeya-gold-ink)}
.zeya-signature-hero{min-height:100vh;min-height:100svh;text-align:left;
  padding:calc(var(--zeya-nav-h) + 32px) 0 28px;place-items:stretch;align-items:center}
.zeya-signature-hero .zeya-hero__inner{max-width:var(--zeya-max);justify-items:start;gap:18px}
.zeya-signature-hero .zeya-hero__scrim{background:linear-gradient(90deg,rgba(43,33,24,.78),rgba(43,33,24,.35) 45%,rgba(43,33,24,.04) 75%)}
.zeya-signature-hero .zeya-hero__media img,.zeya-signature-hero .zeya-hero__media video{object-position:center 58%}
.zeya-signature-hero .zeya-hero__eyebrow{color:var(--zeya-champagne-gold);font-size:12px;letter-spacing:.25em;text-shadow:none}
.zeya-signature-hero .zeya-hero__title{font-size:clamp(56px,5.8vw,88px);line-height:.94;
  max-width:none;letter-spacing:-.035em;font-weight:400}
.zeya-signature-hero .zeya-hero__title--steps{display:flex;align-items:baseline;gap:.18em;
  font-size:clamp(26px,6.5vw,78px);line-height:1.05;letter-spacing:-.025em;white-space:nowrap}
.zeya-hero__step{display:inline;margin:0}
.zeya-hero__step::before{display:none}
.zeya-hero__dot{color:inherit}
.zeya-signature-hero .zeya-hero__title--steps + .zeya-hero__sub{margin-top:0;padding-left:0;
  border-left:0;max-width:548px}
.zeya-signature-hero .zeya-hero__sub{font-size:18px;max-width:510px;text-align:left;line-height:1.5;color:var(--zeya-ivory)}
.zeya-signature-hero .zeya-hero__actions{justify-content:flex-start;gap:18px;margin-top:10px}
.zeya-signature-hero .zeya-btn{min-height:48px;padding:13px 25px}
.zeya-signature-hero .zeya-btn--outline{border-color:var(--zeya-gold);background:rgba(43,33,24,.22);font-size:11px}
.zeya-signature-hero .zeya-btn--outline:is(:hover,:focus-visible){background:var(--zeya-gold-ink);color:var(--zeya-ivory);border-color:var(--zeya-gold)}
.zeya-hero-promises{display:flex;flex-wrap:nowrap;column-gap:24px;row-gap:20px;margin-top:32px;max-width:none;width:100%}
.zeya-hero-promises__item{display:flex;align-items:center;gap:12px}
.zeya-hero-promises__icon{width:38px;height:38px;padding:9px;box-sizing:border-box;flex-shrink:0;border:1px solid var(--zeya-champagne-gold);border-radius:50%;color:var(--zeya-champagne-gold)}
.zeya-hero-promises__item span{font-size:15px;line-height:1.35;color:var(--zeya-ivory);white-space:nowrap}
.zeya-hero-promises small{display:block;font-size:12px;color:rgba(248,243,232,.65)}
.zeya-circle-arrow{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--zeya-champagne-gold);border-radius:50%;flex-shrink:0}
.zeya-scroll-cue{display:flex;align-items:center;gap:14px;min-height:44px;margin-top:16px;font-size:10px;letter-spacing:.18em;text-transform:uppercase}
.zeya-scroll-cue svg{transform:rotate(90deg)}
.zeya-hero-aside{position:absolute;right:8%;top:32%;font-size:11px;line-height:1.9;text-transform:uppercase;letter-spacing:.24em;color:var(--zeya-champagne-gold)}
.zeya-hero-aside span{display:block;width:90px;height:1px;background:currentColor;margin-top:18px}
.zeya-solutions{padding:34px 0 30px}
.zeya-signature-heading{display:flex;justify-content:space-between;align-items:center;gap:26px;margin-bottom:18px}
.zeya-signature-heading h2{font-size:clamp(34px,3.4vw,50px);letter-spacing:-.035em;line-height:1.1}
.zeya-signature-heading .zeya-eyebrow{font-size:10px;letter-spacing:.21em;margin-bottom:4px;color:var(--zeya-black)}
.zeya-signature-heading>p{font-size:12px;line-height:1.65;max-width:405px;margin-left:auto}
.zeya-text-link{display:inline-flex;align-items:center;gap:16px;min-height:44px;font-size:10px;letter-spacing:.15em;text-transform:uppercase;white-space:nowrap;color:var(--zeya-gold-ink)!important}
.zeya-text-link:hover{text-decoration:underline;text-underline-offset:7px}
.zeya-text-link svg{width:18px;height:18px}
.zeya-solution-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.zeya-solution{position:relative;overflow:hidden;display:block;isolation:isolate;color:var(--zeya-ivory)}
.zeya-solution>img{aspect-ratio:3/2;width:100%;height:auto;object-fit:cover;transition:transform .7s var(--zeya-ease)}
.zeya-solution::after{content:'';position:absolute;inset:35% 0 0;z-index:0;background:linear-gradient(transparent,rgba(43,33,24,.84))}
.zeya-solution:hover>img{transform:scale(1.035)}
.zeya-solution__caption{position:absolute;inset:auto 24px 21px;z-index:1;display:flex;justify-content:space-between;align-items:end;gap:8px}
.zeya-solution__caption h3{color:var(--zeya-ivory);font-size:clamp(26px,2.5vw,36px)}
.zeya-solution__caption p{color:var(--zeya-ivory);font-size:10px;letter-spacing:.18em;text-transform:uppercase;margin-top:3px}
.zeya-signature-collection{padding:26px 0 28px;background:radial-gradient(ellipse at 25% 0,var(--zeya-espresso),var(--zeya-espresso) 75%);color:var(--zeya-ivory)}
.zeya-signature-collection h2{color:var(--zeya-ivory)}
.zeya-collection-products{display:grid;gap:24px;margin-top:28px}
.zeya-collection-products h3{color:var(--zeya-ivory);margin-bottom:8px}
.zeya-collection-products p{line-height:2;color:var(--zeya-ivory)}
.zeya-collection-products a:hover{color:var(--zeya-champagne-gold);text-decoration:underline}
.zeya-signature-collection .zeya-eyebrow{color:var(--zeya-champagne-gold);margin-top:5px}
.zeya-signature-collection .zeya-text-link{color:var(--zeya-ivory)!important}
.zeya-mini-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:16px}
.zeya-swipe-hint{display:none}
.zeya-mini-product{display:block;min-width:0}
.zeya-mini-product img{aspect-ratio:1.08;object-fit:cover;transition:filter .3s}
.zeya-mini-product:hover img{filter:brightness(1.15)}
.zeya-mini-product h3{font:400 14px/1.5 var(--zeya-sans);color:var(--zeya-ivory);letter-spacing:0;margin-top:9px}
.zeya-mini-product p{font-size:11px;color:var(--zeya-champagne-gold);line-height:1.5}
.zeya-art{display:grid;grid-template-columns:minmax(0,54fr) minmax(0,46fr);overflow:clip;background:var(--zeya-cream);
  border-bottom:1px solid rgba(184,162,141,.45)}
.zeya-art__media{position:relative;min-height:380px;overflow:hidden}
.zeya-art__media>img{position:absolute;width:100%;height:100%;object-fit:cover}
.zeya-art__media>p{position:absolute;top:35%;left:10%;font:italic 39px/1.2 var(--zeya-serif);color:var(--zeya-champagne-gold);text-shadow:0 1px 15px var(--zeya-espresso)}
.zeya-art__media>p span{margin-left:24px}
.zeya-art__copy{min-width:0;padding:36px clamp(25px,4vw,65px);display:grid;gap:14px;align-content:center;justify-items:start}
.zeya-art__copy h2{font-size:clamp(42px,4.6vw,68px);line-height:1}
.zeya-art__copy>p:not(.zeya-eyebrow){font-size:14px;line-height:1.75;color:var(--zeya-black)}
.zeya-art__copy .zeya-eyebrow{color:var(--zeya-black);font-size:10px}
.zeya-art__copy .zeya-eyebrow span{display:inline-block;width:65px;height:1px;background:var(--zeya-taupe);vertical-align:middle;margin-left:12px}
.zeya-quality-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;width:100%;margin:13px 0}
.zeya-signature-feature{display:flex;align-items:center;gap:10px;font-size:11px;line-height:1.4}
.zeya-signature-feature svg{width:30px;height:30px;flex-shrink:0;color:var(--zeya-gold-ink)}
.zeya-signature-feature small{display:block;font-size:inherit}
.zeya-art__copy .zeya-btn{padding:12px 25px;font-size:10px;min-height:44px}
.zeya-art__actions{display:flex;flex-wrap:wrap;gap:12px}
.zeya-service-band{display:grid;grid-template-columns:54% 46%;min-height:230px;background:radial-gradient(ellipse at top,var(--zeya-espresso),var(--zeya-espresso));color:var(--zeya-ivory)}
.zeya-service-band__features{padding:45px 5vw;display:grid;grid-template-columns:repeat(4,1fr);align-content:center}
.zeya-service-band__features .zeya-signature-feature{display:grid;align-content:start;justify-items:center;text-align:center;padding:0 16px;border-right:1px solid var(--zeya-taupe);font-size:14px}
.zeya-service-band__features .zeya-signature-feature:last-child{border:0}
.zeya-service-band__features small{font-size:11px;margin-top:4px}
.zeya-service-band__features svg{color:var(--zeya-champagne-gold);width:34px;height:34px;margin-bottom:8px}
.zeya-service-band__image{position:relative;overflow:hidden;display:grid;place-items:center;isolation:isolate}
.zeya-service-band__image>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.5);z-index:-1}
.zeya-service-band__image>span{text-align:center;text-transform:uppercase;font:24px/1.2 var(--zeya-serif);letter-spacing:.12em}
.zeya-service-band__image strong{display:block;font:italic 64px/1 var(--zeya-serif);text-transform:none;letter-spacing:-.02em;color:var(--zeya-champagne-gold)}
.zeya-page--home .zeya-footer-cta{display:none}

/* Service summary: what a visit covers, from first sample to installation. */
.zeya-services{padding:clamp(52px,6vw,88px) 0;background:var(--zeya-cream);
  border-top:1px solid rgba(184,162,141,.45)}
.zeya-services__inner{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  gap:clamp(32px,5vw,80px);align-items:center}
.zeya-services__intro{display:grid;gap:16px;justify-items:start}
.zeya-services__intro .zeya-eyebrow{color:var(--zeya-black);font-size:10px;letter-spacing:.21em}
.zeya-services__intro h2{font-size:clamp(36px,3.6vw,54px);line-height:1.05;letter-spacing:-.03em}
.zeya-services__intro>p:not(.zeya-eyebrow){font-size:14px;line-height:1.75;color:var(--zeya-black);max-width:460px}
.zeya-services__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
.zeya-services__actions .zeya-btn{padding:12px 25px;font-size:10px;min-height:44px}
.zeya-services__list{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 28px}
.zeya-services__item{display:grid;gap:8px;align-content:start;padding-top:20px;
  border-top:1px solid var(--zeya-taupe)}
.zeya-services__item svg{width:30px;height:30px;color:var(--zeya-gold-ink);margin-bottom:4px}
.zeya-services__item h3{font-size:24px;line-height:1.1}
.zeya-services__item p{font-size:12.5px;line-height:1.6;color:var(--zeya-muted)}

/* Find your solution: pick a problem, see the combination we recommend.
   main.js adds .zeya-js and turns the list into tabs; without it the list
   stays hidden and every panel shows in a grid, each naming its problem. */
.zeya-needs{padding:clamp(64px,8vw,120px) 0;background:var(--zeya-white);
  border-top:1px solid rgba(184,162,141,.35)}
.zeya-needs__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;
  gap:18px 48px;margin-bottom:clamp(32px,4vw,56px)}
.zeya-needs__head .zeya-eyebrow{color:var(--zeya-black);font-size:10px;letter-spacing:.21em;margin-bottom:12px}
.zeya-needs__head h2{font-size:clamp(40px,4.4vw,64px);line-height:1;letter-spacing:-.03em}
.zeya-needs__head>p{max-width:380px;font-size:14px;line-height:1.75;color:var(--zeya-muted)}
.zeya-needs__tabs{display:none}
.zeya-needs__panels{display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr))}

/* The list of problems. */
.zeya-js .zeya-needs__body{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);
  gap:clamp(28px,4vw,64px);align-items:start}
.zeya-js .zeya-needs__tabs{position:relative;display:flex;flex-direction:column;
  border-top:1px solid rgba(184,162,141,.4)}
.zeya-js .zeya-needs__panels{display:block;position:sticky;top:calc(var(--zeya-nav-h) + 24px)}
.zeya-needs__tab{display:grid;grid-template-columns:24px 20px minmax(0,1fr) 16px;align-items:center;
  gap:14px;width:100%;min-height:44px;padding:15px 4px 15px 0;border:0;
  border-bottom:1px solid rgba(184,162,141,.4);background:none;font:inherit;text-align:left;
  color:var(--zeya-muted);cursor:pointer;transition:box-shadow .35s var(--zeya-ease)}
.zeya-needs__num{font:500 11px/1 var(--zeya-sans);letter-spacing:.1em;color:var(--zeya-taupe);
  transition:color .25s}
.zeya-needs__tab>svg:not(.zeya-needs__tab-arrow){width:20px;height:20px;color:var(--zeya-gold-ink)}
.zeya-needs__tab-name{display:block;font:400 clamp(21px,1.75vw,26px)/1.15 var(--zeya-serif);
  letter-spacing:-.01em;color:var(--zeya-muted);transition:color .25s}
.zeya-needs__tab-concern{display:block;max-height:0;overflow:hidden;opacity:0;font-size:12.5px;
  line-height:1.5;color:var(--zeya-muted);
  transition:max-height .4s var(--zeya-ease),opacity .3s,margin .3s}
.zeya-needs__tab-arrow{width:16px;height:16px;color:var(--zeya-gold-ink);opacity:0;
  transform:translateX(-6px);transition:opacity .3s,transform .35s var(--zeya-ease)}
.zeya-needs__tab:hover .zeya-needs__tab-name{color:var(--zeya-black)}
.zeya-needs__tab[aria-selected="true"]{box-shadow:inset 0 -1px 0 var(--zeya-gold)}
.zeya-needs__tab[aria-selected="true"] .zeya-needs__num{color:var(--zeya-gold-ink)}
.zeya-needs__tab[aria-selected="true"] .zeya-needs__tab-name{color:var(--zeya-black)}
.zeya-needs__tab[aria-selected="true"] .zeya-needs__tab-concern{max-height:3.2em;opacity:1;margin-top:5px}
.zeya-needs__tab[aria-selected="true"] .zeya-needs__tab-arrow{opacity:1;transform:none}
.zeya-needs__tab:focus-visible{outline:2px solid var(--zeya-gold-ink);outline-offset:-2px}

/* The recommendation: the photograph behind, the answer over its foot. */
.zeya-needs__panel{position:relative;isolation:isolate;overflow:hidden;display:grid;align-content:end;
  min-height:clamp(480px,42vw,600px);border-radius:14px;background:var(--zeya-charcoal);color:var(--zeya-ivory)}
.zeya-needs__panel[hidden]{display:none}
.zeya-needs__panel:focus-visible{outline:2px solid var(--zeya-gold-ink);outline-offset:4px}
.zeya-needs__media{position:absolute;inset:0;z-index:-2}
.zeya-needs__media img{display:block;width:100%;height:100%;object-fit:cover}
.zeya-needs__panel::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:
  linear-gradient(0deg,rgba(23,20,17,.94) 0%,rgba(23,20,17,.76) 36%,rgba(23,20,17,.12) 68%,rgba(23,20,17,.3) 100%)}
.zeya-needs__tag,.zeya-needs__flag{position:absolute;top:20px;display:inline-flex;align-items:center;gap:8px;
  padding:9px 14px;border-radius:999px;font:600 10px/1 var(--zeya-sans);letter-spacing:.16em;text-transform:uppercase}
.zeya-needs__tag{left:20px;background:rgba(23,20,17,.6);color:var(--zeya-ivory)}
.zeya-needs__tag svg{width:15px;height:15px;color:var(--zeya-champagne-gold)}
.zeya-js .zeya-needs__tag{display:none}
.zeya-needs__flag{right:20px;background:var(--zeya-champagne-gold);color:var(--zeya-black)}
.zeya-needs__flag svg{width:12px;height:12px}
.zeya-needs__content{display:grid;gap:12px;justify-items:start;max-width:620px;
  padding:clamp(24px,3.4vw,48px)}
.zeya-needs__concern{font:italic 400 clamp(19px,1.6vw,23px)/1.3 var(--zeya-serif);color:rgba(248,243,232,.78)}
.zeya-needs__content .zeya-eyebrow{margin-top:6px;color:var(--zeya-champagne-gold);font-size:10px;letter-spacing:.21em}
.zeya-needs__content h3{font-size:clamp(30px,2.9vw,44px);line-height:1.05;color:var(--zeya-ivory)}
.zeya-needs__benefits{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 22px}
.zeya-needs__benefits li{position:relative;padding-left:16px;font-size:13px;line-height:1.5;color:rgba(248,243,232,.88)}
.zeya-needs__benefits li::before{content:"";position:absolute;left:0;top:.45em;width:7px;height:7px;
  border:1px solid var(--zeya-champagne-gold);border-radius:50%}
.zeya-needs__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}
.zeya-needs__actions .zeya-btn{padding:12px 25px;font-size:10px;min-height:44px}
.zeya-needs__actions .zeya-btn--outline{color:var(--zeya-ivory);border-color:rgba(248,243,232,.6);background:rgba(23,20,17,.2)}

/* Switching problems: the photograph settles in, the answer rises. */
.zeya-needs__panel.is-entering .zeya-needs__media img{animation:zeya-needs-settle 1.1s var(--zeya-ease) both}
.zeya-needs__panel.is-entering .zeya-needs__content>*{animation:zeya-needs-rise .7s var(--zeya-ease) both}
.zeya-needs__panel.is-entering .zeya-needs__content>:nth-child(2){animation-delay:.05s}
.zeya-needs__panel.is-entering .zeya-needs__content>:nth-child(3){animation-delay:.1s}
.zeya-needs__panel.is-entering .zeya-needs__content>:nth-child(n+4){animation-delay:.15s}
@keyframes zeya-needs-settle{from{opacity:.35;transform:scale(1.06)}to{opacity:1;transform:none}}
@keyframes zeya-needs-rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .zeya-needs__panel.is-entering *{animation:none!important}
}

/* Below 901px the list becomes a row of chips above the panel. */
@media (max-width:900px){
  .zeya-js .zeya-needs__body{grid-template-columns:minmax(0,1fr)}
  .zeya-js .zeya-needs__panels{position:static}
  .zeya-js .zeya-needs__tabs{flex-direction:row;gap:8px;border-top:0;overflow-x:auto;
    margin-inline:calc(var(--zeya-gutter)*-1);padding:2px var(--zeya-gutter) 8px;
    scroll-padding-inline:var(--zeya-gutter);scrollbar-width:none}
  .zeya-js .zeya-needs__tabs::-webkit-scrollbar{display:none}
  .zeya-needs__tab{display:inline-flex;flex:none;width:auto;gap:8px;padding:10px 16px;
    border:1px solid rgba(184,162,141,.6);border-radius:999px;white-space:nowrap}
  .zeya-needs__tab>svg:not(.zeya-needs__tab-arrow){width:16px;height:16px}
  .zeya-needs__num,.zeya-needs__tab-concern,.zeya-needs__tab-arrow{display:none}
  .zeya-needs__tab-name{font:500 13px/1 var(--zeya-sans);letter-spacing:0;color:var(--zeya-black)}
  .zeya-needs__tab[aria-selected="true"]{box-shadow:none;background:var(--zeya-black);border-color:var(--zeya-black)}
  .zeya-needs__tab[aria-selected="true"] .zeya-needs__tab-name{color:var(--zeya-ivory)}
  .zeya-needs__tab[aria-selected="true"]>svg{color:var(--zeya-champagne-gold)}
  .zeya-needs__panel{min-height:520px}
}
@media (max-width:480px){
  .zeya-needs__content{padding:22px 20px 24px}
  .zeya-needs__actions .zeya-btn{flex:1 1 100%;justify-content:center}
}

/* Service areas: a dedicated film frame and a scannable community directory. */
.zeya-areas{overflow:hidden;padding:clamp(64px,8vw,116px) 0;background:var(--zeya-espresso);color:var(--zeya-ivory)}
.zeya-areas__top{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.45fr);gap:clamp(34px,6vw,92px);align-items:center}
.zeya-areas__copy{display:grid;justify-items:start;align-content:center}
.zeya-areas .zeya-eyebrow{display:flex;align-items:center;gap:12px;color:var(--zeya-champagne-gold)}
.zeya-areas .zeya-eyebrow::before{content:"";width:26px;height:1px;background:currentColor}
.zeya-areas h2{margin-top:20px;font-size:clamp(44px,5vw,72px);line-height:.9;letter-spacing:-.04em;color:var(--zeya-ivory)}
.zeya-areas__lead{max-width:430px;margin-top:26px;font-size:15px;line-height:1.75;color:rgba(248,243,232,.76)}
.zeya-areas__note{display:flex;align-items:center;gap:14px;margin-top:30px;padding-top:22px;border-top:1px solid rgba(248,243,232,.18)}
.zeya-areas__note strong{font:400 44px/.8 var(--zeya-serif);color:var(--zeya-champagne-gold)}
.zeya-areas__note span{font-size:10px;line-height:1.45;letter-spacing:.14em;text-transform:uppercase;color:rgba(248,243,232,.62)}
.zeya-areas__media{position:relative;isolation:isolate;overflow:hidden;aspect-ratio:16/9;border:1px solid rgba(208,160,153,.32);background:var(--zeya-black);box-shadow:0 30px 70px rgba(0,0,0,.24)}
.zeya-areas__media::after{content:"";position:absolute;z-index:0;inset:0;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(248,243,232,.08)}
.zeya-areas__video{display:block;width:100%;height:100%;object-fit:cover;object-position:center;border:0}
.zeya-areas__film-label{position:absolute;z-index:1;top:18px;left:18px;padding:8px 12px;border:1px solid rgba(248,243,232,.4);background:rgba(24,14,13,.58);backdrop-filter:blur(8px);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--zeya-ivory)}
.zeya-areas__toggle{position:absolute;z-index:2;right:18px;bottom:18px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid rgba(248,243,232,.55);border-radius:50%;background:rgba(24,14,13,.62);color:var(--zeya-ivory);cursor:pointer;transition:background-color .25s,border-color .25s}
.zeya-areas__toggle[hidden]{display:none}
.zeya-areas__toggle:hover{background:var(--zeya-black);border-color:var(--zeya-gold)}
.zeya-areas__toggle:focus-visible{outline:2px solid var(--zeya-champagne-gold);outline-offset:3px}
.zeya-areas__toggle svg{width:14px;height:14px;fill:currentColor}
.zeya-areas__toggle .zeya-motion__pause,.zeya-areas__toggle.is-playing .zeya-motion__play{display:none}
.zeya-areas__toggle.is-playing .zeya-motion__pause{display:block}
.zeya-areas__directory{display:flex;align-items:center;gap:18px;margin-top:clamp(42px,6vw,76px);font-size:10px;letter-spacing:.17em;text-transform:uppercase;color:var(--zeya-champagne-gold)}
.zeya-areas__directory span{height:1px;flex:1;background:rgba(248,243,232,.18)}
.zeya-areas__list{display:flex;flex-wrap:wrap;gap:9px;margin-top:22px}
.zeya-areas__chip{display:inline-flex;align-items:center;min-height:42px;padding:0 17px;
  border:1px solid rgba(248,243,232,.2);border-radius:999px;background:rgba(248,243,232,.035);
  font-size:13.5px;line-height:1.2;color:var(--zeya-ivory);
  transition:background-color .25s var(--zeya-ease),border-color .25s var(--zeya-ease),color .25s var(--zeya-ease),transform .25s var(--zeya-ease)}
.zeya-areas__chip:hover{background:var(--zeya-gold);border-color:var(--zeya-gold);color:var(--zeya-charcoal)}
.zeya-areas__chip:focus-visible{outline:2px solid var(--zeya-champagne-gold);outline-offset:3px}
@media (max-width:800px){
  .zeya-areas__top{grid-template-columns:1fr}
  .zeya-areas__copy{grid-template-columns:minmax(0,1fr) auto;column-gap:24px}
  .zeya-areas__copy .zeya-eyebrow,.zeya-areas__copy h2{grid-column:1/-1}
  .zeya-areas__lead{margin-top:22px}
  .zeya-areas__note{margin-top:22px;align-self:end}
}
@media (max-width:520px){
  .zeya-areas__copy{display:grid;grid-template-columns:1fr}
  .zeya-areas__copy>*{grid-column:1}
  .zeya-areas__media{width:calc(100% + 2 * var(--zeya-gutter));margin-left:calc(-1 * var(--zeya-gutter));border-inline:0}
  .zeya-areas__film-label{top:12px;left:12px}
  .zeya-areas__toggle{right:12px;bottom:12px}
  .zeya-areas__list{gap:8px}
  .zeya-areas__chip{min-height:40px;padding:0 14px;font-size:13px}
}

.zeya-service-band__title{grid-column:1/-1;justify-self:center;margin:0 0 30px;
  font:400 clamp(32px,2.8vw,42px)/1 var(--zeya-serif);letter-spacing:-.02em;color:var(--zeya-ivory)}


/* ------------------------------------------------------ motorised film --- */
/* The motorized page's full-bleed film behind the smart-home copy. main.js
   supplies the file; until then (and for reduced motion) the poster fills it.
   The scrim darkens the copy side only, so the footage stays legible right. */
.zeya-motion{position:relative;isolation:isolate;overflow:hidden;display:grid;
  min-height:100svh;background:var(--zeya-charcoal)}
.zeya-motion__media{position:absolute;inset:0;z-index:-2}
.zeya-motion__video{display:block;width:100%;height:100%;object-fit:cover;object-position:62% 50%}
.zeya-motion__scrim{position:absolute;inset:0;z-index:-1;pointer-events:none;background:
  linear-gradient(90deg,rgba(23,20,17,.94) 0%,rgba(23,20,17,.8) 34%,rgba(23,20,17,.3) 64%,rgba(23,20,17,.06) 100%),
  linear-gradient(0deg,rgba(23,20,17,.92) 0%,rgba(23,20,17,0) 36%),
  linear-gradient(180deg,rgba(23,20,17,.6) 0%,rgba(23,20,17,0) 24%)}
.zeya-motion__inner{display:grid;align-content:center;
  padding-block:calc(var(--zeya-nav-h) + clamp(40px,6vw,88px)) clamp(56px,7vw,104px)}
.zeya-motion__copy{display:grid;gap:26px;justify-items:start;align-content:center;max-width:620px}
/* The right padding keeps the label clear of the 44px video toggle on narrow phones. */
.zeya-motion__eyebrow{display:inline-flex;align-items:center;gap:14px;margin:0;padding-right:56px}
.zeya-motion__eyebrow::before{content:"";width:36px;height:1px;background:currentColor}
.zeya-motion h1{margin:0;font-size:clamp(44px,5.4vw,84px);line-height:.98;letter-spacing:-.025em}
.zeya-motion h1 em{color:var(--zeya-champagne-gold)}
.zeya-motion__lead{margin:0;max-width:50ch;font-size:clamp(16px,1.2vw,18px);line-height:1.7;
  color:rgba(248,243,232,.84)}
.zeya-motion__works{display:grid;gap:13px;width:min(100%,620px);margin-top:2px}
.zeya-motion__works>span{display:flex;align-items:center;gap:14px;
  font:600 10px/1 var(--zeya-sans);letter-spacing:.22em;text-transform:uppercase;
  color:rgba(248,243,232,.62)}
.zeya-motion__works>span::after{content:"";flex:1;height:1px;background:rgba(248,243,232,.18)}
.zeya-motion__works ul{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));
  margin:0;padding:0;list-style:none;border-block:1px solid rgba(248,243,232,.2);
  background:rgba(23,20,17,.18);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.zeya-motion__works li{display:flex;align-items:center;justify-content:center;min-width:0;height:58px;padding:0 12px;
  border-right:1px solid rgba(248,243,232,.16);
  font:600 9px/1.2 var(--zeya-sans);
  letter-spacing:.12em;text-align:center;text-transform:uppercase;color:rgba(248,243,232,.58)}
.zeya-motion__works li:last-child{border-right:0}
.zeya-motion__works img{display:block;width:auto;max-width:100%;height:auto;max-height:19px;
  object-fit:contain;filter:drop-shadow(0 1px 6px rgba(0,0,0,.18))}
.zeya-motion__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.zeya-motion__actions .zeya-btn--outline{color:var(--zeya-cream)}
.zeya-motion__toggle{position:absolute;z-index:1;top:calc(var(--zeya-nav-h) + 16px);right:var(--zeya-gutter);
  display:grid;place-items:center;width:44px;height:44px;padding:0;
  border:1px solid rgba(248,243,232,.4);border-radius:50%;background:rgba(23,20,17,.35);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--zeya-ivory);cursor:pointer;
  transition:background .3s var(--zeya-ease),border-color .3s var(--zeya-ease)}
.zeya-motion__toggle[hidden]{display:none}
.zeya-motion__toggle:hover{background:var(--zeya-black);border-color:var(--zeya-gold)}
.zeya-motion__toggle:focus-visible{outline:2px solid var(--zeya-gold);outline-offset:3px}
.zeya-motion__toggle svg{width:14px;height:14px;fill:currentColor}
.zeya-motion__pause,.zeya-motion__toggle.is-playing .zeya-motion__play{display:none}
.zeya-motion__toggle.is-playing .zeya-motion__pause{display:block}
@media (max-width:900px){
  /* Portrait crops a 16:9 frame to a narrow slice: centre it on the window and curtains. */
  .zeya-motion__video{object-position:50% 50%}
  .zeya-motion__scrim{background:linear-gradient(180deg,rgba(23,20,17,.72) 0%,
    rgba(23,20,17,.82) 50%,rgba(23,20,17,.95) 100%)}
}
@media (max-width:480px){
  .zeya-motion__actions .zeya-btn{flex:1 1 100%;justify-content:center}
}

/* ------------------------------------------- residential & commercial --- */
/* Two-up variant of the catalog grid, for the sector teaser on products.html. */
.zeya-catalog-grid--two{grid-template-columns:repeat(2,1fr)}
.zeya-catalog-grid--two .zeya-product__image img{aspect-ratio:3/2}

/* One card per space: photograph, a line on how we dress it, and the
   solutions that usually suit it. A light panel, so it reads the same inside
   the chocolate commercial band. */
.zeya-space{display:grid;grid-template-rows:auto 1fr;background:var(--zeya-cream-lift);
  border:1px solid var(--zeya-cream-line);color:var(--zeya-body)}
.zeya-space__image{overflow:hidden;background:var(--zeya-black)}
.zeya-space__image img{width:100%;aspect-ratio:4/3;object-fit:cover;
  transition:transform .9s var(--zeya-ease)}
.zeya-space:hover .zeya-space__image img{transform:scale(1.05)}
.zeya-space__copy{display:grid;align-content:start;gap:12px;padding:clamp(20px,2vw,28px)}
.zeya-space h3{color:var(--zeya-black)}
.zeya-space__copy p{margin:0;font-size:15px;color:var(--zeya-muted)}
.zeya-space__uses{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 0;padding:0;list-style:none}
.zeya-space__uses li{padding:5px 11px;border:1px solid var(--zeya-cream-line);border-radius:999px;
  font-size:11px;letter-spacing:.06em;line-height:1.5;color:var(--zeya-muted)}

/* The closing panel completes the grid's last row and carries the sector CTA. */
.zeya-sector__panel{display:grid;align-content:center;justify-items:start;gap:18px;
  padding:clamp(28px,3.4vw,52px);background:var(--zeya-chocolate);color:var(--zeya-cream)}
.zeya-section--chocolate .zeya-sector__panel{background:var(--zeya-black);
  border:1px solid rgba(201,162,77,.35)}
.zeya-sector__panel--wide{grid-column:span 2}
/* The jump links already sit in the page's rhythm; the first sector follows closely. */
.zeya-collection-nav+.zeya-sector{padding-top:clamp(16px,2vw,32px)}
.zeya-sector__panel .zeya-eyebrow{color:var(--zeya-gold)}
.zeya-sector__panel h3{color:var(--zeya-cream);font-size:clamp(28px,2.8vw,40px)}
.zeya-sector__panel p{margin:0;max-width:44ch;color:rgba(248,243,232,.82)}
.zeya-sector__solutions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;
  width:100%;margin:0;padding:0;list-style:none}
.zeya-sector__solutions a{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:12px 0;border-bottom:1px solid rgba(248,243,232,.18);font-size:14px;transition:color .25s}
.zeya-sector__solutions a:hover{color:var(--zeya-gold)}
.zeya-sector__solutions span{color:var(--zeya-gold);transition:transform .3s var(--zeya-ease)}
.zeya-sector__solutions a:hover span{transform:translateX(4px)}
@media (max-width:900px){
  .zeya-sector__panel--wide{grid-column:auto}
  .zeya-sector__solutions{grid-template-columns:1fr}
}

/* Google reviews: the home page band and the review button. The band holds
   only the invitation; it is hidden until a review link is configured. */
.zeya-reviews{padding:clamp(56px,7vw,104px) 0;background:var(--zeya-cream);text-align:center;
  border-top:1px solid rgba(184,162,141,.35)}
.zeya-reviews[hidden]{display:none}
.zeya-reviews__inner{display:grid;justify-items:center;gap:18px;max-width:720px}
.zeya-reviews .zeya-eyebrow{color:var(--zeya-black);font-size:10px;letter-spacing:.21em}
.zeya-reviews__stars{display:flex;gap:6px;color:var(--zeya-gold-ink)}
.zeya-reviews__stars svg{width:22px;height:22px}
.zeya-reviews h2{font-size:clamp(36px,3.6vw,54px);line-height:1.05;letter-spacing:-.03em}
.zeya-reviews__inner>p:not(.zeya-eyebrow){font-size:15px;line-height:1.75;color:var(--zeya-muted);max-width:560px}
.zeya-reviews__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;
  margin-top:clamp(28px,3vw,44px)}
/* The review cards. The marquee fades out at both edges; the drift itself
   lives in animations.css with the other motion. */
.zeya-reviews__marquee{margin-top:clamp(36px,4vw,56px);overflow:hidden;outline-offset:-4px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.zeya-reviews__track{display:flex;width:max-content;padding-block:6px 14px}
.zeya-reviews__run{display:flex;flex:none;gap:20px;padding-right:20px}
.zeya-review-card{display:flex;flex-direction:column;gap:18px;width:340px;margin:0;padding:28px;
  text-align:left;background:var(--zeya-white);border:1px solid rgba(184,162,141,.4);border-radius:6px;
  box-shadow:0 14px 34px rgba(43,33,24,.06)}
.zeya-review-card__top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.zeya-review-card__stars{display:flex;gap:3px;color:var(--zeya-gold)}
.zeya-review-card__stars svg{width:16px;height:16px}
.zeya-review-card__tag{font-size:9px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--zeya-muted);padding:4px 8px;border:1px solid rgba(184,162,141,.55);border-radius:4px}
.zeya-review-card blockquote{margin:0;flex:1}
.zeya-review-card blockquote p{font-size:14px;line-height:1.7;color:var(--zeya-body)}
.zeya-review-card figcaption{display:grid;gap:2px;padding-top:16px;border-top:1px solid rgba(184,162,141,.35)}
.zeya-review-card figcaption strong{font:500 20px/1.2 var(--zeya-serif);color:var(--zeya-black)}
.zeya-review-card figcaption span{font-size:12px;color:var(--zeya-muted)}
@media (max-width:700px){
  .zeya-review-card{width:280px;padding:22px}
  .zeya-reviews__run{gap:14px;padding-right:14px}
}
.zeya-btn--review svg{width:16px;height:16px}

/* FAQ: a quiet editorial introduction beside native, keyboard-accessible details. */
.zeya-faq-layout{display:grid;grid-template-columns:minmax(240px,.72fr) minmax(0,1.4fr);
  gap:clamp(48px,8vw,128px);align-items:start}
.zeya-faq-intro{position:sticky;top:calc(var(--zeya-nav-h) + 36px);display:grid;gap:18px}
.zeya-faq-intro h2{font-size:clamp(38px,4vw,58px);line-height:1.02;letter-spacing:-.03em}
.zeya-faq-intro>p:not(.zeya-eyebrow){max-width:40ch;color:var(--zeya-muted)}
.zeya-faq-intro .zeya-btn{justify-self:start;margin-top:8px}
.zeya-faq-list{border-top:1px solid var(--zeya-cream-line)}
.zeya-faq-item{border-bottom:1px solid var(--zeya-cream-line)}
.zeya-faq-item summary{display:grid;grid-template-columns:34px 1fr 24px;gap:18px;align-items:center;
  min-height:86px;padding:20px 0;list-style:none;cursor:pointer;color:var(--zeya-black)}
.zeya-faq-item summary::-webkit-details-marker{display:none}
.zeya-faq-item summary>span{font:600 10px/1 var(--zeya-sans);letter-spacing:.14em;color:var(--zeya-gold-ink)}
.zeya-faq-item h3{font-size:clamp(21px,2vw,28px);line-height:1.18;transition:color .25s}
.zeya-faq-item summary:hover h3,.zeya-faq-item[open] h3{color:var(--zeya-gold-ink)}
.zeya-faq-item summary:focus-visible{outline:2px solid var(--zeya-gold-ink);outline-offset:6px}
.zeya-faq-item summary i{position:relative;width:18px;height:18px}
.zeya-faq-item summary i::before,.zeya-faq-item summary i::after{content:"";position:absolute;top:8px;left:2px;
  width:14px;height:1px;background:currentColor;transition:transform .25s var(--zeya-ease)}
.zeya-faq-item summary i::after{transform:rotate(90deg)}
.zeya-faq-item[open] summary i::after{transform:rotate(0)}
.zeya-faq-answer{padding:0 42px 26px 52px}
.zeya-faq-answer p{max-width:68ch;margin:0;color:var(--zeya-muted);line-height:1.75}
@media (max-width:800px){
  .zeya-faq-layout{grid-template-columns:1fr;gap:42px}
  .zeya-faq-intro{position:static}
}
@media (max-width:520px){
  .zeya-faq-item summary{grid-template-columns:26px 1fr 20px;gap:10px;min-height:76px}
  .zeya-faq-answer{padding:0 30px 24px 36px}
}
