/* =========================================================
   Parties on Deck — Vintage heritage bar marketing site
   Palette: sage green + warm white + oak wood + antique gold
   (variable names kept from the dark theme; values remapped:
    --ink* = light surfaces, --paper = deep sage text,
    --tangerine = gold, --lime = sage)
   ========================================================= */

:root{
  --ink:        #F7F3E8;        /* warm white — page background */
  --ink-2:      #FDFBF3;        /* card surfaces */
  --ink-3:      #EFE9D8;        /* hover tier */
  --paper:      #35402C;        /* deep sage — text */
  --paper-2:    #2A331F;
  --tangerine:  #B08A2E;        /* antique gold accent */
  --tangerine-2:#C9A244;
  --lime:       #6B7F55;        /* sage green */
  --magenta:    #A0522D;        /* vintage brick */
  --rule:       rgba(53,64,44,.18);
  --rule-dark:  rgba(247,243,232,.18);

  --font-display: "Fraunces", "Times New Roman", Georgia, serif;
  --font-body:    "Instrument Sans", system-ui, sans-serif;
  --font-mono:    "JetBrains Mono", ui-monospace, monospace;

  --maxw: 1360px;
  --pad-x: clamp(20px, 4vw, 56px);
  --topbar-h: 40px;
}

/* ---------- reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth; -webkit-text-size-adjust:100%; scroll-padding-top: 96px}
body{
  background:var(--ink);
  color:var(--paper);
  font-family:var(--font-body);
  font-size:17px;
  line-height:1.55;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
button{font:inherit; cursor:pointer; border:0; background:none; color:inherit}
ul{margin:0; padding:0; list-style:none}
em{font-style:italic}

::selection{background:var(--tangerine); color:var(--ink)}

/* ---------- grain ---------- */
.grain{
  position:fixed; inset:0; pointer-events:none; z-index:200;
  opacity:.10; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='280' height='280'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .55 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

/* ---------- side rail ---------- */
.side-rail{
  position:fixed; left:18px; top:50%;
  transform:translateY(-50%) rotate(-90deg);
  transform-origin:left top;
  letter-spacing:.32em; font-size:11px; font-weight:600;
  color:var(--paper); opacity:.7;
  display:flex; align-items:center; gap:14px;
  z-index:50;
  text-transform:uppercase;
}
.side-rail .dot{
  width:6px; height:6px; border-radius:50%;
  background:var(--tangerine); display:inline-block;
  box-shadow:0 0 0 4px rgba(176,138,46,.2);
}
.side-rail:hover{opacity:1; color:var(--tangerine)}
@media (max-width:900px){ .side-rail{display:none} }

/* ---------- nav ---------- */
.nav{
  position:fixed; top:var(--topbar-h); left:0; right:0; z-index:100;
  display:flex; align-items:center; gap:24px;
  padding:18px var(--pad-x);
  transition: background .35s ease, backdrop-filter .35s ease, border-color .35s, top .35s ease;
  border-bottom:1px solid transparent;
}
body.scrolled .nav,
body.menu-open .nav{ top:0; }
body.menu-open .nav{ background:var(--ink); }
.nav.scrolled{
  background:rgba(247,243,232,.82);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  border-bottom-color:var(--rule);
}
.brand{
  display:flex; align-items:center; gap:10px;
  font-family:var(--font-display);
  font-weight:500; font-size:18px;
  letter-spacing:-.01em;
}
.brand-mark{width:auto; height:44px; display:block}
.brand-text sup{font-size:.55em; vertical-align:super; opacity:.65; margin-left:2px}
.nav-links{margin-left:auto; display:flex; gap:32px}
.nav-links a{
  font-size:13px; letter-spacing:.06em;
  text-transform:uppercase; font-weight:500;
  position:relative;
  transition:color .2s;
}
.nav-links a::after{
  content:""; position:absolute; left:0; right:0; bottom:-6px;
  height:1px; background:var(--tangerine);
  transform:scaleX(0); transform-origin:left;
  transition:transform .35s ease;
}
.nav-links a:hover{color:var(--tangerine)}
.nav-links a:hover::after{transform:scaleX(1)}

.nav-cta{
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 16px;
  border:1px solid var(--rule);
  border-radius:999px;
  font-family:var(--font-mono); font-size:12px;
  letter-spacing:.04em;
  transition: border-color .2s, color .2s, background .2s;
}
.nav-cta:hover{border-color:var(--tangerine); color:var(--tangerine)}
.nav-cta .dot{
  width:7px; height:7px; border-radius:50%;
  background:var(--lime);
}
.pulse{ animation: pulse 1.6s ease-out infinite }
@keyframes pulse{
  0%{ box-shadow:0 0 0 0 rgba(107,127,85,.6) }
  70%{ box-shadow:0 0 0 8px rgba(107,127,85,0) }
  100%{ box-shadow:0 0 0 0 rgba(107,127,85,0) }
}

.nav-toggle{
  display:none; width:36px; height:36px; flex-direction:column;
  justify-content:center; gap:5px; padding:0;
  margin-left:auto;
}
.nav-toggle span{
  display:block; height:1.5px; background:var(--paper);
  transition:transform .3s, opacity .3s;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

@media (max-width: 900px){
  .nav-links{
    position:fixed; inset:64px 0 0 0;
    flex-direction:column; gap:36px;
    background:var(--ink);
    padding:50px var(--pad-x);
    transform:translateX(100%); transition:transform .4s ease;
    border-top:1px solid var(--rule);
  }
  .nav-links.open{transform:translateX(0)}
  .nav-links a{font-size:24px; font-family:var(--font-display); text-transform:none; letter-spacing:0}
  .nav-cta{display:none}
  .nav-toggle{display:flex}
}

/* =========================================================
   HERO
   ========================================================= */
.hero{
  position:relative;
  min-height: auto;
  padding: 150px var(--pad-x) 90px;
  max-width:var(--maxw);
  margin:0 auto;
  overflow:hidden;
}
.wood-rule{
  height: 14px;
  background: #DCB97E url("assets/wood-texture.jpg") repeat;
  background-size: 420px auto;
  border-top: 1px solid rgba(53,64,44,.25);
  border-bottom: 1px solid rgba(53,64,44,.25);
}
/* on smaller laptops switch to a flowing column so nothing collides */
@media (max-width: 1200px){
  .hero{ min-height: auto; padding: 120px var(--pad-x) 60px; }
}

.hero-eyebrow{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  font-family:var(--font-mono); font-size:12px;
  letter-spacing:.08em; text-transform:uppercase;
  color:var(--paper); opacity:.7;
  margin-bottom:36px;
  animation: rise .9s .1s both;
}
.hero-eyebrow .sep{opacity:.4}
.kbd{
  font-family:var(--font-mono);
  background:rgba(53,64,44,.05);
  border:1px solid var(--rule);
  padding:4px 8px; border-radius:4px;
  font-size:11px; letter-spacing:.1em;
  color:var(--lime);
}

.hero-title{
  font-family:var(--font-display);
  font-weight: 320;
  font-size: clamp(64px, 13vw, 200px);
  line-height:.88;
  letter-spacing:-.03em;
  margin: 0 0 40px;
  position:relative;
  font-variation-settings: "SOFT" 50, "WONK" 1, "opsz" 144;
}
.hero-title .line{ display:block }
.hero-title .line-1{ animation: rise .9s .15s both; }
.hero-title .line-2{
  font-style:italic;
  font-weight:300;
  color:var(--tangerine);
  padding-left: clamp(60px, 12vw, 200px);
  position:relative;
  font-variation-settings: "SOFT" 100, "WONK" 1, "opsz" 144;
  animation: rise .9s .3s both;
}
.hero-title .line-2 sup{
  font-size:.18em;
  color:var(--lime);
  vertical-align:super;
  margin-left:.2em;
  font-style:normal;
}
.hero-title .line-3{
  font-size:.32em;
  font-weight:400;
  font-style:italic;
  color:var(--paper);
  margin-top:.4em;
  padding-left: clamp(20px, 6vw, 100px);
  display:flex; align-items:center; gap:18px;
  animation: rise .9s .45s both;
}
.hero-title .line-3::before{
  content:""; width: clamp(40px, 8vw, 120px); height:1px; background:var(--paper); opacity:.4;
}

.hero-lede{
  max-width:540px;
  font-size: clamp(17px, 1.4vw, 21px);
  line-height:1.5;
  color:var(--paper); opacity:.85;
  margin: 0 0 36px;
  animation: rise .9s .55s both;
}

.hero-ctas{
  display:flex; gap:14px; flex-wrap:wrap;
  animation: rise .9s .65s both;
}

.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:16px 28px;
  font-family:var(--font-body);
  font-size:14px; font-weight:600;
  letter-spacing:.04em; text-transform:uppercase;
  border-radius:999px;
  border:1px solid transparent;
  transition: transform .25s ease, background .25s, color .25s, border-color .25s;
  white-space:nowrap;
}
.btn svg{ width:18px; height:18px; transition:transform .25s ease; }
.btn:hover svg{ transform:translateX(4px) }
.btn-primary{
  background:var(--tangerine); color:#FFFDF6;
}
.btn-primary:hover{ background:var(--paper); color:var(--ink); }
.btn-ghost{
  border-color:var(--paper); color:var(--paper);
}
.btn-ghost:hover{ background:var(--paper); color:var(--ink); }
.btn-block{ width:100%; justify-content:center; padding:18px 28px; font-size:15px; }

/* press card */
.hero-press{
  position:static;
  margin-top:44px;
  max-width:300px;
  padding:18px 20px;
  background:rgba(53,64,44,.04);
  border:1px solid var(--rule);
  border-radius:14px;
  backdrop-filter: blur(8px);
  font-size:14px; line-height:1.45;
  color:var(--paper);
  animation: rise .9s .8s both;
}
.hero-press p{ margin:8px 0; font-family:var(--font-display); font-style:italic; }
.press-stars{ color:var(--tangerine); letter-spacing:.2em; font-size:13px; }
.press-attrib{ font-size:11px; opacity:.6; text-transform:uppercase; letter-spacing:.08em; }

@media (max-width: 1200px){
  .hero-press{ max-width:none; margin-top:40px; }
}

/* hero photo */
.hero-photo{
  position:absolute;
  right: var(--pad-x);
  top: 130px;
  width: clamp(260px, 28vw, 420px);
  margin:0;
  animation: rise 1.1s .5s both;
}
.hero-photo img{
  width:100%; height: clamp(360px, 44vw, 560px);
  object-fit:cover;
  border-radius: 240px 240px 18px 18px;
  border:1px solid var(--rule);
  filter: contrast(1.05) saturate(1.02);
}
.hero-photo figcaption{
  display:flex; justify-content:space-between;
  margin-top:12px;
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:.1em; text-transform:uppercase;
  opacity:.6;
}
@media (max-width: 1200px){
  .hero-photo{
    position:relative; right:auto; top:auto;
    width:100%; max-width:480px; margin: 36px auto 0;
  }
  .hero-photo img{ height: clamp(280px, 60vw, 420px); border-radius: 160px 160px 12px 12px; }
  .hero-ctas{ max-width:480px; margin: 32px auto 0; }
}

/* citrus glyph */
.glyph-citrus{
  position:absolute;
  right: 8%;
  bottom: 60px;
  width: 120px; height:120px;
  animation: spin 22s linear infinite;
  filter: drop-shadow(0 14px 40px rgba(176,138,46,.3));
  z-index:2;
}
@keyframes spin{ to{ transform: rotate(360deg) } }
@media (max-width:1200px){ .glyph-citrus{ width:80px; height:80px; right: 6%; bottom: 8%; top:auto; } }
@media (max-width:640px) { .glyph-citrus{ width:64px; height:64px; right: 16px; bottom: 16px; } }

/* scroll cue */
.scroll-cue{
  position:absolute;
  left: var(--pad-x);
  bottom: 30px;
  display:flex; flex-direction:column; align-items:center;
  gap:8px;
  font-family:var(--font-mono); font-size:10px;
  letter-spacing:.3em; opacity:.6;
}
.scroll-cue svg{ width:14px; height:24px; animation: bob 1.8s ease-in-out infinite; }
@keyframes bob{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(6px)} }
@media (max-width:900px){ .scroll-cue{display:none} }

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

