/* ============================================================
   CARVE & CURVE  —  style.css
   Fonts loaded via index.html <link> tag (Google Fonts)
   ============================================================ */

/* ── COLOUR TOKENS ── */
:root {
  --bg-page   : #F5EFE6;
  --bg-warm   : #E8D9C4;
  --bg-pale   : #FAF6F0;
  --bg-white  : #FFFFFF;
  --deep      : #3F0D0C;
  --bark      : #7A5540;
  --mid       : #9A6848;
  --gold      : #C9A84C;
  --gold2     : #DFC06A;
  --gold-line : rgba(201,168,76,.35);
  --gold-soft : rgba(201,168,76,.13);
  --ink-dark  : #1E0F06;
  --ink-mid   : #3D2415;
  --ink-light : #6B4F38;
  --cream     : #F8F0E3;
  --cream-dim : rgba(248,240,227,.65);
  --cream-faint:rgba(248,240,227,.38);
  --sh-gold   : 0 16px 48px rgba(201,168,76,.2);
  --sh-deep   : 0 8px 32px rgba(63,13,12,.18);
}

/* ── RESET ── */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:16px; }
body { font-family:'Outfit',sans-serif; background:var(--bg-page); color:var(--ink-dark); overflow-x:hidden; cursor:none; }
img  { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
a    { text-decoration:none; color:inherit; cursor:none; }
button { cursor:none; }

/* ── CUSTOM CURSOR ── */
#cur {
  width:9px; height:9px; background:var(--gold); border-radius:50%;
  position:fixed; top:0; left:0; z-index:9999;
  transform:translate(-50%,-50%); pointer-events:none;
  transition:width .2s,height .2s; mix-blend-mode:multiply;
}
#cur-ring {
  width:36px; height:36px; border:1.5px solid var(--gold); border-radius:50%;
  position:fixed; top:0; left:0; z-index:9998;
  transform:translate(-50%,-50%); pointer-events:none;
  opacity:.55; transition:width .2s,height .2s,opacity .2s;
}
#cur.big     { width:18px; height:18px; }
#cur-ring.big{ width:54px; height:54px; opacity:.3; }
@media (hover:none) {
  #cur,#cur-ring { display:none; }
  body,a,button  { cursor:auto; }
  a,button       { cursor:pointer; }
}

/* ── NAV ── */
#nav {
  position:fixed; inset:0 0 auto 0; z-index:200;
  display:flex; align-items:center; justify-content:space-between;
  padding:22px 64px;
  transition:background .4s,box-shadow .4s;
}
#nav.solid {
  background:rgba(245,239,230,.97);
  backdrop-filter:blur(14px);
  box-shadow:0 1px 0 var(--gold-line);
}
.nav-logo { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:600; letter-spacing:.04em; color:var(--ink-dark); }
.nav-logo em { font-style:italic; color:var(--deep); }
.nav-links { display:flex; align-items:center; gap:36px; }
.nav-links a { font-size:10px; font-weight:500; letter-spacing:.22em; text-transform:uppercase; color:var(--ink-light); transition:color .25s; }
.nav-links a:hover { color:var(--deep); }
.nav-btn {
  background:var(--deep); color:var(--cream)!important;
  padding:11px 28px; font-size:10px!important; font-weight:700!important;
  letter-spacing:.22em!important; border:none;
  transition:background .3s,transform .3s!important;
}
.nav-btn:hover { background:var(--bark)!important; transform:translateY(-2px)!important; }

/* Hamburger */
.hamburger { display:none; flex-direction:column; gap:5px; background:none; border:none; padding:6px; cursor:none; }
.hamburger span { display:block; width:24px; height:1.5px; background:var(--ink-dark); transition:all .3s; }
.hamburger.open span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0; }
.hamburger.open span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }

/* Mobile overlay menu */
#mobile-menu {
  display:none; position:fixed; inset:0; z-index:199;
  background:var(--bg-pale);
  flex-direction:column; justify-content:center; align-items:center;
  gap:40px; padding:40px;
}
#mobile-menu.open { display:flex; }
#mobile-menu a {
  font-family:'Cormorant Garamond',serif; font-size:36px; font-weight:300;
  color:var(--ink-dark); letter-spacing:.02em; transition:color .25s; text-align:center;
}
#mobile-menu a:hover { color:var(--deep); }
#mobile-menu .mob-cta {
  font-family:'Outfit',sans-serif; font-size:11px!important; font-weight:700;
  letter-spacing:.22em; text-transform:uppercase;
  background:var(--deep); color:var(--cream)!important;
  padding:16px 48px; display:block; width:fit-content;
}

