/* =========================================================
   ENSO Event Packets — shared styles
   Matches the ENSO Weddings landing page system.
   Paginated US-Letter documents, screen + print/PDF.
   ========================================================= */
:root{
  --paper:#F5F1E9;
  --paper-2:#EDE5D6;
  --paper-3:#E7DECB;
  --ink:#22252B;
  --ink-soft:#4A4D54;
  --line:#DAD0BE;
  --line-soft:#E4DBC9;
  --wine:#5E2A33;
  --wine-deep:#4A2028;
  --brass:#9C6B33;
  --gold:#E7C9A0;
  --gold-deep:#D9B684;
  --dark:#1A1A1E;
  --dark-2:#222127;
  --cream:#F4F0E8;
  --cream-dim:#C9C3B8;
  --font-display:'Cormorant Garamond', Georgia, serif;
  --font-body:'Hanken Grotesk', system-ui, sans-serif;
  --pad:0.78in;
}

*{box-sizing:border-box;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
html,body{margin:0;padding:0;}
body{
  background:#33312c;
  font-family:var(--font-body);
  color:var(--ink);
  font-size:13px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}

/* ---------- Screen scaffolding ---------- */
.doc{
  display:flex;flex-direction:column;align-items:center;
  gap:26px;padding:34px 16px 60px;
}
.toolbar{
  position:fixed;top:14px;right:16px;z-index:50;display:flex;gap:8px;
}
.toolbar button{
  font-family:var(--font-body);font-weight:600;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--cream);background:rgba(20,20,23,.78);
  border:1px solid rgba(244,240,232,.28);border-radius:2px;padding:9px 14px;cursor:pointer;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .2s,border-color .2s;
}
.toolbar button:hover{background:var(--wine);border-color:var(--wine);}

/* ---------- The page ---------- */
.page{
  position:relative;
  width:8.5in;height:11in;
  background:var(--paper);
  overflow:hidden;
  box-shadow:0 18px 50px rgba(0,0,0,.4);
  color:var(--ink);
}
.pad{position:relative;width:100%;height:100%;padding:var(--pad);display:flex;flex-direction:column;}

/* ---------- Typography ---------- */
h1,h2,h3,h4{font-family:var(--font-display);font-weight:500;margin:0;line-height:1.05;letter-spacing:-.01em;}
.it{font-style:italic;}
p{margin:0 0 .9em;text-wrap:pretty;}
.eyebrow{
  font-family:var(--font-body);font-size:10px;font-weight:600;
  letter-spacing:.24em;text-transform:uppercase;color:var(--wine);margin:0;
}
.eyebrow--gold{color:var(--brass);}
.eyebrow--cream{color:var(--gold);}
.lead{font-size:14px;color:var(--ink-soft);line-height:1.62;}
.tiny{font-size:10.5px;letter-spacing:.02em;}
.muted{color:var(--ink-soft);}

/* Section header used on most interior pages */
.sec-head{display:flex;flex-direction:column;gap:12px;margin-bottom:26px;}
.sec-head h2{font-size:40px;max-width:16ch;}
.sec-head .rule{width:54px;height:2px;background:var(--wine);margin-top:2px;}
.kicker{display:flex;align-items:center;gap:12px;}
.kicker .num{font-family:var(--font-display);font-style:italic;font-size:17px;color:var(--brass);}

/* ---------- Running footer ---------- */
.runfoot{
  margin-top:auto;padding-top:14px;border-top:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;
  font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);
}
.runfoot .wm{font-family:var(--font-display);font-style:italic;letter-spacing:.02em;text-transform:none;font-size:15px;color:var(--wine);}
.runfoot .pg{font-variant-numeric:tabular-nums;}