/* =========================================================
   MARQUEE  — modern editorial ticker
   ========================================================= */
.marquee{
  background: #DCB97E url("assets/wood-texture.jpg") repeat;
  background-size: 420px auto;
  color: var(--paper);
  padding: 14px 0;
  overflow:hidden;
  position:relative;
  border-top: 1px solid rgba(53,64,44,.25);
  border-bottom: 1px solid rgba(53,64,44,.25);
}
.marquee::before,
.marquee::after{
  content:"";
  position:absolute; top:0; bottom:0;
  width: 72px; z-index:2;
  pointer-events:none;
}
.marquee::before{ left:0; background: linear-gradient(90deg, rgba(93,64,28,.28), rgba(93,64,28,0)); }
.marquee::after { right:0; background: linear-gradient(-90deg, rgba(93,64,28,.28), rgba(93,64,28,0)); }

.marquee-track{
  display:flex; align-items:center; gap: 28px;
  white-space:nowrap;
  width:max-content;
  animation: scroll 44s linear infinite;
  font-family: var(--font-body);
  font-size: clamp(13px, 1.4vw, 18px);
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.m-item{
  display:inline-block;
  padding: 6px 0;
}
.m-dot{
  display:inline-block;
  width: 6px; height: 6px;
  background: var(--paper);
  border-radius: 50%;
  flex-shrink: 0;
}
.m-glass{
  width: 18px; height: 18px;
  color: var(--tangerine);
  flex-shrink: 0;
}
@keyframes scroll{
  from{ transform: translateX(0) }
  to  { transform: translateX(-50%) }
}
.marquee:hover .marquee-track{ animation-play-state: paused; }

/* =========================================================
   SECTION SHELL
   ========================================================= */
.section{
  max-width:var(--maxw);
  margin: 0 auto;
  padding: clamp(72px, 9vw, 120px) var(--pad-x);
  position:relative;
}
.section-num{
  display:flex; align-items:center; gap:18px;
  font-family:var(--font-mono);
  font-size:12px; letter-spacing:.16em;
  text-transform:uppercase;
  opacity:.7;
  margin-bottom: clamp(36px, 5vw, 64px);
  flex-wrap:wrap;
}
.section-num span:first-child{
  color:var(--tangerine);
  border:1px solid var(--tangerine);
  padding:4px 10px; border-radius:4px;
}
.display{
  font-family:var(--font-display);
  font-weight:380;
  font-size: clamp(42px, 6.4vw, 96px);
  line-height:1.02;
  letter-spacing:-.025em;
  margin:0 0 32px;
  font-variation-settings: "SOFT" 50, "opsz" 144;
}
.display em{
  color: var(--tangerine);
  font-style:italic;
  font-weight:340;
  font-variation-settings: "SOFT" 100, "WONK" 1, "opsz" 144;
}
.lede{
  font-size: clamp(18px, 1.4vw, 22px);
  line-height:1.45;
  max-width: 640px;
  opacity:.88;
}
.body{ opacity:.78 }

/* =========================================================
   01 / THE POUR
   ========================================================= */
.pour-grid{
  display:grid;
  grid-template-columns: 1.05fr 1fr;
  gap: clamp(40px, 6vw, 110px);
  align-items:start;
}
.pour-text .display{ max-width:560px }
.pour-text .lede{ margin: 0 0 24px }
.pour-text .body{ max-width: 540px }
.emoji{font-style:normal}

.signature{
  margin-top:36px;
  display:flex; align-items:center; gap:18px;
  color:var(--tangerine);
  font-family:var(--font-display); font-style:italic;
}
.signature svg{ width:160px; height:42px; }
.signature span{ color:var(--paper); opacity:.75; font-size:14px; font-style:normal; letter-spacing:.04em; font-family:var(--font-mono); text-transform:uppercase; }

.pour-collage{
  position:relative;
  min-height: 480px;
  display:grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 14px;
}
.pc{
  position:relative;
  margin:0;
  border-radius:6px;
  overflow:hidden;
  border:1px solid var(--rule);
  box-shadow: 0 30px 80px -20px rgba(53,64,44,.35);
}
.pc img{ display:block; width:100%; height:100%; object-fit:cover; filter: sepia(.22) saturate(.9) contrast(.96); }
.pc figcaption{
  position:absolute; left:12px; bottom:10px;
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:.06em; text-transform:uppercase;
  color:#F7F3E8;
  background: rgba(42,51,31,.65); padding: 5px 8px;
  border-radius:4px; backdrop-filter: blur(6px);
}
.pc-1{
  grid-column: 1 / span 2;
  height: clamp(260px, 38vw, 380px);
  transform: rotate(-1.5deg);
}
.pc-2{
  grid-column: 1 / span 2;
  height: clamp(220px, 32vw, 320px);
  margin-left: auto;
  width: 78%;
  transform: rotate(2deg);
}
.stamp{
  position:absolute;
  width: clamp(96px, 14vw, 140px);
  height: clamp(96px, 14vw, 140px);
  right: -6%;
  top: 40%;
  color: var(--tangerine);
  animation: spin 26s linear infinite;
  z-index:3;
  filter: drop-shadow(0 10px 30px rgba(176,138,46,.25));
  pointer-events:none;
}
@media (max-width: 900px){
  .pour-grid{ grid-template-columns: 1fr }
  .pour-collage{ margin-top: 24px; }
  .pc-2{ width: 88%; }
  .stamp{ right: 2%; top: auto; bottom: -36px; }
}
@media (max-width: 480px){
  .pc-1{ transform: rotate(-1deg); }
  .pc-2{ transform: rotate(1.5deg); width: 92%; }
}

/* =========================================================
   02 / WHAT'S IN THE BOTTLE
   ========================================================= */
.proof{
  background: var(--paper);
  color: var(--ink);
  max-width: none;
  padding-left: 0; padding-right: 0;
}
.proof > *{
  max-width: var(--maxw);
  margin-left:auto; margin-right:auto;
  padding-left: var(--pad-x);
  padding-right: var(--pad-x);
}
.proof .section-num{ color:var(--ink); opacity:.6; }
.proof .section-num span:first-child{ color:var(--tangerine); border-color:var(--tangerine); }
.proof .display em{ color: var(--tangerine); }
.proof .lede{ color: var(--ink); opacity:.7; }

.proof-head{ margin-bottom: 72px; max-width: 920px; }
.proof-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top:1px solid var(--rule-dark);
}
.proof-grid li{
  padding: 36px 26px 40px;
  border-bottom:1px solid var(--rule-dark);
  border-right:1px solid var(--rule-dark);
  position:relative;
  transition: background .3s ease;
}
.proof-grid li:nth-child(3n){ border-right:0 }
.proof-grid li:hover{ background: rgba(228,184,76,.08) }
.proof-grid .num{
  display:block;
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:.12em;
  color: var(--tangerine);
  margin-bottom: 20px;
}
.proof-grid h3{
  font-family: var(--font-display);
  font-weight: 440;
  font-size: 22px;
  line-height: 1.15;
  margin: 0 0 10px;
  letter-spacing:-.01em;
}
.proof-grid p{
  margin:0;
  font-size:14px;
  line-height:1.5;
  opacity:.7;
}
@media (max-width: 1000px){ .proof-grid{ grid-template-columns: repeat(2, 1fr) } .proof-grid li:nth-child(3n){ border-right:1px solid var(--rule-dark) } .proof-grid li:nth-child(2n){ border-right:0 } }
@media (max-width: 540px){ .proof-grid{ grid-template-columns: 1fr } .proof-grid li{ border-right:0 !important } }