/* ── IMAGE ZONES ── */
.img-zone { position:relative; overflow:hidden; background:var(--bg-warm); }
.img-zone img { position:absolute; inset:0; transition:transform .7s ease; }
.img-zone:hover img { transform:scale(1.04); }
.img-zone::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(160deg,rgba(30,15,6,.05) 0%,rgba(30,15,6,.25) 100%);
  pointer-events:none; z-index:1;
}
/* Placeholder — hidden by default, shown via JS only when image fails to load */
.img-zone .ph {
  position:absolute; inset:0; z-index:2;
  display:none; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  background:linear-gradient(135deg,var(--bark) 0%,var(--mid) 100%);
}
.img-zone .ph svg  { opacity:.25; }
.img-zone .ph span {
  font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.24em; text-transform:uppercase;
  color:var(--cream); opacity:.45; text-align:center; padding:0 16px;
}

/* ── SHARED ATOMS ── */
.tag {
  font-family:'DM Mono',monospace; font-size:9.5px; letter-spacing:.3em; text-transform:uppercase;
  color:var(--gold); display:flex; align-items:center; gap:14px; margin-bottom:16px;
}
.tag::before { content:''; width:28px; height:1px; background:var(--gold); flex-shrink:0; }
.tag-light { color:var(--gold); }
.tag-light::before { background:var(--gold); }

.s-h2 { font-family:'Cormorant Garamond',serif; font-size:clamp(36px,4.5vw,60px); font-weight:300; line-height:1.05; letter-spacing:-.01em; color:var(--ink-dark); }
.s-h2 em { font-style:italic; color:var(--deep); }
.s-h2-light { color:var(--cream); }
.s-h2-light em { color:var(--gold); }

/* Scroll-reveal */
.rw { opacity:0; transform:translateY(32px); transition:opacity .75s ease,transform .75s ease; }
.rw.in { opacity:1; transform:translateY(0); }
.rw-d1 { transition-delay:.1s; }
.rw-d2 { transition-delay:.2s; }
.rw-d3 { transition-delay:.3s; }
.rw-d4 { transition-delay:.4s; }

/* ── BUTTONS ── */
.btn-fill {
  display:inline-flex; align-items:center; gap:12px;
  background:var(--gold); color:var(--ink-dark);
  font-size:10px; font-weight:700; letter-spacing:.22em; text-transform:uppercase;
  padding:15px 34px;
  transition:background .3s,transform .3s,box-shadow .3s;
  position:relative; overflow:hidden;
}
.btn-fill::after {
  content:''; position:absolute; inset:0;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent);
  transform:translateX(-100%); transition:transform .5s;
}
.btn-fill:hover { background:var(--gold2); transform:translateY(-3px); box-shadow:var(--sh-gold); }
.btn-fill:hover::after { transform:translateX(100%); }
.btn-line {
  display:inline-flex; align-items:center; gap:10px;
  font-size:10px; font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  color:rgba(248,240,227,.55); border-bottom:1px solid rgba(201,168,76,.3);
  padding-bottom:3px; transition:color .3s,border-color .3s,gap .3s;
}
.btn-line:hover { color:var(--cream); border-color:var(--gold); gap:16px; }
.btn-line svg { transition:transform .3s; }
.btn-line:hover svg { transform:translateX(4px); }

/* ══════════════════════════════════════
   1 · HERO
══════════════════════════════════════ */
#hero { min-height:100vh; display:grid; grid-template-columns:40% 60%; position:relative; overflow:hidden; background:var(--deep); }

.hero-left { display:flex; flex-direction:column; justify-content:center; padding:140px 60px 80px; position:relative; z-index:3; }
.hero-arc { position:absolute; bottom:-60px; left:-60px; width:280px; height:280px; border-radius:50%; border:1px solid rgba(201,168,76,.07); pointer-events:none; }
.hero-arc::before { content:''; position:absolute; inset:28px; border-radius:50%; border:1px solid rgba(201,168,76,.06); }
.hero-arc::after  { content:''; position:absolute; inset:56px; border-radius:50%; border:1px solid rgba(201,168,76,.05); }

.hero-eyebrow {
  font-family:'DM Mono',monospace; font-size:9.5px; letter-spacing:.35em; text-transform:uppercase;
  color:rgba(201,168,76,.65); margin-bottom:32px;
  display:flex; align-items:center; gap:16px;
  opacity:0; animation:fadeUp .8s ease .15s forwards;
}
.hero-eyebrow::before { content:''; width:36px; height:1px; background:var(--gold); opacity:.55; flex-shrink:0; }

