/* ==========================================================================
   her bucket list
   Visual direction taken from the campaign artwork: cream paper, olive script,
   dusty rose bands, taped polaroids, botanical line work.
   ========================================================================== */

:root{
  /* paper */
  --cream:#F5F1E8;
  --paper:#EFEAD9;
  --sand:#E3DCC6;
  --tape:#E8DFC4;

  /* greens */
  --forest:#3D4A2C;
  --forest-deep:#2C361F;
  --olive:#5A6B3F;
  --sage:#7C8C68;
  --sage-tint:#DCD9C4;

  /* accents */
  --rose:#B5646C;
  --rose-deep:#9E5159;
  --rose-tint:#EBD6D6;
  --gold:#D9A93C;

  /* text */
  --ink:#2E2A22;
  --ink-soft:#6B6355;
  --ink-faint:#9A9284;

  --font-script:'Yellowtail', cursive;
  --font-serif:'Cormorant Garamond', Georgia, serif;
  --font-body:'Nunito Sans', system-ui, sans-serif;

  --shadow-soft:0 10px 30px rgba(46,42,34,.09);
  --shadow-lift:0 16px 44px rgba(46,42,34,.14);
  --wrap:1140px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}

body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--font-body);
  font-size:16.5px;
  line-height:1.68;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%; display:block;}
a{color:inherit;}
h1,h2,h3,h4{margin:0; font-weight:600;}
section{position:relative;}

.wrap{max-width:var(--wrap); margin:0 auto; padding:0 34px;}
.section{padding:96px 0;}
.section.tight{padding:64px 0;}
.on-paper{background:var(--paper);}
.on-sand{background:var(--sand);}
.on-forest{background:var(--forest); color:var(--cream);}
.on-olive{background:var(--olive); color:var(--cream);}

/* subtle paper fibre, kept very light so text stays crisp */
body::before{
  content:"";
  position:fixed; inset:0; z-index:0; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.055 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E");
  opacity:.7;
}
body > *{position:relative; z-index:1;}

/* ---------- accessibility ---------- */
.skip-link{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--forest); color:var(--cream);
  padding:14px 24px; border-radius:0 0 8px 0;
  font-family:var(--font-serif); font-weight:600; letter-spacing:.06em;
}
.skip-link:focus{left:0;}
a:focus-visible, button:focus-visible, input:focus-visible,
select:focus-visible, textarea:focus-visible, summary:focus-visible{
  outline:2px solid var(--rose); outline-offset:3px; border-radius:3px;
}

/* ---------- type helpers ---------- */
.script{
  font-family:var(--font-script);
  color:var(--forest);
  font-weight:400;
  line-height:1.08;
}
.eyebrow{
  font-family:var(--font-serif);
  font-size:13px; font-weight:600;
  letter-spacing:.32em; text-transform:uppercase;
  color:var(--rose);
}
.eyebrow.light{color:var(--gold);}

.rule{
  width:64px; height:2px; background:var(--rose);
  margin:14px 0 0; border:none;
}
.rule.center{margin-left:auto; margin-right:auto;}

/* section heading block */
.head{max-width:660px; margin-bottom:52px;}
.head h2{
  font-family:var(--font-script);
  font-size:clamp(36px, 5vw, 54px);
  color:var(--forest);
  margin:12px 0 0; font-weight:400;
}
.head .serif-sub{
  font-family:var(--font-serif);
  font-size:clamp(15px,1.5vw,17px); font-weight:600;
  letter-spacing:.3em; text-transform:uppercase;
  color:var(--olive); margin-top:6px;
}
.head p{color:var(--ink-soft); margin-top:16px; font-size:16.5px; max-width:56ch;}
.head.center{margin-left:auto; margin-right:auto; text-align:center;}
.head.center p{margin-left:auto; margin-right:auto;}
.on-forest .head h2, .on-olive .head h2{color:var(--cream);}
.on-forest .head p, .on-olive .head p{color:rgba(245,241,232,.78);}
.on-forest .head .serif-sub, .on-olive .head .serif-sub{color:var(--gold);}