/* =========================================================
   03 / THE LIST (packages)
   ========================================================= */
.list-head{ margin-bottom: 72px; max-width: 920px; }

.packages{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-bottom: 36px;
}
.pkg{
  position:relative;
  background: var(--ink-2);
  border:1px solid var(--rule);
  border-radius: 14px;
  padding: 36px 32px 32px;
  display:flex; flex-direction:column;
  transition: transform .35s ease, border-color .35s ease;
}
.pkg:hover{ transform: translateY(-6px); border-color: var(--tangerine); }

.pkg-top{
  display:flex; justify-content:space-between; align-items:baseline;
  margin-bottom: 22px;
  padding-bottom: 22px;
  border-bottom: 1px dashed var(--rule);
  font-family:var(--font-mono); font-size:12px;
  letter-spacing:.12em; text-transform:uppercase;
}
.pkg-no{ color:var(--tangerine); }
.pkg-name{ color: var(--paper); opacity:.75; }

.pkg-price{
  display:flex; align-items:baseline; gap:6px; flex-wrap:wrap;
  margin-bottom: 28px;
  font-family:var(--font-display);
  line-height:1;
}
.pkg-price .dollar{
  font-size: 32px; opacity:.6;
}
.pkg-price .amt{
  font-size: clamp(72px, 8vw, 96px);
  font-weight: 350;
  letter-spacing:-.04em;
  font-variation-settings: "SOFT" 30, "opsz" 144;
}
.amt-script{ font-style:italic; color: var(--tangerine); font-variation-settings: "SOFT" 100, "WONK" 1, "opsz" 144; font-size: clamp(56px, 7vw, 78px) !important; }
.pkg-price .unit{
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:.1em; text-transform:uppercase;
  opacity:.6; margin-left:10px;
  white-space:nowrap; line-height:1.5;
}