.hero-h1 {
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(64px,8vw,110px); font-weight:700;
  line-height:.9; letter-spacing:-.02em; color:var(--bg-page);
  margin-bottom:8px;
  opacity:0; animation:fadeUp .9s ease .3s forwards;
}
.hero-h1 em { font-style:italic; color:var(--gold); font-weight:300; display:block; }

.hero-tagline {
  font-size:13px; font-weight:300; line-height:1.9;
  color:rgba(248,240,227,.45); max-width:380px; margin:28px 0 44px;
  opacity:0; animation:fadeUp .9s ease .5s forwards;
}
.hero-ctas { display:flex; align-items:center; gap:28px; opacity:0; animation:fadeUp .9s ease .65s forwards; }

.hero-stats { position:absolute; bottom:56px; left:64px; display:flex; gap:44px; opacity:0; animation:fadeUp .9s ease .85s forwards; }
.stat-n { font-family:'Cormorant Garamond',serif; font-size:42px; font-weight:600; color:var(--gold); line-height:1; }
.stat-l { font-size:9px; font-weight:500; letter-spacing:.22em; text-transform:uppercase; color:rgba(248,240,227,.35); margin-top:5px; }

.hero-right { position:relative; overflow:hidden; background:rgba(100,50,20,.4); }
.hero-right img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero-right::before {
  content:''; position:absolute; inset:0;
  background:linear-gradient(to right,var(--deep) 0%,rgba(63,13,12,.35) 40%,transparent 68%);
  z-index:2; pointer-events:none;
}
.hero-right .ph { z-index:3; background:transparent; display:none; }
.hero-gold-line { position:absolute; bottom:0; left:0; right:0; height:3px; background:linear-gradient(90deg,var(--gold),var(--gold2),var(--gold)); z-index:10; }

@keyframes fadeUp { from { opacity:0; transform:translateY(28px); } to { opacity:1; transform:translateY(0); } }

/* ── MARQUEE ── */
.mq { background:var(--gold); padding:13px 0; overflow:hidden; }
.mq-track { display:flex; width:max-content; animation:mq 26s linear infinite; }
.mq-item {
  display:inline-flex; align-items:center; gap:22px; padding:0 30px;
  font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.26em; text-transform:uppercase;
  color:var(--ink-dark); opacity:.75; white-space:nowrap;
}
.mq-dot { width:3px; height:3px; background:var(--ink-dark); border-radius:50%; opacity:.4; }
@keyframes mq { from { transform:translateX(0); } to { transform:translateX(-50%); } }

/* ══════════════════════════════════════
   2 · INTRO — The Silence of Luxury
══════════════════════════════════════ */
#intro { background:var(--bg-pale); padding:120px 64px; display:grid; grid-template-columns:1fr 1fr; gap:88px; align-items:center; }
.intro-text .s-h2 { margin-bottom:28px; }
.intro-text p { font-size:15px; font-weight:300; line-height:1.92; color:var(--ink-mid); margin-bottom:16px; }
.intro-text .lead { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:20px; font-weight:400; color:var(--ink-dark); line-height:1.6; margin-bottom:24px; }
.intro-text .kicker { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:18px; color:var(--bark); font-weight:500; margin-bottom:0; }
.intro-right { display:flex; flex-direction:column; gap:0; }
.intro-img { height:420px; position:relative; }
.intro-quote-bar { background:var(--deep); padding:28px 32px; }
.intro-quote-bar p { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:18px; color:rgba(248,240,227,.75); line-height:1.6; }
.intro-quote-bar p::before { content:'"'; font-size:28px; color:var(--gold); line-height:0; vertical-align:-8px; margin-right:6px; }

/* ══════════════════════════════════════
   3 · PHILOSOPHY
══════════════════════════════════════ */
#philosophy { background:var(--bg-page); padding:120px 64px; }
.phil-top { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; margin-bottom:64px; }
.phil-top p { font-size:15px; font-weight:300; line-height:1.9; color:var(--ink-mid); margin-bottom:14px; }