/* brush-stroke label, as used on the artwork */
.brush{
  display:inline-block;
  background:var(--olive); color:var(--cream);
  font-family:var(--font-serif); font-weight:600;
  font-size:15px; letter-spacing:.28em; text-transform:uppercase;
  padding:11px 30px;
  border-radius:32px 26px 34px 24px / 24px 32px 22px 30px;
}
.brush.rose{background:var(--rose);}
.brush.gold{background:var(--gold); color:var(--forest-deep);}

/* ---------- header ---------- */
.topbar{
  position:sticky; top:0; z-index:80;
  background:rgba(245,241,232,.93);
  backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(61,74,44,.16);
}
.topbar .wrap{
  display:flex; align-items:center; justify-content:space-between;
  gap:24px; padding-top:16px; padding-bottom:16px;
}
.brandmark{display:flex; align-items:center; gap:11px; text-decoration:none;}
.brandmark img{height:34px; width:auto;}
.topbar nav{display:flex; align-items:center; gap:32px;}
.topbar nav a{
  font-family:var(--font-serif); font-size:15px; font-weight:600;
  letter-spacing:.16em; text-transform:uppercase;
  text-decoration:none; color:var(--forest);
  padding-bottom:3px; border-bottom:1.5px solid transparent;
}
.topbar nav a:hover{color:var(--rose); border-color:var(--rose);}
.topbar nav a[aria-current="page"]{color:var(--rose); border-color:var(--rose);}
.topbar .nav-cta{
  background:var(--rose); color:var(--cream);
  border:none; border-radius:30px; padding:11px 24px;
  letter-spacing:.14em; font-size:13px;
}
.topbar .nav-cta:hover{background:var(--rose-deep); color:var(--cream); border-color:transparent;}

.burger{
  display:none; background:none; border:1px solid rgba(61,74,44,.3);
  border-radius:6px; width:44px; height:40px; cursor:pointer;
  flex-direction:column; align-items:center; justify-content:center; gap:5px; padding:0;
}
.burger span{display:block; width:19px; height:1.6px; background:var(--forest);}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--font-serif); font-weight:600;
  font-size:14.5px; letter-spacing:.17em; text-transform:uppercase;
  padding:15px 32px; border-radius:34px; border:1.5px solid transparent;
  text-decoration:none; cursor:pointer;
  transition:background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.btn-primary{background:var(--rose); color:var(--cream);}
.btn-primary:hover{background:var(--rose-deep); transform:translateY(-2px);}
.btn-forest{background:var(--forest); color:var(--cream);}
.btn-forest:hover{background:var(--forest-deep); transform:translateY(-2px);}
.btn-outline{background:transparent; color:var(--forest); border-color:rgba(61,74,44,.42);}
.btn-outline:hover{background:var(--forest); color:var(--cream); border-color:var(--forest);}
.btn-outline.light{color:var(--cream); border-color:rgba(245,241,232,.5);}
.btn-outline.light:hover{background:var(--cream); color:var(--forest); border-color:var(--cream);}
.btn-row{display:flex; gap:16px; flex-wrap:wrap; align-items:center;}

/* text link with underline flourish */
.tlink{
  font-family:var(--font-serif); font-weight:600; font-size:14px;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--rose); text-decoration:none;
  border-bottom:1.5px solid rgba(181,100,108,.42); padding-bottom:2px;
}
.tlink:hover{border-color:var(--rose);}

/* ---------- hero ---------- */
.hero{
  background:var(--cream);
  padding:74px 0 96px;
  overflow:hidden;
}
.hero .grid{display:grid; grid-template-columns:1.02fr .98fr; gap:60px; align-items:center;}
.hero h1{
  font-family:var(--font-script); font-weight:400;
  font-size:clamp(46px, 6.6vw, 82px);
  color:var(--forest); line-height:1.02; margin:16px 0 0;
}
.hero .serif-line{
  font-family:var(--font-serif); font-weight:600;
  font-size:clamp(19px,2.3vw,27px);
  letter-spacing:.44em; text-transform:uppercase;
  color:var(--olive); margin:14px 0 0; padding-left:.44em;
}
.hero .tagline{
  font-family:var(--font-script); font-size:25px;
  color:var(--rose); margin:26px 0 0;
}
.hero p.lede{color:var(--ink-soft); margin:20px 0 32px; max-width:46ch; font-size:17px;}