.pkg-list{
  display:flex; flex-direction:column;
  gap:0;
  margin-bottom:24px;
  flex-grow:1;
}
.pkg-list li{
  display:flex; justify-content:space-between; align-items:baseline;
  padding: 11px 0;
  border-bottom: 1px dotted var(--rule);
  font-size:14px;
}
.pkg-list li:last-child{ border-bottom:0; }
.pkg-list span{ opacity:.7 }
.pkg-list b{
  font-weight:600;
  font-family:var(--font-mono); font-size:12px;
  letter-spacing:.04em; text-transform:uppercase;
  color: var(--lime);
}

.pkg-fine{
  font-size:12px;
  font-style:italic;
  opacity:.6;
  margin: 0 0 22px;
  line-height:1.5;
  font-family:var(--font-display);
}

.pkg-cta{
  display:inline-block;
  text-align:center;
  padding: 14px 20px;
  border:1px solid var(--paper);
  border-radius: 999px;
  font-size:13px; font-weight:600;
  letter-spacing:.08em; text-transform:uppercase;
  transition: background .25s, color .25s;
}
.pkg-cta:hover{ background:var(--paper); color:var(--ink); }

.pkg-featured{
  background: linear-gradient(180deg, rgba(176,138,46,.14) 0%, rgba(176,138,46,0) 70%), var(--ink-2);
  border-color: var(--tangerine);
}
.pkg-featured .pkg-cta{
  background: var(--tangerine); color: #FFFDF6; border-color: var(--tangerine);
}
.pkg-featured .pkg-cta:hover{ background: var(--paper); border-color:var(--paper); }