.phil-strip { display:grid; grid-template-columns:1fr 1fr 1fr; gap:4px; height:280px; margin-bottom:4px; }
.strip-cell { position:relative; overflow:hidden; }
.strip-cell img { position:absolute; inset:0; transition:transform .7s ease; }
.strip-cell:hover img { transform:scale(1.06); }
.strip-cell::after { content:''; position:absolute; inset:0; background:linear-gradient(to top,rgba(30,15,6,.6) 0%,transparent 50%); pointer-events:none; z-index:1; }
.strip-cap { position:absolute; bottom:0; left:0; right:0; padding:12px 16px; z-index:2; }
.strip-cap span { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.22em; text-transform:uppercase; color:rgba(248,240,227,.75); }

.phil-pillars { display:grid; grid-template-columns:repeat(3,1fr); gap:4px; }
.pillar { border-top:2px solid var(--gold); padding:22px 24px 28px; background:var(--bg-warm); transition:background .3s; }
.pillar .pl { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:10px; }
.pillar p { font-size:13.5px; font-weight:300; line-height:1.75; color:var(--ink-mid); }

/* ══════════════════════════════════════
   4 · THE CHALLENGE
══════════════════════════════════════ */
#challenge { background:var(--bg-pale); padding:120px 64px; display:grid; grid-template-columns:1fr 1fr; gap:0; align-items:stretch; }
.challenge-text { padding-right:64px; display:flex; flex-direction:column; justify-content:center; }
.challenge-text .s-h2 { margin-bottom:36px; }
.problem-cards { display:flex; flex-direction:column; gap:4px; margin-bottom:40px; }
.p-card { background:var(--deep); padding:18px 20px 18px 22px; border-left:2px solid var(--gold); position:relative; transition:transform .3s; }
.p-card:hover { transform:translateX(5px); }
.p-card h3 { font-family:'Cormorant Garamond',serif; font-size:18px; color:var(--cream); margin-bottom:5px; }
.p-card p  { font-size:13px; font-weight:300; color:rgba(248,240,227,.52); line-height:1.65; }
.p-card .cn { position:absolute; top:10px; right:16px; font-family:'Cormorant Garamond',serif; font-size:32px; color:rgba(201,168,76,.12); font-weight:700; line-height:1; }
.challenge-quote { padding:24px 0; border-top:1px solid rgba(122,85,64,.2); border-bottom:1px solid rgba(122,85,64,.2); }
.challenge-quote p { font-family:'Cormorant Garamond',serif; font-style:italic; font-size:17px; color:var(--bark); line-height:1.6; }

.challenge-right { display:flex; flex-direction:column; }
.challenge-img { flex:1; min-height:380px; }
.challenge-caption { background:var(--bark); padding:18px 24px; }
.challenge-caption .cap-k { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin-bottom:5px; }
.challenge-caption p { font-size:13px; font-weight:300; color:rgba(248,240,227,.55); line-height:1.55; }

/* ══════════════════════════════════════
   5 · SOLUTION
══════════════════════════════════════ */
#solution { background:var(--bg-warm); padding:0; }
.solution-upper { display:grid; grid-template-columns:1fr 1fr; min-height:480px; }
.solution-text { padding:80px 64px; display:flex; flex-direction:column; justify-content:center; }
.solution-text .s-h2 { margin-bottom:28px; }
.solution-text p { font-size:15px; font-weight:300; line-height:1.9; color:var(--ink-mid); margin-bottom:16px; }
.solution-img { background:var(--bark); position:relative; }
.solution-img img { position:absolute; inset:0; transition:transform .7s ease; }
.solution-img:hover img { transform:scale(1.04); }
.solution-img::after { content:''; position:absolute; inset:0; background:linear-gradient(160deg,rgba(30,15,6,.05),rgba(30,15,6,.25)); pointer-events:none; z-index:1; }

.solution-benefits { display:grid; grid-template-columns:repeat(4,1fr); gap:4px; background:var(--mid); }
.benefit-card { background:var(--deep); padding:36px 28px; display:flex; flex-direction:column; transition:background .3s; }
.benefit-card:hover { background:#2a0a08; }
.benefit-card h4 { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); margin-bottom:10px; }
.benefit-card p  { font-size:13px; font-weight:300; line-height:1.72; color:rgba(248,240,227,.45); }

/* ══════════════════════════════════════
   6 · EDITIONS
══════════════════════════════════════ */
#editions { background:var(--bg-page); padding:120px 64px; }
.editions-header { text-align:center; max-width:640px; margin:0 auto 64px; }
.editions-header .tag { justify-content:center; }
.editions-header .tag::before { display:none; }
.editions-header p { font-size:15px; font-weight:300; color:var(--ink-light); line-height:1.8; margin-top:16px; }

