html{overflow-x:hidden}
/* Fix swiper overflow */
.swiper{overflow:hidden !important; max-width:100% !important}
.swiper-wrapper{max-width:100%;}
.wrap-wide{overflow:hidden}
.mapsec{overflow:hidden}
/* ============================================================
   DHULEVA GROUP — Design System
   Colors: White #FFFFFF | Light Grey #FCFCFC | Grey #9F9F9E
           Dhuleva Yellow #CFAD66 | Dark Grey #4A4C4A | Midnight Black #252525
   Fonts: Lexend Peta (headings) | DM Sans (body) | Black Mango (accent display)
   ============================================================ */

:root{
  /* ── APPROVED BRAND COLOURS (6 only) ── */
  --white:    #FFFFFF;
  --lt-grey:  #FCFCFC;
  --grey:     #9F9F9E;
  --gold:     #CFAD66;
  --dk-grey:  #4A4C4A;
  --black:    #252525;

  /* ── semantic aliases (use these in components) ── */
  --paper:    var(--white);
  --ivory:    var(--lt-grey);
  --cream:    #F2F0ED;          /* off-white section bg */
  --sand:     #E8E6E3;          /* slightly darker cream */
  --ink:      var(--black);
  --ink-soft: var(--dk-grey);
  --body:     var(--dk-grey);
  --muted:    var(--grey);
  --faint:    #C0BFBE;

  /* gold shades derived from brand yellow */
  --gold-deep:  #B89A4A;
  --gold-soft:  #E0CC99;
  --champagne:  #EDE0BB;

  /* dark section backgrounds */
  --char:   var(--black);
  --char2:  #2D2D2D;
  --char3:  #363636;

  /* hairlines */
  --hairline:      rgba(37,37,37,.12);
  --hairline-soft: rgba(37,37,37,.07);
  --hairline-gold: rgba(207,173,102,.30);

  /* ── FONTS ── */
  --serif: 'Lexend Peta', system-ui, sans-serif;  /* headings */
  --sans:  'DM Sans', system-ui, sans-serif;       /* body / UI */
  --display: 'Black Mango', 'Lexend Peta', system-ui, sans-serif; /* hero display */
  --mono:  'JetBrains Mono', ui-monospace, monospace; /* data / tags */

  /* ── LAYOUT ── */
  --nav-h: 86px;
  --maxw:  1320px;

  /* ── EASING ── */
  --ease:    cubic-bezier(.22,.61,.36,1);
  --ease-io: cubic-bezier(.65,.05,.36,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
html{ -webkit-text-size-adjust:100%; }
body{
  margin:0; background:var(--ivory); color:var(--body);
  font-family:var(--sans); font-weight:400; line-height:1.7;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden; max-width:100vw;
}
body.page-loading{overflow:hidden}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
::selection{background:rgba(207,173,102,.22); color:var(--ink)}

::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:var(--cream)}
::-webkit-scrollbar-thumb{background:#BFBFBE; border-radius:8px}
::-webkit-scrollbar-thumb:hover{background:var(--gold)}

.page-loader{
  position:fixed;
  inset:0;
  z-index:9999;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(242,240,237,.94);
  opacity:1;
  visibility:visible;
  transition:opacity .28s ease, visibility .28s ease;
}
.page-loader.is-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.page-loader__content{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
  color:var(--gold-deep);
  font-family:var(--sans);
  font-size:.74rem;
  font-weight:700;
  letter-spacing:.28em;
  text-transform:uppercase;
}
.page-loader__spinner{
  width:52px;
  height:52px;
  border-radius:50%;
  border:2px solid rgba(207,173,102,.22);
  border-top-color:var(--gold);
  animation:dhulevaLoaderSpin .85s linear infinite;
}
@keyframes dhulevaLoaderSpin{
  to{transform:rotate(360deg)}
}
.grecaptcha-badge{
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}

/* ---------- Layout ---------- */
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 44px}
.wrap-wide{max-width:1560px; margin:0 auto; padding:0 44px}
.section{padding:112px 0; position:relative; overflow:hidden}
.section-sm{padding:72px 0}
@media(max-width:768px){ .wrap,.wrap-wide{padding:0 22px} .section{padding:92px 0} }

/* ---------- Type ---------- */
h1,h2,h3,h4{font-family:var(--serif); font-weight:600; color:var(--ink); line-height:1.1; margin:0; letter-spacing:-0.025em}
.serif{font-family:var(--serif)}
.h-hero{font-family:var(--sans); font-size:clamp(2.2rem,4vw,4.2rem); line-height:1.04; font-weight:400; letter-spacing:-0.03em}
.h-xl{font-size:clamp(2.6rem,5.6vw,5rem); font-weight:700; letter-spacing:-0.025em}
.h-lg{font-size:clamp(2.1rem,4.2vw,3.6rem); font-weight:600; letter-spacing:-0.02em}
.h-md{font-size:clamp(1.7rem,2.8vw,2.5rem); font-weight:600; letter-spacing:-0.015em}
.lede{font-family:var(--sans); font-size:clamp(1rem,1.3vw,1.18rem); line-height:1.72; color:var(--body); font-weight:400}
p{margin:0 0 1.1em}
.gold{color:var(--gold)}
.italic{font-style:italic}
.muted{color:var(--muted)}

.eyebrow{display:inline-flex; align-items:center; gap:14px; font-family:var(--sans); font-size:.74rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--gold-deep)}
.eyebrow::before{content:""; width:28px; height:1px; background:var(--gold)}
.kicker{display:inline-flex; align-items:center; gap:14px; font-family:var(--sans); font-size:.74rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--gold-deep); margin-bottom:26px}
.kicker::before{content:""; width:34px; height:1px; background:var(--gold); opacity:.85}
.kicker.center{justify-content:center}
.kicker.center::after{content:""; width:34px; height:1px; background:var(--gold); opacity:.85}

/* ---------- Section header (shared: centered kicker + heading + subtext) ----------
   Used by about.html + project-detail.html. Kept distinct from .kicker above —
   tighter letter-spacing / different sizing, own visual spec. */
.sec-head{text-align:center; max-width:700px; margin:0 auto 0}
.sec-kicker{
  font-family:var(--sans); font-weight:700; font-size:.7rem; letter-spacing:.32em;
  text-transform:uppercase; color:var(--gold-deep); margin-bottom:18px;
  display:flex; align-items:center; justify-content:center; gap:14px;
}
.sec-kicker::before,.sec-kicker::after{content:''; width:28px; height:1px; background:var(--gold); opacity:.7}
.sec-h{
  font-family:var(--serif); font-weight:400; color:var(--ink);
  font-size:clamp(2rem,3.8vw,3.4rem); letter-spacing:-0.02em;
  line-height:1.1; margin-bottom:18px;
}
.sec-h em{color:var(--gold); font-style:normal}
.sec-sub{
  color:var(--body); font-size:clamp(.88rem,1.1vw,1rem);
  line-height:1.8; max-width:560px; margin:0 auto;
}

/* ---------- Buttons ---------- */
.btn{ display:inline-flex; align-items:center; gap:12px; cursor:pointer;
  font-family:var(--sans); font-size:.82rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  border:1px solid transparent; padding:17px 32px; border-radius:2px; transition:all .35s var(--ease); position:relative; }