.pkg-badge{
  position:absolute; top:-12px; right: 24px;
  background: var(--lime);
  color: var(--ink);
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:.12em; text-transform:uppercase;
  font-weight:600;
  padding: 5px 12px;
  border-radius: 999px;
  border:1px solid var(--paper);
}

.pkg-custom{
  background: transparent;
  border: 1px dashed var(--rule);
}

.list-foot{
  text-align:center;
  font-family:var(--font-display); font-style:italic;
  font-size: 16px; opacity:.7;
  max-width: 720px; margin: 0 auto;
}
.list-foot b{ font-style:normal; color:var(--lime); }

@media (max-width: 1100px){
  .packages{ grid-template-columns: 1fr; max-width: 560px; margin-left:auto; margin-right:auto; }
}

/* =========================================================
   04 / OCCASIONS
   ========================================================= */
.occ-head{ margin-bottom: 60px; max-width: 920px; }

.occ-wall{
  display:flex; flex-wrap:wrap;
  align-items:center;
  gap: 0 28px;
  font-family:var(--font-display);
  font-weight:340;
  font-size: clamp(28px, 4.2vw, 56px);
  line-height: 1.05;
  letter-spacing:-.02em;
  margin-bottom: 80px;
  font-variation-settings: "SOFT" 50, "opsz" 144;
}
.occ-wall li{
  position:relative;
  padding-right: 28px;
  cursor: default;
  transition: color .3s ease, transform .3s ease;
}
.occ-wall li::after{
  content: "✦";
  position:absolute; right:0; top:50%;
  transform: translateY(-50%);
  font-size: .35em;
  color: var(--tangerine);
  opacity:.6;
}
.occ-wall li:last-child::after{ display:none }
.occ-wall li:hover{ color: var(--tangerine); font-style:italic; }
.occ-wall li:nth-child(odd):hover{ color: var(--lime); }

.occ-card{
  display:grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 0;
  background: var(--ink-2);
  border: 1px solid var(--rule);
  border-radius: 18px;
  overflow:hidden;
}
.occ-card-img{ position:relative; min-height: 320px; }
.occ-card-img img{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  filter: sepia(.22) saturate(.9) contrast(.96);
}
.occ-card-body{
  padding: 48px 52px;
  display:flex; flex-direction:column; justify-content:center;
  gap: 18px;
}
.occ-card .kbd{ width:fit-content }
.occ-card h3{
  font-family:var(--font-display);
  font-weight:380;
  font-size: clamp(30px, 3vw, 44px);
  line-height:1.1;
  letter-spacing:-.02em;
  margin:0;
}
.occ-card p{ margin:0; opacity:.78; max-width: 460px; }
.occ-card .btn{ width:fit-content; margin-top:12px; }
@media (max-width: 900px){
  .occ-card{ grid-template-columns: 1fr }
  .occ-card-img{ min-height: 240px }
  .occ-card-body{ padding: 32px 26px }
}

/* =========================================================
   05 / BOOK
   ========================================================= */
.book-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(40px, 6vw, 90px);
  align-items:start;
  margin-bottom: 80px;
}
.book-text .display{ max-width:540px }
.book-text .lede{ margin-bottom: 48px }

.book-contacts{ display:flex; flex-direction:column; gap:18px; }
.bc{
  display:grid;
  grid-template-columns: 180px 1fr;
  gap: 20px;
  padding: 22px 0;
  border-top: 1px solid var(--rule);
  align-items:baseline;
}
.bc:last-child{ border-bottom: 1px solid var(--rule); }
.bc-label{
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:.12em; text-transform:uppercase;
  opacity:.6;
}
.bc-value{
  font-family:var(--font-display); font-size: clamp(20px, 2vw, 30px);
  font-weight: 380;
  letter-spacing:-.01em;
  line-height: 1.2;
}
a.bc:hover .bc-value{ color: var(--tangerine); font-style:italic; }
@media (max-width: 600px){ .bc{ grid-template-columns: 1fr } }