.editions-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:4px; }
.edition-card { background:var(--bg-white); border:1px solid rgba(201,168,76,.15); display:flex; flex-direction:column; overflow:hidden; transition:transform .4s,box-shadow .4s,border-color .3s; }
.edition-card:hover { transform:translateY(-8px); box-shadow:0 24px 60px rgba(63,13,12,.11); border-color:rgba(201,168,76,.45); }
.edition-card:nth-child(3) { border-color:rgba(201,168,76,.35); }

.ed-img { height:240px; flex-shrink:0; position:relative; }
.ed-img img { position:absolute; inset:0; transition:transform .65s ease; }
.edition-card:hover .ed-img img { transform:scale(1.07); }
.ed-img::after { content:''; position:absolute; inset:0; background:linear-gradient(to top,rgba(30,15,6,.45) 0%,transparent 55%); z-index:1; pointer-events:none; }
.ed-badge { position:absolute; top:16px; left:16px; z-index:2; font-family:'DM Mono',monospace; font-size:8.5px; letter-spacing:.22em; text-transform:uppercase; padding:5px 12px; font-weight:600; }
.badge-dark { background:var(--deep); color:var(--cream); }
.badge-gold { background:var(--gold); color:var(--ink-dark); }

.ed-body  { padding:28px 28px 32px; flex:1; display:flex; flex-direction:column; }
.ed-num   { font-family:'DM Mono',monospace; font-size:8.5px; letter-spacing:.22em; color:var(--gold); margin-bottom:8px; }
.ed-name  { font-family:'Cormorant Garamond',serif; font-size:26px; font-weight:400; color:var(--ink-dark); margin-bottom:4px; }
.ed-name em { font-style:italic; color:var(--deep); }
.ed-tagline { font-family:'Cormorant Garamond',serif; font-size:14px; font-style:italic; color:var(--ink-light); margin-bottom:20px; }
.ed-div { height:1px; background:rgba(201,168,76,.18); margin-bottom:16px; }
.ed-row { display:flex; justify-content:space-between; align-items:baseline; padding-bottom:8px; border-bottom:1px solid rgba(201,168,76,.1); }
.ed-row:last-of-type { border-bottom:none; }
.ed-k { font-size:9px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; color:var(--bark); }
.ed-v { font-size:13px; font-weight:300; color:var(--ink-mid); text-align:right; max-width:55%; }
.ed-cta { display:inline-flex; align-items:center; gap:10px; font-size:10px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--deep); border-bottom:1.5px solid var(--gold); padding-bottom:4px; margin-top:20px; align-self:flex-start; transition:gap .3s,color .3s,border-color .3s; }
.ed-cta:hover { gap:16px; color:var(--bark); border-color:var(--bark); }

/* ══════════════════════════════════════
   7 · SYSTEMS
══════════════════════════════════════ */
#systems { background:var(--deep); padding:120px 64px; }
.systems-head { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:end; margin-bottom:64px; }
.systems-head p { font-size:15px; font-weight:300; line-height:1.9; color:var(--cream-dim); }

.sys-block { display:grid; grid-template-columns:1fr 1fr; gap:4px; margin-bottom:4px; }
.sys-block:last-of-type { margin-bottom:0; }
.sys-text { padding:44px 44px 44px 0; }
.sys-warm { background:rgba(163,96,46,.18); padding:44px; }
.sys-text .tag { margin-bottom:12px; }
.sys-h3 { font-family:'Cormorant Garamond',serif; font-size:30px; font-weight:400; color:var(--cream); margin-bottom:16px; line-height:1.1; }
.sys-h3 em { font-style:italic; color:var(--gold); }
.sys-text p { font-size:14px; font-weight:300; line-height:1.85; color:var(--cream-faint); margin-bottom:20px; }
.pills { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:22px; }
.pill { font-family:'DM Mono',monospace; font-size:8.5px; letter-spacing:.14em; text-transform:uppercase; font-weight:500; padding:5px 12px; border:1px solid rgba(201,168,76,.35); color:var(--gold); transition:background .3s,color .3s; }
.pill:hover { background:var(--gold); color:var(--ink-dark); }
.t-matrix h5 { font-family:'DM Mono',monospace; font-size:8.5px; letter-spacing:.22em; text-transform:uppercase; color:rgba(201,168,76,.6); margin-bottom:10px; }
.t-row { display:flex; align-items:baseline; gap:12px; margin-bottom:6px; }
.tk { font-family:'DM Mono',monospace; font-size:8.5px; letter-spacing:.14em; text-transform:uppercase; min-width:60px; color:rgba(248,240,227,.38); }
.tv { font-size:14px; font-weight:300; color:var(--cream-dim); }