/* ---------- Cover ---------- */
.cover{background:var(--dark);color:var(--cream);}
/* The photo is a single flattened <img> with the darkening gradient baked into
   the JPEG itself (see photos/*-cover.jpg). This makes each cover identical to a
   plain .band image — nothing is composited on top — so Safari/Chrome never drop
   it from a saved PDF. The .pad is a transparent content overlay. */
.cover__bg{position:relative;width:100%;height:11in;overflow:hidden;}
.cover__bg img{width:100%;height:100%;object-fit:cover;}
.cover .pad{position:absolute;inset:0;z-index:2;}
.cover__top{display:flex;align-items:center;justify-content:space-between;}
.cover__logo{height:30px;width:auto;}
.cover__tag{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--cream);opacity:.92;}
.cover__mid{margin-top:auto;}
.cover .eyebrow{color:var(--gold);}
.cover h1{font-size:74px;line-height:1.0;color:var(--cream);margin:.2em 0 .34em;max-width:13ch;
  text-shadow:0 2px 28px rgba(12,12,14,.4);}
.cover .sub{font-size:15px;color:var(--cream);opacity:.94;max-width:46ch;line-height:1.6;
  text-shadow:0 1px 14px rgba(12,12,14,.4);}
.cover__foot{margin-top:30px;padding-top:18px;border-top:1px solid rgba(244,240,232,.24);
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  font-size:11px;letter-spacing:.04em;color:var(--cream);}
.cover__foot b{display:block;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:5px;font-weight:600;}

/* ---------- Stat strip ---------- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);background:var(--ink);color:var(--cream);}
.stats .s{padding:18px 16px;border-left:1px solid rgba(244,240,232,.14);}
.stats .s:first-child{border-left:none;}
.stats .n{font-family:var(--font-display);font-size:27px;line-height:1;color:#fff;}
.stats .l{font-size:9.5px;letter-spacing:.05em;color:var(--cream-dim);margin-top:7px;line-height:1.35;text-transform:uppercase;}

/* ---------- Photo blocks ---------- */
.photo{overflow:hidden;background:var(--dark);}
.photo img{width:100%;height:100%;object-fit:cover;}
.photo-cap{font-family:var(--font-display);font-style:italic;font-size:15px;color:var(--wine);margin-top:8px;}

/* full-bleed helper */
.bleed{position:relative;left:calc(-1 * var(--pad));width:calc(100% + 2*var(--pad));}
.grow{flex:1 1 auto;}
.mt-auto{margin-top:auto;}
/* pins a trailing block (band/stats/cta) + footer flush to the page bottom.
   Inside this block, child margin-top:auto resolves to 0, so the group stays tight. */
.endcap{margin-top:auto;}
.endcap .runfoot{margin-top:14px;}

/* full-bleed band inside a page */
.band{position:relative;left:calc(-1 * var(--pad));width:calc(100% + 2*var(--pad));overflow:hidden;background:var(--dark);}
.band img{width:100%;height:100%;object-fit:cover;}
.band--cap::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(16,16,18,.1),rgba(16,16,18,.5));}
.band .cap{position:absolute;left:0;right:0;bottom:18px;text-align:center;z-index:2;color:var(--cream);
  font-family:var(--font-display);font-style:italic;font-size:22px;text-shadow:0 2px 20px rgba(0,0,0,.5);}

/* ---------- Pricing cards ---------- */
.cards{display:grid;gap:16px;}
.cards--2{grid-template-columns:1fr 1fr;}
.pcard{background:var(--dark-2);color:var(--cream);border:1px solid rgba(244,240,232,.16);
  padding:24px 22px;display:flex;flex-direction:column;}