/* form */
.book-form{
  background: var(--ink-2);
  border:1px solid var(--rule);
  border-radius: 16px;
  padding: 36px 32px;
}
.book-form-head{
  display:flex; justify-content:space-between; align-items:baseline;
  border-bottom: 1px solid var(--rule);
  padding-bottom: 20px;
  margin-bottom: 28px;
}
.book-form-head h3{
  margin:0;
  font-family:var(--font-display);
  font-weight: 380;
  font-size: 22px;
  letter-spacing:-.01em;
}
.book-form label{
  display:flex; flex-direction:column;
  gap:6px;
  margin-bottom: 18px;
}
.book-form label > span{
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:.1em; text-transform:uppercase;
  opacity:.6;
}
.book-form input,
.book-form select,
.book-form textarea{
  background: transparent;
  border:0; border-bottom: 1px solid var(--rule);
  color: var(--paper);
  font-family: var(--font-body);
  font-size: 16px;
  padding: 10px 0;
  outline: none;
  transition: border-color .2s;
}
.book-form input::placeholder,
.book-form textarea::placeholder{ color: var(--paper); opacity:.35; }
.book-form input:focus,
.book-form select:focus,
.book-form textarea:focus{ border-bottom-color: var(--tangerine); }
.book-form select{ color: var(--paper); }
.book-form select option{ background: var(--ink); color: var(--paper); }
.form-row{
  display:grid; grid-template-columns: 1fr 1fr; gap: 18px;
}
@media (max-width: 500px){ .form-row{ grid-template-columns: 1fr } }

.form-fine{
  margin-top: 14px;
  font-size: 11px;
  text-align:center;
  opacity:.5;
  font-family:var(--font-mono);
  letter-spacing:.06em;
}

@media (max-width: 1000px){ .book-grid{ grid-template-columns: 1fr } }

.map-wrap{
  border: 1px solid var(--rule);
  border-radius: 16px;
  overflow:hidden;
  filter: sepia(.32) saturate(.8) contrast(.92);
}
.map-wrap iframe{ display:block; }

/* =========================================================
   FOOTER
   ========================================================= */
.foot{
  position:relative;
  border-top: 1px solid var(--rule);
  padding: 90px var(--pad-x) 40px;
  max-width:var(--maxw);
  margin: 0 auto;
}
.foot-big{
  font-family:var(--font-display);
  font-size: clamp(56px, 10vw, 140px);
  font-weight: 320;
  line-height: .9;
  letter-spacing:-.04em;
  margin-bottom: 60px;
  font-variation-settings: "SOFT" 50, "opsz" 144;
}
.foot-big em{ color: var(--tangerine); font-style:italic; display:block; padding-left: clamp(40px, 10vw, 160px); font-variation-settings: "SOFT" 100, "WONK" 1, "opsz" 144; }

.foot-cols{
  display:grid;
  grid-template-columns: 1.2fr 1fr 1fr 1.4fr;
  gap: 40px;
  padding-top: 40px;
  border-top: 1px solid var(--rule);
}
.foot-cols h4{
  font-family:var(--font-mono);
  font-size:11px; letter-spacing:.16em;
  text-transform:uppercase;
  color: var(--tangerine);
  margin: 0 0 16px;
  font-weight: 600;
}
.foot-cols p{ margin: 6px 0; font-size: 14px; opacity:.75; line-height:1.5; }
.foot-cols a:hover{ color: var(--tangerine); }
.foot-logo img{ width:150px; height:auto; display:block; }
@media (max-width: 800px){ .foot-cols{ grid-template-columns: 1fr 1fr; gap: 32px } .foot-logo{ grid-column: 1 / -1; } }
@media (max-width: 500px){ .foot-cols{ grid-template-columns: 1fr } .foot-logo img{ width:130px; } }

.foot-bottom{
  display:flex; justify-content:space-between; flex-wrap:wrap;
  gap: 16px;
  padding-top: 40px;
  margin-top: 60px;
  border-top: 1px solid var(--rule);
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:.08em; text-transform:uppercase;
  opacity:.55;
}
.foot-bottom em{ color: var(--lime); font-style:italic; }

/* =========================================================
   IN-VIEW REVEAL
   ========================================================= */
.reveal{
  opacity: 0;
  transform: translateY(36px);
  transition: opacity .9s ease, transform .9s ease;
  will-change: opacity, transform;
}
.reveal.in{ opacity:1; transform: none; }

/* respect reduced motion */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation: none !important; transition: none !important; }
  .reveal{ opacity:1; transform:none; }
}

/* =========================================================
   MOBILE POLISH  (≤ 760px)
   ========================================================= */