.sys-img-zone { min-height:280px; position:relative; overflow:hidden; }
.sys-img-zone img { position:absolute; inset:0; transition:transform .7s ease; }
.sys-img-zone:hover img { transform:scale(1.04); }
.sys-img-zone::after { content:''; position:absolute; inset:0; background:linear-gradient(160deg,rgba(30,15,6,.06),rgba(30,15,6,.28)); pointer-events:none; z-index:1; }

/* ══════════════════════════════════════
   8 · CORNER + SIGNATURE SUITE
══════════════════════════════════════ */
#corner { background:var(--deep); padding:0 64px; }
.corner-block { display:grid; grid-template-columns:1fr 1fr; gap:4px; padding-bottom:4px; }
.corner-text  { padding:64px 44px 64px 0; display:flex; flex-direction:column; justify-content:center; }
.corner-text .tag { margin-bottom:12px; }
.corner-img-zone { min-height:360px; position:relative; overflow:hidden; }
.corner-img-zone img { position:absolute; inset:0; transition:transform .7s ease; }
.corner-img-zone:hover img { transform:scale(1.04); }
.corner-img-zone::after { content:''; position:absolute; inset:0; background:linear-gradient(160deg,rgba(30,15,6,.06),rgba(30,15,6,.28)); pointer-events:none; z-index:1; }

.suite-wrap   { background:var(--deep); border-top:1px solid rgba(201,168,76,.15); padding:64px; }
.suite-title  { font-family:'Cormorant Garamond',serif; font-size:clamp(32px,4vw,52px); font-weight:300; color:var(--cream); line-height:1.05; margin-bottom:14px; }
.suite-title em { font-style:italic; color:var(--gold); }
.suite-sub  { font-size:15px; font-weight:300; color:var(--cream-dim); line-height:1.8; max-width:580px; margin-bottom:44px; }

.suite-hero { height:220px; margin-bottom:24px; position:relative; overflow:hidden; }
.suite-hero img { position:absolute; inset:0; transition:transform .7s ease; }
.suite-hero:hover img { transform:scale(1.03); }
.suite-hero::after { content:''; position:absolute; inset:0; background:linear-gradient(to right,rgba(63,13,12,.5) 0%,transparent 50%,rgba(63,13,12,.35) 100%); pointer-events:none; z-index:1; }

.suite-comps { display:grid; grid-template-columns:repeat(3,1fr); gap:4px; margin-bottom:4px; }
.suite-comp  { background:rgba(63,13,12,.6); padding:22px 24px; }
.suite-comp .ct { font-family:'DM Mono',monospace; font-size:8.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin-bottom:8px; }
.suite-comp h4  { font-family:'Cormorant Garamond',serif; font-size:18px; color:var(--cream); margin-bottom:12px; }
.suite-comp h4 em { font-style:italic; color:rgba(226,206,176,.6); }
.sc-div { height:1px; background:rgba(248,240,227,.08); margin-bottom:10px; }
.sc-r { display:flex; justify-content:space-between; margin-bottom:6px; }
.sck { font-family:'DM Mono',monospace; font-size:8px; letter-spacing:.14em; text-transform:uppercase; color:rgba(226,206,176,.4); }
.scv { font-size:13px; font-weight:300; color:var(--cream-dim); }
.suite-result { background:var(--gold); padding:22px 28px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.suite-result h4 { font-family:'Cormorant Garamond',serif; font-size:22px; color:var(--ink-dark); line-height:1.2; }
.suite-result p  { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:rgba(30,15,6,.58); max-width:320px; }

/* ══════════════════════════════════════
   9 · BESPOKE
══════════════════════════════════════ */
#bespoke { background:var(--bg-white); display:grid; grid-template-columns:1fr 1fr; min-height:680px; padding:0; }
.bespoke-left { padding:100px 64px; display:flex; flex-direction:column; justify-content:center; }
.bespoke-left .s-h2 { margin-bottom:20px; }
.bespoke-left > p { font-size:15px; font-weight:300; line-height:1.9; color:var(--ink-mid); margin-bottom:14px; }

.dim-grid { display:grid; grid-template-columns:1fr 1fr; gap:3px; margin:32px 0 40px; }
.dim-cell { background:var(--bg-pale); border:1px solid var(--gold-line); padding:18px 20px; transition:background .3s,border-color .3s; }
.dim-cell:hover { background:var(--bg-warm); border-color:var(--gold); }
.dk { font-family:'DM Mono',monospace; font-size:8.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--bark); margin-bottom:5px; }
.dv { font-family:'Cormorant Garamond',serif; font-size:20px; color:var(--ink-dark); font-weight:400; }