/* collage of taped photos */
.collage{position:relative; aspect-ratio:1/1; max-width:520px; margin-left:auto; width:100%;}
.polaroid{
  background:#fff; padding:12px 12px 46px;
  box-shadow:var(--shadow-soft);
  position:relative;
}
.polaroid img, .polaroid .ph{
  display:block; width:100%; height:auto; aspect-ratio:4/3;
  object-fit:cover; background:var(--sage-tint);
}
.polaroid .cap{
  position:absolute; left:0; right:0; bottom:14px; text-align:center;
  font-family:var(--font-script); font-size:19px; color:var(--forest);
}
.polaroid::before{
  content:""; position:absolute; top:-13px; left:50%; transform:translateX(-50%) rotate(-2.5deg);
  width:86px; height:26px; background:var(--tape); opacity:.92;
}
.collage .polaroid{position:absolute;}
.collage .p1{width:50%; top:0; left:0; transform:rotate(-4deg);}
.collage .p2{width:46%; top:7%; right:0; transform:rotate(3.5deg);}
.collage .p3{width:46%; bottom:0; left:23%; transform:rotate(2deg); z-index:3;}

/* ---------- torn paper divider ---------- */
.torn{display:block; width:100%; height:34px; line-height:0;}
.torn svg{display:block; width:100%; height:100%;}

/* ---------- value cards (icon + text rows) ---------- */
.values{display:grid; gap:0;}
.value{
  display:grid; grid-template-columns:64px 1fr; gap:20px; align-items:start;
  padding:22px 0; border-bottom:1px dashed rgba(61,74,44,.26);
}
.value:last-child{border-bottom:none;}
.value .ico{
  width:56px; height:56px; border-radius:50%;
  background:var(--sage-tint); display:flex; align-items:center; justify-content:center;
}
.value .ico svg{width:26px; height:26px; stroke:var(--forest); fill:none; stroke-width:1.6;}
.value h3{font-family:var(--font-serif); font-size:19px; font-weight:700; letter-spacing:.01em; color:var(--forest);}
.value p{margin:3px 0 0; color:var(--ink-soft); font-size:15.5px;}

/* ---------- package cards ---------- */
.pack-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:26px;}
.pack{
  background:#fff;
  box-shadow:var(--shadow-soft);
  display:flex; flex-direction:column;
  transition:transform .22s ease, box-shadow .22s ease;
  border-radius:3px;
}
.pack:hover{transform:translateY(-5px); box-shadow:var(--shadow-lift);}
.pack .shot{position:relative; overflow:hidden; background:var(--sage-tint);}
.pack .shot img{width:100%; height:auto; aspect-ratio:16/10; object-fit:cover;}
.pack .shot::after{
  content:""; position:absolute; inset:0; mix-blend-mode:multiply; opacity:.42;
}
.pack .status{
  position:absolute; top:12px; left:12px; z-index:3;
  font-family:var(--font-serif); font-size:11px; font-weight:700;
  letter-spacing:.19em; text-transform:uppercase;
  background:var(--cream); color:var(--forest);
  padding:6px 13px; border-radius:20px;
}
.pack .status.open{background:var(--rose); color:var(--cream);}
.pack .status.soon{background:rgba(245,241,232,.94); color:var(--olive);}
.pack .body{padding:22px 22px 0; flex:1;}
.pack .region{
  font-family:var(--font-serif); font-size:11.5px; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--rose);
}
.pack h3{
  font-family:var(--font-script); font-size:27px; font-weight:400;
  color:var(--forest); margin:7px 0 10px; line-height:1.1;
}
.pack .meta{
  font-family:var(--font-serif); font-size:12.5px; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; color:var(--ink-faint);
  padding-bottom:14px; border-bottom:1px dashed rgba(61,74,44,.24);
}
.pack ul{list-style:none; margin:14px 0 0; padding:0; display:grid; gap:7px;}
.pack ul li{
  position:relative; padding-left:19px; font-size:14.5px; color:var(--ink-soft);
}
.pack ul li::before{
  content:""; position:absolute; left:0; top:9px;
  width:7px; height:7px; border-radius:50%; background:var(--gold);
}
.pack .foot{padding:20px 22px 24px; margin-top:auto;}