.btn .arr{transition:transform .35s var(--ease)}
.btn:hover .arr{transform:translateX(5px)}
.btn-gold{background:transparent; color:var(--gold-deep); border-color:var(--gold)}
.btn-gold:hover{background:var(--gold); color:#fff}
.btn-ink{background:var(--ink); color:var(--ivory)}
.btn-ink:hover{background:#000}
.btn-ghost{border-color:var(--hairline-gold); color:var(--gold-deep)}
.btn-ghost:hover{border-color:var(--gold); background:rgba(207,173,102,.06)}
.btn-line{padding:0 0 6px; border-radius:0; border-bottom:1px solid var(--hairline-gold); color:var(--gold-deep); letter-spacing:.14em}
.btn-line:hover{border-color:var(--gold)}
.on-dark .btn-line,.btn-line.on-dark{color:var(--champagne); border-color:rgba(237,224,187,.35)}

/* ---------- Navigation ---------- */
body[data-nav="dark"]{ background:var(--char); }
body[data-nav="light"]{ background:var(--white); padding-top:var(--nav-h); }
.nav{ position:fixed; top:0; left:0; right:0; height:var(--nav-h); z-index:1000;
  display:flex; align-items:center; transition:background .45s var(--ease), height .45s var(--ease), border-color .45s, box-shadow .45s; border-bottom:1px solid transparent; }
.nav.scrolled{height:70px; background:rgba(250,247,240,.82); backdrop-filter:blur(14px); border-bottom:1px solid var(--hairline-soft); box-shadow:0 6px 30px rgba(37,37,37,.04)}
.nav .wrap-wide{display:flex; align-items:center; justify-content:space-between; width:100%}
.nav-logo img{height:26px; width:auto; transition:height .45s var(--ease), filter .45s}
.nav.scrolled .nav-logo img{height:26px}
/* hero is dark → start with white logo; swap to gold when scrolled */
.nav-logo .l-gold{display:none}
.nav.scrolled .nav-logo .l-white{display:none}
.nav.scrolled .nav-logo .l-gold{display:block}
.nav-right{display:flex; align-items:center; gap:20px}
.nav-cta{ font-family:var(--sans); font-size:.76rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  color:var(--ivory); border:1px solid rgba(255,255,255,.4); padding:12px 22px; border-radius:2px; transition:all .35s var(--ease); }
.nav.scrolled .nav-cta{color:var(--ink); border-color:var(--hairline)}
.nav-cta:hover{background:var(--gold); border-color:var(--gold); color:#fff}
.menu-btn{ display:flex; align-items:center; gap:8px; cursor:pointer; background:transparent; backdrop-filter:none;
  border:1px solid rgba(255,255,255,.35); border-radius:6px; padding:9px 12px; transition:all .35s var(--ease); }
.nav.scrolled .menu-btn{background:transparent; border-color:var(--hairline)}
.menu-btn .mlabel{font-family:var(--sans); font-weight:700; font-size:.7rem; letter-spacing:.05em; text-transform:uppercase; color:var(--ivory)}
.nav.scrolled .menu-btn .mlabel{color:var(--ink)}
.menu-btn .bars{display:flex; flex-direction:column; gap:5px}
.menu-btn .bars span{width:22px; height:1.5px; background:var(--ivory); transition:.35s var(--ease)}
.nav.scrolled .menu-btn .bars span{background:var(--gold)}
.menu-btn:hover .bars span{background:var(--gold)}
.menu-btn:hover .bars span:nth-child(1){transform:translateX(2px)}
@media(max-width:560px){ .nav-cta{display:none} }

/* ---------- Right-side drawer menu ---------- */

/* Backdrop */
.cmenu-backdrop{
  position:fixed; inset:0; z-index:1099;
  background:transparent;
  opacity:0; pointer-events:none;
  transition:opacity .45s var(--ease);
}
.cmenu-backdrop.open{opacity:1; pointer-events:auto}

/* Drawer panel */
.cmenu{
  position:fixed; top:0; right:0; bottom:0; z-index:1100;
  width:min(360px,90vw); background:#ffffffd4;
  display:flex; flex-direction:column;
  transform:translateX(100%);
  transition:transform .55s cubic-bezier(.76,0,.24,1);
  pointer-events:none;
  overflow:hidden;
}
.cmenu.open{transform:translateX(0); pointer-events:auto}

/* Gold top border line that fills on open */
.mr-topline{position:absolute; top:0; left:0; right:0; height:2px; background:rgba(207,173,102,.15); z-index:6}
.mr-topline-fill{width:0; height:100%; background:var(--gold); transition:width .7s .2s var(--ease)}
.cmenu.open .mr-topline-fill{width:100%}

/* Close button — absolute top-right, no header wrapper */
.cmenu-close{
  position:absolute; top:clamp(14px,1.8vw,22px); right:clamp(14px,1.8vw,22px); z-index:10;
  width:40px; height:40px; border-radius:50%;
  border:1px solid rgba(207,173,102,.3); background:transparent;
  color:var(--ink); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:all .3s var(--ease);
}
.cmenu-close:hover{background:var(--gold); border-color:var(--gold); color:var(--char); transform:rotate(90deg)}
.cmenu-close svg{width:15px;height:15px;stroke:currentColor;stroke-width:1.8;fill:none}

/* Divider */
.cmenu-divider{
  height:1px; background:rgba(207,173,102,.12);
  margin:clamp(20px,3vw,32px) clamp(32px,5vw,56px) 0;
  transform:scaleX(0); transform-origin:left;
  transition:transform .5s .3s var(--ease);
}
.cmenu.open .cmenu-divider{transform:scaleX(1)}

/* Nav list */
.cmenu-left{
  flex:1; padding:clamp(40px,5vw,60px) clamp(32px,5vw,56px) clamp(24px,3vw,36px);
  display:flex; flex-direction:column; justify-content:center;
  position:relative; z-index:4; overflow-y:auto; overflow-x:hidden;
}
.cmenu-nav{display:flex; flex-direction:column; gap:0}

.cmenu-link{
  display:flex; align-items:center; justify-content:space-between;
  padding:clamp(10px,1.6vw,16px) 0;
  border-bottom:1px solid rgba(0,0,0,.08);
  font-family:var(--serif); font-weight:400;
  font-size:clamp(.85rem,1.6vw,1.15rem); letter-spacing:-.01em;
  color:rgba(0,0,0,.55); line-height:1.2;
  text-decoration:none; position:relative; overflow:hidden;
  transform:translateX(32px); opacity:0;
  transition:color .4s var(--ease), padding-left .4s var(--ease),
    transform .55s var(--ease), opacity .55s var(--ease);
}
.cmenu-link:first-child{border-top:none}
/* stagger delays */
.cmenu-link:nth-child(1){transition-delay:.1s}
.cmenu-link:nth-child(2){transition-delay:.16s}
.cmenu-link:nth-child(3){transition-delay:.22s}
.cmenu-link:nth-child(4){transition-delay:.28s}
.cmenu-link:nth-child(5){transition-delay:.34s}
.cmenu-link:nth-child(6){transition-delay:.4s}
.cmenu-link:nth-child(7){transition-delay:.46s}
.cmenu-link:nth-child(8){transition-delay:.52s}
.cmenu-link:nth-child(9){transition-delay:.58s}
.cmenu.open .cmenu-link{transform:translateX(0); opacity:1}
.cmenu-link:hover{color:#000; padding-left:18px}

/* Number */
.cmenu-link .mi{
  font-family:var(--sans); font-size:.68rem; font-weight:700; letter-spacing:.05em;
  color:var(--gold-deep); flex-shrink:0; align-self:flex-start; margin-top:6px;
  transition:color .3s var(--ease);
  position:relative; z-index:2;
}
.cmenu-link:hover .mi{color:var(--gold)}

/* Arrow on hover */
.cmenu-lname{flex:1; padding:0 12px}
.cmenu-link .marr{
  font-family:var(--sans); font-weight:700; font-size:.9rem; color:rgba(207,173,102,0);
  flex-shrink:0; transition:color .3s var(--ease), transform .3s var(--ease);
  transform:translateX(-10px);
}
.cmenu-link:hover .marr{color:var(--gold); transform:translateX(0)}

/* Gold left accent bar — outside content area */
.cmenu-link::before{
  content:''; position:absolute; left:-2px; top:20%; bottom:20%;
  width:2px; background:var(--gold); border-radius:2px;
  transform:scaleY(0); transition:transform .35s var(--ease);
  z-index:1;
}
.cmenu-link:hover::before{transform:scaleY(1)}

/* Footer */
.cmenu-foot{
  padding:clamp(18px,2.5vw,28px) clamp(28px,4vw,48px) clamp(22px,3vw,36px);
  border-top:1px solid rgba(207,173,102,.1); position:relative; z-index:4; flex-shrink:0;
  display:flex; flex-direction:column; gap:10px;
  transform:translateY(16px); opacity:0;
  transition:transform .5s .5s var(--ease), opacity .5s .5s var(--ease);
}
.cmenu.open .cmenu-foot{transform:translateY(0); opacity:1}
.cmenu-foot-links{display:flex; gap:clamp(14px,2.5vw,24px); flex-wrap:wrap; align-items:center}
.cmenu-foot a{
  font-family:var(--sans); font-weight:700; font-size:.56rem; letter-spacing:.03em; text-transform:uppercase;
  color:rgba(0,0,0,.55); transition:color .25s; text-decoration:none;
  display:flex; align-items:center; gap:5px;
}
.cmenu-foot a:hover{color:var(--gold)}
.cmenu-foot-addr{
  font-family:var(--sans); font-weight:700; font-size:.52rem; letter-spacing:.1em;
  color:rgba(0,0,0,.4); line-height:1.7;
}

/* Responsive — full width on small screens */
@media(max-width:480px){
  .cmenu{width:100vw}
}


/* ---------- Hero ---------- */
.hero{position:relative; min-height:100vh; display:flex; align-items:flex-end; overflow:hidden; background:var(--char)}
.hero-bg{position:absolute; inset:0; z-index:0; overflow:hidden}
.hero-bg img{width:100%; height:118%; object-fit:cover; will-change:transform}
.hero-vid{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; display:block; pointer-events:none}
.hero-bg .tint{position:absolute; inset:0; background:
  radial-gradient(ellipse at center, rgba(37,37,37,0) 30%, rgba(37,37,37,.5) 100%),
  linear-gradient(to bottom, rgba(37,37,37,.35) 0%, rgba(37,37,37,.05) 40%, rgba(37,37,37,.6) 100%)}
.hero-inner{position:relative; z-index:3; width:100%; padding:180px 0 120px; display:flex; align-items:center}
.hero h1{color:#fff; text-align:center}
.hero .lede{color:rgba(255,255,255,.82); text-align:center}
.hero-cta{display:flex; gap:16px; margin-top:42px; flex-wrap:wrap}
.hero-word{display:inline-block;  vertical-align:top}
.hero-word > span{display:inline-block; will-change:transform; transform:none}
html.vis .hero-word > span{animation:heroUp 1.1s var(--ease) both; animation-delay:var(--d,0s)}
@keyframes heroUp{from{transform:translateY(114%)}to{transform:translateY(0)}}
/* hero rise items: VISIBLE by default; animate only when tab is visible (foreground) */
.h-rise{opacity:1; transform:none}
html.vis .h-rise{animation:heroFade 1s var(--ease) both; animation-delay:var(--d,0s)}
@keyframes heroFade{from{opacity:0; transform:translateY(22px)}to{opacity:1; transform:none}}
@media(prefers-reduced-motion:reduce){html.vis .hero-word > span,html.vis .h-rise{animation:none}}
.scroll-cue{position:absolute; bottom:28px; left:50%; transform:translateX(-50%); z-index:4; display:flex; flex-direction:column; align-items:center; gap:12px; color:rgba(255,255,255,.6); font-family:var(--sans); font-weight:700; font-size:.64rem; letter-spacing:.05em; text-transform:uppercase}
.scroll-cue .ln{width:1px; height:54px; background:linear-gradient(rgba(255,255,255,.6),transparent); position:relative; overflow:hidden}
.scroll-cue .ln::after{content:""; position:absolute; top:-54px; left:0; width:1px; height:54px; background:var(--gold); animation:cue 2.4s var(--ease) infinite}
@keyframes cue{0%{top:-54px}60%,100%{top:54px}}

/* ---------- Reveal primitives (progressive enhancement: hidden only when JS active) ---------- */
/* data-reveal: opacity only — no translateY so no layout shift during scroll */
html.js [data-reveal]{opacity:0}
html.js [data-reveal].in{opacity:1; transition:opacity .8s var(--ease)}
/* lines — translateY inside overflow:hidden so layout height never shifts */
.lines .lmask{overflow:hidden; display:block; min-height:1.05em}
html.js .lines .lmask > span{display:block; transform:translateY(104%); will-change:transform; transition:transform .8s var(--ease)}
html.js .lines.line-in .lmask > span{transform:none}
/* reveal-img — opacity instead of clip-path (clip-path = new stacking context = jank) */
html.js .reveal-img{opacity:0; transition:opacity 1s var(--ease)}
html.js .reveal-img.in{opacity:1}
html.js .scalein{transform:scale(1.08); opacity:0; transition:transform 1.3s var(--ease), opacity 1.1s var(--ease)}
html.js .scalein.in{transform:none; opacity:1}

/* soft section-focus (immersive) — brightness, not opacity, so dark
   sections never bleed the page background through (no muddy grey) */
.focus-sec{transition:filter .7s var(--ease)}
.focus-sec.dim{filter:brightness(.74)}
@media(prefers-reduced-motion:reduce){.focus-sec.dim{filter:none}}

/* ---------- Split / grid ---------- */
.split{display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center}
.split.lead{grid-template-columns:1.15fr .85fr}
@media(max-width:900px){.split,.split.lead{grid-template-columns:1fr; gap:42px}}
.grid{display:grid; gap:26px}
.g-2{grid-template-columns:repeat(2,1fr)}
.g-3{grid-template-columns:repeat(3,1fr)}
.g-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:980px){.g-3,.g-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.g-2,.g-3,.g-4{grid-template-columns:1fr}}
.shead{max-width:760px}
.shead.center{margin:0 auto; text-align:center}
.mt-s{margin-top:16px}.mt-m{margin-top:32px}.mt-l{margin-top:60px}.center{text-align:center}

/* ---------- Media ---------- */
.media{position:relative; overflow:hidden; border-radius:8px; background:var(--cream)}
.media img{width:100%; height:100%; object-fit:cover; display:block; transition:transform .9s var(--ease)}
.media.tall{aspect-ratio:4/5}.media.box{aspect-ratio:1/1}.media.wide{aspect-ratio:16/10}
.media .cap{position:absolute; left:22px; bottom:18px; z-index:3; font-family:var(--sans); font-weight:700; font-size:.66rem; letter-spacing:.05em; text-transform:uppercase; color:#fff; text-shadow:0 1px 8px rgba(0,0,0,.4)}
.media .corner{position:absolute; top:18px; right:18px; width:22px; height:22px; border-top:1px solid rgba(255,255,255,.7); border-right:1px solid rgba(255,255,255,.7); z-index:3}

/* ---------- Stat ---------- */
.stat{text-align:center; padding:18px}
.stat .num{font-family:var(--serif); font-size:clamp(2.6rem,4.8vw,4.4rem); color:var(--ink); line-height:1; font-weight:800; letter-spacing:-0.03em}
.stat .num small{color:var(--gold); font-size:.5em}
.stat .lbl{font-family:var(--sans); font-size:.78rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin-top:14px}
.stat-row{display:grid; grid-template-columns:repeat(4,1fr)}
.stat-row .stat{border-right:1px solid var(--hairline)}
.stat-row .stat:last-child{border-right:0}
@media(max-width:768px){.stat-row{grid-template-columns:repeat(2,1fr)} .stat-row .stat:nth-child(2n){border-right:0} .stat-row .stat{border-bottom:1px solid var(--hairline); padding:28px}}

/* ---------- Difference cards ---------- */
.diffcard{position:relative}
.diffcard .media{aspect-ratio:3/4; filter:grayscale(1) contrast(1.02); transition:filter .6s var(--ease)}
.diffcard:hover .media{filter:grayscale(0)}
.diffcard:hover .media img{transform:scale(1.05)}
.diffcard h3{font-size:1.55rem; margin:22px 0 10px}
.diffcard p{font-size:.96rem; color:var(--muted); margin:0}
.diffcard .idx{font-family:var(--sans); font-weight:700; font-size:.72rem; color:var(--gold-deep); letter-spacing:.05em}

/* ---------- Feature project rows ---------- */
.frow{display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; margin-bottom:130px}
.frow:last-child{margin-bottom:0}
.frow:nth-child(even) .frow-media{order:2}
@media(max-width:900px){.frow{grid-template-columns:1fr; gap:30px; margin-bottom:72px} .frow:nth-child(even) .frow-media{order:0}}
.frow-media{aspect-ratio:4/3; overflow:hidden; border-radius:14px}
.frow .pnum{font-family:var(--sans); font-weight:700; font-size:.78rem; color:var(--gold-deep); letter-spacing:.05em}
.frow h3{font-size:clamp(2rem,3.4vw,2.9rem); margin:14px 0 16px; transition:color .35s var(--ease)}
.frow:hover h3{color:var(--gold-deep)}
.frow:hover .frow-media img{transform:scale(1.045)}
.tag-row{display:flex; flex-wrap:wrap; gap:9px; margin-top:20px}
.tag{font-family:var(--sans); font-weight:700; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-deep); border:1px solid var(--hairline-gold); padding:7px 13px; border-radius:999px}




/* ---------- DARK feature band (testimonials) ---------- */
.band-dark{background:var(--char); color:var(--champagne); position:relative}
.band-dark h2,.band-dark h3{color:#fff}
.band-dark .muted{color:rgba(252,252,252,.6)}
.band-dark .eyebrow{color:var(--gold-soft)}
.band-dark .kicker{color:var(--gold-soft)}
.band-dark .kicker::before,.band-dark .kicker.center::after{background:var(--gold-soft)}

/* testimonial */
.tcard{position:relative; border-radius:10px; overflow:hidden; aspect-ratio:16/10; background:var(--char2)}
.tcard .ph-people{position:absolute; inset:0}
.tcard .quote{position:absolute; right:24px; top:24px; bottom:24px; width:46%; min-width:280px; background:rgba(20,18,13,.55); backdrop-filter:blur(8px); border:1px solid rgba(237,224,187,.16); border-radius:8px; padding:32px; display:flex; flex-direction:column}
.tcard .quote .qm{font-family:var(--sans); font-size:2.2rem; color:var(--gold); line-height:.7; font-weight:800; opacity:.7}
.tcard .quote p{color:#F4EFE4; font-size:1rem; line-height:1.55; margin:18px 0}
.tcard .quote .who{font-family:var(--serif); font-size:1.2rem; color:#fff; margin-top:auto}
.tcard .brand{position:absolute; left:26px; bottom:24px; font-family:var(--serif); font-size:1.3rem; color:#fff; z-index:2}
@media(max-width:640px){.tcard{aspect-ratio:auto; height:auto} .tcard .quote{position:static; width:auto; margin:0; border-radius:0}}

/* ---------- Footer ---------- */
.footer{background:var(--ivory);border-top:1px solid var(--hairline);padding:80px 0 0;overflow:hidden;position:relative}
.footer-inner{position:relative;z-index:2}

.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr 1.5fr;gap:40px 48px;padding-bottom:60px;border-bottom:1px solid var(--hairline)}
.fg-col{display:flex;flex-direction:column}
.fg-logo{margin-bottom:18px}
.fg-tagline{font-family:var(--sans);font-size:.92rem;line-height:1.65;color:var(--muted);margin:0 0 26px}
.fg-social{display:flex;flex-direction:row;flex-wrap:wrap;gap:10px}
.fg-soc{width:38px;height:38px;border:1px solid var(--hairline);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--muted);transition:all .25s ease;flex-shrink:0}
.fg-soc:hover{border-color:var(--gold);color:var(--gold);transform:translateY(-2px)}
.fg-head{font-family:var(--sans);font-size:.66rem;letter-spacing:.05em;text-transform:uppercase;color:var(--gold-deep);margin:0 0 22px;padding:0;font-weight:700}
.fg-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:13px}
.fg-list a{font-family:var(--sans);font-size:.95rem;color:var(--body);transition:color .25s ease,padding-left .2s ease}
.fg-list a:hover{color:var(--gold);padding-left:4px}
.fg-addr{font-family:var(--sans);font-size:.9rem;line-height:1.75;color:var(--body);font-style:normal;margin:0 0 16px}
.fg-contacts{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.fg-contact{font-family:var(--sans);font-size:.88rem;color:var(--body);transition:color .25s}
.fg-contact:hover{color:var(--gold)}
.fg-form-message{min-height:20px;margin-top:8px;font-size:.82rem;line-height:1.5}
.fg-form-message.is-success{color:#907138}
.fg-form-message.is-error{color:#b54a3f}
.fg-sub{font-family:var(--sans);font-size:.9rem;line-height:1.65;color:var(--muted);margin:0 0 18px}
.fg-form{display:flex;flex-direction:column;gap:10px}
.fg-input{width:100%;padding:13px 14px;border:1px solid var(--hairline);border-radius:4px;font-family:var(--sans);font-size:.9rem;color:var(--ink);background:var(--white);outline:none;transition:border-color .25s ease}
.fg-input::placeholder{color:var(--muted)}
.fg-input:focus{border-color:var(--gold)}
.fg-btn{width:100%;justify-content:center;padding:12px 20px;font-size:.78rem}

.footer-mark{pointer-events:none;user-select:none;overflow:hidden;white-space:nowrap;line-height:.82;margin:28px 0 0;position:relative;z-index:1}
.fm-outline{font-family:var(--serif);font-size:clamp(6rem,20vw,18rem);line-height:.82;letter-spacing:-0.03em;color:transparent;-webkit-text-stroke:1px var(--gold);opacity:.4}
.fm-fill{font-family:var(--serif);font-size:clamp(6rem,20vw,18rem);line-height:.82;letter-spacing:-0.03em;color:var(--ink);opacity:.05}

.foot-bottom{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:18px 0 24px;border-top:1px solid var(--hairline);font-family:var(--sans);font-weight:700;font-size:.62rem;letter-spacing:.08em;color:var(--muted);position:relative;z-index:2}
.foot-copy{color:var(--muted)}
.foot-links{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.foot-links a{color:var(--muted);transition:color .25s ease}
.foot-links a:hover{color:var(--gold)}
.rera-badge{padding:3px 10px;border:1px solid var(--hairline-gold);border-radius:999px;color:var(--gold-deep);font-size:.58rem;letter-spacing:.12em}

@media(max-width:1200px){.footer-grid{grid-template-columns:1fr 1fr 1fr;gap:32px}.fg-col:first-child{grid-column:1/-1}.fg-col:nth-child(5){grid-column:1/-1;max-width:480px}.fg-form{flex-direction:row}.fg-input{flex:1}.fg-btn{flex:0 0 auto;width:auto}}
@media(max-width:768px){.footer{padding:60px 0 0}.footer-grid{grid-template-columns:1fr 1fr;gap:28px 24px;padding-bottom:44px}.fg-col:first-child{grid-column:1/-1}.fg-col:nth-child(5){grid-column:1/-1;max-width:100%}.foot-bottom{flex-direction:column;gap:12px;text-align:center;padding:14px 0 20px}.foot-links{justify-content:center}}
@media(max-width:480px){.footer{padding:48px 0 0}.footer-grid{grid-template-columns:1fr;gap:22px;padding-bottom:36px}.fg-col:first-child,.fg-col:nth-child(5){grid-column:auto;max-width:100%}.fg-form{flex-direction:row;flex-wrap:wrap}.fg-input{flex:1;min-width:150px}.fg-btn{flex:0 0 auto;width:auto}.fm-outline,.fm-fill{font-size:clamp(4.5rem,22vw,10rem)}}
@media(max-width:320px){.footer-grid{gap:18px}.fg-list a{font-size:.88rem}.fg-input{font-size:.84rem}.fm-outline,.fm-fill{font-size:4rem}}


/* ============================================================
   MAP SECTION — full-width 3D + horizontal cards
   ============================================================ */
/* mapsec overflow: allow cards to show fully */
.mapsec{background:var(--ink); color:var(--champagne); position:relative; overflow:visible}
#mapStage{position:relative; padding:112px 0 80px; z-index:2}

/* header */
.map-head{text-align:center; padding:0 40px 56px; position:relative; z-index:2}
.map-coord{font-family:var(--sans); font-weight:700; font-size:.6rem; letter-spacing:.05em; text-transform:uppercase;
  color:rgba(207,173,102,.5); margin-bottom:18px}
.map-title{font-family:var(--serif); font-weight:400; font-size:clamp(2.1rem,4.2vw,3.6rem);
  line-height:1.1; letter-spacing:-0.02em; color:#fff; margin:0 0 14px}
.map-sub{font-family:var(--sans); font-size:.92rem; color:rgba(255,255,255,.5);
  max-width:460px; margin:0 auto; line-height:1.6}

.map-canvas-full{position:relative; width:100%; overflow:hidden; padding:0 60px; box-sizing:border-box; max-width:100vw;}
#globeCanvas{display:block; width:100%; height:clamp(360px,55vw,580px); cursor:grab; background:rgba(10,9,7,1); border-radius:20px; box-sizing:border-box}
#globeCanvas:active{cursor:grabbing}
.globe-hint{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--sans); font-weight:700; font-size:.58rem; letter-spacing:.05em; text-transform:uppercase;
  color:rgba(207,173,102,.55); pointer-events:none; margin-top:10px
}

/* horizontal address cards — grid layout */
.map-addrs{padding:36px 60px 48px}
.plist{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:18px; min-width:0
}

/* card — reset button defaults */
.plist-item{
  display:flex; flex-direction:column; gap:0; width:auto; min-width:0;
  text-align:left; cursor:pointer; background:rgba(255,255,255,.05);
  border:1px solid rgba(207,173,102,.14); border-radius:16px; overflow:hidden;
  transition:all .35s ease; color:rgba(231,224,210,.9);
  padding:0; margin:0; appearance:none; -webkit-appearance:none
}
.plist-item:hover,.plist-item.active{
  border-color:var(--gold); transform:translateY(-5px);
  box-shadow:0 14px 36px rgba(0,0,0,.45)
}
/* card image — full width, no gaps */
.pli-img{
  position:relative; height:160px; overflow:hidden;
  flex-shrink:0; background:var(--char2);
  width:100%; display:block; margin:0; padding:0
}
.pli-img img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; transition:transform .6s ease; filter:brightness(.85);
  display:block; margin:0; padding:0
}
.plist-item:hover .pli-img img{transform:scale(1.07)}
/* card body */
.pli-body{padding:14px 16px 16px; display:flex; flex-direction:column; gap:6px; flex:1}
.pli-idx{font-family:var(--sans); font-weight:700; font-size:.55rem; letter-spacing:.05em; color:var(--gold-soft)}
.pli-name{font-family:var(--serif); font-size:1.05rem; font-weight:600;
  color:#fff; line-height:1.15; letter-spacing:-0.01em}
.pli-name span{color:var(--gold-soft)}
.pli-area{font-family:var(--sans); font-weight:700; font-size:.55rem; letter-spacing:.1em;
  text-transform:uppercase; color:rgba(255,255,255,.45);
  display:flex; align-items:center; gap:6px; flex-wrap:wrap}
.pli-status{font-size:.5rem; padding:2px 7px; border-radius:999px;
  background:rgba(207,173,102,.14); color:var(--gold-soft);
  border:1px solid rgba(207,173,102,.22); font-style:normal; letter-spacing:.08em}
.pli-arr{display:none}

/* responsive */
@media(max-width:980px){
  #mapStage{padding:80px 0 60px}
  #globeCanvas{height:clamp(300px,60vw,500px)}
  .map-canvas-full{padding:0 32px}
  .map-addrs{padding:24px 32px 32px}
  .plist{grid-template-columns:repeat(3,1fr)}
  .pli-img{aspect-ratio:4/3}
}
@media(max-width:640px){
  .map-head{padding:0 20px 36px}
  #globeCanvas{height:clamp(260px,70vw,400px)}
  .map-canvas-full{padding:0 20px}
  .map-addrs{padding:20px 20px 28px}
  .plist{grid-template-columns:repeat(2,1fr); gap:12px}
  .pli-name{font-size:.95rem}
}
@media(max-width:480px){
  #mapStage{padding:60px 0 48px}
  #globeCanvas{height:clamp(220px,80vw,340px)}
  .map-canvas-full{padding:0 16px}
  .map-addrs{padding:16px 16px 24px}
  .plist{grid-template-columns:repeat(2,1fr); gap:10px}
  .plist-item{width:auto}
  .pli-img{aspect-ratio:3/2}
  .pli-body{padding:11px 12px 13px}
  .pli-name{font-size:.88rem}
}
@media(max-width:320px){
  .plist{grid-template-columns:1fr 1fr; gap:8px}
  .pli-img{height:64px}
}


/* map line draw */
.mroad{fill:none; stroke:rgba(252,252,252,.16); stroke-width:1; }
.mroad.major{stroke:rgba(252,252,252,.28); stroke-width:1.4}
.mcoast{fill:none; stroke:rgba(214,189,137,.5); stroke-width:1.5}
.mwater{fill:rgba(120,140,160,0.04)}
.mland{fill:rgba(255,255,255,0.012)}
.draw{stroke-dasharray:1; stroke-dashoffset:1; }

/* pins */
.mpin{position:absolute; z-index:5; transform:translate(-50%,-100%); cursor:pointer; opacity:0;}
.mpin .pin-flag{display:flex; align-items:center; gap:9px; background:rgba(22,20,15,.72); backdrop-filter:blur(6px); border:1px solid var(--hairline-gold); border-radius:6px; padding:8px 13px 8px 8px; transition:all .35s var(--ease); white-space:nowrap}
.mpin .pin-flag img{width:26px; height:26px; background:var(--gold); border-radius:4px; padding:4px; object-fit:contain}
.mpin .pin-flag .pn{font-family:var(--sans); font-weight:700; font-size:.7rem; letter-spacing:.05em; text-transform:uppercase; color:#F4EFE4}
.mpin .pin-stem{position:absolute; left:23px; top:100%; width:1px; height:24px; background:linear-gradient(var(--gold),transparent)}
.mpin .pin-dot{position:absolute; left:21px; top:calc(100% + 24px); width:7px; height:7px; border-radius:50%; background:var(--gold); transform:translate(-50%,0); box-shadow:0 0 0 0 rgba(207,173,102,.5)}
.mpin.live .pin-dot{animation:pulse 2.4s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(207,173,102,.5)}70%{box-shadow:0 0 0 16px rgba(207,173,102,0)}100%{box-shadow:0 0 0 0 rgba(207,173,102,0)}}
.mpin:hover .pin-flag,.mpin.active .pin-flag{background:var(--gold); border-color:var(--gold)}
.mpin:hover .pin-flag .pn,.mpin.active .pin-flag .pn{color:#fff}
.mpin:hover .pin-flag img,.mpin.active .pin-flag img{background:#fff}

/* property panel — fixed right drawer, outside map grid */
.mpanel{position:fixed; top:0; right:0; bottom:0; left:auto; width:min(480px,92vw); z-index:1010; background:linear-gradient(180deg,#1b1810,#100e09);
  transform:translateX(102%); transition:transform .65s cubic-bezier(.65,.05,.36,1); display:flex; flex-direction:column; padding:72px 30px 32px; overflow:auto; box-shadow:-8px 0 40px rgba(0,0,0,.45)}
.mpanel.open{transform:none}
.mpanel .pclose{position:absolute; top:22px; left:22px; height:36px; padding:0 16px; border-radius:999px; border:1px solid rgba(252,252,252,.3); background:none; color:var(--champagne); font-family:var(--sans); font-weight:700; font-size:.66rem; letter-spacing:.03em; text-transform:uppercase; cursor:pointer; display:flex; align-items:center; gap:8px; transition:all .3s var(--ease)}
.mpanel .pclose span{font-size:1rem}
.mpanel .pclose:hover{background:var(--gold); border-color:var(--gold); color:#0c0b08}
.mpanel .plock{display:flex; flex-direction:column; gap:2px; margin-bottom:18px}
.mpanel .plock .pl1{font-family:var(--serif); font-size:1.6rem; color:#fff; letter-spacing:-0.01em; line-height:1.1; font-weight:700}
.mpanel .plock .pl2{font-family:var(--sans); font-size:1.15rem; color:var(--gold-soft); line-height:1; font-weight:500}
.mpanel .pmedia{position:relative; aspect-ratio:16/11; border-radius:8px; overflow:hidden; background:var(--char2)}
.mpanel .pmedia .slide{position:absolute; inset:0; opacity:0; transition:opacity .7s var(--ease); transform:scale(1.04)}
.mpanel .pmedia .slide.on{opacity:1; transform:none; transition:opacity .7s var(--ease), transform 6s var(--ease)}
.mpanel .pmedia img{width:100%; height:100%; object-fit:cover}
.mpanel .pdots{display:flex; gap:8px; justify-content:center; margin-top:18px}
.mpanel .pdots i{width:24px; height:3px; border-radius:2px; background:rgba(252,252,252,.25); cursor:pointer; transition:background .3s}
.mpanel .pdots i.on{background:var(--gold)}
.mpanel .pmeta{display:flex; gap:26px; margin:22px 0; flex-wrap:wrap}
.mpanel .pmeta div{display:flex; flex-direction:column; gap:3px}
.mpanel .pmeta .k{font-family:var(--sans); font-weight:700; font-size:.62rem; letter-spacing:.05em; text-transform:uppercase; color:var(--faint)}
.mpanel .pmeta .v{font-family:var(--serif); font-size:1.2rem; color:#fff}
.mpanel .pdesc{color:rgba(252,252,252,.66); font-size:.98rem; line-height:1.6}
.mpanel .pcta{margin-top:auto; padding-top:22px}
.mpanel .scrim{position:fixed; inset:0; background:rgba(8,7,4,.4); opacity:0; pointer-events:none; transition:opacity .5s}
@media(max-width:980px){
  .mpanel{padding:72px 22px 32px}
  .map-info{min-height:320px}
}

/* ---------- People placeholder (for swap) ---------- */
.ph-people{background:linear-gradient(135deg,#2a2519,#252525); position:relative}
.ph-people::after{content:attr(data-label); position:absolute; left:20px; bottom:18px; font-family:var(--sans); font-weight:700; font-size:.62rem; letter-spacing:.05em; text-transform:uppercase; color:rgba(237,224,187,.4)}
.section-light-ph .ph-people{background:linear-gradient(135deg,#ECE3D2,#DBCBAE)}
.section-light-ph .ph-people::after{color:rgba(90,72,40,.5)}

/* ============================================================
   CREATIVE LAYER v2 — Bootstrap reconcile, 3D, floating/asym,
   globe layout, blog, premium testimonials
   ============================================================ */
/* Bootstrap button reset so our .btn wins cleanly */
.btn:focus,.btn:focus-visible{outline:none; box-shadow:none}
.btn{line-height:1.1}
.container,.container-xxl{max-width:1320px}

/* hero: 3D particle canvas between image and content */
#heroField{position:absolute; inset:0; z-index:2; pointer-events:none}
.hero-inner{z-index:3}
/* floating glass stat cards overlapping hero base */
.hero-floats{position:absolute; left:0; right:0; bottom:-1px; z-index:3; pointer-events:none}
.hero-floats .wrap-wide{display:flex; gap:18px; flex-wrap:wrap; padding-bottom:96px}
.gcard{ pointer-events:auto; background:rgba(255,255,255,.08); backdrop-filter:blur(14px) saturate(1.2);
  border:1px solid rgba(255,255,255,.22); border-radius:14px; padding:18px 24px; min-width:150px;
  box-shadow:0 18px 50px rgba(8,7,4,.35) }
.gcard .gn{font-family:var(--serif); font-size:1.9rem; color:#fff; line-height:1}
.gcard .gn small{color:var(--gold-soft); font-size:.55em}
.gcard .gl{font-family:var(--sans); font-weight:700; font-size:.6rem; letter-spacing:.05em; text-transform:uppercase; color:rgba(255,255,255,.7); margin-top:6px}
@media(max-width:760px){ .hero-floats{display:none} }

/* asymmetric / floating helpers */
.float-up{transform:translateY(-70px)}
.offset-img{position:relative}
.offset-tag{ position:absolute; z-index:3; background:#fff; border:1px solid var(--hairline); border-radius:12px;
  box-shadow:var(--shadow-lg,0 18px 50px rgba(37,37,37,.12)); padding:18px 22px; max-width:230px }
.offset-tag.br{right:-26px; bottom:-26px}
.offset-tag.tl{left:-26px; top:-26px}
.offset-tag .ot-n{font-family:var(--serif); font-size:1.8rem; color:var(--gold-deep); line-height:1}
.offset-tag .ot-l{font-family:var(--sans); font-weight:700; font-size:.6rem; letter-spacing:.03em; text-transform:uppercase; color:var(--muted); margin-top:4px}
@media(max-width:760px){ .offset-tag.br{right:10px; bottom:-18px} .offset-tag.tl{left:10px} .float-up{transform:none} }

/* difference staggered (asymmetrical heights) */
.diffcard.raise{margin-top:-46px}
@media(max-width:980px){ .diffcard.raise{margin-top:0} }

/* tilt cards */
[data-tilt]{transition:transform .25s var(--ease)}
[data-tilt-shine]{position:absolute; inset:0; pointer-events:none; mix-blend-mode:screen; border-radius:inherit; transition:background .2s}

/* ---------- GLOBE map section ---------- */
/* legacy globe layout (superseded by .map-grid) */
.globe-hint{position:absolute; left:0; bottom:18px; font-family:var(--sans); font-weight:700; font-size:.64rem; letter-spacing:.05em; text-transform:uppercase; color:rgba(252,252,252,.4); z-index:3; display:flex; align-items:center; gap:10px}
.globe-hint .dotpulse{width:7px;height:7px;border-radius:50%;background:var(--gold); box-shadow:0 0 0 0 rgba(207,173,102,.5); animation:pulse 2.4s ease-out infinite}
/* old plist rules removed */

/* ---------- BLOG section ---------- */
.blog-filter{display:flex; gap:10px; flex-wrap:wrap}
.blog-filter button{ background:none; border:1px solid var(--hairline); color:var(--muted); cursor:pointer;
  font-family:var(--sans); font-weight:700; font-size:.7rem; letter-spacing:.05em; text-transform:uppercase; padding:10px 20px; border-radius:999px; transition:all .3s var(--ease)}
.blog-filter button:hover{color:var(--gold-deep); border-color:var(--hairline-gold)}
.blog-filter button.active{background:var(--ink); color:var(--ivory); border-color:var(--ink)}
.bfeature{position:relative; border-radius:16px; overflow:hidden; min-height:440px; display:flex; align-items:flex-end}
.bfeature img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease)}
.bfeature:hover img{transform:scale(1.05)}
.bfeature .scrim{position:absolute; inset:0; background:linear-gradient(180deg,rgba(12,11,8,.05),rgba(12,11,8,.82))}
.bfeature .bf-body{position:relative; z-index:2; padding:38px}
.bfeature .bf-cat{font-family:var(--sans); font-weight:700; font-size:.66rem; letter-spacing:.05em; text-transform:uppercase; color:var(--gold-soft)}
.bfeature h3{color:#fff; font-size:clamp(1.6rem,2.4vw,2.4rem); margin:12px 0 8px; max-width:560px}
.bfeature .bf-meta{font-family:var(--sans); font-weight:700; font-size:.7rem; color:rgba(255,255,255,.7); letter-spacing:.08em}
.bcard{ background:#fff; border:1px solid var(--hairline); border-radius:14px; overflow:hidden; height:100%;
  transition:transform .4s var(--ease), box-shadow .4s var(--ease); display:flex; flex-direction:column}
.bcard:hover{transform:translateY(-6px); box-shadow:0 18px 50px rgba(37,37,37,.12)}
.bcard .bimg{aspect-ratio:16/10; overflow:hidden; position:relative}
.bcard .bimg img{width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease)}
.bcard:hover .bimg img{transform:scale(1.06)}
.bcard .bcat{position:absolute; top:14px; left:14px; z-index:2; background:rgba(255,255,255,.92); backdrop-filter:blur(4px); font-family:var(--sans); font-weight:700; font-size:.6rem; letter-spacing:.03em; text-transform:uppercase; color:var(--gold-deep); padding:6px 11px; border-radius:999px}
.bcard .bbody{padding:24px; display:flex; flex-direction:column; flex:1}
.bcard h4{font-size:1.3rem; line-height:1.2; margin:0 0 10px; transition:color .3s}
.bcard:hover h4{color:var(--gold-deep)}
.bcard .bexc{color:var(--muted); font-size:.92rem; margin:0 0 18px}
.bcard .bmeta{margin-top:auto; display:flex; justify-content:space-between; align-items:center; font-family:var(--sans); font-weight:700; font-size:.66rem; letter-spacing:.08em; color:var(--faint); text-transform:uppercase}
.bcard .bmeta .read{color:var(--gold-deep)}

/* ---------- Premium testimonials ---------- */
#tstField{position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.7}
.band-dark > .wrap-wide{position:relative; z-index:2}
.tgrid{display:grid; grid-template-columns:1.1fr .9fr; gap:26px; align-items:stretch}
@media(max-width:980px){ .tgrid{grid-template-columns:1fr} }
.tbig{position:relative; border-radius:16px; overflow:hidden; min-height:430px; display:flex; align-items:flex-end}
.tbig img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.tbig .scrim{position:absolute; inset:0; background:linear-gradient(180deg,rgba(12,11,8,.1),rgba(12,11,8,.8))}
.tbig .play{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); z-index:3; width:84px; height:84px; border-radius:50%; border:1px solid rgba(255,255,255,.5); background:rgba(255,255,255,.12); backdrop-filter:blur(6px); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all .35s var(--ease)}
.tbig .play:hover{background:var(--gold); border-color:var(--gold); transform:translate(-50%,-50%) scale(1.08)}
.tbig .play svg{width:26px; height:26px; fill:#fff; margin-left:4px}
.tbig .tb-body{position:relative; z-index:2; padding:34px}
.tbig .tb-body .who{font-family:var(--serif); font-size:1.5rem; color:#fff}
.tbig .tb-body .role{font-family:var(--sans); font-weight:700; font-size:.66rem; letter-spacing:.03em; text-transform:uppercase; color:var(--gold-soft); margin-top:4px}
.tstack{display:flex; flex-direction:column; gap:26px}
.tmini{ position:relative; background:rgba(255,255,255,.04); border:1px solid rgba(252,252,252,.14); border-radius:14px; padding:30px; flex:1; overflow:hidden}
.tmini .qm{font-family:var(--sans); font-size:2rem; color:var(--gold); line-height:.6; font-weight:800; opacity:.7}
.tmini p{color:#F4EFE4; font-size:1.02rem; line-height:1.55; margin:16px 0}
.tmini .who{font-family:var(--serif); font-size:1.15rem; color:#fff}
.tmini .role{font-family:var(--sans); font-weight:700; font-size:.62rem; letter-spacing:.03em; text-transform:uppercase; color:var(--gold-soft); margin-top:2px}
.tmini .av{position:absolute; top:26px; right:26px; width:52px; height:52px; border-radius:50%; overflow:hidden; border:1px solid rgba(237,224,187,.3)}
.tmini .av img{width:100%; height:100%; object-fit:cover}

/* section spacing rhythm */
.section.tight{padding:110px 0}
.overlap-prev{margin-top:-80px; position:relative; z-index:5}
@media(max-width:760px){ .overlap-prev{margin-top:0} }

/* ============================================================
   v3 — About/Vision, Brand Pillars, Horizontal Projects, Timeline
   ============================================================ */
/* About / Vision */
.aboutsec{position:relative; overflow:hidden}
#aboutField{position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.85}
.aboutsec > .container-xxl,.aboutsec > .wrap-wide{position:relative; z-index:2}
.vision-line{font-family:var(--serif); font-size:clamp(2rem,4.5vw,4rem); line-height:1.1; color:var(--ink); font-weight:700; letter-spacing:-0.025em}
.vision-rotate{color:var(--gold-deep); font-weight:700; will-change:opacity,transform; display:inline-block}
.about-card{background:rgba(255,255,255,.7); backdrop-filter:blur(8px); border:1px solid var(--hairline); border-radius:16px; padding:34px; box-shadow:var(--shadow-md,0 10px 40px rgba(37,37,37,.08))}
.kinetic{display:inline-flex; gap:.4em; flex-wrap:wrap}
.kinetic b{font-weight:400; color:var(--gold-deep)}

/* --- About v4: lead + visionaries + mission/vision --- */
.about-top{display:grid; grid-template-columns:1.08fr .92fr; gap:56px; align-items:center}
.about-head{font-family:var(--serif); font-weight:800; letter-spacing:-0.025em; font-size:clamp(2.3rem,4.6vw,4rem); line-height:1.1; color:var(--ink)}
.about-kpis{display:flex; gap:34px; flex-wrap:wrap; margin-top:34px; padding-top:26px; border-top:1px solid var(--hairline)}
.akpi .ak-n{font-family:var(--serif); font-size:2.2rem; color:var(--gold-deep); line-height:1; font-weight:800; letter-spacing:-0.025em}
.akpi .ak-n small{font-size:.5em; color:var(--gold)}
.akpi .ak-l{font-family:var(--sans); font-weight:700; font-size:.62rem; letter-spacing:.03em; text-transform:uppercase; color:var(--muted); margin-top:8px}
.about-vis{position:relative; background:#fff; border:1px solid var(--hairline); border-radius:18px; overflow:hidden; box-shadow:0 24px 70px rgba(37,37,37,.12)}
.av-media{position:relative; aspect-ratio:16/9; overflow:hidden}
.av-media img{width:100%; height:100%; object-fit:cover}
.av-scrim{position:absolute; inset:0; background:linear-gradient(180deg,rgba(12,11,8,.05),rgba(12,11,8,.35))}
.av-body{padding:32px}
.av-quote{font-family:var(--sans); font-size:1.35rem; line-height:1.55; color:var(--ink); margin:12px 0 20px; font-weight:400}
.av-quote em{color:var(--gold-deep); font-style:italic; font-family:var(--sans)}
.mv-grid{display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:64px}
.mvcard{position:relative; background:rgba(255,255,255,.75); backdrop-filter:blur(8px); border:1px solid var(--hairline); border-radius:16px; padding:38px; overflow:hidden; transition:transform .25s var(--ease), box-shadow .35s var(--ease)}
.mvcard:hover{box-shadow:0 20px 56px rgba(37,37,37,.12)}
.mvcard.alt{background:linear-gradient(160deg,#171109,#22190d); border-color:var(--hairline-gold)}
.mvcard.alt .mv-tag{color:var(--gold-soft)}
.mvcard.alt h3{color:#fff}
.mvcard.alt .mv-list li{color:rgba(252,252,252,.78); border-color:rgba(237,224,187,.16)}
.mvcard.alt .mv-list li::before{border-color:var(--gold-soft)}
.mv-tag{font-family:var(--sans); font-weight:700; font-size:.66rem; letter-spacing:.05em; text-transform:uppercase; color:var(--gold-deep)}
.mvcard h3{font-size:1.7rem; color:var(--ink); margin:12px 0 0; line-height:1.2}
.mv-list{list-style:none; padding:0; margin:24px 0 0}
.mv-list li{position:relative; padding:14px 0 14px 30px; border-top:1px solid var(--hairline); color:var(--body); font-size:.98rem}
.mv-list li::before{content:""; position:absolute; left:0; top:19px; width:12px; height:7px; border-left:1.5px solid var(--gold-deep); border-bottom:1.5px solid var(--gold-deep); transform:rotate(-45deg)}
@media(max-width:980px){
  .about-top{grid-template-columns:1fr; gap:36px}
  .mv-grid{grid-template-columns:1fr; gap:18px; margin-top:44px}
  .akpi .ak-n{font-size:2rem}
}

/* Brand pillars — asymmetric editorial rows */
.pillar{display:grid; grid-template-columns:88px 1fr auto; gap:30px; align-items:center; padding:34px 0; border-top:1px solid var(--hairline); transition:padding-left .4s var(--ease)}
.pillar:last-child{border-bottom:1px solid var(--hairline)}
.pillar:hover{padding-left:14px}
.pillar .pi-n{font-family:var(--sans); font-weight:700; font-size:.8rem; color:var(--gold-deep); letter-spacing:.05em}
.pillar .pi-title{font-family:var(--serif); font-size:clamp(1.4rem,2.8vw,2.4rem); color:var(--ink); transition:color .35s; font-weight:600; letter-spacing:-0.02em; line-height:1.1}
.pillar:hover .pi-title{color:var(--gold-deep)}
.pillar .pi-eq{font-family:var(--sans); font-weight:700; font-size:.74rem; letter-spacing:.03em; text-transform:uppercase; color:var(--muted); white-space:nowrap}
.pillar .pi-mid{display:flex; flex-direction:column; gap:6px}
.pillar .pi-desc{color:var(--muted); font-size:.96rem; max-width:520px}
@media(max-width:760px){ .pillar{grid-template-columns:48px 1fr; gap:14px} .pillar .pi-eq{grid-column:2; }}

/* Cinematic horizontal projects */
.proj-pin{position:relative; height:100vh; overflow:hidden; background:var(--char); color:var(--champagne)}
.proj-track{display:flex; height:100%; align-items:center; will-change:transform; padding:0 7vw; gap:46px}
.proj-intro{flex:0 0 32vw; min-width:300px}
.proj-intro .kicker{color:var(--gold-soft)}
.proj-intro h2{color:#fff}
.proj-panel{flex:0 0 62vw; max-width:900px; height:74vh; position:relative; border-radius:18px; overflow:hidden; display:flex; align-items:flex-end; border:1px solid rgba(237,224,187,.16)}
.proj-panel img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 1s var(--ease)}
.proj-panel:hover img{transform:scale(1.04)}
.proj-panel .scrim{position:absolute; inset:0; background:linear-gradient(180deg,rgba(12,11,8,.12) 30%,rgba(12,11,8,.86) 100%)}
.proj-panel .pp-body{position:relative; z-index:2; padding:46px; width:100%}
.proj-panel .pp-status{position:absolute; top:26px; left:26px; z-index:2; font-family:var(--sans); font-weight:700; font-size:.64rem; letter-spacing:.05em; text-transform:uppercase; color:#0c0b08; background:var(--gold-soft); padding:8px 14px; border-radius:999px}
.proj-panel .pp-n{font-family:var(--sans); font-weight:700; font-size:.78rem; color:var(--gold-soft); letter-spacing:.05em}
.proj-panel .pp-name{font-family:var(--serif); font-size:clamp(2rem,3.6vw,3.2rem); color:#fff; line-height:1; margin:10px 0 4px}
.proj-panel .pp-area{font-family:var(--sans); font-size:1.2rem; color:var(--gold-soft); font-weight:500; letter-spacing:.04em}
.proj-panel .pp-cta{display:inline-flex; align-items:center; gap:9px; font-family:var(--sans); font-weight:700; font-size:.72rem; letter-spacing:.03em; text-transform:uppercase; color:var(--gold-soft); margin-top:20px; padding-bottom:5px; border-bottom:1px solid rgba(212,175,55,.38); background:none; border-radius:0; padding-left:0; padding-right:0; cursor:pointer; transition:color .3s var(--ease), border-color .3s var(--ease)}
.proj-panel:hover .pp-cta{color:var(--gold); border-color:var(--gold)}
.proj-panel .pp-cta .arr{transition:transform .3s var(--ease)}
.proj-panel:hover .pp-cta .arr{transform:translateX(4px)}
.proj-progress{position:absolute; left:7vw; right:7vw; bottom:46px; height:2px; background:rgba(237,224,187,.16); z-index:5}
.proj-progress span{display:block; height:100%; width:0; background:var(--gold); transition:width .1s linear}
/* mobile / no-pin fallback: vertical stack */
.proj-pin.no-pin{height:auto; overflow:visible; padding:90px 0}
.proj-pin.no-pin .proj-track{flex-direction:column; height:auto; padding:0 22px; gap:26px; transform:none!important}
.proj-pin.no-pin .proj-intro{flex:none; min-width:0; margin-bottom:10px}
.proj-pin.no-pin .proj-panel{flex:none; width:100%; max-width:none; height:64vh}
.proj-pin.no-pin .proj-progress{display:none}

/* Trust / Milestones timeline */
.tl{position:relative; margin-top:60px}
.tl::before{content:""; position:absolute; left:50%; top:0; bottom:0; width:1px; background:var(--hairline); transform:translateX(-50%)}
.tl-item{position:relative; width:50%; padding:26px 46px; box-sizing:border-box}
.tl-item:nth-child(odd){left:0; text-align:right}
.tl-item:nth-child(even){left:50%}
.tl-item .tl-dot{position:absolute; top:32px; width:14px; height:14px; border-radius:50%; background:var(--gold); border:3px solid var(--ivory); box-shadow:0 0 0 1px var(--hairline-gold)}
.tl-item:nth-child(odd) .tl-dot{right:-7px}
.tl-item:nth-child(even) .tl-dot{left:-7px}
.tl-item .tl-year{font-family:var(--serif); font-size:2rem; color:var(--gold-deep); line-height:1}
.tl-item .tl-h{font-family:var(--serif); font-size:1.4rem; color:var(--ink); margin:6px 0 8px}
.tl-item p{color:var(--muted); font-size:.96rem; margin:0}
@media(max-width:760px){
  .tl::before{left:8px}
  .tl-item{width:100%; left:0!important; text-align:left!important; padding:22px 0 22px 38px}
  .tl-item .tl-dot{left:1px!important; right:auto!important}
}

/* ============================================================
   v4 — Client Stories header, creative CTA, richer map
   ============================================================ */
/* client stories header rating */
.cs-stars{text-align:right}
.cs-stars > span{color:var(--gold); letter-spacing:.22em; font-size:1.05rem}
.cs-stars .cs-sub{font-family:var(--sans); font-weight:700; font-size:.66rem; letter-spacing:.03em; text-transform:uppercase; color:rgba(252,252,252,.6); margin-top:8px}
.tbig .tb-body .qbig{font-family:var(--sans); font-size:clamp(1.3rem,2.2vw,2rem); color:#fff; line-height:1.2; margin-bottom:14px; max-width:420px; font-weight:400}

/* ---------- richer MAP section ---------- */
.mapsec{background:radial-gradient(120% 90% at 72% 38%, #1b1810 0%, var(--char) 58%, #07060b 100%)}
.mapsec::before{content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:repeating-linear-gradient(0deg, rgba(212,175,55,.045) 0 1px, transparent 1px 64px),
                   repeating-linear-gradient(90deg, rgba(212,175,55,.045) 0 1px, transparent 1px 64px);
  mask-image:radial-gradient(70% 70% at 60% 45%, #000 35%, transparent 80%)}
.mapsec::after{content:""; position:absolute; z-index:0; left:58%; top:46%; width:46vw; height:46vw; max-width:720px; max-height:720px;
  transform:translate(-50%,-50%); pointer-events:none;
  background:radial-gradient(circle, rgba(200,162,74,.20), rgba(200,162,74,.05) 45%, transparent 70%)}
.map-deco{position:absolute; left:58%; top:46%; transform:translate(-50%,-50%); z-index:1; pointer-events:none; width:min(70vh,640px); height:min(70vh,640px)}
.map-deco i{position:absolute; inset:0; border:1px solid rgba(212,175,55,.12); border-radius:50%; animation:mapring 16s linear infinite}
.map-deco i:nth-child(2){inset:14%; border-color:rgba(212,175,55,.18); animation-duration:24s; animation-direction:reverse}
.map-deco i:nth-child(3){inset:30%; border-color:rgba(212,175,55,.10); animation-duration:34s}
.map-deco i::before{content:""; position:absolute; top:-3px; left:50%; width:6px; height:6px; border-radius:50%; background:var(--gold-soft); box-shadow:0 0 10px var(--gold-soft)}
@keyframes mapring{to{transform:rotate(360deg)}}
.map-coord{position:absolute; right:38px; bottom:24px; z-index:6; font-family:var(--sans); font-weight:700; font-size:.62rem; letter-spacing:.05em; text-transform:uppercase; color:rgba(252,252,252,.4)}
.map-text .map-locs{display:flex; gap:8px; flex-wrap:wrap; margin-top:22px}
.map-text .map-locs span{font-family:var(--sans); font-weight:700; font-size:.62rem; letter-spacing:.03em; text-transform:uppercase; color:var(--gold-soft); border:1px solid rgba(212,175,55,.24); padding:6px 12px; border-radius:999px}
@media(max-width:980px){ .map-deco,.mapsec::after{display:none} }

/* ---------- creative CTA ---------- */
/* ctasec: canvas now lives inside cta-shell, no section overflow needed */
.ctasec{position:relative; overflow:visible}
/* ctaField canvas — inside cta-shell card, clipped by its overflow:hidden */
#ctaField{position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.55; border-radius:22px}
.ctasec::before{content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background-image:repeating-linear-gradient(0deg,rgba(26,20,12,.04) 0 1px,transparent 1px 56px),
  repeating-linear-gradient(90deg,rgba(26,20,12,.04) 0 1px,transparent 1px 56px)}
.ctasec::after{content:""; position:absolute; top:-20%; right:-10%; width:60%; height:140%; z-index:0; pointer-events:none;
  background:radial-gradient(ellipse,rgba(207,173,102,.07),transparent 68%)}
.ctasec > .container-xxl{position:relative; z-index:2}
.cta-shell{display:grid; grid-template-columns:1.05fr .95fr; align-items:stretch; min-height:520px; position:relative; background:#fff; border:1px solid var(--hairline);
  border-radius:22px; overflow:hidden; box-shadow:0 30px 80px rgba(37,37,37,.14); transition:transform .25s var(--ease)}
.cta-shine{z-index:6}
.cta-media{position:relative; min-height:480px; height:100%; overflow:hidden; display:flex; align-items:flex-start; z-index:1}
.cta-body{padding:clamp(34px,4vw,56px); display:flex; flex-direction:column; justify-content:center; position:relative; z-index:1}
.cta-media img{position:absolute; inset:0; width:100%; height:112%; object-fit:cover}
.cta-media-scrim{position:absolute; inset:0; background:linear-gradient(160deg, rgba(12,11,8,.25), rgba(12,11,8,.72))}
.cta-media-badge{position:relative; z-index:2; margin:26px; display:inline-flex; align-items:center; gap:9px;
  background:rgba(12,11,8,.45); backdrop-filter:blur(6px); border:1px solid rgba(237,224,187,.28); color:var(--champagne);
  font-family:var(--sans); font-weight:700; font-size:.62rem; letter-spacing:.05em; text-transform:uppercase; padding:9px 14px; border-radius:999px}
.cta-media-quote{position:absolute; left:30px; bottom:30px; z-index:2; font-family:var(--serif); font-size:clamp(1.4rem,2.2vw,2.2rem); color:#fff; line-height:1.15; font-weight:700; letter-spacing:-0.02em}
.cta-media-quote em{color:var(--gold-soft); font-style:normal; font-weight:800}
.cta-rail{margin-top:26px; border-top:1px solid var(--hairline)}
.cta-row{display:flex; align-items:center; gap:16px; padding:18px 4px; border-bottom:1px solid var(--hairline); transition:padding-left .35s var(--ease)}
.cta-row:hover{padding-left:12px}
.cta-row .cr-k{font-family:var(--sans); font-weight:700; font-size:.62rem; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); width:92px; flex:none}
.cta-row .cr-v{font-family:var(--sans); font-size:1.05rem; color:var(--ink); flex:1; font-weight:500}
.cta-row .cr-a{color:var(--gold-deep); font-size:1.1rem; transition:transform .3s var(--ease)}
.cta-row:hover .cr-v{color:var(--gold-deep)} .cta-row:hover .cr-a{transform:translateX(5px)}
@media(max-width:860px){ .cta-shell{grid-template-columns:1fr; min-height:0} .cta-media{min-height:280px; height:auto} }

/* ---- tscard2 — kept for backwards compat ---- */
.tscard2{display:none}

/* ---- Portrait-Split testimonial card (tspc) ---- */
.ts-swiper .swiper-slide{height:auto}
.tspc{
  display:grid; grid-template-columns:42% 58%; height:460px;
  border-radius:20px; overflow:hidden; border:1px solid rgba(237,224,187,.18);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
  box-shadow:0 8px 40px rgba(0,0,0,.35)
}
.swiper-slide-active .tspc,.swiper-slide-next .tspc{box-shadow:0 20px 60px rgba(0,0,0,.5)}
/* photo pane */
.tspc-img{position:relative; overflow:hidden; clip-path:polygon(0 0,94% 0,100% 100%,0 100%)}
.tspc-img img{width:100%; height:100%; object-fit:cover; transition:transform .8s var(--ease)}
.swiper-slide-active .tspc-img img{transform:scale(1.04)}
.tspc-img::after{content:""; position:absolute; inset:0;
  background:linear-gradient(135deg,rgba(37,37,37,.25) 0%,rgba(37,37,37,.55) 100%)}
.tspc-loc{position:absolute; bottom:16px; left:16px; z-index:2;
  font-family:var(--sans); font-weight:700; font-size:.6rem; letter-spacing:.05em; text-transform:uppercase;
  color:var(--gold-soft); background:rgba(37,37,37,.55); backdrop-filter:blur(5px);
  padding:6px 12px; border-radius:999px; border:1px solid rgba(212,175,55,.25)}
/* content pane */
.tspc-body{
  background:rgba(255,255,255,.04); display:flex; flex-direction:column;
  justify-content:space-between; padding:36px 32px; position:relative; overflow:hidden
}
.tspc-body::before{content:""; position:absolute; inset:0;
  background:linear-gradient(135deg,rgba(207,173,102,.06),transparent 60%); pointer-events:none}
.tspc-idx{font-family:var(--sans); font-weight:700; font-size:.7rem; letter-spacing:.05em;
  color:rgba(212,175,55,.55); margin-bottom:6px}
.tspc-stars{font-size:.85rem; color:var(--gold); letter-spacing:.12em; margin-bottom:18px}
blockquote.tspc-quote{
  font-family:var(--sans); font-size:clamp(1.1rem,1.9vw,1.48rem); color:#f0ebe0;
  line-height:1.55; margin:0 0 auto; padding:0; border:none; font-style:normal; font-weight:400; flex:1
}
.tspc-who{border-top:1px solid rgba(237,224,187,.16); padding-top:18px; margin-top:18px}
.tspc-name{font-family:var(--serif); font-size:1.1rem; color:#fff; font-weight:600; letter-spacing:-0.01em}
.tspc-role{font-family:var(--sans); font-weight:700; font-size:.62rem; letter-spacing:.03em;
  text-transform:uppercase; color:rgba(252,252,252,.55); margin-top:4px}
/* mobile: stack vertically */
@media(max-width:700px){
  .tspc{grid-template-columns:1fr; grid-template-rows:240px 1fr; height:auto}
  .tspc-img{clip-path:polygon(0 0,100% 0,100% 86%,0 100%)}
  .tspc-body{padding:24px}
  blockquote.tspc-quote{font-size:1.1rem}
}
.tscard2{position:relative; background:rgba(255,255,255,.04); border:1px solid rgba(237,224,187,.16);
  border-radius:20px; padding:40px 36px 32px; display:flex; flex-direction:column; height:100%;
  box-sizing:border-box; overflow:hidden; transition:background .4s, border-color .4s, transform .4s var(--ease)}
.tscard2.alt{background:rgba(207,173,102,.07); border-color:rgba(212,175,55,.28)}
.swiper-slide-active .tscard2{background:rgba(255,255,255,.08); border-color:rgba(212,175,55,.5); transform:translateY(-6px)}
.swiper-slide-active .tscard2.alt{background:rgba(207,173,102,.16)}
/* large number badge */
.tc2-num{position:absolute; top:18px; right:26px; font-family:var(--sans); font-weight:700; font-size:.7rem; letter-spacing:.05em;
  color:rgba(212,175,55,.5); border:1px solid rgba(212,175,55,.22); padding:4px 10px; border-radius:999px}
/* accent diagonal strip */
.tc2-accent{position:absolute; left:0; top:0; bottom:0; width:4px;
  background:linear-gradient(180deg,var(--gold),rgba(212,175,55,.15)); border-radius:20px 0 0 20px; opacity:.7;
  transition:opacity .4s}
.swiper-slide-active .tc2-accent{opacity:1; width:5px}
.tscard2.alt .tc2-accent{background:linear-gradient(180deg,var(--gold-soft),rgba(200,162,74,.1))}
/* quote mark */
.tc2-qm{font-family:var(--sans); font-size:4rem; color:var(--gold); line-height:.7; margin-bottom:8px; opacity:.6; font-weight:800}
.tc2-content{flex:1}
.tc2-quote{font-family:var(--sans); font-size:clamp(1.05rem,1.8vw,1.4rem); color:#f0ebe0; line-height:1.55; margin:8px 0 28px; font-weight:400}
/* footer */
.tc2-foot{display:flex; align-items:center; gap:14px; padding-top:20px; border-top:1px solid rgba(237,224,187,.14)}
.tc2-av{width:50px; height:50px; border-radius:50%; overflow:hidden; border:2px solid rgba(212,175,55,.35); flex-shrink:0}
.tc2-av img{width:100%; height:100%; object-fit:cover}
.tc2-meta{flex:1; min-width:0}
.tc2-name{font-family:var(--serif); font-size:1.05rem; color:#fff; line-height:1.1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.tc2-role{font-family:var(--sans); font-weight:700; font-size:.6rem; letter-spacing:.03em; text-transform:uppercase; color:rgba(252,252,252,.55); margin-top:4px}
.tc2-stars{color:var(--gold); font-size:.78rem; letter-spacing:.1em; flex-shrink:0}
@media(max-width:640px){.tscard2{padding:28px 24px 24px} .tc2-qm{font-size:4.5rem} .tc2-quote{font-size:1.1rem} .tc2-num{right:18px}}
.ts-header{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; margin-bottom:20px}
.ts-header .kicker{color:var(--gold-soft)}
.ts-header h2{color:#fff; margin-top:14px}
.ts-controls{display:flex; flex-direction:column; align-items:flex-end; gap:14px; flex-shrink:0}
.ts-counter{font-family:var(--sans); font-weight:700; font-size:1.05rem; color:rgba(252,252,252,.5); display:flex; align-items:baseline; gap:6px}
.ts-counter span:first-child{font-size:2rem; color:var(--gold-soft); line-height:1}
.ts-sep{color:rgba(252,252,252,.3)}
.ts-nav{display:flex; gap:10px}
.ts-prev,.ts-next{width:52px; height:52px; border-radius:50%; border:1px solid rgba(252,252,252,.25); background:none; color:var(--champagne); font-size:1.2rem; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all .3s var(--ease)}
.ts-prev:hover,.ts-next:hover{background:var(--gold); border-color:var(--gold); color:#0c0b08}
.ts-progress{height:2px; background:rgba(237,224,187,.12); margin-bottom:36px; border-radius:2px; overflow:hidden}
.ts-bar{height:100%; background:var(--gold); border-radius:2px; transition:width .4s var(--ease); width:16.6%}
.ts-swiper{overflow:hidden; padding-bottom:4px}
.ts-swiper .swiper-slide{height:auto; opacity:.55; transform:scale(.97); transition:opacity .5s var(--ease), transform .5s var(--ease)}
.ts-swiper .swiper-slide-active{opacity:1; transform:scale(1)}
.tscard{height:100%; background:rgba(255,255,255,.05); border:1px solid rgba(237,224,187,.14); border-radius:18px; padding:36px 32px; display:flex; flex-direction:column; position:relative; overflow:hidden; box-sizing:border-box}
.swiper-slide-active .tscard{background:rgba(255,255,255,.09); border-color:rgba(212,175,55,.32)}
.tscard::before{content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:linear-gradient(180deg,var(--gold),var(--gold-deep)); opacity:0; transition:opacity .4s var(--ease)}
.swiper-slide-active .tscard::before{opacity:1}
.tscard-top{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:10px}
.tscard-qmark{font-family:var(--serif); font-size:5.5rem; color:var(--gold); line-height:.6; opacity:.7}
.tscard-stars{font-size:.8rem; color:var(--gold); letter-spacing:.14em}
.tscard-quote{font-family:var(--serif); font-size:clamp(1.1rem,1.8vw,1.5rem); color:#f4efe4; line-height:1.45; margin:10px 0 24px; flex:1}
.tscard-person{display:flex; align-items:center; gap:14px; margin-top:auto}
.tscard-av{width:52px; height:52px; border-radius:50%; overflow:hidden; border:1px solid rgba(212,175,55,.3); flex-shrink:0}
.tscard-av img{width:100%; height:100%; object-fit:cover}
.tscard-name{font-family:var(--serif); font-size:1.1rem; color:#fff; line-height:1.1}
.tscard-role{font-family:var(--sans); font-weight:700; font-size:.62rem; letter-spacing:.03em; text-transform:uppercase; color:rgba(252,252,252,.55); margin-top:4px}
.tscard-loc{position:absolute; top:22px; right:22px; font-family:var(--sans); font-weight:700; font-size:.6rem; letter-spacing:.03em; text-transform:uppercase; color:var(--gold-deep); background:rgba(212,175,55,.10); border:1px solid rgba(212,175,55,.18); padding:5px 10px; border-radius:999px}
@media(max-width:640px){.ts-header{flex-direction:column; align-items:flex-start} .ts-controls{align-items:flex-start; flex-direction:row; justify-content:space-between; width:100%} .tscard{padding:26px 22px} .tscard-qmark{font-size:4rem}}

/* ---- About + CTA responsive ---- */
@media(max-width:640px){
  .about-kpis{flex-direction:column; gap:20px}
  .about-kpis .akpi{display:flex; align-items:center; gap:14px}
  .about-kpis .akpi .ak-n{font-size:1.8rem}
  .mvcard{padding:28px 22px}
  .cta-shell{grid-template-columns:1fr; min-height:0}
  .cta-media{min-height:240px; height:auto}
  .cta-media-quote{font-size:1.3rem}
  .cta-body{padding:26px 22px}
  .cta-row .cr-k{width:64px; font-size:.58rem}
  .cta-row .cr-v{font-size:.94rem}
}
@media(max-width:480px){
  .about-head{font-size:2rem}
  .mv-grid{margin-top:28px}
}

/* ================================================================
   RESPONSIVE SYSTEM — 320px → 4K
   ================================================================ */

/* ── 1440px ── */
@media(max-width:1440px){
  .wrap,.wrap-wide{padding:0 40px}
  .diff-header{padding:80px 60px 48px}
  .diff-cta{padding:30px 60px 48px}
}

/* ── 1200px ── */
@media(max-width:1200px){
  .wrap,.wrap-wide{padding:0 32px}
  .h-hero{font-size:clamp(2rem,5.5vw,3.6rem)}
  .h-xl{font-size:clamp(2.2rem,5vw,3.8rem)}
  .h-lg{font-size:clamp(1.9rem,4.2vw,3rem)}
  .diff-strips{height:480px}
  .dwt-inner{grid-template-columns:240px 1fr 240px}
  .wwd-grid{gap:20px}
}

/* ── 980px — tablet landscape ── */
@media(max-width:980px){
  :root{--nav-h:72px}
  .wrap,.wrap-wide{padding:0 28px}
  .section{padding:88px 0}
  .section-sm{padding:60px 0}

  /* hero */
  .hero-inner{padding:140px 0 100px}
  .h-hero{font-size:clamp(2rem,7vw,3.2rem)}

  /* dwt */
  .dwt-inner{grid-template-columns:1fr 1fr; grid-template-rows:220px 220px auto 180px}
  .dwt-tl{grid-column:1;grid-row:1;border-radius:0}
  .dwt-tr{grid-column:2;grid-row:1;border-radius:0}
  .dwt-center{grid-column:1/3;grid-row:3;padding:44px 28px}
  /* dwt-bl/bc/br now inside .dwt-bottom — no grid-column overrides needed */

  /* diff */
  .diff-strips{height:auto;flex-direction:column}
  .diff-strip{flex:none;height:auto;border-right:none;border-bottom:1px solid rgba(37,37,37,.1);padding:0}
  .diff-strip:last-child{border-bottom:none}
  .diff-strip:hover,.diff-strip.active{flex:none}
  .ds-num{display:none}
  .ds-content{position:static;opacity:1;transform:none;padding:28px 36px;pointer-events:all;grid-template-columns:1fr}
  .ds-content-right{display:none}
  .ds-line{transform:scaleX(1)}
  .diff-strip .ds-vnum{display:none}
  .diff-strip::before{display:none}
  .diff-header{padding:72px 36px 44px}
  .diff-cta{padding:28px 36px 44px}

  /* map */
  #mapStage{padding:72px 0 56px}
  .map-canvas-full{padding:0 28px}
  #globeCanvas{height:clamp(280px,55vw,460px)}
  .map-addrs{padding:24px 28px 32px}
  .plist{grid-template-columns:repeat(3,1fr)}

  /* wwd */
  .wwd-grid{grid-template-columns:1fr 1fr;gap:20px}
  .wwd-card--mid{margin-top:0}
  .wwd-card:nth-child(3){grid-column:1/-1;max-width:480px}
  .wwd-header{grid-template-columns:1fr;gap:14px;margin-bottom:44px}

  /* testimonials */
  .tspc{height:auto;min-height:360px}
  .vot-sec .swiper-slide{width:92vw!important}

  /* cta */
  .cta-shell{grid-template-columns:1fr}
  .cta-media{min-height:280px;height:auto}

  /* ncta */
  .ncta-inner{grid-template-columns:1fr;padding:64px 36px}
  .ncta-right{display:none}
}

/* ── 768px — tablet portrait ── */
@media(max-width:768px){
  :root{--nav-h:64px}
  .wrap,.wrap-wide{padding:0 20px}
  .section{padding:72px 0}
  .section-sm{padding:48px 0}
  .wwd-sec{padding:72px 0}
  #mapStage{padding:80px 0 60px}
  .h-hero{font-size:clamp(1.9rem,8vw,2.8rem)}
  .h-xl{font-size:clamp(1.8rem,7vw,2.8rem)}
  .h-lg{font-size:clamp(1.7rem,6vw,2.4rem)}
  .h-md{font-size:clamp(1.4rem,5vw,2rem)}
  .lede{font-size:1rem}

  /* hero */
  .hero{min-height:90svh}
  .hero-inner{padding:100px 0 64px}
  .hero h1,.hero .lede{text-align:center}

  /* map */
  .plist{grid-template-columns:repeat(2,1fr)}
  .map-head{padding:0 20px 36px}
  #globeCanvas{height:clamp(240px,60vw,380px)}
  .map-canvas-full{padding:0 20px}
  .map-addrs{padding:20px 20px 28px}

  /* diff */
  .diff-header{padding:60px 20px 36px}
  .diff-title{font-size:clamp(1.6rem,5vw,2.2rem)}
  .ds-content{padding:22px 20px}

  /* wwd */
  .wwd-grid{grid-template-columns:1fr}
  .wwd-card:nth-child(3){max-width:100%}
  .wwd-img{aspect-ratio:16/9}

  /* testimonials portrait-split */
  .tspc{grid-template-columns:1fr;grid-template-rows:220px 1fr;height:auto}
  .tspc-img{clip-path:polygon(0 0,100% 0,100% 84%,0 100%);min-height:220px}
  .tspc-body{padding:22px 20px}
  blockquote.tspc-quote{font-size:1.05rem}

  /* ts header */
  .ts-header,.vot-head{flex-direction:column;align-items:flex-start;gap:16px}

  /* blog */
  .bfeature{min-height:280px}
  .bcard .bbody{padding:16px}

  /* cta */
  .cta-body{padding:22px 18px}
  .cta-row .cr-k{width:56px;font-size:.56rem}
  .cta-media-quote{font-size:1.2rem;left:18px;bottom:18px}

  /* ncta */
  .ncta-inner{padding:56px 20px}
  .ncta-h{font-size:clamp(1.8rem,6vw,2.8rem)}
  .ncta-btns{flex-direction:column;gap:10px}
  .ncta-btns .btn{width:100%;justify-content:center}

  /* footer */
  .foot-bottom{flex-direction:column;gap:10px;text-align:center}
}

/* ── 640px — large mobile ── */
@media(max-width:640px){
  .h-hero{font-size:clamp(1.7rem,9vw,2.4rem)}
  .h-xl{font-size:clamp(1.6rem,8vw,2.2rem)}
  .h-lg{font-size:clamp(1.5rem,7vw,2rem)}
  .kicker{font-size:.66rem;gap:10px;margin-bottom:18px}
  .kicker::before,.kicker.center::after{width:22px}
  .btn{padding:14px 22px;font-size:.74rem}

  /* dwt */
  /* dwt-inner removed — layout now uses dwt-top / dwt-body / dwt-bottom */
  .dwt-stats{gap:14px}.dwt-sn{font-size:1.7rem}.dwt-divider{height:32px}

  /* map */
  .plist{grid-template-columns:repeat(2,1fr);gap:10px}
  #globeCanvas{height:clamp(220px,70vw,340px)}

  /* diff */
  .ds-title{font-size:1.2rem}

  /* wod slider */
  .wwd-grid .swiper-slide{width:80vw!important}

  /* ts */
  .tspc-img{min-height:180px}
  blockquote.tspc-quote{font-size:1rem;line-height:1.5}

  /* blog */
  .bcard h4{font-size:1.05rem}

  /* cta */
  .cta-row .cr-k{display:none}
  .cta-media{min-height:220px}

  /* footer */
  .footer-grid{gap:28px}
}

/* ── 480px — small mobile ── */
@media(max-width:480px){
  :root{--nav-h:60px}
  .wrap,.wrap-wide{padding:0 16px}
  .section{padding:56px 0}
  .section-sm{padding:40px 0}
  .wwd-sec{padding:56px 0}
  #mapStage{padding:60px 0 44px}
  .h-hero{font-size:clamp(1.6rem,10vw,2.2rem);line-height:1.06}
  .h-xl{font-size:clamp(1.4rem,9vw,2rem)}
  .h-lg{font-size:clamp(1.3rem,8vw,1.8rem)}
  .btn{padding:13px 18px;font-size:.7rem;gap:8px}

  .map-canvas-full{padding:0 12px}
  #globeCanvas{height:clamp(200px,75vw,300px)}
  .map-addrs{padding:14px 12px 20px}
  .plist{gap:8px}
  .pli-img{height:130px}
  .pli-body{padding:10px 12px 12px}
  .pli-name{font-size:.88rem}

  .diff-header{padding:48px 16px 28px}
  .diff-cta{padding:20px 16px 32px}
  .ds-content{padding:18px 16px}

  .hero{min-height:85svh}
  .hero-inner{padding:80px 0 56px}
}

/* ── 380px ── */
@media(max-width:380px){
  .hero{min-height:80svh}
  .h-hero{font-size:1.7rem}
  .h-xl{font-size:1.4rem}
  .h-lg{font-size:1.25rem}
  .btn{padding:12px 14px;font-size:.68rem}
  .plist{grid-template-columns:1fr 1fr;gap:7px}
  .pli-img{height:110px}
  blockquote.tspc-quote{font-size:.95rem}
}

/* ── 320px — minimum ── */
@media(max-width:320px){
  :root{--nav-h:56px}
  .hero{min-height:75svh}
  .wrap,.wrap-wide{padding:0 12px}
  .section{padding:48px 0}
  .wwd-sec{padding:48px 0}
  #mapStage{padding:52px 0 36px}
  .h-hero{font-size:1.55rem;line-height:1.05}
  .h-xl{font-size:1.3rem}
  .h-lg{font-size:1.18rem}
  .btn{padding:11px 12px;font-size:.66rem;gap:6px}
  .kicker{font-size:.6rem;gap:8px}
  .kicker::before,.kicker.center::after{width:16px}
  .nav-logo img{height:18px}
  #globeCanvas{height:clamp(180px,80vw,260px)}
  .plist{grid-template-columns:1fr 1fr;gap:6px}
  .pli-img{height:90px}
  .pli-name{font-size:.8rem}
  .footer{padding:48px 0 22px}
  .foot-bottom{font-size:.62rem}
}

/* ── 1920px — Full HD ── */
@media(min-width:1920px){
  :root{--nav-h:96px;--maxw:1560px}
  .wrap-wide{max-width:1800px}
  .section{padding:140px 0}
  .wwd-sec{padding:140px 0}
  #mapStage{padding:140px 0 100px}
  .h-hero{font-size:clamp(4rem,3.8vw,6rem)}
  .h-xl{font-size:clamp(3.5rem,3.2vw,5.5rem)}
  .h-lg{font-size:clamp(2.8rem,2.8vw,4.2rem)}
  .lede{font-size:1.3rem}
  .btn{padding:20px 36px;font-size:.86rem}
  #globeCanvas{height:clamp(480px,40vw,640px)}
  .diff-strips{height:600px}
}

/* ── 2560px — 2K ── */
@media(min-width:2560px){
  :root{--nav-h:108px;--maxw:2000px}
  .wrap-wide{max-width:2300px}
  .section{padding:180px 0}
  .wwd-sec{padding:180px 0}
  #mapStage{padding:180px 0 130px}
  .h-hero{font-size:clamp(5rem,3.5vw,8rem)}
  .h-xl{font-size:clamp(4rem,3vw,6.5rem)}
  .h-lg{font-size:clamp(3rem,2.5vw,5rem)}
  .lede{font-size:1.5rem}
  #globeCanvas{height:clamp(600px,40vw,800px)}
  .diff-strips{height:680px}
}

/* ── 3840px — 4K ── */
@media(min-width:3840px){
  :root{--nav-h:130px;--maxw:2800px}
  .wrap-wide{max-width:3400px}
  .section{padding:240px 0}
  .wwd-sec{padding:240px 0}
  #mapStage{padding:240px 0 180px}
  .h-hero{font-size:clamp(7rem,3vw,11rem)}
  .h-xl{font-size:clamp(5.5rem,2.5vw,9rem)}
  .h-lg{font-size:clamp(4rem,2vw,6.5rem)}
  .lede{font-size:2rem}
  .btn{padding:26px 52px;font-size:1.05rem;gap:14px}
  #globeCanvas{height:clamp(800px,35vw,1100px)}
}



/* ================================================================
   ENQUIRY POD — floating stepped conversation widget
   Completely standalone, zero effect on page layout
   ================================================================ */

/* --- floating trigger button --- */
.eq-trigger{
  position:fixed; bottom:36px; right:36px; z-index:9000;
  width:68px; height:68px; border-radius:50%;
  background:var(--gold); border:none; cursor:pointer;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px;
  box-shadow:0 8px 32px rgba(207,173,102,.45);
  transition:transform .4s var(--ease), box-shadow .3s var(--ease), opacity .4s var(--ease);
  color:#fff; font-family:var(--sans); font-weight:700; font-size:.48rem; letter-spacing:.03em; text-transform:uppercase;
  opacity:0; transform:scale(0); pointer-events:none
}
.eq-trigger.eq-show{opacity:1; transform:scale(1); pointer-events:all}
.eq-trigger.eq-show:hover{transform:scale(1.08); box-shadow:0 12px 40px rgba(207,173,102,.6)}
.eq-trigger svg{flex-shrink:0}
/* pulse ring */
.eq-trigger::before,.eq-trigger::after{
  content:""; position:absolute; inset:-6px; border-radius:50%;
  border:1.5px solid rgba(207,173,102,.4); animation:eqPulse 2.4s ease-out infinite
}
.eq-trigger::after{animation-delay:1.2s; inset:-12px; border-color:rgba(207,173,102,.2)}
@keyframes eqPulse{0%{transform:scale(.9);opacity:1}100%{transform:scale(1.4);opacity:0}}

/* when pod is open, hide trigger */
body.eq-open .eq-trigger{transform:scale(0); opacity:0; pointer-events:none}

/* --- pod shell --- */
.eq-pod{
  position:fixed; bottom:36px; right:36px; z-index:9001;
  width:420px; max-width:calc(100vw - 32px);
  background:#0f0d0a;
  border-radius:24px; overflow:hidden;
  box-shadow:0 32px 80px rgba(0,0,0,.55), 0 0 0 1px rgba(212,175,55,.18);
  transform:translateY(30px) scale(.95); opacity:0; pointer-events:none;
  transition:transform .5s var(--ease), opacity .4s var(--ease)
}
.eq-pod.open{transform:none; opacity:1; pointer-events:all}

/* gold top accent */
.eq-pod-top{height:3px; background:linear-gradient(90deg,var(--gold),rgba(212,175,55,.3))}

/* progress bar */
.eq-progress{height:2px; background:rgba(212,175,55,.12)}
.eq-progress-fill{height:100%; background:var(--gold); transition:width .5s var(--ease); width:0%}

/* pod header */
.eq-head{display:flex; align-items:center; justify-content:space-between;
  padding:22px 26px 0}
.eq-step-label{font-family:var(--sans); font-weight:700; font-size:.58rem; letter-spacing:.05em;
  color:rgba(212,175,55,.55); text-transform:uppercase}
.eq-close{width:36px; height:36px; border-radius:50%; border:1px solid rgba(212,175,55,.2);
  background:rgba(255,255,255,.04); cursor:pointer; color:rgba(252,252,252,.7);
  display:flex; align-items:center; justify-content:center; transition:all .25s var(--ease)}
.eq-close:hover{background:var(--gold); border-color:var(--gold); color:#fff; transform:rotate(90deg)}

/* steps container */
.eq-steps{overflow:hidden}
.eq-step{display:none; padding:20px 26px 28px; animation:eqFadeIn .4s var(--ease) both}
.eq-step.active{display:block}
@keyframes eqFadeIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* question */
.eq-q{font-family:var(--serif); font-size:1.5rem; color:#f0ebe0;
  line-height:1.2; margin-bottom:20px}
.eq-q span{color:var(--gold-soft)}

/* choice grid */
.eq-choices{display:grid; grid-template-columns:1fr 1fr; gap:10px}
.eq-choice{
  padding:14px 16px; border-radius:12px; border:1px solid rgba(212,175,55,.15);
  background:rgba(255,255,255,.04); cursor:pointer; text-align:left;
  color:rgba(252,252,252,.8); font-family:var(--sans); font-size:.82rem;
  transition:all .25s var(--ease); display:flex; align-items:center; gap:10px
}
.eq-choice:hover{border-color:rgba(212,175,55,.5); background:rgba(212,175,55,.08); color:#fff}
.eq-choice.selected{border-color:var(--gold); background:rgba(212,175,55,.15); color:var(--gold)}
.eq-choice-icon{font-size:1.1rem; flex-shrink:0; opacity:.7}
.eq-choice.full{grid-column:1/-1}

/* text inputs */
.eq-field{
  width:100%; padding:14px 16px; border-radius:12px;
  border:1px solid rgba(212,175,55,.15); background:rgba(255,255,255,.04);
  color:#f0ebe0; font-family:var(--sans); font-size:.88rem;
  margin-bottom:10px; outline:none; transition:border-color .25s var(--ease);
  box-sizing:border-box
}
.eq-field::placeholder{color:rgba(252,252,252,.35)}
.eq-field:focus{border-color:rgba(212,175,55,.5)}

/* nav row */
.eq-nav{display:flex; align-items:center; justify-content:space-between;
  padding:0 26px 24px; gap:12px}
.eq-back{background:none; border:1px solid rgba(212,175,55,.18); border-radius:999px;
  color:rgba(212,175,55,.6); font-family:var(--sans); font-weight:700; font-size:.62rem; letter-spacing:.03em;
  padding:10px 20px; cursor:pointer; transition:all .25s var(--ease)}
.eq-back:hover{border-color:var(--gold); color:var(--gold)}
.eq-next{flex:1; padding:14px 20px; border-radius:999px;
  background:var(--gold); border:none; cursor:pointer;
  color:#fff; font-family:var(--sans); font-weight:700; font-size:.72rem; letter-spacing:.03em;
  text-transform:uppercase; transition:all .25s var(--ease);
  display:flex; align-items:center; justify-content:center; gap:8px}
.eq-next:hover{background:var(--gold-deep,#b8823e); transform:translateY(-1px)}
.eq-next svg{transition:transform .25s var(--ease)}
.eq-next:hover svg{transform:translateX(3px)}

/* thank you screen */
.eq-thanks{padding:36px 26px 36px; text-align:center; display:none}
.eq-thanks.active{display:block; animation:eqFadeIn .5s var(--ease) both}
.eq-thanks-icon{
  width:64px; height:64px; border-radius:50%; background:rgba(108, 207, 102,.12);
  border:1.5px solid #7bcf66; margin:0 auto 20px;
  display:flex; align-items:center; justify-content:center;
  animation:eqCheckPop .6s .2s var(--ease) both
}
@keyframes eqCheckPop{from{transform:scale(0)}to{transform:scale(1)}}
.eq-thanks h3{font-family:var(--serif); font-size:1.6rem; color:#f0ebe0; margin:0 0 10px}
.eq-thanks p{font-family:var(--sans); font-size:.85rem; color:rgba(252,252,252,.6); margin:0 0 24px; line-height:1.6}
.eq-thanks-close{padding:13px 32px; border-radius:999px; background:rgba(212,175,55,.12);
  border:1px solid rgba(212,175,55,.3); color:var(--gold-soft); cursor:pointer;
  font-family:var(--sans); font-weight:700; font-size:.68rem; letter-spacing:.03em; transition:all .25s var(--ease)}
.eq-thanks-close:hover{background:var(--gold); border-color:var(--gold); color:#fff}

/* responsive */
@media(max-width:480px){
  .eq-trigger{bottom:20px; right:20px; width:60px; height:60px}
  .eq-pod{bottom:20px; right:16px; left:16px; width:auto; max-width:none; border-radius:20px}
  .eq-choices{grid-template-columns:1fr}
  .eq-choice.full{grid-column:1}
}


/* ================================================================
   DELIVERING WITH TRUST — Proper 3-row grid layout
   Row 1: 2 corner images (top)
   Row 2: center text
   Row 3: 3 images (bottom)
   ================================================================ */
.dwt-sec{
  background:#fff; overflow:hidden;
  display:flex; flex-direction:column; gap:0;
  align-items:stretch
}

/* ── TOP ROW ── */
.dwt-top{
  display:grid;
  grid-template-columns:1fr;
  min-height:clamp(180px,22vw,300px);
  align-items:stretch;
}
.dwt-spacer{ background:#fff }

/* ── CENTER ── */
.dwt-body{
  padding:clamp(32px,5vw,64px) clamp(20px,5vw,80px);
  text-align:center;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:#fff; position:relative; z-index:2; width:100%;
}

/* ── BOTTOM ROW ── */
.dwt-bottom{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  margin-top:0;
  height:clamp(180px,20vw,280px)
}

/* ── Images ── */
.dwt-img{ overflow:hidden; position:relative }
.dwt-img img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; display:block;
  transition:transform 1.4s cubic-bezier(.22,1,.36,1)
}
.dwt-img:hover img{ transform:scale(1.05) }

/* Top-left image — margin left + top + radius */
.dwt-tl{
  border-radius:18px;
  margin-left:16px;
  margin-top:16px
}
/* Top-right image — margin right + top + radius */
.dwt-tr{
  border-radius:18px;
  margin-right:16px;
  margin-top:16px
}
  border-radius:0 0 0 16px;
}

/* Bottom images — no border-radius */
.dwt-bl{ border-radius:0 }
.dwt-bc{ border-radius:0 }
.dwt-br{ border-radius:0 }

/* ── Text ── */
.dwt-kicker{
  font-family:var(--sans); font-weight:700; font-size:.68rem; letter-spacing:.05em;
  text-transform:uppercase; color:var(--gold-deep); margin-bottom:20px;
  display:flex; align-items:center; gap:14px
}
.dwt-kicker::before{content:''; width:28px; height:1px; background:var(--gold-deep)}
.dwt-headline{
  font-family:var(--serif); font-weight:400;
  font-size:clamp(1.9rem,3.2vw,3.8rem); line-height:1.1;
  letter-spacing:-0.02em; color:var(--ink); margin:0 0 28px
}
.dwt-lw{ display:block; overflow:hidden; line-height:1.2 }
.dwt-lw > span{ display:block }
.dwt-lw > span.gold{ color:var(--gold-deep) }

.dwt-stats-row{
  display:flex; align-items:center; justify-content:center; gap:28px;
  padding:22px 0; border-top:1px solid var(--hairline);
  width:100%; max-width:480px; margin-bottom:24px
}
.dwt-stat-item{ text-align:center }
.dwt-stat-n{
  display:block; font-family:var(--serif); font-size:1.9rem; font-weight:700;
  color:var(--gold-deep); line-height:1; letter-spacing:-0.03em
}
.dwt-stat-l{
  display:block; font-family:var(--sans); font-weight:700; font-size:.52rem; letter-spacing:.05em;
  text-transform:uppercase; color:var(--muted); margin-top:4px
}
.dwt-stat-div{ width:1px; height:34px; background:var(--hairline) }

.dwt-cta-link{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--sans); font-weight:700; font-size:.64rem; letter-spacing:.05em;
  text-transform:uppercase; color:var(--gold-deep);
  text-decoration:none; border-bottom:1px solid rgba(207,173,102,.4);
  padding-bottom:5px; transition:gap .28s ease, color .28s ease
}
.dwt-cta-link:hover{ color:var(--gold); gap:16px }
.dwt-cta-link svg{ transition:transform .28s ease }
.dwt-cta-link:hover svg{ transform:translateX(5px) }

/* ── Responsive ── */
@media(max-width:980px){
  .dwt-top{ grid-template-columns:1fr; min-height:clamp(140px,18vw,220px) }
  .dwt-bottom{ height:clamp(150px,18vw,220px) }
  .dwt-body{ padding:36px 48px }
}
@media(max-width:640px){
  .dwt-top{ grid-template-columns:1fr; min-height:clamp(100px,20vw,160px) }
  .dwt-bottom{ grid-template-columns:1fr 1fr 1fr; height:clamp(120px,28vw,170px) }
  .dwt-body{ padding:28px 24px }
  .dwt-headline{ font-size:clamp(1.7rem,6vw,2.4rem) }
  .dwt-stats-row{ gap:16px }
  .dwt-stat-n{ font-size:1.5rem }
}
@media(max-width:480px){
  .dwt-top{ grid-template-columns:1fr; min-height:clamp(80px,22vw,130px) }
  .dwt-bottom{ height:clamp(100px,28vw,145px) }
  .dwt-body{ padding:24px 16px }
  .dwt-headline{ font-size:clamp(1.5rem,7vw,2rem) }
  .dwt-stats-row{ gap:12px; flex-wrap:wrap; justify-content:center }
  .dwt-stat-div{ display:none }
}
@media(max-width:380px){
  .dwt-top{ grid-template-columns:1fr; min-height:80px }
  .dwt-bottom{ height:90px; grid-template-columns:1fr 1fr }
  .dwt-bc{ display:none }
  .dwt-headline{ font-size:1.45rem }
}
@media(max-width:320px){
  .dwt-top{ grid-template-columns:1fr; min-height:70px }
  .dwt-body{ padding:20px 12px }
  .dwt-headline{ font-size:1.3rem }
  .dwt-bottom{ grid-template-columns:1fr 1fr; height:80px }
}
.dwt-sec{margin-bottom:0}

/* ============================================================
   FULL-SCREEN SHOWCASE — single image, headline + chips
   ============================================================ */
.fss-sec{
  position:relative; background:var(--black);
  min-height:100vh; height:auto; overflow:hidden; margin:0; padding:0
}
.fss-bg{position:absolute; inset:0; z-index:0; overflow:hidden;}
.fss-bg img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center 30%
}
.fss-overlay{
  position:absolute; inset:0;
  background:
    linear-gradient(135deg,rgba(37,37,37,.88) 0%,rgba(37,37,37,.55) 35%,rgba(37,37,37,.15) 65%,transparent 100%),
    linear-gradient(to top,rgba(37,37,37,.8) 0%,rgba(37,37,37,.3) 30%,transparent 60%)
}
/* body: headline top-left, chips bottom-right */
.fss-body{
  position:relative; z-index:2; width:100%; min-height:100vh;
  display:grid; grid-template-columns:1fr; grid-template-rows:1fr auto;
  padding:clamp(100px,10vw,160px) clamp(40px,6vw,80px) 0; gap:0; box-sizing:border-box
}
.fss-tl{grid-column:1; grid-row:1; display:flex; flex-direction:column; justify-content:flex-start; align-self:start}
.fss-kicker{
  font-family:var(--sans); font-weight:700; font-size:.68rem; letter-spacing:.05em;
  text-transform:uppercase; color:var(--gold-soft); margin-bottom:20px;
  display:flex; align-items:center; gap:14px
}
.fss-kicker::before{content:""; width:32px; height:1px; background:var(--gold-soft)}
.fss-headline{
  font-family:var(--serif); font-weight:400;
  font-size:clamp(2rem,3.8vw,4rem); line-height:1.06;
  letter-spacing:-0.025em; color:#fff; margin:0;
  width:auto; max-width:none
}
.fss-headline em{color:var(--gold-soft); font-style:normal}
.fss-br{
  grid-column:1; grid-row:2;
  display:flex; flex-direction:row; gap:0; align-items:stretch; justify-content:flex-start;
  background:none; border-top:1px solid rgba(207,173,102,.2);
  border-left:none; padding:0; backdrop-filter:none;
  margin-left:calc(-1 * clamp(40px,6vw,80px));
  margin-right:calc(-1 * clamp(40px,6vw,80px))
}
.fss-feat{
  display:flex; align-items:center; gap:16px; flex:1;
  padding:28px 32px; border-right:1px solid rgba(207,173,102,.2);
  border-top:none; flex-direction:row; justify-content:flex-start;
  background:rgba(207,173,102,.1); backdrop-filter:blur(8px);
  transition:background .3s ease
}
.fss-feat:last-child{border-right:none}
.fss-feat:hover{background:rgba(10,9,7,.75)}
.fss-fn{
  font-family:var(--sans); font-size:clamp(1.8rem,3vw,2.8rem);
  font-weight:700; color:var(--gold); line-height:1;
  letter-spacing:-0.02em; flex-shrink:0; opacity:.95
}
.fss-ft{
  font-family:var(--serif); font-size:clamp(.95rem,1.4vw,1.2rem);
  color:#fff; line-height:1.3;  letter-spacing:-0.01em;
  align-self:center; text-shadow:0 2px 16px rgba(0,0,0,1)
}
/* FSS responsive — 980px */
@media(max-width:980px){
  .fss-body{padding:80px 32px 0; gap:0}
  .fss-headline{font-size:clamp(1.8rem,3.8vw,2.8rem)}
  .fss-br{margin-left:-32px; margin-right:-32px}
  .fss-fn{font-size:clamp(1.2rem,2.5vw,2rem)}
}
/* FSS responsive — 768px */
@media(max-width:768px){
  .fss-sec{min-height:auto}
  .fss-body{padding:80px 22px 0; gap:0; grid-template-rows:1fr auto; min-height:80svh}
  .fss-headline{font-size:clamp(1.6rem,4.5vw,2.4rem); letter-spacing:-0.02em}
  .fss-br{grid-column:1; grid-row:2; flex-direction:row; margin-left:-22px; margin-right:-22px}
  .fss-feat{padding:20px 18px}
  .fss-fn{font-size:1.3rem}
  .fss-ft{font-size:.82rem; line-height:1.3}
}
/* FSS responsive — 560px */
@media(max-width:560px){
  .fss-body{padding:70px 16px 0}
  .fss-headline{font-size:clamp(1.4rem,5vw,2rem)}
  .fss-br{margin-left:-16px; margin-right:-16px}
  .fss-feat{padding:16px 14px}
  .fss-fn{font-size:1.1rem}
  .fss-ft{font-size:.78rem}
}
/* FSS responsive — 480px: stack vertically */
@media(max-width:480px){
  .fss-sec{min-height:auto}
  .fss-body{padding:60px 14px 0; min-height:75svh}
  .fss-headline{font-size:clamp(1.3rem,5.5vw,1.8rem)}
  .fss-br{margin-left:-14px; margin-right:-14px; flex-direction:column}
  .fss-feat{border-right:none; border-top:1px solid rgba(207,173,102,.2); padding:16px 16px}
  .fss-fn{font-size:1.1rem}
  .fss-ft{font-size:.8rem}
}
/* FSS responsive — 380px */
@media(max-width:380px){
  .fss-body{padding:54px 12px 0}
  .fss-headline{font-size:clamp(1.35rem,9vw,2rem)}
  .fss-br{margin-left:-12px; margin-right:-12px}
  .fss-kicker{font-size:.58rem; gap:8px}
}
/* FSS responsive — 320px */
@media(max-width:320px){
  .fss-body{padding:48px 10px 0}
  .fss-headline{font-size:1.3rem; letter-spacing:-0.01em}
  .fss-br{margin-left:-10px; margin-right:-10px}
  .fss-fn{font-size:1rem}
  .fss-ft{font-size:.74rem}
}



/* VOT responsive — card layout */
@media(max-width:768px){
  .votc{grid-template-columns:40% 60%; height:clamp(260px,55vw,360px)}
  .votc-body{padding:24px 20px}
  .vot-title{font-size:clamp(1.6rem,5vw,2.4rem)}
  .vot-prev,.vot-next{width:40px; height:40px}
}
@media(max-width:560px){
  .votc{grid-template-columns:1fr; grid-template-rows:200px 1fr; height:auto; max-height:none}
  .votc-body{padding:20px 18px}
  blockquote.votc-quote{font-size:.95rem; line-height:1.55}
}
@media(max-width:480px){
  .votc{grid-template-rows:170px 1fr}
  .votc-body{padding:16px 14px}
  .votc-qm{font-size:3rem; line-height:1}
  blockquote.votc-quote{font-size:.9rem}
  .vot-head{gap:12px}
  .vot-nav-wrap{gap:14px}
}
@media(max-width:380px){
  .votc{grid-template-rows:140px 1fr}
  .vot-title{font-size:1.5rem}
  .votc-name{font-size:.9rem}
}
@media(max-width:320px){
  .votc{grid-template-rows:120px 1fr}
  .vot-progress-bar{margin-bottom:22px}
  .votc-body{padding:14px 12px}
  blockquote.votc-quote{font-size:.84rem}
}

/* ================================================================
   THE DHULEVA DIFFERENCE — Expanding Vertical Strips
   ================================================================ */
.diff-sec{
  background:var(--cream); position:relative;
  padding:0 0 0 0; overflow:hidden
}

/* header */
.diff-header{
  padding:80px 80px 48px;
  display:grid; grid-template-columns:1fr 1fr; align-items:end;
  gap:24px 60px;
  border-bottom:1px solid var(--hairline)
}
.diff-header-sub{
  font-family:var(--sans); font-size:.95rem; line-height:1.65;
  color:var(--body); max-width:380px; align-self:end
}
.diff-kicker{
  font-family:var(--sans); font-weight:700; font-size:.7rem; letter-spacing:.05em;
  text-transform:uppercase; color:var(--ink); opacity:.55; margin-bottom:14px;
  display:flex; align-items:center; gap:12px
}
.diff-kicker::before{content:''; width:22px; height:1px; background:currentColor}
.diff-title{
  font-family:var(--serif); font-weight:700;
  font-size:clamp(1.8rem,2.8vw,2.8rem); line-height:1.12;
  letter-spacing:-0.02em; color:var(--ink); margin:0; grid-column:1/-1
}
.diff-title em{color:var(--gold-soft); font-style:normal}

/* strips container */
.diff-strips{
  display:flex; height:520px;
}

/* each strip */
.diff-strip{
  flex:0 0 80px; position:relative; overflow:hidden;
  border-right:1px solid rgba(37,37,37,.10);
  cursor:pointer;
  transition:flex .9s cubic-bezier(.4,0,.2,1), background .7s ease;
  background:var(--paper)
}
.diff-strip:last-child{border-right:none}
.diff-strip:hover,.diff-strip.active{
  flex:1 1 0;
  background:var(--ink)
}

/* big background number */
.ds-num{
  position:absolute; bottom:-20px; left:16px;
  font-family:var(--serif); font-size:clamp(7rem,14vw,13rem);
  font-weight:800; line-height:1; letter-spacing:-0.05em;
  color:rgba(37,37,37,.06);
  transition:color .4s ease;
  pointer-events:none; white-space:nowrap; user-select:none
}
.diff-strip:hover .ds-num,.diff-strip.active .ds-num{
  color:rgba(207,173,102,.12)
}

/* content — hidden until strip expands */
.ds-content{
  position:absolute; inset:0;
  padding:48px 52px 40px;
  display:grid; grid-template-columns:1fr auto;
  align-content:end; gap:0 20px;
  opacity:0; transform:translateX(20px);
  transition:opacity .6s ease .25s, transform .6s ease .25s;
  pointer-events:none
}
.ds-content-left{display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end}
.ds-content-right{
  display:flex; align-items:flex-end; justify-content:flex-end;
  position:relative; overflow:hidden;
  width:260px; height:300px; flex-shrink:0; align-self:flex-end
}
.ds-content-right img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center;
  filter:saturate(.85) brightness(.85);
  transition:transform .8s ease
}
.diff-strip:hover .ds-content-right img,.diff-strip.active .ds-content-right img{transform:scale(1.06)}
.ds-img-overlay{
  position:relative; z-index:2; width:100%;
  padding:14px 16px;
  background:linear-gradient(to top, rgba(37,37,37,.85) 0%, transparent 80%);
  display:flex; align-items:flex-end; justify-content:space-between
}
.ds-img-num{
  font-family:var(--sans); font-size:.62rem; letter-spacing:.05em;
  color:rgba(207,173,102,.8); font-weight:700
}
.ds-img-tag{
  font-family:var(--sans); font-size:.56rem; letter-spacing:.1em;
  text-transform:uppercase; color:rgba(255,255,255,.55)
}
.diff-strip:hover .ds-content,.diff-strip.active .ds-content{
  opacity:1; transform:none; pointer-events:all
}

/* small number visible always (top-left corner) */
.diff-strip::before{
  content:attr(data-n);
  position:absolute; top:28px; left:0; right:0;
  text-align:center;
  font-family:var(--sans); font-size:.72rem; letter-spacing:.05em; font-weight:700;
  color:var(--gold-deep); transition:opacity .3s ease
}
.diff-strip:hover::before,.diff-strip.active::before{opacity:0}

.ds-title{
  font-family:var(--serif); font-size:clamp(1.4rem,2.2vw,2rem);
  font-weight:600; color:#fff; letter-spacing:-0.01em;
  margin-bottom:18px
}
.ds-line{
  width:40px; height:2px; background:var(--gold);
  margin-bottom:18px;
  transform:scaleX(0); transform-origin:left;
  transition:transform .65s ease .5s
}
.diff-strip:hover .ds-line,.diff-strip.active .ds-line{transform:scaleX(1)}
.ds-desc{
  font-family:var(--sans); font-size:.95rem; line-height:1.65;
  color:rgba(255,255,255,.65); margin-bottom:28px; max-width:320px
}
.ds-eq{
  font-family:var(--sans); font-weight:700; font-size:.62rem; letter-spacing:.05em;
  text-transform:uppercase; color:var(--gold-soft);
  padding:8px 14px; border:1px solid rgba(207,173,102,.3);
  border-radius:999px; display:inline-flex; width:fit-content; align-self:flex-start
}

/* vertical number strip when collapsed */
.diff-strip .ds-vnum{
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%) rotate(-90deg);
  font-family:var(--sans); font-size:.62rem; letter-spacing:.2em;
  text-transform:uppercase; color:rgba(37,37,37,.55); font-weight:500;
  white-space:nowrap; transition:opacity .3s ease
}
.diff-strip:hover .ds-vnum,.diff-strip.active .ds-vnum{opacity:0}

/* diff section CTA footer */
.diff-cta{
  padding:40px 80px 72px; background:var(--cream);
  border-top:1px solid var(--hairline);
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap
}
.diff-cta p{font-family:var(--sans); color:var(--body); font-size:.95rem; margin:0; max-width:440px}

/* responsive */
@media(max-width:980px){
  .diff-header{padding:64px 40px 40px; grid-template-columns:1fr}
  .diff-title{grid-column:1}
  .diff-strips{height:auto; flex-direction:column}
  .diff-strip{flex:none; height:auto; border-right:none;
    border-bottom:1px solid rgba(207,173,102,.12); padding:0;
    background:var(--paper)}
  .diff-strip:last-child{border-bottom:none}
  .diff-strip:hover,.diff-strip.active{flex:none; background:var(--paper)}
  .ds-num{display:none}
  .ds-content{position:static; opacity:1; transform:none;
    padding:32px 40px; pointer-events:all;
    grid-template-columns:1fr; gap:0}
  .ds-content-right{display:none}
  /* text was white (for dark expanded bg) — override to dark on light mobile bg */
  .ds-title{color:var(--ink) !important}
  .ds-desc{color:var(--body) !important}
  .ds-eq{color:var(--gold-deep) !important; border-color:rgba(207,173,102,.4) !important}
  .ds-line{transform:scaleX(1); background:var(--gold)}
  .diff-strip .ds-vnum{display:none}
  .diff-strip::before{display:none}
}
@media(max-width:640px){
  .diff-header{padding:60px 24px 36px}
  .diff-title{font-size:clamp(1.7rem,6vw,2.4rem)}
  .ds-content{padding:28px 24px; grid-template-columns:1fr}
  .ds-content-right{display:none}
  .ds-title{font-size:1.3rem}
}
@media(max-width:480px){
  .diff-header{padding:48px 16px 28px}
  .ds-content{padding:22px 16px}
  .diff-cta{padding:18px 16px 28px; flex-direction:column; gap:14px}
  .diff-cta p{font-size:.88rem}
  .ds-title{font-size:1.15rem}
}
@media(max-width:380px){
  .diff-header{padding:40px 14px 24px}
  .diff-kicker{font-size:.6rem}
  .diff-title{font-size:1.5rem}
  .ds-content{padding:18px 14px}
  .ds-title{font-size:1.05rem}
  .ds-desc{font-size:.84rem}
  .ds-eq{font-size:.56rem; padding:6px 10px}
}
@media(max-width:320px){
  .diff-header{padding:36px 12px 20px}
  .diff-title{font-size:1.3rem; line-height:1.2}
  .ds-content{padding:16px 12px}
  .ds-title{font-size:1rem}
  .ds-desc{font-size:.8rem}
  .diff-cta{padding:16px 12px 24px}
}


/* ================================================================
   VOICES OF TRUST — cinematic landscape slider, 2 per view
   ================================================================ */
.vot-sec{background:var(--cream); overflow:hidden}

/* header row */
.vot-head{
  display:flex; align-items:flex-end; justify-content:space-between;
  margin-bottom:16px; flex-wrap:wrap; gap:20px
}
.vot-kicker{font-family:var(--sans); font-weight:700; font-size:.7rem; letter-spacing:.05em;
  text-transform:uppercase; color:var(--gold-deep); margin-bottom:12px;
  display:flex; align-items:center; gap:12px}
.vot-kicker::before{content:''; width:22px; height:1px; background:var(--gold-deep)}
.vot-title{font-family:var(--serif); font-weight:700;
  font-size:clamp(1.8rem,3vw,3rem); line-height:1.1; letter-spacing:-0.02em;
  color:var(--ink); margin:0}
.vot-title em{color:var(--gold-soft); font-style:normal}

/* counter + arrows */
.vot-nav-wrap{display:flex; align-items:center; gap:24px; flex-shrink:0}
.vot-counter{font-family:var(--sans); font-weight:700; font-size:.78rem; letter-spacing:.03em; color:var(--muted)}
.vot-counter span:first-child{font-size:1.1rem; color:var(--gold-deep); font-weight:600}
.vot-sep{margin:0 6px; opacity:.4}
.vot-arrows{display:flex; gap:10px}
.vot-prev,.vot-next{
  width:48px; height:48px; border-radius:50%;
  border:1.5px solid var(--hairline-gold); background:transparent; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  color:var(--gold-deep); transition:all .25s ease
}
.vot-prev svg,.vot-next svg{width:20px; height:20px}
.vot-prev:hover,.vot-next:hover{background:var(--gold); border-color:var(--gold); color:#fff}

/* progress */
.vot-progress-bar{height:2px; background:var(--hairline); margin-bottom:36px; border-radius:2px}
.vot-bar{height:100%; background:var(--gold); border-radius:2px; width:16.6%;
  transition:width .4s ease}

/* swiper */
.vot-swiper{overflow:hidden}
.vot-swiper .swiper-slide{height:auto}

/* card — landscape horizontal split */
.votc{
  display:grid; grid-template-columns:38% 62%; height:clamp(280px,38vw,420px);
  border-radius:20px; overflow:hidden;
  box-shadow:0 4px 24px rgba(37,37,37,.09);
  background:var(--paper);
  transition:box-shadow .4s ease, transform .4s ease
}
.vot-swiper .swiper-slide-active .votc,
.vot-swiper .swiper-slide-next .votc{
  box-shadow:0 12px 48px rgba(37,37,37,.15)
}

/* left: photo */
.votc-img{position:relative; overflow:hidden}
.votc-img img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position:center top;
  transition:transform .9s ease
}
.vot-swiper .swiper-slide-active .votc-img img{transform:scale(1.05)}
.votc-img-overlay{
  position:absolute; inset:0; z-index:2;
  background:linear-gradient(180deg,rgba(37,37,37,.15) 0%,rgba(37,37,37,.65) 100%);
  display:flex; flex-direction:column; justify-content:space-between; padding:20px
}
.votc-loc{
  align-self:flex-start;
  font-family:var(--sans); font-weight:700; font-size:.56rem; letter-spacing:.05em; text-transform:uppercase;
  color:#fff; background:rgba(37,37,37,.5); backdrop-filter:blur(6px);
  padding:5px 12px; border-radius:999px; border:1px solid rgba(207,173,102,.3)
}
.votc-idx-bg{
  font-family:var(--serif); font-size:clamp(3.5rem,7vw,6rem); font-weight:800;
  color:rgba(255,255,255,.12); line-height:1; letter-spacing:-0.04em; align-self:flex-end
}

/* right: content */
.votc-body{
  padding:40px 36px 36px;
  display:flex; flex-direction:column; justify-content:space-between;
  background:var(--paper)
}
.votc-qm{
  font-family:var(--sans); font-size:3rem; font-weight:800;
  color:var(--gold); line-height:.65; opacity:.55; margin-bottom:16px
}
.votc-quote{
  font-family:var(--sans); font-size:1rem; line-height:1.7;
  color:var(--body); margin:0; flex:1
}
.votc-stars{font-size:.78rem; color:var(--gold); letter-spacing:.12em; margin:16px 0}
.votc-who{border-top:1px solid var(--hairline); padding-top:16px}
.votc-name{font-family:var(--serif); font-size:1.1rem; font-weight:600;
  color:var(--ink); letter-spacing:-0.01em; margin-bottom:4px}
.votc-role{font-family:var(--sans); font-weight:700; font-size:.58rem; letter-spacing:.03em;
  text-transform:uppercase; color:var(--muted)}

/* responsive */
@media(max-width:900px){
  .votc{grid-template-columns:1fr; grid-template-rows:220px 1fr; height:auto}
  .votc-idx-bg{font-size:3rem}
  .votc-body{padding:28px 24px 28px}
}
@media(max-width:640px){
  .vot-head{flex-direction:column; align-items:flex-start}
  .votc{grid-template-rows:200px 1fr}
  .votc-body{padding:22px 20px}
  .votc-quote{font-size:.92rem}
}
@media(max-width:480px){
  .vot-prev,.vot-next{width:40px; height:40px}
  .votc{grid-template-rows:180px 1fr}
  .votc-qm{font-size:2.4rem}
}


/* ================================================================
   WHAT WE DO / OUR IMPACT — editorial 3-card service section
   ================================================================ */
.wwd-sec{background:var(--paper); overflow:hidden; padding:112px 0}

/* header */
.wwd-header{
  display:grid; grid-template-columns:1fr 1fr; gap:24px 80px;
  align-items:end; margin-bottom:60px
}
.wwd-kicker{
  font-family:var(--sans); font-weight:700; font-size:.7rem; letter-spacing:.05em;
  text-transform:uppercase; color:var(--gold-deep); margin-bottom:14px;
  grid-column:1/-1;
  display:flex; align-items:center; gap:12px
}
.wwd-kicker::before{content:''; width:22px; height:1px; background:var(--gold-deep)}
.wwd-title{
  font-family:var(--serif); font-weight:700;
  font-size:clamp(2rem,3.5vw,3.2rem); line-height:1.1;
  letter-spacing:-0.02em; color:var(--ink); margin:0
}
.wwd-sub{
  font-family:var(--sans); font-size:.95rem; line-height:1.7;
  color:var(--body); margin:0; max-width:420px; align-self:end
}

/* grid — now a swiper */
.wwd-swiper{overflow:visible}
.wwd-swiper .swiper-slide{height:auto; display:flex}
.wwd-swiper .wwd-card{width:100%; display:flex; flex-direction:column}

/* image */
.wwd-img{
  position:relative; border-radius:20px; overflow:hidden;
  aspect-ratio:4/3
}
.wwd-img img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; display:block;
  transition:transform .9s cubic-bezier(.25,.46,.45,.94)
}
.wwd-card:hover .wwd-img img{transform:scale(1.06)}

/* pill badge — top left of image */
.wwd-pill{
  position:absolute; top:18px; left:18px; z-index:2;
  font-family:var(--sans); font-weight:700; font-size:.58rem; letter-spacing:.05em;
  text-transform:uppercase; color:var(--ink);
  background:rgba(252,252,252,.88); backdrop-filter:blur(8px);
  padding:7px 16px; border-radius:999px;
  box-shadow:0 2px 12px rgba(37,37,37,.10)
}

/* content below image */
.wwd-content{padding:24px 4px 0}
.wwd-name{
  font-family:var(--serif); font-weight:600;
  font-size:clamp(1.15rem,1.8vw,1.5rem); line-height:1.2;
  letter-spacing:-0.01em; color:var(--ink); margin:0 0 12px
}
.wwd-desc{
  font-family:var(--sans); font-size:.9rem; line-height:1.7;
  color:var(--body); margin:0 0 20px
}
.wwd-link{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--sans); font-weight:700; font-size:.65rem; letter-spacing:.05em;
  text-transform:uppercase; color:var(--gold-deep);
  text-decoration:none; border-bottom:1px solid var(--hairline-gold);
  padding-bottom:4px; transition:gap .25s ease, color .25s ease
}
.wwd-link svg{width:16px; height:16px; transition:transform .25s ease}
.wwd-link:hover{color:var(--gold); gap:12px}
.wwd-link:hover svg{transform:translateX(4px)}

/* responsive */
@media(max-width:980px){
  .wwd-grid{grid-template-columns:1fr 1fr}
  .wwd-card--mid{margin-top:0}
  .wwd-card:nth-child(3){grid-column:1/-1; max-width:480px}
  .wwd-header{grid-template-columns:1fr; gap:16px}
  .wwd-title{font-size:clamp(1.8rem,5vw,2.8rem)}
}
@media(max-width:640px){
  .wwd-grid{grid-template-columns:1fr}
  .wwd-card:nth-child(3){max-width:100%}
  .wwd-header{margin-bottom:44px}
  .wwd-img{aspect-ratio:16/9}
}
@media(max-width:480px){
  .wwd-content{padding:18px 0 0}
  .wwd-name{font-size:1.1rem}
}



@media(max-width:380px){
  .wwd-name{font-size:1rem}
  .wwd-desc{font-size:.84rem}
  .wwd-kicker{font-size:.62rem}
  .wwd-title{font-size:clamp(1.4rem,7vw,1.8rem)}
}
@media(max-width:320px){
  .wwd-content{padding:14px 0 0}
  .wwd-name{font-size:.95rem}
  .wwd-link{font-size:.72rem}
}

/* ================================================================
   NEW CTA — dark split with animated rings + logo visual
   ================================================================ */
.ncta-sec{
  position:relative; background:var(--ink); overflow:hidden;
  display:flex; flex-direction:column
}

/* animated background rings */
.ncta-rings{position:absolute; inset:0; pointer-events:none; z-index:0; overflow:hidden;}
.ncta-ring{
  position:absolute; border-radius:50%;
  border:1px solid rgba(207,173,102,.1);
  animation:ncta-spin linear infinite
}
.ncta-ring--1{width:600px; height:600px; right:-160px; top:50%; transform:translateY(-50%); animation-duration:18s}
.ncta-ring--2{width:820px; height:820px; right:-280px; top:50%; transform:translateY(-50%); animation-duration:28s; animation-direction:reverse; border-color:rgba(207,173,102,.06)}
.ncta-ring--3{width:400px; height:400px; right:-60px; top:50%; transform:translateY(-50%); animation-duration:12s; border-color:rgba(207,173,102,.14)}
@keyframes ncta-spin{from{transform:translateY(-50%) rotate(0deg)}to{transform:translateY(-50%) rotate(360deg)}}

/* main inner — split grid */
.ncta-inner{
  position:relative; z-index:2;
  display:grid; grid-template-columns:1fr 1fr;
  align-items:center; gap:60px;
  padding:120px 80px 80px
}

/* left */
.ncta-kicker{
  font-family:var(--sans); font-weight:700; font-size:.7rem; letter-spacing:.05em;
  text-transform:uppercase; color:var(--gold-soft); margin-bottom:28px;
  display:flex; align-items:center; gap:14px
}
.ncta-kicker::before{content:''; width:26px; height:1px; background:var(--gold-soft)}
.ncta-headline{
  font-family:var(--serif); font-weight:400;
  font-size:clamp(2.2rem,4vw,4rem); line-height:1.1;
  letter-spacing:-0.025em; color:#fff; margin:0 0 28px
}
.ncta-headline em{color:var(--gold-soft); font-style:normal}
.ncta-sub{
  font-family:var(--sans); font-size:1rem; line-height:1.7;
  color:rgba(255,255,255,.6); margin:0 0 44px; max-width:420px
}
.ncta-actions{display:flex; gap:16px; flex-wrap:wrap}
.ncta-btn-primary{
  padding:18px 36px; border-radius:999px;
  background:transparent; color:var(--gold-soft); font-family:var(--sans); font-weight:700;
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  text-decoration:none; transition:all .25s ease; white-space:nowrap;
  border:1.5px solid rgba(207,173,102,.5)
}
.ncta-btn-primary:hover{background:var(--gold); border-color:var(--gold); color:#fff; transform:translateY(-2px); box-shadow:0 8px 24px rgba(207,173,102,.3)}
.ncta-btn-ghost{
  padding:18px 36px; border-radius:999px;
  border:1.5px solid rgba(207,173,102,.35); color:rgba(255,255,255,.75);
  font-family:var(--sans); font-weight:700; font-size:.72rem; letter-spacing:.05em;
  text-transform:uppercase; text-decoration:none; transition:all .25s ease; white-space:nowrap
}
.ncta-btn-ghost:hover{border-color:var(--gold); color:var(--gold-soft)}

/* right — logo */
.ncta-right{display:flex; align-items:center; justify-content:center; padding:20px 0}
.ncta-logo-wrap{
  position:relative; display:flex; align-items:center; justify-content:center;
  width:100%; max-width:500px
}

/* monogram — crop logo to just the DY icon mark */
.ncta-monogram{
  position:relative; z-index:2;
  display:flex; align-items:center; justify-content:center;
  transform:perspective(800px) rotateY(-8deg) rotateX(4deg);
  transition:transform 1s ease
}
.ncta-monogram:hover{transform:perspective(800px) rotateY(-4deg) rotateX(2deg) scale(1.03)}
.ncta-mark-img{
  width:clamp(260px,32vw,420px);
  height:auto;
  object-fit:contain;
  margin-left:0;
  filter:drop-shadow(0 0 40px rgba(207,173,102,.5)) drop-shadow(0 0 80px rgba(207,173,102,.2));
  animation:ncta-float 6s ease-in-out infinite
}
@keyframes ncta-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}

/* reflection below */
.ncta-reflection{
  position:absolute; bottom:-48px; left:50%; transform:translateX(-50%);
  width:60%; height:48px; z-index:1;
  background:linear-gradient(to bottom, rgba(207,173,102,.12), transparent);
  filter:blur(6px); border-radius:50%
}
/* gold glow orb */
.ncta-glow{
  position:absolute; width:350px; height:350px; border-radius:50%;
  background:radial-gradient(ellipse, rgba(207,173,102,.2) 0%, transparent 65%);
  pointer-events:none; z-index:1; top:50%; left:50%; transform:translate(-50%,-50%)
}


/* bottom contact strip */
.ncta-strip{
  position:relative; z-index:2;
  border-top:1px solid rgba(207,173,102,.15);
  display:flex; align-items:stretch; flex-wrap:wrap
}
.ncta-strip-item{
  flex:1; display:flex; align-items:center; justify-content:center; gap:10px;
  padding:24px 20px; text-decoration:none;
  font-family:var(--sans); font-weight:700; font-size:.62rem; letter-spacing:.03em; text-transform:uppercase;
  color:rgba(255,255,255,.5); transition:all .25s ease; border-right:1px solid rgba(207,173,102,.1)
}
.ncta-strip-item:last-child{border-right:none}
.ncta-strip-item svg{width:16px; height:16px; flex-shrink:0; transition:transform .25s ease}
.ncta-strip-item:hover{color:var(--gold-soft); background:rgba(207,173,102,.05)}
.ncta-strip-item:hover svg{transform:translateX(3px)}
.ncta-strip-div{width:1px; background:rgba(207,173,102,.1); flex-shrink:0}
.ncta-strip-cta{color:var(--gold-soft); font-weight:600}
.ncta-strip-cta:hover{background:var(--gold); color:#fff !important}

/* responsive */
@media(max-width:980px){
  .ncta-inner{grid-template-columns:1fr; gap:40px; padding:80px 48px 60px}
  .ncta-right{order:-1}
  .ncta-monogram{width:clamp(180px,40vw,280px); height:clamp(180px,40vw,280px)}
  .ncta-ring--1{width:400px; height:400px}
  .ncta-ring--2{width:560px; height:560px}
  .ncta-ring--3{width:280px; height:280px}
  .ncta-strip-item{flex:1 0 calc(50% - 1px); justify-content:flex-start; padding:18px 24px}
}
@media(max-width:640px){
  .ncta-inner{padding:60px 24px 40px; gap:32px}
  .ncta-headline{font-size:clamp(1.9rem,7vw,3rem)}
  .ncta-actions{flex-direction:column}
  .ncta-btn-primary,.ncta-btn-ghost{text-align:center; justify-content:center}
  .ncta-strip-item{flex:1 0 100%; border-right:none; border-bottom:1px solid rgba(207,173,102,.1)}
  .ncta-strip-item:last-child{border-bottom:none}
  .ncta-strip-div{display:none}
}
@media(max-width:480px){
  .ncta-inner{padding:48px 16px 32px}
  .ncta-mark-img{width:clamp(140px,36vw,200px)}
  .ncta-headline{font-size:clamp(1.7rem,8vw,2.6rem)}
  .ncta-kicker{margin-bottom:20px}
}



@media(max-width:380px){
  .ncta-inner{padding:44px 14px 28px; gap:24px}
  .ncta-headline{font-size:clamp(1.55rem,9vw,2.2rem)}
  .ncta-sub{font-size:.88rem}
  .ncta-btn-primary,.ncta-btn-ghost{padding:14px 20px; font-size:.66rem}
  .ncta-strip-item{padding:14px 16px; font-size:.72rem}
}
@media(max-width:320px){
  .ncta-inner{padding:40px 12px 24px}
  .ncta-headline{font-size:1.5rem}
  .ncta-kicker{font-size:.6rem; letter-spacing:.2em}
  .ncta-strip-item{font-size:.68rem; gap:7px}
}

/* ================================================================
   IMAGE ANIMATIONS — advanced CSS only, creative & premium
   ================================================================ */

/* ── 1. FSS background — cinematic multi-stage Ken Burns ── */
@keyframes kenBurns{
  0%  {transform:scale(1.0)  translate(0%,0%)}
  25% {transform:scale(1.06) translate(-1.2%,-0.8%)}
  50% {transform:scale(1.1)  translate(0.5%,-1.2%)}
  75% {transform:scale(1.07) translate(1.0%,0.4%)}
  100%{transform:scale(1.03) translate(-0.3%,0.6%)}
}
.fss-bg img{
  animation:kenBurns 22s ease-in-out infinite;
  transform-origin:center center; will-change:transform
}

/* ── 2. DWT images — staggered directional drift ── */
@keyframes driftLeft  {0%,100%{transform:scale(1.04) rotate(-0.5deg) translate(0,0)}50%{transform:scale(1.09) rotate(0.5deg) translate(-1.5%,-0.8%)}}
@keyframes driftRight {0%,100%{transform:scale(1.04) rotate(0.5deg) translate(0,0)}50%{transform:scale(1.09) rotate(-0.5deg) translate(1.5%,-0.8%)}}
@keyframes driftUp    {0%,100%{transform:scale(1.04) translate(0,0)}33%{transform:scale(1.10) translate(-0.6%,-1.2%)}66%{transform:scale(1.07) translate(0.6%,-0.4%)}}

.dwt-tl img{animation:driftLeft  14s ease-in-out infinite; will-change:transform}
.dwt-tr img{animation:driftRight 16s ease-in-out infinite; will-change:transform}
.dwt-bl img{animation:driftRight 18s ease-in-out infinite reverse; will-change:transform}
.dwt-bc img{animation:driftUp    12s ease-in-out infinite; will-change:transform}
.dwt-br img{animation:driftLeft  15s ease-in-out infinite reverse; will-change:transform}

/* ── 3. WWD cards — reveal from bottom clip-path + shimmer ── */
@keyframes shimmer{
  0%  {background-position:-200% center}
  100%{background-position:200% center}
}
.wwd-img{position:relative; overflow:hidden}
.wwd-img img{transition:transform 1.1s cubic-bezier(.25,.46,.45,.94), filter .9s ease}
.wwd-card:hover .wwd-img img{transform:scale(1.09); filter:brightness(.9) saturate(1.1)}
/* metallic sheen on hover */
.wwd-img::after{
  content:""; position:absolute; inset:0; z-index:2; pointer-events:none;
  background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.18) 50%,transparent 65%);
  background-size:200% 100%; background-position:200% center;
  transition:background-position .9s ease
}
.wwd-card:hover .wwd-img::after{background-position:-200% center}

/* ── 4. Testimonial portraits — colour reveal + frame glow ── */
.votc-img img{
  filter:grayscale(.5) brightness(.8) contrast(1.05);
  transition:filter .85s ease, transform .85s cubic-bezier(.25,.46,.45,.94);
  will-change:filter, transform
}
.votc-card:hover .votc-img img{
  filter:grayscale(0) brightness(1.05) contrast(1) saturate(1.15);
  transform:scale(1.06)
}
/* golden frame glow on hover */
.votc-img::after{
  content:""; position:absolute; inset:0; z-index:2; pointer-events:none;
  border-radius:inherit;
  box-shadow:inset 0 0 0 0px rgba(207,173,102,0);
  transition:box-shadow .6s ease
}
.votc-card:hover .votc-img::after{
  box-shadow:inset 0 0 0 2px rgba(207,173,102,.55)
}

/* ── 5. Map project cards — zoom + desaturate reverse ── */
.pli-img img{
  filter:saturate(.8) brightness(.85);
  transition:transform .75s cubic-bezier(.25,.46,.45,.94), filter .75s ease;
  will-change:transform, filter
}
.plist-item:hover .pli-img img{
  transform:scale(1.12);
  filter:saturate(1.1) brightness(.95)
}

/* ── 6. Diff pillar right image — curtain reveal with overlay wipe ── */
.ds-content-right{position:relative; overflow:hidden}
.ds-content-right::before{
  content:""; position:absolute; inset:0; z-index:3;
  background:var(--black);
  transform:scaleX(1); transform-origin:left;
  transition:transform .8s cubic-bezier(.76,0,.24,1) .2s
}
.diff-strip.active .ds-content-right::before,
.diff-strip:hover  .ds-content-right::before{
  transform:scaleX(0); transform-origin:right
}
.ds-content-right img{
  transition:transform 1.2s cubic-bezier(.25,.46,.45,.94);
  will-change:transform
}
.diff-strip.active .ds-content-right img,
.diff-strip:hover  .ds-content-right img{transform:scale(1.06)}

/* ── 7. DWT bc — parallax float + colour pulse ── */
@keyframes bcFloat{
  0%  {transform:scale(1.04) translateY(0) rotate(0deg)}
  33% {transform:scale(1.06) translateY(-6px) rotate(.1deg)}
  66% {transform:scale(1.05) translateY(-3px) rotate(-.1deg)}
  100%{transform:scale(1.04) translateY(0) rotate(0deg)}
}
@keyframes bcColour{
  0%,100%{filter:brightness(.85) saturate(.9)}
  50%     {filter:brightness(.95) saturate(1.1)}
}
.dwt-bc img{
  animation:bcFloat 10s ease-in-out infinite, bcColour 10s ease-in-out infinite;
  transform-origin:center center
}

/* ── 8. Hero video — subtle zoom-in on load ── */
@keyframes heroZoom{from{transform:scale(1.08)}to{transform:scale(1.0)}}
.hero-vid{animation:heroZoom 3s ease-out forwards}

/* ── 9. DWT images — colour desaturate idle, full on hover ── */
.dwt-img img{
  filter:saturate(.75) brightness(.88);
  transition:filter 1.2s ease
}
.dwt-img:hover img{filter:saturate(1.05) brightness(.95)}

/* ── Reduced motion ── */
@media(prefers-reduced-motion:reduce){
  .fss-bg img,.dwt-tl img,.dwt-tr img,.dwt-bl img,.dwt-bc img,.dwt-br img,
  .hero-vid{animation:none; transform:none}
  .ds-content-right::before{display:none}
}


/* ============================================================
   INNER PAGE HERO — used on all inner pages
   ============================================================ */
.page-hero{
  position:relative; min-height:52vh; display:flex; align-items:flex-end;
  overflow:hidden; background:var(--black)
}
.ph-bg{position:absolute; inset:0; z-index:0}
.ph-bg img{width:100%; height:100%; object-fit:cover; object-position:center 40%;
  opacity:.55; display:block}
.ph-overlay{
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(37,37,37,.85) 0%, rgba(37,37,37,.4) 60%, rgba(37,37,37,.2) 100%)
}
.ph-body{position:relative; z-index:2; width:100%; padding:80px 0 72px}
.ph-title{
  font-family:var(--serif); font-weight:700;
  font-size:clamp(2.4rem,5vw,5rem); line-height:1.06;
  letter-spacing:-0.025em; color:#fff; margin:16px 0 20px
}
.ph-sub{
  font-family:var(--sans); font-size:clamp(1rem,1.5vw,1.2rem);
  color:rgba(255,255,255,.7); max-width:560px; line-height:1.65; margin:0
}
.ph-breadcrumb{
  display:flex; align-items:center; gap:8px; margin-bottom:18px;
  font-family:var(--sans); font-weight:700; font-size:.6rem; letter-spacing:.05em;
  text-transform:uppercase; color:rgba(255,255,255,.45)
}
.ph-breadcrumb a{color:var(--gold-soft); text-decoration:none}
.ph-breadcrumb a:hover{color:var(--gold)}
.ph-breadcrumb span{color:rgba(255,255,255,.3)}
@media(max-width:768px){
  .page-hero{min-height:44vh}
  .ph-body{padding:60px 0 52px}
  .ph-title{font-size:clamp(2rem,7vw,3.2rem)}
}
@media(max-width:480px){
  .page-hero{min-height:38vh}
  .ph-body{padding:48px 0 40px}
}

/* ============================================================
   INNER PAGE — shared components
   ============================================================ */
/* two-col text + image split */
.split-sec{display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:center}
.split-sec.reverse .split-img{order:-1}
@media(max-width:820px){ .split-sec{grid-template-columns:1fr; gap:40px} .split-sec.reverse .split-img{order:0} }

/* image frame */
.img-frame{position:relative; overflow:hidden; border-radius:16px}
.img-frame img{width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .9s var(--ease)}
.img-frame:hover img{transform:scale(1.04)}

/* icon feature item */
.feat-item{display:flex; gap:20px; align-items:flex-start; padding:24px 0;
  border-top:1px solid var(--hairline)}
.feat-icon{width:44px; height:44px; border-radius:12px; background:rgba(207,173,102,.12);
  display:flex; align-items:center; justify-content:center; flex-shrink:0;
  color:var(--gold)}
.feat-icon svg{width:20px; height:20px; stroke-width:1.5}
.feat-body h4{font-family:var(--serif); font-size:1.1rem; margin:0 0 6px; color:var(--ink)}
.feat-body p{font-size:.92rem; color:var(--body); margin:0; line-height:1.6}

/* timeline */
.timeline{display:flex; flex-direction:column; gap:0}
.tl-item{display:grid; grid-template-columns:80px 1fr; gap:24px; padding:32px 0;
  border-bottom:1px solid var(--hairline)}
.tl-item:last-child{border-bottom:none}
.tl-year{font-family:var(--sans); font-weight:700; font-size:.72rem; letter-spacing:.05em; color:var(--gold-deep);
  padding-top:4px; text-transform:uppercase}
.tl-body h4{font-family:var(--serif); font-size:1.2rem; margin:0 0 8px; color:var(--ink)}
.tl-body p{font-size:.92rem; color:var(--body); margin:0; line-height:1.65}
@media(max-width:480px){ .tl-item{grid-template-columns:64px 1fr; gap:16px} }

/* stat band */
.stat-band{background:var(--black); padding:72px 0}
.stat-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--char2)}
.stat-cell{background:var(--black); padding:44px 32px; text-align:center}
.stat-cell .sn{font-family:var(--serif); font-size:clamp(2.4rem,4vw,4rem);
  font-weight:800; color:var(--gold); line-height:1; letter-spacing:-0.03em}
.stat-cell .sl{font-family:var(--sans); font-weight:700; font-size:.6rem; letter-spacing:.05em;
  text-transform:uppercase; color:rgba(255,255,255,.45); margin-top:8px}
@media(max-width:768px){ .stat-grid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:480px){ .stat-grid{grid-template-columns:1fr 1fr} .stat-cell{padding:32px 20px} }

/* project card */
.proj-card{border-radius:16px; overflow:hidden; background:var(--white);
  box-shadow:0 2px 16px rgba(37,37,37,.07); transition:all .35s var(--ease)}
.proj-card:hover{transform:translateY(-4px); box-shadow:0 12px 40px rgba(37,37,37,.13)}
.proj-card .pc-img{aspect-ratio:4/3; overflow:hidden; position:relative}
.proj-card .pc-img img{width:100%; height:100%; object-fit:cover;
  transition:transform .8s var(--ease)}
.proj-card:hover .pc-img img{transform:scale(1.05)}
.proj-card .pc-tag{position:absolute; top:14px; left:14px; z-index:2;
  font-family:var(--sans); font-weight:700; font-size:.54rem; letter-spacing:.05em; text-transform:uppercase;
  background:var(--gold); color:#fff; padding:5px 11px; border-radius:999px}
.proj-card .pc-body{padding:24px}
.proj-card .pc-area{font-family:var(--sans); font-weight:700; font-size:.6rem; letter-spacing:.05em;
  text-transform:uppercase; color:var(--gold-deep); margin-bottom:8px}
.proj-card .pc-name{font-family:var(--serif); font-size:1.3rem; font-weight:600;
  color:var(--ink); margin:0 0 10px; letter-spacing:-0.01em}
.proj-card .pc-desc{font-size:.88rem; color:var(--body); line-height:1.6; margin:0 0 16px}
.proj-card .pc-status{display:inline-flex; align-items:center; gap:6px;
  font-family:var(--sans); font-weight:700; font-size:.56rem; letter-spacing:.03em; text-transform:uppercase;
  color:var(--gold-deep); padding:5px 12px; border:1px solid var(--hairline-gold);
  border-radius:999px}
.proj-card .pc-status::before{content:""; width:6px; height:6px; border-radius:50%;
  background:var(--gold)}

/* contact form */
.cform{display:flex; flex-direction:column; gap:16px}
.cform-row{display:grid; grid-template-columns:1fr 1fr; gap:16px}
.cform input,.cform select,.cform textarea{
  width:100%; padding:16px 18px; border:1px solid var(--hairline);
  border-radius:10px; background:var(--ivory); font-family:var(--sans);
  font-size:.92rem; color:var(--ink); outline:none; transition:border-color .25s;
  -webkit-appearance:none
}
.cform input:focus,.cform select:focus,.cform textarea:focus{border-color:var(--gold)}
.cform input::placeholder,.cform textarea::placeholder{color:var(--muted)}
.cform textarea{resize:vertical; min-height:140px}
.cform select{cursor:pointer; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239F9F9E' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 16px center; padding-right:40px}
@media(max-width:640px){ .cform-row{grid-template-columns:1fr} }

/* info box */
.info-box{background:var(--cream); border-radius:16px; padding:36px; border:1px solid var(--hairline)}
.info-box h4{font-family:var(--serif); font-size:1.2rem; color:var(--ink); margin:0 0 20px}
.info-row{display:flex; gap:14px; align-items:flex-start; padding:14px 0;
  border-bottom:1px solid var(--hairline); font-size:.9rem; color:var(--body)}
.info-row:last-child{border-bottom:none; padding-bottom:0}
.info-row svg{width:18px; height:18px; flex-shrink:0; stroke-width:1.5; color:var(--gold); margin-top:2px}

/* process steps */
.proc-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--hairline)}
.proc-step{background:var(--white); padding:36px 28px; position:relative}
.proc-step .ps-n{font-family:var(--sans); font-size:2.4rem; font-weight:800;
  color:rgba(207,173,102,.2); line-height:1; margin-bottom:20px; letter-spacing:-0.03em}
.proc-step h4{font-family:var(--serif); font-size:1.1rem; color:var(--ink); margin:0 0 10px}
.proc-step p{font-size:.88rem; color:var(--body); line-height:1.6; margin:0}
@media(max-width:768px){ .proc-grid{grid-template-columns:1fr 1fr} }
@media(max-width:480px){ .proc-grid{grid-template-columns:1fr} }

/* gallery grid */
.gall-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
.gall-item{border-radius:12px; overflow:hidden; position:relative; aspect-ratio:4/3; cursor:pointer}
.gall-item.tall{aspect-ratio:3/4}
.gall-item.wide{aspect-ratio:16/7}
.gall-item img{width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .7s var(--ease)}
.gall-item:hover img{transform:scale(1.06)}
@media(max-width:768px){ .gall-grid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:480px){ .gall-grid{grid-template-columns:1fr} .gall-item.tall{aspect-ratio:4/3} }

/* news cards */
.news-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px}
.news-card{border-radius:14px; overflow:hidden; background:var(--white);
  box-shadow:0 2px 12px rgba(37,37,37,.06); transition:all .3s var(--ease)}
.news-card:hover{transform:translateY(-3px); box-shadow:0 10px 32px rgba(37,37,37,.11)}
.news-card .nc-img{aspect-ratio:16/9; overflow:hidden}
.news-card .nc-img img{width:100%; height:100%; object-fit:cover;
  transition:transform .7s var(--ease)}
.news-card:hover .nc-img img{transform:scale(1.04)}
.news-card .nc-body{padding:22px}
.news-card .nc-cat{font-family:var(--sans); font-weight:700; font-size:.58rem; letter-spacing:.05em;
  text-transform:uppercase; color:var(--gold-deep); margin-bottom:10px}
.news-card .nc-title{font-family:var(--serif); font-size:1.1rem; font-weight:600;
  color:var(--ink); margin:0 0 10px; line-height:1.3}
.news-card .nc-meta{font-size:.8rem; color:var(--muted)}
@media(max-width:768px){ .news-grid{grid-template-columns:repeat(2,1fr)} }
@media(max-width:480px){ .news-grid{grid-template-columns:1fr} }

/* career listing */
.job-list{display:flex; flex-direction:column; gap:0}
.job-item{display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:28px 0; border-bottom:1px solid var(--hairline); text-decoration:none;
  transition:all .25s var(--ease)}
.job-item:hover{padding-left:8px}
.job-item .ji-left h4{font-family:var(--serif); font-size:1.15rem; color:var(--ink);
  margin:0 0 6px; letter-spacing:-0.01em}
.job-item .ji-meta{display:flex; gap:12px; font-family:var(--sans); font-weight:700; font-size:.6rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--muted)}
.job-item .ji-arr{color:var(--gold); font-size:1.1rem; flex-shrink:0;
  transition:transform .25s var(--ease)}
.job-item:hover .ji-arr{transform:translateX(5px)}

/* CSR card */
.csr-card{border-radius:16px; overflow:hidden; background:var(--white);
  box-shadow:0 2px 12px rgba(37,37,37,.06)}
.csr-card .cc-img{aspect-ratio:16/9; overflow:hidden}
.csr-card .cc-img img{width:100%; height:100%; object-fit:cover;
  transition:transform .7s var(--ease)}
.csr-card:hover .cc-img img{transform:scale(1.04)}
.csr-card .cc-body{padding:28px}
.csr-card .cc-tag{font-family:var(--sans); font-weight:700; font-size:.6rem; letter-spacing:.05em;
  text-transform:uppercase; color:var(--gold-deep); margin-bottom:10px}
.csr-card .cc-title{font-family:var(--serif); font-size:1.2rem; color:var(--ink);
  margin:0 0 10px; font-weight:600}
.csr-card .cc-desc{font-size:.9rem; color:var(--body); line-height:1.65; margin:0}



/* tspc 320px */
@media(max-width:320px){
  .tspc{grid-template-rows:130px 1fr}
  .tspc-body{padding:16px 14px}
  blockquote.tspc-quote{font-size:.85rem}
  .tspc-name{font-size:.95rem}
}
/* ================================================================
   FINAL RESPONSIVE AUDIT — all sections 380px + 320px
   Covers VOT, WWD, NCTA, Hero, DWT, Map gaps
   ================================================================ */

/* ── VOT section ── */
@media(max-width:380px){
  .vot-sec{padding:64px 0 52px}
  .votc{grid-template-rows:160px 1fr}
  .votc-quote{font-size:.85rem}
  .votc-name{font-size:1rem}
  .vot-prev,.vot-next{width:36px; height:36px; font-size:.8rem}
}
@media(max-width:320px){
  .vot-sec{padding:52px 0 40px}
  .votc{grid-template-rows:140px 1fr}
  .votc-body{padding:16px 14px 14px}
  .votc-quote{font-size:.82rem; line-height:1.5}
}

/* ── WWD section ── */
@media(max-width:380px){
  .wwd-sec{padding:52px 0}
  .wwd-header{margin-bottom:28px}
  .wwd-name{font-size:1rem}
  .wwd-desc{font-size:.84rem}
  .wwd-img{aspect-ratio:4/3}
}
@media(max-width:320px){
  .wwd-sec{padding:44px 0}
  .wwd-name{font-size:.95rem}
  .wwd-link{font-size:.6rem}
}

/* ── NCTA section ── */
@media(max-width:380px){
  .ncta-inner{padding:52px 14px 36px; gap:36px}
  .ncta-title{font-size:clamp(1.8rem,8vw,2.4rem)}
  .ncta-sub{font-size:.88rem}
  .ncta-strip{flex-wrap:wrap; gap:0}
  .ncta-strip-item{min-width:50%}
  .ncta-strip-div{display:none}
  .ncta-monogram{width:200px; height:200px}
}
@media(max-width:320px){
  .ncta-inner{padding:44px 12px 28px}
  .ncta-title{font-size:1.7rem}
  .ncta-actions{flex-direction:column}
  .ncta-actions .btn{width:100%; justify-content:center}
  .ncta-monogram{width:160px; height:160px}
}

/* ── Hero section ── */
@media(max-width:380px){
  .hero-inner{padding:120px 0 80px}
  .h-hero{font-size:1.9rem; line-height:1.06}
  .scroll-cue{display:none}
}
@media(max-width:320px){
  .hero-inner{padding:100px 0 70px}
  .h-hero{font-size:1.65rem}
  .lede{font-size:.9rem}
}

/* ── DWT extra ── */
@media(max-width:380px){
  .dwt-sec{padding:52px 0 36px}
  .dwt-center{padding:20px 12px; gap:14px}
  .dwt-headline{font-size:clamp(1.4rem,8vw,1.9rem)}
  .dwt-kicker{font-size:.58rem}
  .dwt-stats{flex-direction:column; align-items:center; gap:12px}
  .dwt-divider{width:40px; height:1px}
  .dwt-sn{font-size:1.6rem}
}
@media(max-width:320px){
  .dwt-sec{padding:44px 0 28px}
  .dwt-row1{grid-template-columns:0 1fr 0}
  .dwt-tl,.dwt-tr{display:none}
  .dwt-center{padding:32px 16px; gap:16px}
  .dwt-headline{font-size:1.3rem; line-height:1.1}
}

.text-gold-highlight{
    color: var(--gold-deep)
}