.bespoke-feats { display:flex; flex-direction:column; gap:20px; margin-bottom:40px; }
.bfeat { display:flex; gap:18px; align-items:flex-start; }
.bfeat-n { font-family:'Cormorant Garamond',serif; font-size:28px; color:var(--gold); opacity:.4; line-height:1; flex-shrink:0; font-weight:600; }
.bfeat h4 { font-family:'DM Mono',monospace; font-size:9px; letter-spacing:.18em; text-transform:uppercase; color:var(--bark); margin-bottom:5px; }
.bfeat p  { font-size:13px; font-weight:300; line-height:1.72; color:var(--ink-light); }

.bespoke-right { display:flex; flex-direction:column; gap:4px; background:var(--bg-warm); padding:4px; }
.bespoke-main  { flex:1; min-height:320px; position:relative; overflow:hidden; }
.bespoke-main img { position:absolute; inset:0; transition:transform .7s ease; }
.bespoke-main:hover img { transform:scale(1.04); }
.bespoke-main::after { content:''; position:absolute; inset:0; background:linear-gradient(160deg,rgba(30,15,6,.05),rgba(30,15,6,.25)); pointer-events:none; z-index:1; }
.bespoke-row   { display:grid; grid-template-columns:1fr 1fr; gap:4px; height:200px; flex-shrink:0; }
.bespoke-sm    { position:relative; overflow:hidden; background:var(--mid); }
.bespoke-sm img { position:absolute; inset:0; transition:transform .7s ease; }
.bespoke-sm:hover img { transform:scale(1.07); }
.bespoke-sm::after { content:''; position:absolute; inset:0; background:linear-gradient(160deg,rgba(30,15,6,.05),rgba(30,15,6,.25)); pointer-events:none; z-index:1; }

/* ══════════════════════════════════════
   10 · CONTACT
══════════════════════════════════════ */
#contact { background:var(--bg-pale); padding:120px 64px; display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:start; }
.contact-left .s-h2 { margin-bottom:14px; }
.contact-left > p   { font-size:15px; font-weight:300; line-height:1.85; color:var(--ink-mid); max-width:380px; margin-bottom:44px; }

.channels { display:flex; flex-direction:column; gap:4px; }
.channel { display:flex; align-items:center; gap:18px; padding:16px 18px; background:var(--bg-white); border:1px solid rgba(201,168,76,.18); transition:background .3s,border-color .3s,transform .3s,box-shadow .3s; }
.channel:hover { background:var(--bg-warm); border-color:var(--gold); transform:translateX(6px); box-shadow:var(--sh-gold); }
.ch-icon { width:38px; height:38px; border-radius:50%; background:var(--gold-soft); display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:background .3s; }
.channel:hover .ch-icon { background:rgba(201,168,76,.28); }
.ch-k { font-family:'DM Mono',monospace; font-size:8.5px; letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-bottom:2px; }
.ch-v { font-size:15px; font-weight:300; color:var(--ink-dark); }