.pcard .pc-ey{font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);}
.pcard h3{font-size:25px;color:#fff;margin:8px 0 2px;}
.pcard .cap{font-size:11.5px;color:var(--cream-dim);margin:0 0 14px;}
.pcard .amt{font-family:var(--font-display);font-size:44px;color:#fff;line-height:1;}
.pcard .amt small{font-size:14px;color:var(--cream-dim);font-family:var(--font-body);}
.pc-rows{margin-top:14px;}
.pc-rows .r{display:flex;justify-content:space-between;gap:10px;padding:9px 0;
  border-top:1px solid rgba(244,240,232,.13);font-size:11.5px;color:var(--cream-dim);}
.pc-rows .r span{white-space:nowrap;}
.pc-rows .r b{color:var(--cream);font-weight:600;white-space:nowrap;}
.pcard .note{margin-top:auto;padding-top:13px;font-size:10.5px;color:var(--cream-dim);}

/* duration tag + feature list inside tasting option cards */
.pcard .dur{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;margin-top:12px;
  font-size:10px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:#2A2018;
  background:var(--gold);padding:6px 12px;border-radius:2px;}
.pc-list{list-style:none;padding:0;margin:16px 0 0;}
.pc-list li{padding:10px 0;border-top:1px solid rgba(244,240,232,.13);display:flex;gap:11px;
  align-items:baseline;font-size:12px;color:var(--cream);line-height:1.45;}
.pc-list li:first-child{border-top:none;}
.pc-list li::before{content:"";flex:none;width:5px;height:5px;border-radius:50%;background:var(--gold);transform:translateY(-2px);}
.pcard .host{font-family:var(--font-display);font-style:italic;font-size:14px;color:var(--gold);margin:2px 0 0;}

/* paper variant pricing card */
.pcard--paper{background:var(--paper-2);border:1px solid var(--line);color:var(--ink);}
.pcard--paper h3,.pcard--paper .amt{color:var(--ink);}
.pcard--paper .amt small,.pcard--paper .cap,.pcard--paper .note{color:var(--ink-soft);}
.pcard--paper .pc-ey{color:var(--brass);}
.pcard--paper .pc-rows .r{border-top-color:var(--line);color:var(--ink-soft);}
.pcard--paper .pc-rows .r b{color:var(--ink);}

/* ---------- Included / checklist ---------- */
.checklist{list-style:none;padding:0;margin:0;}
.checklist li{padding:11px 0;border-top:1px solid var(--line);display:flex;gap:13px;align-items:baseline;font-size:13px;}
.checklist li:first-child{border-top:none;}
.checklist li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--wine);transform:translateY(-2px);}
.checklist.on-dark li{border-top-color:rgba(244,240,232,.14);color:var(--cream);}
.checklist.on-dark li::before{background:var(--gold);}

/* ---------- Two-column body ---------- */
.cols{display:grid;gap:30px;}
.cols--bias{grid-template-columns:1.05fr .95fr;}
.cols--even{grid-template-columns:1fr 1fr;}

/* ---------- Info blocks (bar types, qa) ---------- */
.block{padding-top:0;}
.block h4{font-size:20px;margin-bottom:5px;}
.block p{font-size:12px;color:var(--ink-soft);margin:0;}
.block .lbl{font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);font-weight:600;margin-bottom:7px;}

/* labelled spec rows */
.specs{display:flex;flex-direction:column;}
.spec{display:grid;grid-template-columns:34% 1fr;gap:14px;padding:12px 0;border-top:1px solid var(--line);}
.spec:first-child{border-top:none;}
.spec dt{font-weight:600;font-size:12.5px;color:var(--ink);}
.spec dd{margin:0;font-size:12px;color:var(--ink-soft);}

/* pill chips */
.chips{display:flex;flex-wrap:wrap;gap:8px;}
.chip{border:1px solid var(--line);background:var(--paper-2);padding:8px 13px;font-size:11px;
  letter-spacing:.02em;color:var(--ink);border-radius:2px;white-space:nowrap;}
.chip b{color:var(--wine);font-weight:600;}