/* tone variations so one illustration does not read as 32 identical tiles */
.tone-a .shot::after{background:#7C8C68;}
.tone-b .shot::after{background:#B5646C;}
.tone-c .shot::after{background:#5A7C99;}
.tone-d .shot::after{background:#D9A93C;}
.tone-e .shot::after{background:#3D4A2C;}
.tone-f .shot::after{background:#A88A5E;}

/* ---------- itinerary ---------- */
.day{
  background:#fff; box-shadow:var(--shadow-soft);
  margin-bottom:30px; overflow:hidden;
}
.day > .dhead{
  background:var(--forest); color:var(--cream);
  padding:24px 32px; display:flex; align-items:baseline; gap:18px; flex-wrap:wrap;
}
.day > .dhead .no{
  font-family:var(--font-serif); font-size:12px; font-weight:700;
  letter-spacing:.24em; text-transform:uppercase;
  background:var(--gold); color:var(--forest-deep); padding:5px 14px; border-radius:20px;
}
.day > .dhead h3{font-family:var(--font-script); font-size:30px; font-weight:400;}
.day > .dhead .date{
  font-family:var(--font-serif); font-size:12.5px; font-weight:600;
  letter-spacing:.2em; text-transform:uppercase; color:var(--gold); margin-left:auto;
}
.day > .dhead .mood{
  width:100%; font-family:var(--font-script); font-size:19px;
  color:rgba(245,241,232,.8); margin-top:-2px;
}
.dbody{padding:28px 32px;}

.step{
  display:grid; grid-template-columns:124px 1fr; gap:24px;
  padding:15px 0; border-bottom:1px dashed rgba(61,74,44,.22);
}
.step:last-child{border-bottom:none;}
.step .time{
  font-family:var(--font-serif); font-size:13px; font-weight:700;
  letter-spacing:.11em; text-transform:uppercase; color:var(--rose); padding-top:2px;
}
.step .what{font-size:15.5px;}
.step .what ul{margin:9px 0 0; padding-left:19px; color:var(--ink-soft); font-size:14.5px; display:grid; gap:4px;}

/* day 2 fork */
.fork{display:grid; grid-template-columns:1fr auto 1fr;}
.fork .side{padding:26px 30px;}
.fork .side .tag{
  display:inline-block; font-family:var(--font-serif); font-size:11.5px; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase;
  background:var(--sage-tint); color:var(--forest); padding:6px 15px; border-radius:20px;
}
.fork .side h4{font-family:var(--font-serif); font-size:19px; font-weight:700; margin:12px 0 2px; color:var(--forest);}
.fork .side .kick{font-family:var(--font-script); font-size:20px; color:var(--rose); margin-bottom:8px;}
.fork .divider{
  display:flex; align-items:center; justify-content:center; padding:0 4px;
  border-left:1px dashed rgba(61,74,44,.24); border-right:1px dashed rgba(61,74,44,.24);
}
.fork .divider span{
  font-family:var(--font-serif); font-size:12px; font-weight:700; letter-spacing:.16em;
  background:var(--rose); color:var(--cream); width:46px; height:46px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
}

/* ---------- fact row ---------- */
.facts{display:grid; grid-template-columns:repeat(4,1fr); gap:0; background:#fff; box-shadow:var(--shadow-soft);}
.facts .f{padding:26px 26px; border-right:1px dashed rgba(61,74,44,.24);}
.facts .f:last-child{border-right:none;}
.facts .k{
  font-family:var(--font-serif); font-size:11.5px; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--rose);
}
.facts .v{font-family:var(--font-serif); font-size:21px; font-weight:700; color:var(--forest); margin-top:7px; line-height:1.2;}
.facts .v small{display:block; font-size:13px; font-weight:600; color:var(--ink-faint); letter-spacing:.04em; margin-top:3px; text-transform:none;}

/* ---------- chips ---------- */
.chips{display:flex; flex-wrap:wrap; gap:10px;}
.chips span, .chips a{
  background:#fff; border:1px solid rgba(61,74,44,.2);
  border-radius:26px; padding:9px 19px;
  font-family:var(--font-serif); font-size:13px; font-weight:600;
  letter-spacing:.09em; color:var(--forest); text-decoration:none;
  transition:background .2s ease, color .2s ease;
}
.chips a:hover{background:var(--olive); border-color:var(--olive); color:var(--cream);}

/* ---------- tick lists ---------- */
.ticks{list-style:none; margin:0; padding:0; display:grid; gap:12px;}
.ticks li{display:flex; gap:13px; align-items:flex-start; font-size:15.5px;}
.ticks li::before{
  content:"✓"; flex:none; width:23px; height:23px; border-radius:50%;
  background:var(--sage-tint); color:var(--forest);
  display:flex; align-items:center; justify-content:center; font-size:12px; margin-top:2px;
}
.ticks.no li::before{content:"✕"; background:var(--rose-tint); color:var(--rose-deep);}

.pill-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:12px;}
.pill-grid span{
  background:#fff; border:1px solid rgba(61,74,44,.16);
  border-radius:26px; padding:12px 20px; font-size:14.5px; color:var(--ink-soft);
}

/* ---------- panel / card ---------- */
.panelcard{background:#fff; box-shadow:var(--shadow-soft); padding:40px;}
.panelcard h3{font-family:var(--font-script); font-size:30px; font-weight:400; color:var(--forest); margin-bottom:12px;}
.panelcard p{color:var(--ink-soft);}

.split{display:grid; grid-template-columns:1fr 1fr; gap:0; box-shadow:var(--shadow-soft);}
.split .pane{padding:48px 44px; background:#fff;}
.split .pane.forest{background:var(--forest); color:var(--cream);}
.split .pane.forest p{color:rgba(245,241,232,.8);}
.split .pane.olive{background:var(--olive); color:var(--cream);}
.split .pane.olive p{color:rgba(245,241,232,.82);}
.split h3{font-family:var(--font-script); font-size:32px; font-weight:400; margin-bottom:14px; color:var(--forest);}
.split .pane.forest h3, .split .pane.olive h3{color:var(--cream);}

/* ---------- quotes ---------- */
.quotes{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.quote{background:#fff; box-shadow:var(--shadow-soft); padding:34px 30px; position:relative;}
.quote::before{
  content:"\201C"; font-family:var(--font-serif); font-size:74px; color:var(--rose-tint);
  position:absolute; top:10px; left:22px; line-height:1;
}
.quote p{position:relative; font-family:var(--font-serif); font-size:18px; font-style:italic; color:var(--ink); margin:0 0 18px;}
.quote .who{font-family:var(--font-serif); font-size:12px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--rose);}

/* ---------- FAQ ---------- */
.faq{display:grid; gap:0; max-width:860px;}
.faq details{border-bottom:1px dashed rgba(61,74,44,.26);}
.faq summary{
  cursor:pointer; list-style:none; padding:24px 0;
  font-family:var(--font-serif); font-size:19px; font-weight:700; color:var(--forest);
  display:flex; justify-content:space-between; gap:20px; align-items:center;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+"; color:var(--rose); font-size:24px; font-weight:400; flex:none;}
.faq details[open] summary::after{content:"–";}
.faq .ans{padding:0 0 26px; color:var(--ink-soft); font-size:15.5px; max-width:70ch;}
.faq .ans p{margin:0 0 12px;}
.faq .ans p:last-child{margin:0;}

/* ---------- forms ---------- */
.formcard{background:#fff; box-shadow:var(--shadow-soft); padding:44px;}
.field{margin-bottom:22px;}
.field label{
  display:block; margin-bottom:8px;
  font-family:var(--font-serif); font-size:12px; font-weight:700;
  letter-spacing:.18em; text-transform:uppercase; color:var(--olive);
}
.field input, .field select, .field textarea{
  width:100%; font-family:var(--font-body); font-size:15.5px;
  padding:14px 16px; background:var(--cream); color:var(--ink);
  border:1px solid rgba(61,74,44,.24); border-radius:4px;
}
.field textarea{min-height:140px; resize:vertical;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:22px;}
.consent{display:flex; gap:12px; align-items:flex-start; font-size:14px; color:var(--ink-soft);}
.consent input{width:auto; margin-top:5px; flex:none;}

.cline{display:flex; gap:18px; align-items:flex-start; padding:20px 0; border-bottom:1px dashed rgba(61,74,44,.24);}
.cline:last-child{border-bottom:none;}
.cline .ico{
  width:44px; height:44px; border-radius:50%; background:var(--rose); flex:none;
  display:flex; align-items:center; justify-content:center;
}
.cline .ico svg{width:19px; height:19px; stroke:var(--cream); fill:none; stroke-width:1.7;}
.cline .k{font-family:var(--font-serif); font-size:11.5px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--rose);}
.cline .v{font-family:var(--font-serif); font-size:18px; font-weight:600; color:var(--forest); margin-top:3px;}
.cline .v a{text-decoration:none;}
.cline .v a:hover{color:var(--rose);}

/* ---------- prose / legal ---------- */
.prose{max-width:820px; background:#fff; box-shadow:var(--shadow-soft); padding:60px 56px;}
.prose h2{
  font-family:var(--font-serif); font-size:24px; font-weight:700; color:var(--forest);
  margin:44px 0 14px; padding-top:30px; border-top:1px dashed rgba(61,74,44,.26);
}
.prose h2:first-of-type{margin-top:0; padding-top:0; border-top:none;}
.prose h3{font-family:var(--font-serif); font-size:18px; font-weight:700; margin:26px 0 8px; color:var(--olive);}
.prose p, .prose li{font-size:15.5px; color:#463F35;}
.prose p{margin:0 0 15px;}
.prose ul, .prose ol{padding-left:22px; margin:0 0 18px;}
.prose li{margin-bottom:9px;}
.prose a{color:var(--rose); font-weight:600;}
.prose .updated{
  display:inline-block; font-family:var(--font-serif); font-size:12px; font-weight:700;
  letter-spacing:.2em; text-transform:uppercase; color:var(--olive);
  border:1px solid rgba(61,74,44,.26); border-radius:26px; padding:9px 20px; margin-bottom:34px;
}
.prose .callout{
  background:var(--paper); border-left:3px solid var(--rose);
  padding:20px 24px; margin:0 0 26px; font-size:15px;
}
.todo{background:#FBF0C9; border-bottom:1px solid var(--gold); padding:1px 6px; border-radius:3px;}

/* draft notice */
.draft-note{
  background:var(--rose-tint); border-left:3px solid var(--rose);
  padding:18px 24px; margin-bottom:30px; font-size:15px; color:#5E3A3E;
}
.draft-note strong{font-family:var(--font-serif); color:var(--rose-deep);}
.draft-note code{font-family:ui-monospace,monospace; font-size:13px; background:rgba(255,255,255,.6); padding:1px 6px; border-radius:3px;}

/* ---------- departure cards ---------- */
.deps{display:grid; grid-template-columns:1fr 1fr; gap:26px;}
.dep{background:#fff; box-shadow:var(--shadow-soft); padding:30px 32px;}
.dep h4{font-family:var(--font-script); font-size:28px; font-weight:400; color:var(--forest); margin-bottom:14px;}
.dep dl{margin:0; display:grid; grid-template-columns:auto 1fr; gap:10px 20px;}
.dep dt{font-family:var(--font-serif); font-size:11.5px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; color:var(--rose); padding-top:4px;}
.dep dd{margin:0; font-size:15.5px; font-weight:600; color:var(--forest);}

/* ---------- footer ---------- */
footer.site{background:var(--forest); color:rgba(245,241,232,.76); padding:74px 0 34px;}
footer.site .cols{display:grid; grid-template-columns:1.7fr 1fr 1fr 1fr; gap:46px;}
footer.site .bcol img{height:46px; margin-bottom:20px; filter:brightness(0) invert(1); opacity:.95;}
footer.site .bcol p{font-size:15px; max-width:34ch; margin:0 0 20px;}
footer.site .bcol .tag{font-family:var(--font-script); font-size:24px; color:var(--gold);}
footer.site h4{
  font-family:var(--font-serif); font-size:12px; font-weight:700;
  letter-spacing:.24em; text-transform:uppercase; color:var(--gold); margin-bottom:18px;
}
footer.site ul{list-style:none; margin:0; padding:0; display:grid; gap:12px;}
footer.site a{color:rgba(245,241,232,.76); text-decoration:none; font-size:15px;}
footer.site a:hover{color:var(--cream);}
footer.site .base{
  margin-top:56px; padding-top:26px; border-top:1px solid rgba(245,241,232,.16);
  display:flex; justify-content:space-between; gap:22px; flex-wrap:wrap;
  font-family:var(--font-serif); font-size:12px; letter-spacing:.14em;
  text-transform:uppercase; color:rgba(245,241,232,.52);
}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .pack-grid{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:900px){
  .hero .grid{grid-template-columns:1fr; gap:48px;}
  .collage{margin:0 auto;}
  .pack-grid, .quotes{grid-template-columns:repeat(2,1fr);}
  .facts{grid-template-columns:1fr 1fr;}
  .facts .f:nth-child(2){border-right:none;}
  .facts .f:nth-child(1), .facts .f:nth-child(2){border-bottom:1px dashed rgba(61,74,44,.24);}
  footer.site .cols{grid-template-columns:1fr 1fr;}
  .split{grid-template-columns:1fr;}
}
@media (max-width:820px){
  .wrap{padding:0 22px;}
  .section{padding:68px 0;}
  .burger{display:flex;}
  .topbar nav{
    display:none; position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:flex-start; gap:0;
    background:var(--cream); border-bottom:1px solid rgba(61,74,44,.18);
    padding:6px 22px 22px;
  }
  .topbar nav.open{display:flex;}
  .topbar nav a{width:100%; padding:15px 0; border-bottom:1px dashed rgba(61,74,44,.22);}
  .topbar nav .nav-cta{margin-top:16px; width:auto; border-bottom:none;}
  .fork{grid-template-columns:1fr;}
  .fork .divider{border:none; border-top:1px dashed rgba(61,74,44,.24); border-bottom:1px dashed rgba(61,74,44,.24); padding:14px 0;}
  .step{grid-template-columns:1fr; gap:3px;}
  .field-row{grid-template-columns:1fr;}
  .prose{padding:36px 26px;}
  .deps{grid-template-columns:1fr;}
  .pill-grid{grid-template-columns:1fr 1fr;}
  .split .pane{padding:36px 28px;}
  .panelcard{padding:30px 26px;}
  .formcard{padding:30px 24px;}
}
@media (max-width:600px){
  .pack-grid, .quotes{grid-template-columns:1fr;}
  .facts{grid-template-columns:1fr;}
  .facts .f{border-right:none; border-bottom:1px dashed rgba(61,74,44,.24);}
  .facts .f:last-child{border-bottom:none;}
  .pill-grid{grid-template-columns:1fr;}
  footer.site .cols{grid-template-columns:1fr;}
  .collage{max-width:400px;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{transition-duration:.01ms !important; animation-duration:.01ms !important;}
  .pack:hover, .btn:hover{transform:none;}
}