@media (max-width: 760px){
  :root{ --pad-x: 22px; }

  body{ font-size: 16px; }

  /* nav */
  .nav{ padding: 14px var(--pad-x); }
  .brand-text{ font-size: 16px; }

  /* hero */
  .hero{ padding: 110px var(--pad-x) 50px; }
  .hero-eyebrow{
    gap: 8px; row-gap: 8px;
    font-size: 10.5px;
    margin-bottom: 28px;
  }
  .hero-eyebrow .sep{ display:none; }
  .hero-title{
    font-size: clamp(56px, 18vw, 96px);
    margin-bottom: 28px;
  }
  .hero-title .line-2{ padding-left: clamp(28px, 10vw, 60px); }
  .hero-title .line-3{
    font-size: .42em;
    padding-left: 0;
    margin-top: .5em;
    gap: 10px;
  }
  .hero-title .line-3::before{ width: 28px; }

  .hero-lede{ font-size: 16.5px; margin-bottom: 28px; }

  .hero-ctas{ width:100%; }
  .hero-ctas .btn{ flex: 1 1 auto; justify-content:center; padding: 14px 18px; font-size: 13px; }

  .hero-press{
    margin-top: 32px;
    padding: 16px 18px;
    font-size: 13.5px;
  }
  .hero-press p{ font-size: 16px; }

  .hero-photo{ margin-top: 32px; }
  .hero-photo img{ height: clamp(260px, 70vw, 380px); border-radius: 140px 140px 10px 10px; }

  /* marquee a bit tighter */
  .marquee{ padding: 10px 0; }
  .marquee-track{ gap: 20px; font-size: 12px; letter-spacing: .12em; }
  .m-glass{ width: 14px; height: 14px; }
  .m-dot{ width: 5px; height: 5px; }

  /* sections */
  .section{ padding: 70px var(--pad-x); }
  .section-num{ margin-bottom: 32px; font-size: 11px; gap: 12px; }

  .display{ font-size: clamp(34px, 9vw, 52px); margin-bottom: 22px; }
  .lede{ font-size: 17px; }

  /* pour collage */
  .pour-collage{ min-height: auto; }
  .pc-1, .pc-2{ height: clamp(220px, 60vw, 320px); }
  .signature svg{ width: 130px; }

  /* proof grid: 1 column on phones */
  .proof-head{ margin-bottom: 40px; }
  .proof-grid li{ padding: 26px 22px 28px; }
  .proof-grid h3{ font-size: 19px; }

  /* packages */
  .list-head{ margin-bottom: 40px; }
  .pkg{ padding: 28px 24px 26px; }
  .pkg-price .amt{ font-size: 64px; }
  .amt-script{ font-size: 50px !important; }

  /* occasions wall — readable on phones */
  .occ-head{ margin-bottom: 32px; }
  .occ-wall{
    font-size: clamp(22px, 5.6vw, 30px);
    margin-bottom: 40px;
    gap: 0 18px;
  }
  .occ-wall li{ padding-right: 18px; }
  .occ-card-body{ padding: 28px 22px; gap: 14px; }
  .occ-card h3{ font-size: 26px; }

  /* book */
  .book-grid{ gap: 50px; margin-bottom: 50px; }
  .book-text .lede{ margin-bottom: 32px; }
  .book-contacts{ gap: 0; }
  .bc{ padding: 18px 0; }
  .bc-value{ font-size: 22px; }
  .book-form{ padding: 28px 22px; }
  .book-form-head h3{ font-size: 19px; }

  .map-wrap iframe{ height: 280px !important; }

  /* footer */
  .foot{ padding: 60px var(--pad-x) 30px; }
  .foot-big{
    font-size: clamp(60px, 22vw, 110px);
    margin-bottom: 40px;
  }
  .foot-big em{ padding-left: clamp(20px, 8vw, 60px); }
  .foot-cols{ padding-top: 32px; gap: 28px; }
  .foot-bottom{ margin-top: 40px; padding-top: 28px; font-size: 10px; }
}

/* very small phones */
@media (max-width: 380px){
  :root{ --pad-x: 18px; }
  .hero-title{ font-size: 52px; }
  .display{ font-size: 32px; }
  .occ-wall{ font-size: 26px; }
  .foot-big{ font-size: 56px; }
  .nav-toggle{ width: 32px; }
}

/* =========================================================
   TOP BAR — the dry-hire deal, front and center
   ========================================================= */
.topbar{
  position:fixed; top:0; left:0; right:0; z-index:110;
  height:var(--topbar-h);
  display:flex; align-items:center; justify-content:center;
  gap:14px;
  padding:0 16px;
  background:var(--lime);
  color:var(--ink);
  font-size:13.5px; font-weight:500;
  letter-spacing:.01em;
  transition: transform .35s ease;
}
.topbar em{
  font-family:var(--font-display);
  font-style:italic; font-weight:500;
}
.tb-badge{
  font-family:var(--font-mono); font-size:10px; font-weight:600;
  letter-spacing:.14em; text-transform:uppercase;
  background:var(--ink); color:var(--lime);
  padding:3px 9px; border-radius:999px;
  white-space:nowrap;
}
.tb-msg{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tb-more{
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:.08em; text-transform:uppercase;
  border-bottom:1px solid rgba(247,243,232,.55);
  white-space:nowrap;
  transition: border-color .2s;
}
.topbar:hover .tb-more{ border-color:var(--ink); }
body.scrolled .topbar,
body.menu-open .topbar{ transform:translateY(-100%); }
@media (max-width:640px){
  :root{ --topbar-h:36px; }
  .topbar{ font-size:12px; gap:10px; }
  .tb-more{ display:none; }
}
@media (max-width:420px){
  .tb-badge{ display:none; }
}

/* =========================================================
   02 / THE DRY-HIRE DEAL
   ========================================================= */
.dry-grid{
  display:grid;
  grid-template-columns: 1fr 1.15fr;
  gap: clamp(40px, 6vw, 110px);
  align-items:center;
}
.dry-photo{ position:relative; margin:0; }
.dry-photo img{
  width:100%; height: clamp(340px, 42vw, 580px);
  object-fit:cover;
  border-radius: 18px 18px 240px 18px;
  border:1px solid var(--rule);
  box-shadow: 0 30px 80px -20px rgba(53,64,44,.35);
}
.dry-photo figcaption{
  display:flex; justify-content:space-between;
  margin-top:12px;
  font-family:var(--font-mono); font-size:11px;
  letter-spacing:.1em; text-transform:uppercase;
  opacity:.6;
}
.dry-text .display{ max-width:600px }
.dry-text .lede{ margin-bottom: 36px }
.dry-steps{
  margin:0; padding:0; list-style:none;
  display:flex; flex-direction:column;
}
.dry-steps li{
  display:grid;
  grid-template-columns: 56px 1fr;
  gap: 20px;
  padding: 24px 0;
  border-top:1px solid var(--rule);
  align-items:start;
}
.dry-steps li:last-child{ border-bottom:1px solid var(--rule); }
.step-num{
  width:44px; height:44px;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--tangerine);
  border-radius:50%;
  font-family:var(--font-mono); font-size:12px;
  color:var(--tangerine);
  letter-spacing:.08em;
}
.dry-steps h3{
  font-family:var(--font-display);
  font-weight:440; font-size:22px;
  line-height:1.15; letter-spacing:-.01em;
  margin:0 0 8px;
}
.dry-steps p{
  margin:0; font-size:15px; line-height:1.55; opacity:.75;
  max-width:460px;
}
@media (max-width:1000px){
  .dry-grid{ grid-template-columns:1fr; }
  .dry-photo{ order:2; max-width:560px; }
  .dry-photo img{ height: clamp(260px, 60vw, 420px); border-radius: 14px 14px 160px 14px; }
}
@media (max-width:760px){
  .dry-steps li{ grid-template-columns: 44px 1fr; gap:16px; padding:20px 0; }
  .step-num{ width:38px; height:38px; font-size:11px; }
  .dry-steps h3{ font-size:19px; }
}