/* caterer / vendor cards */
.vendors{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.vendor{border:1px solid var(--line);background:var(--paper-2);padding:16px 16px;display:flex;
  flex-direction:column;justify-content:space-between;gap:12px;min-height:84px;}
.vendor .vn{font-family:var(--font-display);font-size:21px;line-height:1.04;}
.page[data-screen-label="Food and drink"] .vendor{min-height:64px;gap:8px;padding:13px 16px;}
.vendor .vl{font-size:10px;letter-spacing:.04em;color:var(--brass);font-weight:600;}
.vendor .vt{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);font-weight:600;}
a.vendor{text-decoration:none;color:inherit;cursor:pointer;transition:border-color .2s,background .2s;}
a.vendor:hover{border-color:var(--brass);background:var(--paper-3);}

/* ---------- Inline links ---------- */
a.lnk,.lnk{color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;text-decoration-color:currentColor;}
a.lnk:hover{text-decoration-color:var(--brass);}
a.chip{text-decoration:none;cursor:pointer;transition:border-color .2s,background .2s;}
a.chip:hover{border-color:var(--brass);}

/* numbered steps */
.steps{display:grid;grid-template-columns:1fr 1fr;gap:18px 26px;counter-reset:st;}
.step{counter-increment:st;border-top:1px solid var(--line);padding-top:12px;}
.step .sn{font-family:var(--font-display);font-style:italic;font-size:34px;color:var(--brass);line-height:1;}
.step .sn::before{content:"0" counter(st);}
.step h4{font-size:19px;margin:6px 0 4px;}
.step p{font-size:11.5px;color:var(--ink-soft);margin:0;}

/* add-on cards */
.addons{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.addon{border:1px solid var(--line);background:var(--paper-2);padding:18px 18px;min-height:96px;
  display:flex;flex-direction:column;justify-content:space-between;}
.addon .ak{font-family:var(--font-display);font-style:italic;font-size:16px;color:var(--brass);}
.addon h4{font-size:19px;margin-top:12px;line-height:1.08;}

/* ---------- CTA band ---------- */
.cta{background:var(--ink);color:var(--cream);text-align:center;padding:30px 30px;}
.cta .eyebrow{color:var(--gold);}
.cta h3{color:#fff;font-size:30px;margin:10px 0 8px;}
.cta p{color:var(--cream-dim);font-size:11.5px;max-width:42ch;margin:0 auto;}
.btn{display:inline-flex;align-items:center;gap:.5em;font-family:var(--font-body);font-weight:600;
  font-size:12px;letter-spacing:.04em;padding:13px 26px;border-radius:2px;
  background:var(--gold);color:#2A2018;margin-top:14px;}
a.btn{text-decoration:none;}
a.btn:hover{background:var(--gold-deep);}

/* contact footer block */
.contact{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.contact h4{font-family:var(--font-body);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--brass);margin:0 0 9px;font-weight:600;}
.contact .frow{font-size:12px;margin:3px 0;color:var(--ink-soft);}
.contact .frow b{color:var(--ink);font-weight:500;}

/* ---------- Floor-plan diagrams ---------- */
.layouts{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
.layout{display:flex;flex-direction:column;gap:10px;}
.layout .plan{background:var(--paper-2);border:1px solid var(--line);padding:12px;}
.layout svg{display:block;width:100%;height:auto;}
.layout .lt{font-family:var(--font-display);font-size:18px;line-height:1.08;}
.layout .ld{font-size:10.5px;color:var(--ink-soft);}
.layout .ln{font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--brass);font-weight:600;}

/* ---------- Print ---------- */
@page{size:8.5in 11in;margin:0;}
@media print{
  body{background:#fff;}
  .doc{display:block;gap:0;padding:0;}
  .toolbar{display:none !important;}
  .page{box-shadow:none;width:8.5in;height:11in;page-break-after:always;break-after:page;}
  .page:last-child{page-break-after:auto;}
}

/* ---------- Small-screen fit (scale pages down on phones) ---------- */
@media (max-width:920px){
  .doc{padding:18px 0 40px;}
}