.contact-form-wrap { background:var(--bg-white); border:1px solid rgba(201,168,76,.2); padding:48px 44px; }
.contact-form-wrap h3 { font-family:'Cormorant Garamond',serif; font-size:32px; font-weight:300; color:var(--ink-dark); margin-bottom:6px; }
.contact-form-wrap h3 em { font-style:italic; color:var(--deep); }
.contact-form-wrap > p { font-size:13px; font-weight:300; color:var(--ink-light); line-height:1.7; margin-bottom:32px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.fg { margin-bottom:16px; }
.fg label { display:block; font-family:'DM Mono',monospace; font-size:8.5px; letter-spacing:.22em; text-transform:uppercase; color:var(--bark); margin-bottom:7px; }
.fg input,.fg select,.fg textarea { width:100%; background:var(--bg-pale); border:1px solid rgba(201,168,76,.2); color:var(--ink-dark); font-family:'Outfit',sans-serif; font-size:14px; font-weight:300; padding:13px 15px; outline:none; transition:border-color .3s,background .3s; -webkit-appearance:none; appearance:none; }
.fg input:focus,.fg select:focus,.fg textarea:focus { border-color:var(--gold); background:var(--bg-white); }
.fg textarea { resize:none; height:100px; }
.fg select option { background:var(--bg-white); }
.btn-submit { width:100%; padding:16px; background:var(--deep); color:var(--cream); font-family:'Outfit',sans-serif; font-size:10.5px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; border:none; margin-top:4px; transition:background .3s,transform .3s,box-shadow .3s; }
.btn-submit:hover { background:var(--bark); transform:translateY(-2px); box-shadow:var(--sh-deep); }
.btn-submit.sent { background:var(--bark); opacity:.7; }

/* Required star */
.req-star { color:var(--gold); font-size:13px; line-height:1; vertical-align:middle; }

/* Inline field error messages */
.field-err { display:none; font-size:11px; color:#c0392b; margin-top:5px; font-family:'DM Mono',monospace; letter-spacing:.08em; }
.field-err.show { display:block; }

/* Invalid field highlight */
.fg input.invalid,.fg select.invalid { border-color:#c0392b; background:#fff5f5; }

/* Form note below button */
.form-note { font-size:11px; font-weight:300; color:var(--ink-light); margin-top:12px; line-height:1.6; text-align:center; }

/* ── FOOTER ── */
footer { background:var(--deep); padding:44px 64px; display:flex; align-items:center; justify-content:space-between; border-top:3px solid var(--gold); }
.footer-logo { font-family:'Cormorant Garamond',serif; font-size:22px; font-weight:600; color:var(--cream); }
.footer-logo em { font-style:italic; color:var(--gold); }
.footer-mid { font-family:'DM Mono',monospace; font-size:8.5px; letter-spacing:.26em; text-transform:uppercase; color:var(--cream-faint); }
.footer-links { display:flex; flex-direction:column; gap:5px; text-align:right; }
.footer-links a { font-size:13px; font-weight:300; color:var(--cream-dim); transition:color .25s; }
.footer-links a:hover { color:var(--gold); }

/* ══════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════ */
@media (max-width:1100px) {
  #nav { padding:18px 32px; }
  .nav-links a:not(.nav-btn) { display:none; }
  .hamburger { display:flex; }

  #hero { grid-template-columns:1fr; min-height:100svh; }
  .hero-right { display:none; }
  .hero-left  { padding:120px 32px 80px; }
  .hero-stats { left:32px; bottom:32px; }

  #intro { grid-template-columns:1fr; gap:48px; padding:80px 32px; }
  .intro-img { height:300px; }

  #philosophy { padding:80px 32px; }
  .phil-top { grid-template-columns:1fr; gap:28px; }
  .phil-strip { height:220px; }
  .phil-pillars { grid-template-columns:1fr; }

  #challenge { grid-template-columns:1fr; padding:80px 32px; }
  .challenge-text { padding-right:0; margin-bottom:40px; }
  .challenge-img  { min-height:260px; }

  .solution-upper { grid-template-columns:1fr; }
  .solution-text  { padding:60px 32px; }
  .solution-img   { display:none; }
  .solution-benefits { grid-template-columns:1fr 1fr; }

  #editions { padding:80px 32px; }
  .editions-grid { grid-template-columns:1fr; }

  #systems { padding:80px 32px; }
  .systems-head { grid-template-columns:1fr; gap:24px; }
  .sys-block { grid-template-columns:1fr; }
  .sys-text  { padding:40px 0; }
  .sys-warm  { padding:40px 24px; }
  .sys-img-zone { min-height:220px; }

  #corner { padding:0 32px; }
  .corner-block { grid-template-columns:1fr; }
  .corner-text  { padding:60px 0 40px; }
  .suite-wrap   { padding:40px 32px; }
  .suite-comps  { grid-template-columns:1fr; }
  .suite-hero   { height:160px; }
  .suite-result { flex-direction:column; align-items:flex-start; gap:12px; }

  #bespoke { grid-template-columns:1fr; }
  .bespoke-left { padding:72px 32px; }
  .bespoke-right { min-height:440px; }
  .bespoke-row { height:140px; }

  #contact { grid-template-columns:1fr; gap:52px; padding:80px 32px; }

  footer { flex-direction:column; gap:20px; text-align:center; padding:40px 28px; }
  .footer-links { text-align:center; }
}

@media (max-width:640px) {
  .hero-h1 { font-size:clamp(52px,14vw,80px); }
  .hero-stats { gap:24px; }
  .phil-strip { grid-template-columns:1fr; height:auto; }
  .strip-cell { height:180px; }
  .solution-benefits { grid-template-columns:1fr; }
  .form-row   { grid-template-columns:1fr; }
  .dim-grid   { grid-template-columns:1fr; }
  .suite-comps { grid-template-columns:1fr; }
}