/* =========================================================
   FORM — status + honeypot
   ========================================================= */
.hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; overflow:hidden; }
.form-status{
  margin: 0 0 22px;
  padding: 14px 16px;
  border-radius: 10px;
  font-size: 14px;
  line-height:1.5;
}
.form-status.ok{
  background: rgba(107,127,85,.1);
  border:1px solid rgba(107,127,85,.4);
  color: #4C5C3C;
}
.form-status.err{
  background: rgba(160,82,45,.09);
  border:1px solid rgba(160,82,45,.45);
  color: var(--magenta);
}
.form-status a{ text-decoration:underline; }

/* =========================================================
   FAQ
   ========================================================= */
.faq-head{ margin-bottom: 48px; max-width: 920px; }
.faq-list{ max-width: 860px; border-top:1px solid var(--rule); }
.faq-list details{ border-bottom:1px solid var(--rule); }
.faq-list summary{
  cursor:pointer; list-style:none;
  display:flex; justify-content:space-between; align-items:center; gap:24px;
  padding:22px 0;
  font-family:var(--font-display); font-weight:500;
  font-size: clamp(19px, 1.6vw, 24px); line-height:1.25;
}
.faq-list summary::-webkit-details-marker{ display:none }
.faq-list summary::after{
  content:"+"; flex:0 0 auto;
  font-family:var(--font-mono); font-size:22px; color:var(--tangerine);
  transition: transform .25s ease;
}
.faq-list details[open] summary::after{ transform: rotate(45deg); }
.faq-list details p{ margin:0 0 26px; max-width:680px; font-size:16px; line-height:1.55; opacity:.8; }
.faq-list details a{ text-decoration:underline; text-underline-offset:3px; }
@media (max-width: 640px){
  .faq-head{ margin-bottom: 28px; }
  .faq-list summary{ padding:18px 0; font-size:18px; }
}

/* =========================================================
   Side art — faded placeholder imagery in empty right columns
   ========================================================= */
.side-art{
  position:absolute; right:var(--pad-x); top: calc(clamp(72px, 9vw, 120px) + 6px);
  width: clamp(220px, 22vw, 320px); margin:0; pointer-events:none;
}
.side-art img{
  display:block; width:100%; height:auto; aspect-ratio: 3 / 4; object-fit:cover;
  border-radius: 160px 160px 12px 12px;
  border:1px solid var(--rule);
  filter: sepia(.3) saturate(.9);
  opacity:.62;
}
.side-art.wide img{ aspect-ratio: 4 / 3; border-radius: 14px; }
.proof .side-art img{ border-color: var(--rule-dark); opacity:.5; }
.has-art .proof-head, .has-art .list-head, .has-art .occ-head, .has-art .faq-head, .has-art .faq-list, .has-art .occ-wall{
  max-width: min(920px, calc(100% - 22vw - 56px));
}
@media (max-width: 1100px){
  .side-art{ display:none; }
  .has-art .proof-head, .has-art .list-head, .has-art .occ-head, .has-art .faq-head, .has-art .faq-list, .has-art .occ-wall{ max-width: 920px; }
}

/* debug hook: ?noanim=1 freezes animations so headless screenshots are deterministic */
.noanim{ scroll-behavior:auto !important; }
.noanim *{ transition:none !important; animation:none !important; }
.noanim .reveal{ opacity:1 !important; transform:none !important; }
.proof .side-art{ padding:0; right: calc((100% - min(100%, var(--maxw))) / 2 + var(--pad-x)); }
/* proof grid: fill the empty 6th cell with faded art */
.proof-grid .proof-art{ padding:0; overflow:hidden; position:relative; min-height:200px; }
.proof-grid .proof-art:hover{ background:transparent; }
.proof-grid .proof-art img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.55; filter: sepia(.3) saturate(.9); }
@media (max-width: 540px){ .proof-grid .proof-art{ min-height:220px; } }
