
/* ============================================================
   IWD BENEFITS — DESIGN SYSTEM
   Palette : antique gold / deep teal / forest black-green / warm cream
   Type    : Cormorant Garamond (display) + Inter (text & utility)
   Signature: engraved guilloché rosette — vintage banknote engraving
   ============================================================ */

:root{
  /* ---- color ---- */
  --forest:        #120A0B;
  --forest-deep:   #070404;
  --forest-soft:   #241012;
  --wine:          #6B1220;
  --teal:          #6B1220;
  --teal-deep:     #3B010B;
  --gold:          #C9A44C;
  --gold-lt:       #EBD9A2;
  --gold-pale:     #F5EBD2;
  --gold-deep:     #8A6A2F;
  --cream:         #F2E8DA;
  --alabaster:     #FBF7F1;
  --stone:         #7D7167;
  --ink:           #17100F;

  /* brushed metallic gold — used for fills, rules and engraving */
  --metal: linear-gradient(105deg,#8A6A2F 0%,#C9A44C 13%,#F5E3AC 29%,#D9B65E 43%,#A9823A 57%,#F0DCA0 73%,#C9A44C 87%,#8A6A2F 100%);
  --metal-rule: linear-gradient(90deg, rgba(138,106,47,0) 0%, #A9823A 12%, #F5E3AC 50%, #A9823A 88%, rgba(138,106,47,0) 100%);
  --error:         #8C3A2E;

  --line-gold:     rgba(201,164,76,.40);
  --line-gold-str: rgba(201,164,76,.64);
  --line-dark:     rgba(23,16,15,.17);
  --line-light:    rgba(245,235,210,.20);

  /* ---- type ---- */
  --serif: "Cormorant Garamond", "Baskerville", "Times New Roman", serif;
  --sans:  "Inter", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;

  --t-hero:  clamp(2.9rem, 7.4vw, 6.1rem);
  --t-h1:    clamp(2.4rem, 5.6vw, 4.5rem);
  --t-h2:    clamp(2rem, 4vw, 3.25rem);
  --t-h3:    clamp(1.45rem, 2.3vw, 2rem);
  --t-lede:  clamp(1.06rem, 1.5vw, 1.32rem);
  --t-body:  clamp(.98rem, 1.05vw, 1.06rem);
  --t-small: .875rem;
  --t-micro: .688rem;

  /* ---- space ---- */
  --gutter: clamp(22px, 5vw, 68px);
  --pad-y:  clamp(76px, 9vw, 148px);
  --max:    1240px;
  --max-narrow: 820px;

  --ease: cubic-bezier(.16,.84,.44,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }

body{
  margin:0;
  background:var(--alabaster);
  color:var(--ink);
  font-family:var(--sans);
  font-size:var(--t-body);
  font-weight:300;
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
body.is-locked{ overflow:hidden; }

img,svg{ max-width:100%; display:block; }

h1,h2,h3,h4{
  font-family:var(--serif);
  font-weight:300;
  line-height:1.06;
  letter-spacing:-.012em;
  margin:0;
  color:var(--forest);
}
h1{ font-size:var(--t-h1); }
h2{ font-size:var(--t-h2); line-height:1.1; }
h3{ font-size:var(--t-h3); line-height:1.16; }
p{ margin:0 0 1.15em; }
p:last-child{ margin-bottom:0; }

a{ color:inherit; }
::selection{ background:var(--gold); color:var(--alabaster); }

:focus-visible{
  outline:2px solid var(--gold-lt);
  outline-offset:3px;
  border-radius:1px;
}

/* ---------- layout primitives ---------- */
.wrap{ width:100%; max-width:var(--max); margin-inline:auto; padding-inline:var(--gutter); }
.wrap--narrow{ max-width:var(--max-narrow); }

.section{ padding-block:var(--pad-y); position:relative; }
.section--tight{ padding-block:clamp(54px,6vw,96px); }
.section--cream{ background:var(--cream); }
.section--alabaster{ background:var(--alabaster); }
.section--forest{ background:var(--forest); color:var(--gold-pale); }
.section--forest h1,.section--forest h2,.section--forest h3,.section--forest h4{ color:var(--alabaster); }
.section--teal{ background:var(--teal-deep); color:#F0DDD6; }
.section--teal h2,.section--teal h3{ color:var(--alabaster); }

.grain{ position:relative; }
.grain::after{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.045'/%3E%3C/svg%3E");
  mix-blend-mode:overlay;
}

/* ---------- type utilities ---------- */
.eyebrow{
  font-family:var(--sans);
  font-size:var(--t-micro);
  font-weight:500;
  letter-spacing:.3em;
  text-transform:uppercase;
  color:var(--gold);
  margin:0 0 22px;
  display:block;
}
.section--forest .eyebrow,.section--teal .eyebrow{ color:var(--gold-lt); }

.display{ font-family:var(--serif); }
.italic{ font-style:italic; }

h1 + .lede, h2 + .lede, h2 + p, h3 + p{ margin-top:clamp(18px,2vw,26px); }
.lede{
  font-size:var(--t-lede);
  line-height:1.72;
  font-weight:300;
  color:#4A4E48;
  max-width:60ch;
}
.section--forest .lede,.section--teal .lede{ color:rgba(245,235,210,.78); }

.body-muted{ color:#55594F; }
.section--forest .body-muted{ color:rgba(245,235,210,.7); }

.fineprint{
  font-size:var(--t-small);
  line-height:1.7;
  color:var(--stone);
  font-weight:300;
}
.section--forest .fineprint,.section--teal .fineprint{ color:rgba(245,235,210,.55); }

/* ---------- ornament ---------- */
.orn{ display:flex; align-items:center; gap:14px; margin:0 0 34px; }
.orn i{ display:block; width:8px; height:8px; border:1px solid var(--gold); transform:rotate(45deg); flex:none; }
.orn span{ display:block; height:1px; background:var(--line-gold); flex:1 1 auto; max-width:96px; }
.orn--center{ justify-content:center; }
.orn--center span{ max-width:120px; }

.rule{ height:1px; background:var(--line-gold); border:0; margin:0; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:12px;
  font-family:var(--sans); font-size:var(--t-micro); font-weight:600;
  letter-spacing:.24em; text-transform:uppercase; text-decoration:none;
  padding:19px 34px; border:1px solid var(--gold); background:var(--gold); color:#1A0507;
  cursor:pointer; position:relative; overflow:hidden;
  transition:color .55s var(--ease), border-color .55s var(--ease), background-color .55s var(--ease);
}
.btn::before{
  content:""; position:absolute; inset:0; background:var(--forest);
  transform:translateY(101%); transition:transform .55s var(--ease); z-index:0;
}
.btn > *{ position:relative; z-index:1; }
.btn:hover{ color:var(--gold-lt); border-color:var(--forest); }
.btn:hover::before{ transform:translateY(0); }

.btn--ghost{ background:transparent; color:var(--forest); border-color:var(--line-gold-str); }
.btn--ghost::before{ background:var(--gold); }
.btn--ghost:hover{ color:#1A0507; border-color:var(--gold); }

.btn--ghost-light{ background:transparent; color:var(--gold-pale); border-color:rgba(235,217,162,.5); }
.btn--ghost-light::before{ background:var(--gold); }
.btn--ghost-light:hover{ color:#1A0507; border-color:var(--gold); }

.btn--wide{ width:100%; padding-block:22px; }

.btn-row{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; }

.link-gold{
  font-size:var(--t-micro); font-weight:600; letter-spacing:.22em; text-transform:uppercase;
  text-decoration:none; color:var(--gold); display:inline-flex; align-items:center; gap:10px;
  padding-bottom:6px; border-bottom:1px solid var(--line-gold); background:none; border-left:0; border-right:0; border-top:0;
  cursor:pointer; font-family:var(--sans);
  transition:border-color .45s var(--ease), gap .45s var(--ease), color .45s var(--ease);
}
.link-gold:hover{ border-bottom-color:var(--gold); gap:16px; color:var(--gold-lt); }
.link-gold svg{ width:15px; height:9px; }

/* ---------- header ---------- */
.hdr{
  position:fixed; inset:0 0 auto 0; z-index:90;
  display:flex; align-items:center;
  height:84px;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background-color .6s var(--ease), border-color .6s var(--ease), height .6s var(--ease);
}
.hdr.is-stuck{ background:rgba(7,4,4,.95); backdrop-filter:blur(14px); border-bottom-color:var(--line-gold); height:70px; }
.hdr__in{ display:flex; align-items:center; justify-content:space-between; gap:24px; width:100%; max-width:var(--max); margin-inline:auto; padding-inline:var(--gutter); }

.brand{ display:flex; align-items:center; gap:13px; text-decoration:none; background:none; border:0; padding:0; cursor:pointer; }
.brand__seal{ width:34px; height:34px; flex:none; }
.brand__seal circle,.brand__seal path{ stroke:var(--gold); fill:none; }
.brand__txt{ display:flex; flex-direction:column; line-height:1; }
.brand__name{ font-family:var(--serif); font-size:1.34rem; letter-spacing:.11em; color:var(--alabaster); text-transform:uppercase; }
.brand__sub{ font-size:.5rem; letter-spacing:.42em; text-transform:uppercase; color:var(--gold); margin-top:5px; font-weight:500; }

.nav{ display:flex; align-items:center; gap:clamp(18px,2.4vw,38px); }
.nav__link{
  background:none; border:0; padding:6px 0; cursor:pointer;
  font-family:var(--sans); font-size:var(--t-micro); font-weight:500; letter-spacing:.2em;
  text-transform:uppercase; color:rgba(251,247,241,.82); position:relative;
  transition:color .4s var(--ease);
}
.nav__link::after{
  content:""; position:absolute; left:0; bottom:0; height:1px; width:100%;
  background:var(--gold); transform:scaleX(0); transform-origin:right; transition:transform .5s var(--ease);
}
.nav__link:hover{ color:var(--gold-lt); }
.nav__link:hover::after{ transform:scaleX(1); transform-origin:left; }
.nav__link.is-active{ color:var(--gold-lt); }
.nav__link.is-active::after{ transform:scaleX(1); }

.hdr__cta{ padding:14px 24px; font-size:.625rem; }

.burger{
  display:none; width:44px; height:44px; align-items:center; justify-content:center;
  background:none; border:1px solid var(--line-gold); cursor:pointer; flex:none;
}
.burger span{ display:block; width:18px; height:1px; background:var(--gold-pale); position:relative; transition:background-color .3s; }
.burger span::before,.burger span::after{ content:""; position:absolute; left:0; width:18px; height:1px; background:var(--gold-pale); transition:transform .45s var(--ease); }
.burger span::before{ top:-6px; }
.burger span::after{ top:6px; }
.burger.is-open span{ background:transparent; }
.burger.is-open span::before{ transform:translateY(6px) rotate(45deg); }
.burger.is-open span::after{ transform:translateY(-6px) rotate(-45deg); }

/* mobile drawer */
.drawer{
  position:fixed; inset:0; z-index:80; background:var(--forest-deep);
  display:flex; flex-direction:column; justify-content:center; padding:110px var(--gutter) 48px;
  clip-path:inset(0 0 100% 0); transition:clip-path .7s var(--ease); visibility:hidden;
}
.drawer.is-open{ clip-path:inset(0 0 0 0); visibility:visible; }
.drawer__link{
  background:none; border:0; text-align:left; padding:16px 0; cursor:pointer;
  font-family:var(--serif); font-size:clamp(1.9rem,8vw,2.6rem); color:var(--alabaster);
  border-bottom:1px solid rgba(235,217,162,.16); width:100%;
  opacity:0; transform:translateY(14px); transition:opacity .6s var(--ease), transform .6s var(--ease), color .3s;
}
.drawer.is-open .drawer__link{ opacity:1; transform:none; }
.drawer__link:hover,.drawer__link.is-active{ color:var(--gold-lt); }
.drawer__foot{ margin-top:38px; opacity:0; transition:opacity .6s var(--ease) .35s; }
.drawer.is-open .drawer__foot{ opacity:1; }

/* ---------- hero ---------- */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:center;
  background:
    radial-gradient(105% 78% at 78% 14%, rgba(107,18,32,.44) 0%, rgba(7,4,4,0) 58%),
    radial-gradient(90% 70% at 10% 94%, rgba(201,164,76,.14) 0%, rgba(7,4,4,0) 58%),
    linear-gradient(168deg, #1F070C 0%, #0E0607 50%, #060303 100%);
  overflow:hidden; padding-block:clamp(130px,16vh,180px) clamp(70px,9vh,110px);
}
.hero__guilloche{
  position:absolute; top:50%; right:-8%; width:min(74vw,860px); aspect-ratio:1;
  transform:translateY(-50%); opacity:.5; pointer-events:none;
}
.hero__guilloche path{ fill:none; stroke:var(--gold); stroke-width:.55; vector-effect:non-scaling-stroke; }
.hero__in{ position:relative; z-index:2; width:100%; }
.hero__eyebrow{ color:var(--gold-lt); }
.hero h1{
  font-size:var(--t-hero); color:var(--alabaster); line-height:1.02;
  max-width:15ch; letter-spacing:-.018em;
}
.hero h1 em{ font-style:italic; color:var(--gold-pale); }
.hero__lede{ margin-top:32px; max-width:46ch; color:rgba(251,247,241,.76); font-size:var(--t-lede); }
.hero__cta{ margin-top:44px; }
.hero__meta{
  position:absolute; left:0; right:0; bottom:34px; z-index:2; padding-inline:var(--gutter);
  display:flex; justify-content:space-between; align-items:flex-end; gap:20px;
  font-size:var(--t-micro); letter-spacing:.22em; text-transform:uppercase;
  color:rgba(235,217,162,.6); font-weight:500;
  max-width:var(--max); margin-inline:auto;
}
.hero__scroll{ display:flex; align-items:center; gap:12px; }
.hero__scroll i{ display:block; width:44px; height:1px; background:rgba(235,217,162,.5); position:relative; overflow:hidden; }
.hero__scroll i::after{ content:""; position:absolute; inset:0; background:var(--gold-lt); animation:sweep 3.4s var(--ease) infinite; }
@keyframes sweep{ 0%{transform:translateX(-100%)} 55%{transform:translateX(100%)} 100%{transform:translateX(100%)} }

/* page hero (interior) */
.phero{
  position:relative; padding-block:clamp(150px,18vh,220px) clamp(56px,7vw,96px);
  background:linear-gradient(160deg,#2A0A0F 0%, #120A0B 55%, #0B0607 100%);
  color:var(--gold-pale); overflow:hidden;
}
.phero__guilloche{ position:absolute; top:-30%; right:-14%; width:min(64vw,640px); aspect-ratio:1; opacity:.32; pointer-events:none; }
.phero__guilloche path{ fill:none; stroke:var(--gold); stroke-width:.5; vector-effect:non-scaling-stroke; }
.phero h1{ color:var(--alabaster); font-size:var(--t-h1); max-width:18ch; position:relative; z-index:2; }
.phero h1 em{ font-style:italic; color:var(--gold-pale); }
.phero .lede{ margin-top:26px; position:relative; z-index:2; }

/* ---------- grids ---------- */
.split{ display:grid; grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr); gap:clamp(38px,6vw,96px); align-items:start; }
.split--sticky > *:first-child{ position:sticky; top:130px; }
.split--even{ grid-template-columns:1fr 1fr; }
.split--center{ align-items:center; }

.g3{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,3.2vw,52px); }
.g4{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(24px,3vw,44px); }
.g2{ display:grid; grid-template-columns:repeat(2,1fr); gap:clamp(28px,4vw,64px); }

/* ---------- editorial pieces ---------- */
.pillar{ padding-top:26px; border-top:1px solid var(--line-gold); }
.pillar__k{
  font-family:var(--sans); font-size:var(--t-micro); letter-spacing:.26em; text-transform:uppercase;
  color:var(--gold); font-weight:600; display:block; margin-bottom:16px;
}
.pillar h3{ font-size:var(--t-h3); margin-bottom:14px; }
.pillar p{ font-size:.97rem; color:#55594F; }
.section--forest .pillar p{ color:rgba(245,235,210,.7); }
.section--forest .pillar,.section--teal .pillar{ border-top-color:rgba(235,217,162,.34); }

.serve{
  display:flex; align-items:baseline; gap:18px; padding:20px 0;
  border-bottom:1px solid var(--line-dark);
  transition:padding-left .5s var(--ease), border-color .5s var(--ease);
}
.serve:hover{ padding-left:12px; border-bottom-color:var(--line-gold-str); }
.serve__n{ font-family:var(--sans); font-size:.625rem; letter-spacing:.16em; color:var(--gold); font-weight:600; flex:none; width:26px; }
.serve__t{ font-family:var(--serif); font-size:clamp(1.15rem,1.7vw,1.5rem); color:var(--forest); }
.section--forest .serve{ border-bottom-color:rgba(235,217,162,.2); }
.section--forest .serve__t{ color:var(--alabaster); }

.plate{
  position:relative; aspect-ratio:4/5; overflow:hidden;
  border:1px solid var(--line-gold);
  background:linear-gradient(150deg,#2E1013,#1A0A0C 55%,#070404);
}
.plate__marble{ position:absolute; inset:0; opacity:.42; mix-blend-mode:screen; }
.plate__seal{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:58%; aspect-ratio:1; opacity:.55; }
.plate__seal path{ fill:none; stroke:var(--gold-lt); stroke-width:.5; vector-effect:non-scaling-stroke; }
.plate::after{ content:""; position:absolute; inset:11px; border:1px solid rgba(235,217,162,.28); pointer-events:none; z-index:2; }
.plate__cap{
  position:absolute; left:0; right:0; bottom:0; padding:30px 34px; z-index:3;
  background:linear-gradient(to top, rgba(7,4,4,.95), rgba(7,4,4,0));
  font-family:var(--serif); font-size:1.2rem; color:var(--gold-pale); font-style:italic;
}

.quote-mark{ font-family:var(--serif); font-size:clamp(3rem,7vw,5rem); color:var(--gold); line-height:.6; display:block; margin-bottom:18px; }

.stars{ color:var(--gold); letter-spacing:.28em; font-size:.95rem; display:block; margin-bottom:20px; }

.tcard{
  background:var(--alabaster); border:1px solid var(--line-gold); padding:clamp(28px,3.2vw,42px);
  display:flex; flex-direction:column; height:100%;
  transition:transform .6s var(--ease), border-color .6s var(--ease), box-shadow .6s var(--ease);
}
.tcard:hover{ transform:translateY(-5px); border-color:var(--line-gold-str); box-shadow:0 22px 50px -34px rgba(7,4,4,.5); }
.tcard blockquote{ margin:0 0 26px; font-family:var(--serif); font-size:clamp(1.16rem,1.7vw,1.42rem); line-height:1.5; color:var(--forest); font-style:italic; }
.tcard cite{
  font-style:normal; font-family:var(--sans); font-size:var(--t-micro); letter-spacing:.22em;
  text-transform:uppercase; color:var(--stone); margin-top:auto; padding-top:20px; border-top:1px solid var(--line-dark);
}
.sample-tag{
  display:inline-flex; align-items:center; gap:9px; font-size:.625rem; letter-spacing:.2em; text-transform:uppercase;
  color:var(--gold); border:1px solid var(--line-gold); padding:8px 14px; font-weight:600; background:rgba(201,164,76,.06);
}

.fact{ display:flex; gap:20px; padding:22px 0; border-bottom:1px solid var(--line-dark); align-items:flex-start; }
.fact:last-child{ border-bottom:0; }
.fact__i{ width:9px; height:9px; border:1px solid var(--gold); transform:rotate(45deg); flex:none; margin-top:10px; }
.fact h4{ font-family:var(--sans); font-size:.82rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600; color:var(--forest); margin-bottom:8px; }
.fact p{ font-size:.95rem; color:#55594F; margin:0; }
.section--forest .fact{ border-bottom-color:rgba(235,217,162,.18); }
.section--forest .fact h4{ color:var(--gold-pale); }
.section--forest .fact p{ color:rgba(245,235,210,.7); }

.step{ padding:30px 0; border-top:1px solid var(--line-gold); display:grid; grid-template-columns:64px 1fr; gap:22px; align-items:start; }
.step__n{ font-family:var(--serif); font-size:2rem; color:var(--gold); line-height:1; }
.step h3{ font-size:1.3rem; margin-bottom:10px; }
.step p{ font-size:.96rem; color:#55594F; margin:0; }
.section--forest .step{ border-top-color:rgba(235,217,162,.3); }
.section--forest .step p{ color:rgba(245,235,210,.7); }

/* ---------- CTA band ---------- */
.band{
  background:linear-gradient(140deg,#3B010B 0%, #2A0308 48%, #120A0B 100%);
  color:var(--alabaster); text-align:center; position:relative; overflow:hidden;
}
.band__seal{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:min(90vw,760px); opacity:.16; pointer-events:none; }
.band__seal path{ fill:none; stroke:var(--gold-lt); stroke-width:.5; vector-effect:non-scaling-stroke; }
.band h2{ font-size:var(--t-h2); color:var(--alabaster); max-width:20ch; margin-inline:auto; position:relative; z-index:2; }
.band .lede{ margin:24px auto 0; text-align:center; color:rgba(251,247,241,.76); position:relative; z-index:2; }
.band .btn-row{ justify-content:center; margin-top:40px; position:relative; z-index:2; }

/* ---------- form ---------- */
.formshell{
  background:var(--alabaster); border:1px solid var(--line-gold-str);
  padding:clamp(28px,4.2vw,64px); position:relative;
  box-shadow:0 40px 90px -60px rgba(15,27,22,.6);
}
.formshell::before{
  content:""; position:absolute; inset:9px; border:1px solid var(--line-gold); pointer-events:none;
}
.form__head{ margin-bottom:38px; }
.form__head h2{ font-size:clamp(1.9rem,3.4vw,2.9rem); }

.fieldset{ border:0; padding:0; margin:0 0 36px; }
.fieldset legend{
  font-family:var(--sans); font-size:var(--t-micro); font-weight:600; letter-spacing:.26em;
  text-transform:uppercase; color:var(--gold); padding:0; margin-bottom:6px; width:100%;
}
.fieldset__rule{ height:1px; background:var(--line-gold); margin-bottom:26px; }

.fgrid{ display:grid; grid-template-columns:repeat(2,1fr); gap:22px 26px; }
.fgrid--3{ grid-template-columns:repeat(3,1fr); }

.field{ display:flex; flex-direction:column; }
.field label{
  font-family:var(--sans); font-size:.625rem; font-weight:600; letter-spacing:.2em;
  text-transform:uppercase; color:var(--stone); margin-bottom:9px;
}
.field label .req{ color:var(--gold); }
.field input,.field select{
  font-family:var(--sans); font-size:16px; font-weight:300; color:var(--ink);
  background:transparent; border:0; border-bottom:1px solid var(--line-dark);
  padding:11px 2px; width:100%; border-radius:0; appearance:none;
  transition:border-color .45s var(--ease), background-color .45s var(--ease);
}
.field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='7'%3E%3Cpath d='M1 1l4.5 4.5L10 1' fill='none' stroke='%23A9834E' stroke-width='1.2'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 4px center; padding-right:26px;
}
.field input:focus,.field select:focus{ outline:none; border-bottom-color:var(--gold); background:rgba(201,164,76,.05); }
.field input:focus-visible,.field select:focus-visible{ outline:2px solid var(--gold-lt); outline-offset:3px; }
.field input::placeholder{ color:#B4AFA4; }
.field.has-error input,.field.has-error select{ border-bottom-color:var(--error); }
.field__err{ font-size:.72rem; color:var(--error); margin-top:7px; min-height:0; letter-spacing:.02em; }

.person{
  border:1px solid var(--line-gold); padding:24px clamp(18px,2.4vw,30px); margin-bottom:18px;
  background:rgba(201,164,76,.045); position:relative;
  animation:personIn .6s var(--ease) both;
}
@keyframes personIn{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }
.person__bar{ display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.person__t{ font-family:var(--sans); font-size:var(--t-micro); font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--forest); }
.person__rm{
  background:none; border:0; cursor:pointer; font-family:var(--sans); font-size:.625rem;
  letter-spacing:.18em; text-transform:uppercase; color:var(--stone); padding:6px 0;
  border-bottom:1px solid transparent; transition:color .35s, border-color .35s;
}
.person__rm:hover{ color:var(--error); border-bottom-color:var(--error); }

.addrow{ display:flex; align-items:center; justify-content:space-between; gap:18px; flex-wrap:wrap; margin-top:4px; }
.addbtn{
  display:inline-flex; align-items:center; gap:12px; background:none; cursor:pointer;
  border:1px dashed var(--line-gold-str); padding:15px 24px;
  font-family:var(--sans); font-size:var(--t-micro); font-weight:600; letter-spacing:.22em;
  text-transform:uppercase; color:var(--gold);
  transition:background-color .45s var(--ease), color .45s var(--ease), border-color .45s var(--ease);
}
.addbtn:hover:not(:disabled){ background:var(--gold); color:#1A0507; border-color:var(--gold); border-style:solid; }
.addbtn:disabled{ opacity:.4; cursor:not-allowed; }
.addbtn i{ font-style:normal; font-size:1rem; line-height:1; }
.addcount{ font-size:var(--t-micro); letter-spacing:.2em; text-transform:uppercase; color:var(--stone); }

.consent{ display:flex; gap:15px; align-items:flex-start; margin-top:8px; }
.consent input[type=checkbox]{
  appearance:none; width:19px; height:19px; border:1px solid var(--line-gold-str); flex:none;
  margin-top:3px; cursor:pointer; position:relative; background:transparent; transition:background-color .3s, border-color .3s;
}
.consent input[type=checkbox]:checked{ background:var(--gold); border-color:var(--gold); }
.consent input[type=checkbox]:checked::after{
  content:""; position:absolute; left:6px; top:2px; width:5px; height:10px;
  border:solid #1A0507; border-width:0 1.6px 1.6px 0; transform:rotate(42deg);
}
.consent.has-error input[type=checkbox]{ border-color:var(--error); }
.consent label{ font-size:.82rem; line-height:1.62; color:#55594F; }

.form__err{
  border:1px solid var(--error); background:rgba(140,58,46,.06); color:var(--error);
  padding:15px 18px; font-size:.85rem; margin-bottom:26px; display:none;
}
.form__err.is-shown{ display:block; }

.confirm{ text-align:center; padding:clamp(30px,5vw,70px) clamp(16px,3vw,40px); animation:personIn .8s var(--ease) both; }
.confirm__seal{ width:96px; margin:0 auto 30px; }
.confirm__seal path{ fill:none; stroke:var(--gold); stroke-width:.6; vector-effect:non-scaling-stroke; }
.confirm h2{ font-size:clamp(1.8rem,3.4vw,2.7rem); margin-bottom:20px; }
.confirm p{ max-width:52ch; margin-inline:auto; color:#55594F; }

/* ---------- footer ---------- */
.ftr{ background:var(--forest-deep); color:rgba(245,235,210,.62); padding-block:clamp(64px,7vw,104px) 34px; }
.ftr a{ text-decoration:none; }
.ftr__top{ display:grid; grid-template-columns:1.5fr 1fr 1fr 1.3fr; gap:clamp(30px,4vw,60px); padding-bottom:52px; border-bottom:1px solid rgba(235,217,162,.18); }
.ftr__h{ font-family:var(--sans); font-size:var(--t-micro); letter-spacing:.26em; text-transform:uppercase; color:var(--gold); margin:0 0 22px; font-weight:600; }
.ftr__nav{ display:flex; flex-direction:column; gap:13px; align-items:flex-start; }
.ftr__nav button{
  background:none; border:0; padding:0; cursor:pointer; text-align:left;
  font-family:var(--sans); font-size:.9rem; font-weight:300; color:rgba(251,247,241,.72);
  transition:color .4s var(--ease);
}
.ftr__nav button:hover{ color:var(--gold-lt); }
.ftr__brand .brand__name{ font-size:1.5rem; }
.ftr__blurb{ margin-top:22px; font-size:.9rem; max-width:34ch; color:rgba(245,235,210,.6); }
.ftr__bottom{ padding-top:30px; display:flex; justify-content:space-between; gap:22px; flex-wrap:wrap; align-items:center; }
.ftr__legal{ font-size:.75rem; color:rgba(245,235,210,.42); max-width:78ch; line-height:1.7; }
.ftr__mini{ display:flex; gap:24px; flex-wrap:wrap; }
.ftr__mini button{ background:none; border:0; padding:0; cursor:pointer; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(245,235,210,.55); font-family:var(--sans); }
.ftr__mini button:hover{ color:var(--gold-lt); }

/* ---------- reveal ---------- */
.rv{ opacity:0; transform:translateY(22px); transition:opacity 1s var(--ease), transform 1s var(--ease); transition-delay:var(--d,0ms); }
.rv.in{ opacity:1; transform:none; }
.rv-line{ opacity:0; transform:translateY(26px); transition:opacity 1.05s var(--ease), transform 1.05s var(--ease); transition-delay:var(--d,0ms); }
.rv-line.in{ opacity:1; transform:none; }
.rv-rule{ transform:scaleX(0); transform-origin:left; transition:transform 1.2s var(--ease); transition-delay:var(--d,0ms); }
.rv-rule.in{ transform:scaleX(1); }

/* ---------- pages ---------- */
.page[hidden]{ display:none; }

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .ftr__top{ grid-template-columns:1fr 1fr; row-gap:44px; }
  .g4{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:880px){
  .nav,.hdr__cta{ display:none; }
  .burger{ display:flex; }
  .hdr{ height:72px; }
  .hdr.is-stuck{ height:64px; }
  .split,.split--even,.g3,.g2{ grid-template-columns:1fr; }
  .split--sticky > *:first-child{ position:static; top:auto; }
  .hero{ min-height:92svh; }
  .hero h1{ max-width:100%; }
  .hero__meta{ display:none; }
  .fgrid,.fgrid--3{ grid-template-columns:1fr; gap:20px; }
  .plate{ aspect-ratio:5/4; }
  .step{ grid-template-columns:44px 1fr; gap:16px; }
  .btn{ width:100%; }
  .btn-row{ flex-direction:column; align-items:stretch; }
  .hero__guilloche{ right:-32%; opacity:.2; width:125vw; }
  .phero__guilloche{ opacity:.2; }
  .formshell::before{ inset:6px; }
}
@media (max-width:520px){
  .ftr__top{ grid-template-columns:1fr; }
  .g4{ grid-template-columns:1fr; }
  .brand__name{ font-size:1.15rem; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .rv,.rv-line{ opacity:1; transform:none; }
  .rv-rule{ transform:scaleX(1); }
}

@media print{
  .hdr,.drawer,.band,.ftr__mini{ display:none; }
  body{ background:#fff; }
}


/* ============================================================
   MULTI-PAGE ADDITIONS
   ============================================================ */
a.nav__link, a.drawer__link, a.link-gold, a.btn, .ftr__nav a, .ftr__mini a{ text-decoration:none; }
a.nav__link{ display:inline-block; }
a.drawer__link{ display:block; }
.ftr__nav a{ font-family:var(--sans); font-size:.9rem; font-weight:300; color:rgba(251,247,241,.72); transition:color .4s var(--ease); }
.ftr__nav a:hover{ color:var(--gold-lt); }
.ftr__mini a{ font-family:var(--sans); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(245,235,210,.55); }
.ftr__mini a:hover{ color:var(--gold-lt); }

/* calling card — stands in for a portrait without pretending to be one */
.callcard{
  position:relative; aspect-ratio:4/5; display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center; overflow:hidden;
  padding:clamp(28px,4vw,54px);
  background:linear-gradient(158deg,#FDF9F3 0%, #F4EADC 58%, #EFE2D0 100%);
  border:1px solid var(--line-gold-str);
}
.callcard::after{ content:""; position:absolute; inset:12px; border:1px solid var(--line-gold); pointer-events:none; }
.callcard > *{ position:relative; z-index:2; }
.callcard__seal{ position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:82%; aspect-ratio:1; opacity:.13; }
.callcard__seal path{ fill:none; stroke:var(--gold); stroke-width:.6; vector-effect:non-scaling-stroke; }
.callcard__eyebrow{ font-family:var(--sans); font-size:var(--t-micro); font-weight:600; letter-spacing:.34em; text-transform:uppercase; color:var(--gold); }
.callcard__name{ font-family:var(--serif); font-size:clamp(2.6rem,5vw,3.8rem); color:var(--forest); letter-spacing:.02em; margin-top:20px; line-height:1; }
.callcard .orn{ margin:22px 0; width:100%; }
.callcard__role{ font-family:var(--sans); font-size:.68rem; font-weight:500; letter-spacing:.3em; text-transform:uppercase; color:var(--stone); }
.callcard__note{ font-family:var(--serif); font-style:italic; font-size:1.08rem; color:#5A5049; margin:26px 0 0; line-height:1.55; }

/* lead capture forms (health + life) */
.leadshell{
  background:var(--alabaster); border:1px solid var(--line-gold-str);
  padding:clamp(28px,4.2vw,60px); position:relative;
  box-shadow:0 40px 90px -60px rgba(7,4,4,.55);
}
.leadshell::before{ content:""; position:absolute; inset:9px; border:1px solid var(--line-gold); pointer-events:none; }
.leadshell > *{ position:relative; z-index:1; }
.leadform h2{ font-size:clamp(1.75rem,3.2vw,2.6rem); }
.leadform .eyebrow{ margin-bottom:16px; }
.field .opt{ color:var(--stone); font-weight:400; letter-spacing:.12em; opacity:.75; }
.field textarea{
  font-family:var(--sans); font-size:16px; font-weight:300; color:var(--ink); line-height:1.6;
  background:transparent; border:1px solid var(--line-dark); border-radius:0;
  padding:14px; width:100%; resize:vertical; min-height:96px;
  transition:border-color .45s var(--ease), background-color .45s var(--ease);
}
.field textarea:focus{ outline:none; border-color:var(--gold); background:rgba(201,164,76,.05); }
.field textarea::placeholder{ color:#B9AEA4; }
.field.has-error textarea{ border-color:var(--error); }
@media (max-width:880px){ .callcard{ aspect-ratio:auto; padding:44px 26px; } }

.skip{ position:absolute; left:-9999px; top:0; z-index:200; width:auto; }
.skip:focus{ left:12px; top:12px; }


/* ============================================================
   METALLIC GOLD — fills, rules, engraving
   ============================================================ */
.btn{
  background-image:var(--metal);
  background-size:230% 100%;
  background-position:0% 0;
  border-color:var(--gold-deep);
  color:#1A0507;
  box-shadow:inset 0 1px 0 rgba(255,247,222,.45), inset 0 -1px 0 rgba(90,66,22,.35);
  transition:color .55s var(--ease), border-color .55s var(--ease), background-position 1.2s var(--ease);
}
.btn:hover{ background-position:100% 0; }
.btn--ghost,.btn--ghost-light{ background-image:none; box-shadow:none; }
.btn--ghost{ color:var(--forest); border-color:var(--line-gold-str); }
.btn--ghost-light{ color:var(--gold-pale); border-color:rgba(201,164,76,.55); }
.btn--ghost::before,.btn--ghost-light::before{ background-image:var(--metal); }
.btn--ghost:hover,.btn--ghost-light:hover{ color:#1A0507; border-color:var(--gold-deep); }

.orn i{ background-image:var(--metal); border:0; }
.orn span,.rule,.fieldset__rule{ background-image:var(--metal-rule); background-color:transparent; }

.stars{
  background-image:var(--metal);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  width:max-content;
}

.callcard__name{
  background-image:linear-gradient(102deg,#6B1220 0%,#3B010B 52%,#6B1220 100%);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}

/* engraving drawn with a real metallic gradient stroke */
.hero__guilloche path,
.phero__guilloche path,
.plate__seal path,
.band__seal path,
.confirm__seal path,
.callcard__seal path,
[data-seal] path{ stroke:url(#iwdGold); }

.hero__guilloche{ opacity:.6; }
.callcard__seal{ opacity:.2; }

.consent input[type=checkbox]:checked{ background-image:var(--metal); border-color:var(--gold-deep); }
.addbtn:hover:not(:disabled){ background-image:var(--metal); color:#1A0507; border-color:var(--gold-deep); }

.link-gold:hover{ color:var(--gold-lt); }
.field input:focus,.field select:focus,.field textarea:focus{ background-color:rgba(201,164,76,.06); }

.addrow__btns{ display:flex; gap:12px; flex-wrap:wrap; }
#spouse .person{ border-color:var(--line-gold-str); }
@media (max-width:520px){
  .addrow__btns{ width:100%; flex-direction:column; }
  .addrow__btns .addbtn{ width:100%; justify-content:center; }
}

/* ============================================================
   HOMEPAGE PATH CARDS (health / life navigation)
   ============================================================ */
.pathcard{
  display:flex; flex-direction:column; text-decoration:none;
  background:var(--alabaster); border:1px solid var(--line-gold);
  padding:clamp(30px,3.4vw,48px); position:relative; height:100%;
  transition:transform .6s var(--ease), border-color .6s var(--ease), box-shadow .6s var(--ease);
}
.pathcard::after{ content:""; position:absolute; inset:9px; border:1px solid var(--line-gold); opacity:0; transition:opacity .6s var(--ease); pointer-events:none; }
.pathcard:hover{ transform:translateY(-5px); border-color:var(--line-gold-str); box-shadow:0 26px 60px -40px rgba(10,8,8,.5); }
.pathcard:hover::after{ opacity:.7; }
.pathcard__k{ font-family:var(--sans); font-size:var(--t-micro); font-weight:600; letter-spacing:.26em; text-transform:uppercase; color:var(--gold); margin-bottom:20px; }
.pathcard h3{ font-size:clamp(1.5rem,2.4vw,2rem); color:var(--forest); margin-bottom:16px; }
.pathcard p{ font-size:.98rem; color:#55524C; margin-bottom:30px; }
.pathcard__go{
  margin-top:auto; display:inline-flex; align-items:center; gap:11px;
  font-family:var(--sans); font-size:var(--t-micro); font-weight:600; letter-spacing:.2em;
  text-transform:uppercase; color:var(--gold); padding-bottom:6px;
  border-bottom:1px solid var(--line-gold); align-self:flex-start;
  transition:gap .45s var(--ease), border-color .45s var(--ease), color .45s var(--ease);
}
.pathcard:hover .pathcard__go{ gap:17px; border-bottom-color:var(--gold); color:var(--gold-lt); }
.pathcard__go svg{ width:15px; height:9px; }
