
    :root {
      --ink: #1c1410;
      --cream: #f3eee6;
      --paper: #fffaf4;
      --ember: #c4522a;
      --line: #e4d8cb;
      --mist: #6f6258;
      --sans: "Outfit", ui-sans-serif, system-ui, sans-serif;
      --display: "Fraunces", ui-serif, Georgia, serif;
    }
    * { box-sizing: border-box; }
    html { -webkit-font-smoothing: antialiased; }
    body {
      margin: 0;
      background: var(--cream);
      color: var(--ink);
      font-family: var(--sans);
      line-height: 1.5;
    }
    img { max-width: 100%; display: block; }
    h1, h2, h3 { font-family: var(--display); line-height: 1.15; text-wrap: balance; font-weight: 560; margin: 0; }
    p { text-wrap: pretty; }
    a { color: inherit; }
    button, [role="button"] { cursor: pointer; font: inherit; }
    button:disabled { cursor: default; opacity: 0.4; }
    .skip { position: absolute; left: 0.5rem; top: 0.5rem; transform: translateY(-150%); background: var(--ink); color: var(--cream); padding: 0.6rem 0.9rem; z-index: 9; }
    .skip:focus { transform: none; }
    label { display: block; margin-top: 0.55rem; font-size: 0.9rem; }
    nav { display: flex; flex-wrap: wrap; align-items: center; gap: 0.45rem; }
    .account-side { display: flex; align-items: center; gap: 0.4rem; }
    nav a, .account-side button, .menu > summary {
      text-decoration: none; color: var(--ink); min-height: 2.6rem; display: inline-flex; align-items: center; justify-content: center;
      font-size: 0.92rem; font-weight: 600; background: var(--paper); border: 1px solid var(--line); border-radius: 999px;
      padding: 0 1rem; cursor: pointer; font-family: inherit;
      box-shadow: 0 1px 0 rgba(28, 20, 16, 0.04);
      -webkit-tap-highlight-color: transparent;
    }
    nav a:link, nav a:visited { color: var(--ink); }
    nav a:hover, .account-side button:hover, .menu > summary:hover { background: var(--ink); color: var(--cream); border-color: var(--ink); }
    nav a[aria-current="page"],
    nav a[aria-current="page"]:hover,
    .menu[aria-current="true"] > summary {
      background: var(--ember); color: var(--cream); border-color: var(--ember);
    }
    .menu { position: relative; }
    .menu > summary { list-style: none; gap: 0.4rem; }
    .menu > summary::-webkit-details-marker { display: none; }
    .menu > summary::after { content: ""; width: 0.45rem; height: 0.45rem; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-0.12rem) rotate(45deg); }
    .menu[open] > summary::after { transform: translateY(0.12rem) rotate(225deg); }
    .menu-panel {
      display: none; position: absolute; z-index: 8; top: calc(100% + 0.4rem); left: 0; min-width: 13.5rem;
      background: var(--paper); border: 1px solid var(--line); border-radius: 1rem;
      box-shadow: 0 18px 40px rgba(28, 20, 16, 0.16); padding: 0.35rem;
    }
    .menu[open] > .menu-panel { display: grid; }
    .menu-panel a, .menu-panel button {
      justify-content: flex-start; background: transparent; border-color: transparent;
      box-shadow: none; border-radius: 0.75rem; min-height: 2.5rem; width: 100%;
      text-align: left; padding: 0 1rem; font: inherit; font-weight: 600; color: var(--ink);
    }
    .menu-panel a:hover, .menu-panel button:hover { background: color-mix(in srgb, var(--ember) 12%, white); color: var(--ink); border-color: transparent; }
    .menu-panel a[aria-current="page"],
    .menu-panel a[aria-current="page"]:hover { background: var(--ember); color: var(--cream); }
    .wrap { width: min(72rem, calc(100% - 2rem)); margin-inline: auto; }
    .site-cart { position: relative; background: var(--paper); border-bottom: 1px solid var(--line); }
    .site-cart-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; padding: 0.7rem 0; }
    .site-cart-panel {
      position: absolute; left: 0; right: 0; top: 100%; z-index: 6;
      background: var(--paper); border-bottom: 1px solid var(--line);
      box-shadow: 0 16px 32px rgba(28, 20, 16, 0.12);
      max-height: 70vh; overflow: auto; padding: 0.2rem 0 1rem;
    }
    header {
      position: sticky; top: 0; z-index: 5;
      background: color-mix(in srgb, var(--cream) 95%, transparent);
      backdrop-filter: blur(8px);
      border-bottom: 1px solid var(--line);
    }
    .bar { display: flex; flex-direction: column; align-items: stretch; gap: 0.65rem; padding: 0.75rem 0; }
    .brand-row { display: flex; align-items: center; gap: 0.85rem; }
    .brand-row .account-side { margin-left: auto; }
    .brand { display: flex; align-items: center; gap: 0.75rem; text-decoration: none; min-height: 2.75rem; }
    .mark { width: 3.5rem; height: 3.5rem; border-radius: 0.55rem; object-fit: cover; background: #10140f; }
    .demo { background: var(--ember); color: var(--cream); text-align: center; padding: 0.65rem 1rem; font-weight: 600; }
    .reserve-now .inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem 1.25rem; padding: 0.85rem 0; }
    .reserve-now strong { font-family: var(--display); font-size: 1.6rem; font-weight: 560; }
    .reserve-now .when { letter-spacing: 0.14em; text-transform: uppercase; font-size: 0.78rem; color: color-mix(in srgb, var(--cream) 78%, transparent); }
    .banner { background: #10140f; display: flex; justify-content: center; padding: 1.25rem 1rem 1.5rem; }
    .banner img { width: min(36rem, 92vw); height: auto; }
    .logo-stamp { width: 8.5rem; height: 8.5rem; border-radius: 999px; object-fit: cover; background: #10140f; }
    .brand span { font-family: var(--display); font-size: clamp(1.6rem, 2.4vw, 2.1rem); line-height: 1.05; }
    .brand small { display: block; color: var(--mist); letter-spacing: 0.04em; font-size: 0.85rem; }
    .logo-auth { min-height: 2.75rem; width: 100%; margin-top: 0.45rem; border-radius: 0.8rem; border: 1px solid var(--line); background: var(--cream); display: flex; align-items: center; justify-content: center; gap: 0.6rem; font: inherit; cursor: pointer; }
    .logo-auth svg { width: 1.15rem; height: 1.15rem; flex: none; }
    .btn {
      display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem;
      min-height: 2.75rem; padding: 0 1.15rem; border-radius: 999px; font-weight: 600;
      border: 1px solid transparent; text-decoration: none; background: transparent; color: var(--ink);
      box-shadow: 0 1px 0 rgba(28, 20, 16, 0.05);
    }
    .btn:hover { transform: translateY(-1px); }
    .btn:disabled:hover { transform: none; }
    .btn.ember { background: var(--ember); color: var(--cream); }
    .btn.ember:hover { background: #a84322; }
    .btn.ink { background: var(--ink); color: var(--cream); }
    .btn.ghost { border-color: var(--ink); background: transparent; }
    .btn.ghost:hover { background: var(--ink); color: var(--cream); }
    .btn.line { border-color: var(--line); background: var(--paper); }
    .hero { display: grid; margin-top: 1.5rem; }
    .hero img { height: 18rem; width: 100%; object-fit: cover; border-radius: 1.5rem 1.5rem 0 0; }
    .hero-copy { background: var(--ink); color: var(--cream); padding: 2.5rem 1.5rem; border-radius: 0 0 1.5rem 1.5rem; }
    .kicker { letter-spacing: 0.16em; text-transform: uppercase; font-size: 0.75rem; color: color-mix(in srgb, var(--cream) 70%, transparent); }
    .hero h1 { font-size: clamp(3rem, 7.5vw, 5.6rem); margin-top: 0.6rem; }
    .lede { color: color-mix(in srgb, var(--cream) 82%, transparent); max-width: 36rem; }
    .row { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.5rem; }
    .stats { display: grid; margin-top: 1rem; border: 1px solid var(--line); border-radius: 1.5rem; overflow: hidden; background: var(--line); gap: 1px; }
    .stat { background: var(--cream); padding: 1.25rem 1.4rem; }
    .stat strong { font-family: var(--display); font-size: 1.8rem; font-variant-numeric: tabular-nums; display: block; }
    .stat span { color: var(--mist); font-size: 0.9rem; }
    section { padding: 3.5rem 0 0; }
    .desk section { padding: 0; margin-top: 1rem; }
    .desk [hidden] { display: none !important; }
    .sheet { width: 100%; border-collapse: collapse; font-size: 0.82rem; margin-top: 0.8rem; }
    .sheet th, .sheet td { text-align: left; padding: 0.45rem 0.35rem; border-bottom: 1px solid var(--line); vertical-align: top; white-space: nowrap; }
    .sheet-wrap { overflow-x: auto; }
    .ember-label { color: var(--ember); font-size: 0.9rem; font-weight: 600; }
    .grid-3 { display: grid; gap: 1rem; margin-top: 1.5rem; }
    .card { background: var(--paper); border: 1px solid var(--line); border-radius: 1.5rem; overflow: hidden; box-shadow: 0 12px 32px rgba(28, 20, 16, 0.05); }
    .card img { aspect-ratio: 3 / 2; width: 100%; object-fit: cover; }
    .card .pad, .pad { padding: 1.25rem; }
    .filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 0.6rem 0.75rem; align-items: end; margin: 0.8rem 0 0.4rem; }
    .filters label { margin-top: 0; }
    .filters .btn { width: 100%; }
    .place { font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--mist); }
    .split { display: grid; gap: 1.5rem; }
    .photo-round { border-radius: 1.5rem; width: 100%; object-fit: cover; aspect-ratio: 3 / 2; }
    .deal { display: grid; border: 1px solid var(--line); border-radius: 1.5rem; overflow: hidden; margin-top: 2rem; }
    .cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.25rem; }
    .cal button, .cal span { height: 2.75rem; border: 0; border-radius: 0.6rem; background: transparent; }
    .cal .dow { color: var(--mist); font-size: 0.75rem; display: grid; place-items: center; }
    .cal button.held { background: color-mix(in srgb, var(--ink) 10%, transparent); color: var(--mist); text-decoration: line-through; }
    .cal button.on { background: var(--ember); color: var(--cream); }
    .cal button.in { background: color-mix(in srgb, var(--ember) 18%, white); }
    .cal button.past { opacity: 0.35; }
    .stepper { display: flex; align-items: center; gap: 0.5rem; }
    .stepper button, button.stepper { width: 2.75rem; height: 2.75rem; border-radius: 999px; border: 1px solid var(--line); background: var(--paper); color: var(--ink); }
    .chips { display: flex; flex-wrap: wrap; gap: 0.5rem; }
    .chips button { min-height: 2.75rem; border-radius: 999px; border: 1px solid var(--line); background: var(--paper); padding: 0 0.9rem; font-weight: 600; }
    .chips button:hover { border-color: var(--ink); }
    .chips button.on { background: var(--ink); color: var(--cream); border-color: var(--ink); }
    .chips button.win.on { background: var(--ember); border-color: var(--ember); }
    label.check { display: flex; gap: 0.75rem; align-items: flex-start; border: 1px solid var(--line); border-radius: 1rem; padding: 0.8rem 1rem; }
    input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="search"], input[type="date"], select, textarea {
      min-height: 2.85rem; width: 100%; border-radius: 0.9rem; border: 1px solid var(--line);
      background: var(--paper); padding: 0.7rem 0.9rem; font: inherit; margin-top: 0.35rem; color: var(--ink);
    }
    select {
      appearance: none;
      background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'><path fill='none' stroke='%231c1410' stroke-width='1.6' d='M1 1.5 6 6.5 11 1.5'/></svg>");
      background-repeat: no-repeat; background-position: right 0.85rem center; background-size: 0.7rem; padding-right: 2.4rem;
    }
    input:focus, select:focus, textarea:focus, .btn:focus-visible, summary:focus-visible {
      outline: 2px solid var(--ember); outline-offset: 2px; border-color: var(--ember);
    }
    textarea { min-height: 7rem; resize: vertical; }
    .menu-row { display: flex; gap: 1rem; align-items: center; padding: 1rem 0; border-bottom: 1px solid var(--line); }
    .menu-row .grow { flex: 1; min-width: 0; }
    .error { color: var(--ember); font-size: 0.9rem; }
    .danger { color: #8d1d1d; border: 1px solid #8d1d1d; background: #fdecec; border-radius: 1rem; padding: 1rem 1.15rem; margin-top: 1.5rem; }
    .danger p { margin: 0.55rem 0; }
    .danger strong { color: #8d1d1d; }
    footer { margin-top: 4rem; background: var(--ink); color: var(--cream); }
    footer a { color: var(--cream); }
    .foot { display: grid; gap: 1.5rem; padding: 3rem 0; }
    .hours { display: flex; justify-content: space-between; gap: 1rem; border-bottom: 1px solid color-mix(in srgb, var(--cream) 18%, transparent); padding: 0.4rem 0; font-size: 0.92rem; }
    .hold-line { display: flex; justify-content: space-between; gap: 1rem; padding: 0.85rem 0; border-bottom: 1px solid var(--line); }
    .days14 { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.25rem; }
    .days14 i { font-style: normal; text-align: center; border-radius: 0.5rem; padding: 0.45rem 0; font-size: 0.75rem; border: 1px solid var(--line); background: var(--paper); }
    .name-row { display: flex; flex-wrap: wrap; gap: 0.4rem; }
    .name-row i { font-style: normal; border: 1px solid var(--line); border-radius: 999px; padding: 0.35rem 0.7rem; background: var(--paper); font-size: 0.85rem; }
    .name-row i.on { background: var(--ember); color: var(--cream); border-color: var(--ember); }
    @media (max-width: 760px) {
      .demo { font-size: 0.72rem; line-height: 1.25; padding: 0.3rem 0.7rem; }
      .bar { gap: 0.35rem; padding: 0.35rem 0; }
      .brand-row { gap: 0.45rem; }
      .brand { min-height: 0; gap: 0.45rem; }
      .mark { width: 2.25rem; height: 2.25rem; }
      .brand span { font-size: 1.15rem; }
      .brand small { font-size: 0.68rem; }
      nav { flex-wrap: wrap; overflow: visible; gap: 0.3rem; }
      nav a, .account-side button, .menu > summary { min-height: 2.15rem; font-size: 0.8rem; padding: 0 0.7rem; }
      .site-cart-bar { gap: 0.4rem; padding: 0.3rem 0; }
      .site-cart-bar .btn { min-height: 1.9rem; padding: 0 0.65rem; font-size: 0.78rem; }
    }
    @media (min-width: 900px) {
      .hero { grid-template-columns: 1.3fr 1fr; }
      .hero img { height: 100%; min-height: 26rem; border-radius: 1.5rem 0 0 1.5rem; }
      .hero-copy { border-radius: 0 1.5rem 1.5rem 0; padding: 3rem; }
      .stats, .grid-3 { grid-template-columns: repeat(3, 1fr); }
      .split { grid-template-columns: 1.15fr 0.85fr; align-items: start; }
      .deal { grid-template-columns: 1fr 1fr; }
      .deal img { height: 100%; aspect-ratio: auto; }
      .foot { grid-template-columns: 1.2fr 1fr 1fr; }
      .sticky { position: sticky; top: 6.5rem; }
    }
    @media (prefers-reduced-motion: reduce) {
      * { scroll-behavior: auto !important; transition: none !important; }
    }
  
/* ===== Countdown ===== */
.countdown{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:baseline;justify-content:center;margin:.6rem auto;padding:.6rem 1rem;max-width:40rem;border:1px solid color-mix(in srgb, currentColor 30%, transparent);border-radius:999px;text-align:center}
.countdown[hidden]{display:none}
.countdown .cd-label{font-size:.85rem;opacity:.8}
.countdown [data-cd]{font-variant-numeric:tabular-nums;font-weight:700;font-size:1.05rem}

/* ===== Night sky + fireflies (8pm-6am local) ===== */
.night-sky .hero{position:relative}
.night-sky .hero > img{filter:brightness(.62) saturate(.85) hue-rotate(-12deg)}
.night-sky .hero::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background:radial-gradient(1px 1px at 12% 18%,#fff8,transparent),radial-gradient(1px 1px at 30% 8%,#fff9,transparent),radial-gradient(1px 1px at 55% 14%,#fff7,transparent),radial-gradient(1px 1px at 72% 6%,#fff9,transparent),radial-gradient(1px 1px at 88% 20%,#fff7,transparent),linear-gradient(#0b1430aa,transparent 60%)}
.fireflies{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}
.fly{position:absolute;width:4px;height:4px;border-radius:50%;background:#f6f3a0;box-shadow:0 0 6px 2px #f6f3a088;opacity:0;animation:fly 9s ease-in-out infinite}
.fly:nth-child(1){left:8%;top:62%}.fly:nth-child(2){left:18%;top:74%;animation-delay:1.2s}.fly:nth-child(3){left:27%;top:58%;animation-delay:2.6s}.fly:nth-child(4){left:36%;top:80%;animation-delay:.6s}.fly:nth-child(5){left:44%;top:66%;animation-delay:3.4s}.fly:nth-child(6){left:52%;top:77%;animation-delay:1.9s}.fly:nth-child(7){left:60%;top:60%;animation-delay:4.2s}.fly:nth-child(8){left:67%;top:72%;animation-delay:.3s}.fly:nth-child(9){left:74%;top:83%;animation-delay:2.2s}.fly:nth-child(10){left:81%;top:64%;animation-delay:5s}.fly:nth-child(11){left:88%;top:76%;animation-delay:1.5s}.fly:nth-child(12){left:93%;top:59%;animation-delay:3.8s}.fly:nth-child(13){left:13%;top:86%;animation-delay:6s}.fly:nth-child(14){left:57%;top:88%;animation-delay:2.9s}
@keyframes fly{0%,100%{opacity:0;transform:translate(0,0)}20%{opacity:.9}50%{opacity:.25;transform:translate(14px,-18px)}70%{opacity:.85;transform:translate(-8px,-30px)}}
.fireflies.still .fly{animation:none;opacity:.55}
@media(prefers-reduced-motion:reduce){.fly{animation:none!important;opacity:.55}}

/* ===== Weddings & Events ===== */
.events{margin-top:2rem}
.ev-hero h1{font-size:clamp(2.2rem,5vw,3.4rem)}
.ev-block{margin-top:2.5rem}
.ev-block h2{font-size:clamp(1.6rem,3.5vw,2.4rem)}
.ev-types{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0}
.ev-types li{border:1px solid color-mix(in srgb, currentColor 35%, transparent);border-radius:999px;padding:.35rem .9rem}
.ev-types[hidden]{display:none}
.ev-rate{font-size:1.3rem;font-weight:600}
.ev-form{max-width:32rem;margin-top:1rem;display:grid;gap:.6rem}
.ev-form label{display:grid;gap:.25rem}
.ev-list{list-style:none;padding:0;display:grid;gap:.5rem}.ev-list[hidden]{display:none}
.ev-list li{border-left:3px solid var(--ember,#c4622d);padding:.3rem .8rem}
/* Main nav: same on every page, hamburger under 900px */
nav .nav-links{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}
nav .nav-toggle{display:none}
nav a.nav-book,nav a.nav-book:link,nav a.nav-book:visited{background:var(--ember,#c2410c);border-color:var(--ember,#c2410c);color:#fff;font-weight:600}
nav a.nav-book:hover{filter:brightness(1.08);background:var(--ember,#c2410c);color:#fff}
@media (max-width:900px){
  nav{width:100%}
  nav .nav-toggle{display:inline-flex;align-items:center;min-height:2.75rem;padding:0 1rem;border:1px solid var(--ink);border-radius:999px;background:transparent;color:var(--ink);font:inherit;font-weight:600}
  nav .nav-links{display:none;flex-direction:column;align-items:stretch;width:100%;gap:.35rem;margin-top:.5rem}
  nav.open .nav-links{display:flex}
  nav .nav-links > a,nav .nav-links .menu > summary{min-height:2.9rem;font-size:1rem;display:flex;align-items:center;justify-content:flex-start}
  nav .menu-panel{position:static;box-shadow:none}
  nav .menu-panel a{min-height:2.75rem;display:flex;align-items:center}
  nav a.nav-book{justify-content:center}
  .nav-book-mobile{display:inline-flex}
}
.foot-links{list-style:none;padding:0;margin:0;display:grid;gap:.45rem}
.foot-mist{color:color-mix(in srgb,var(--cream) 80%,transparent)}
.foot-copy{text-align:center;font-size:.75rem;opacity:.65;padding-bottom:1rem}
.prose{max-width:44rem}
.prose p{margin:.8rem 0}
label.check{display:flex;gap:.5rem;align-items:center;margin-top:.5rem}
/* Hero slideshow */
.hero-slides{position:relative;background:#10140f;color:#fff;overflow:hidden}
.hs-track{position:relative;height:clamp(26rem,62vh,40rem)}
.hs-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1.2s ease,visibility 0s linear 1.2s}
.hs-slide.on{opacity:1;visibility:visible;transition:opacity 1.2s ease}
.hs-slide img{width:100%;height:100%;object-fit:cover;display:block}
.hs-slide::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,12,8,.78),rgba(10,12,8,.35) 60%,transparent);pointer-events:none}
.hs-copy{position:absolute;z-index:1;left:0;right:0;bottom:3.5rem;padding:0 1.25rem;max-width:40rem}
@media(min-width:900px){.hs-copy{left:max(1.5rem,calc((100vw - 72rem)/2));bottom:5rem}}
.hs-copy h1,.hs-copy h2{font-size:clamp(2rem,5.5vw,3.6rem);line-height:1.05;margin:0;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.5)}
.hs-copy p{margin:.7rem 0 0;font-size:1.1rem;color:#f4efe6;max-width:34rem}
.hs-copy .hs-count{font-weight:700;font-size:1.25rem;color:#ffd79a}
.hs-btn{margin-top:1rem;min-height:3rem;display:inline-flex;align-items:center;padding:0 1.4rem;font-size:1.05rem}
.hs-ctrl{position:absolute;z-index:2;right:1rem;bottom:1rem;display:flex;gap:.4rem}
.hs-ctrl button{min-width:2.9rem;min-height:2.9rem;border-radius:999px;border:1px solid rgba(255,255,255,.7);background:rgba(0,0,0,.45);color:#fff;font:inherit;font-weight:600;padding:0 .9rem;cursor:pointer}
.hs-dots{position:absolute;z-index:2;left:0;right:0;bottom:1.3rem;display:flex;justify-content:center;gap:.15rem;pointer-events:none}
.hs-dot{pointer-events:auto;width:1.75rem;height:1.75rem;border:0;background:transparent;padding:0;cursor:pointer;position:relative}
.hs-dot::before{content:"";position:absolute;inset:.55rem;border-radius:50%;background:rgba(255,255,255,.5)}
.hs-dot[aria-selected="true"]::before{background:#fff}
@media(max-width:600px){.hs-dots{justify-content:flex-start;padding-left:.8rem}.hs-copy{bottom:4.2rem}}
@media(prefers-reduced-motion:reduce){.hs-slide,.hs-slide.on{transition:none}}
.hs-fallback{display:flex;justify-content:center;padding:1.25rem 1rem 1.5rem}
.hs-fallback img{width:min(20rem,70vw);height:auto}
nav[aria-label="Main"]{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem}
@media (max-width:900px){
  header{position:static}
  nav[aria-label="Main"]{justify-content:space-between}
  nav[aria-label="Main"] .nav-links{order:3}
  nav a.nav-book{min-height:2.75rem;padding:0 1.2rem;font-size:1rem;display:inline-flex;align-items:center}
  body[data-page="home"] header .countdown{display:none}
  .site-cart-bar [data-act="cart-save"][disabled]{display:none}
}
section.hero-slides{padding:0;margin:0}
@media(max-width:600px){.hs-dots{display:none}.hs-copy{bottom:4.5rem}}
/* Shop */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.notice{background:#e8f3ea;border-radius:.6rem;padding:.8rem 1rem}

@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
/* ===== Shop (same layout as Jimbo Slice: category tabs, product view, cart drawer) ===== */
/* ===== Shop: clean grid, product view, cart drawer ===== */
.shop-page{padding-top:18px}
.shop-title{font-size:clamp(1.3rem,5vw,2rem);margin:0 0 6px}.shop-sub{margin:0 0 14px;font-size:.95rem}
.shop-filters{display:flex;gap:8px;overflow-x:auto;padding:10px 0;margin:0 0 12px;background:var(--paper);scrollbar-width:none;-webkit-overflow-scrolling:touch}
.shop-filters::-webkit-scrollbar{display:none}.shop-filters[hidden]{display:none}
.chip{flex:0 0 auto;font:700 .9rem/1 var(--sans);padding:11px 16px;border:2px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink);cursor:pointer;min-height:44px}
.chip[aria-pressed="true"]{background:var(--ink);color:#fff}
.shop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}
@media(min-width:720px){.shop-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 18px}}
@media(min-width:1000px){.shop-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
.shop-card{display:flex;flex-direction:column;gap:4px;text-align:left;background:none;border:0;padding:0;cursor:pointer;font:inherit;color:var(--ink);min-width:0}
.shop-art{position:relative;display:block;background:#fff;aspect-ratio:1/1;border:2px solid var(--ink);overflow:hidden}
.shop-art img{width:100%;height:100%;aspect-ratio:1/1;object-fit:contain;transition:transform .2s}
.shop-card:hover .shop-art img{transform:scale(1.04)}
.shop-card:focus-visible{outline:3px solid var(--ember);outline-offset:3px}

.shop-badge{position:absolute;left:6px;top:6px;background:var(--ink);color:#fff;font:700 .7rem/1 var(--sans);padding:5px 8px;border-radius:999px}
.shop-name{font:600 1.05rem/1.25 var(--display);margin-top:6px}
.shop-price{font:700 .95rem/1.2 var(--sans);color:var(--ember)}
.card-dots{display:flex;gap:4px;margin-top:2px}.card-dots i{width:12px;height:12px;border-radius:50%;border:1px solid rgba(0,0,0,.35)}
.shop-notify,.shop-past{margin-top:32px}
.shop-lock{overflow:hidden}
.shop-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:60}.shop-overlay[hidden]{display:none}
.shop-x{background:none;border:0;font-size:2rem;line-height:1;width:44px;height:44px;cursor:pointer;color:var(--ink)}
.shop-modal{position:fixed;z-index:61;left:0;right:0;bottom:0;max-height:92vh;overflow-y:auto;background:var(--paper);border-top:3px solid var(--ink);padding:8px 16px calc(20px + env(safe-area-inset-bottom));display:block}
.shop-modal[hidden],.shop-drawer[hidden]{display:none}
.shop-modal .shop-x{position:absolute;right:6px;top:6px;z-index:2;background:rgba(255,255,255,.9);border-radius:50%}
.pd-art{background:#fff;border:2px solid var(--ink);margin-top:40px;aspect-ratio:1/1;max-width:min(420px,30vh);margin-left:auto;margin-right:auto}
.pd-art img{width:100%;height:100%;object-fit:contain}
.pd-name{font:700 1.3rem/1.2 var(--sans);margin:14px 0 4px}
.pd-price{font:700 1.2rem/1 var(--sans);color:var(--ember);margin:0 0 8px}
.pd-desc{margin:0 0 12px;color:var(--mist);font-size:.95rem}
@media(min-width:760px){.shop-modal{left:50%;right:auto;bottom:auto;top:50%;transform:translate(-50%,-50%);width:min(900px,92vw);max-height:90vh;display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:24px;border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink)}.shop-modal[hidden]{display:none}.pd-art{margin-top:0;width:100%;max-width:none}.pd-name{margin-top:0}.shop-modal .shop-x{top:4px;right:4px}}
.opt{border:0;padding:0;margin:0 0 14px;min-width:0}.opt legend,.opt-l{font:600 .9rem var(--sans);padding:0;margin-bottom:6px;display:block}
.swatches{display:flex;gap:10px;flex-wrap:wrap}.swatches label{cursor:pointer}
.swatches input,.sizes input{position:absolute;opacity:0;width:1px;height:1px}
.swatches span[data-sw]{display:block;width:40px;height:40px;border-radius:50%;border:2px solid rgba(0,0,0,.4)}
.swatches input:checked+span{outline:3px solid var(--ink);outline-offset:2px}
.swatches input:focus-visible+span,.sizes input:focus-visible+span{outline:3px solid var(--ember);outline-offset:2px}
.sizes{display:flex;gap:8px;flex-wrap:wrap}.sizes span{display:block;min-width:48px;min-height:44px;line-height:40px;text-align:center;padding:0 12px;border:2px solid var(--ink);background:#fff;font:600 .9rem/40px var(--sans);cursor:pointer}
.sizes input:checked+span{background:var(--ink);color:#fff}
.stepper{display:inline-flex;align-items:center;border:2px solid var(--ink);background:#fff}
.stepper button{width:44px;height:44px;border:0;background:none;font-size:1.4rem;cursor:pointer;color:var(--ink)}
.stepper output{min-width:34px;text-align:center;font-weight:700}
.stepper.sm button{width:36px;height:36px}
#pd-action{padding-top:4px}
#pd-action .btn,#shop-pay{width:100%;text-align:center;padding:16px}
.shop-drawer{position:fixed;z-index:61;top:0;right:0;bottom:0;width:min(420px,100vw);background:var(--paper);border-left:3px solid var(--ink);display:flex;flex-direction:column;animation:drawer-in .22s ease-out}
.shop-drawer[hidden]{display:none}
@keyframes drawer-in{from{transform:translateX(100%)}to{transform:none}}
@media(prefers-reduced-motion:reduce){.shop-drawer{animation:none}}
.drawer-head{display:flex;justify-content:space-between;align-items:center;padding:6px 8px 6px 16px;border-bottom:2px solid var(--ink)}.drawer-head h2{margin:0}
.drawer-body{flex:1;overflow-y:auto;padding:12px 16px}
.drawer-foot{padding:12px 16px calc(14px + env(safe-area-inset-bottom));border-top:2px solid var(--ink);background:#fff}
.cart-line{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid #ddd}
.cart-line img{width:64px;height:64px;object-fit:contain;background:#fff;border:1px solid #ddd;flex:0 0 64px}
.cl-info{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0;font-size:.92rem}.cl-row{display:flex;justify-content:space-between;align-items:center;margin-top:4px}
.cl-x{background:none;border:0;font-size:1.5rem;width:36px;height:36px;cursor:pointer;color:var(--mist)}
.shop-method{border:0;padding:0;margin:14px 0}.shop-method legend{font-weight:700;margin-bottom:4px}.shop-method label{display:block;padding:8px 0}
.drawer-email{display:block;font-weight:600;font-size:.9rem}.drawer-email input{display:block;width:100%;margin-top:4px;padding:12px;font-size:1rem;border:2px solid var(--ink)}
.cart-totals{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 12px;margin:0 0 8px;font-size:.9rem}.cart-totals strong{flex:0 0 100%;font-size:1.1rem;text-align:right}
#shop-error:empty{display:none}
.cart-fab{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:calc(max(16px,env(safe-area-inset-bottom)) + 64px);z-index:50;background:var(--red,#c8102e);color:#fff;border:2px solid var(--neon-yellow,#ffe14d);border-radius:999px;padding:14px 20px;font:700 1rem/1.1 inherit;font-family:inherit;box-shadow:0 6px 18px rgba(0,0,0,.35);cursor:pointer;max-width:calc(100vw - 32px);transition:opacity .2s,transform .2s}
.cart-fab[hidden]{display:none}
.cart-fab.away{opacity:0;pointer-events:none;transform:translateY(12px)}
.shop-page .notify-form{display:flex;gap:8px;flex-wrap:wrap}.shop-page .notify-form input{flex:1 1 200px;padding:12px;border:2px solid var(--ink);font-size:1rem}
.ship-addr{border:0;padding:0;margin:.6rem 0;display:grid;gap:.45rem}.ship-addr legend{font-weight:600;padding:0}.ship-addr label{display:grid;gap:.2rem;font-size:.9rem}.ship-addr input,.ship-addr select{font:inherit;padding:.5rem .6rem;border:1px solid rgba(127,127,127,.5);border-radius:8px;background:transparent;color:inherit}

.member-promo{font-weight:600;margin:.25rem 0 1rem}
.cart-totals .member-line{color:var(--ember,#c0392b);font-weight:600}
.gift-cards{display:grid;gap:1rem;grid-template-columns:minmax(0,320px) 1fr;align-items:center;margin:1.5rem 0}
.gift-cards img{width:100%;height:auto;border-radius:12px}
@media(max-width:640px){.gift-cards{grid-template-columns:1fr}}
/* Apparel sub-filters row + no stretched chips or images */
.shop-filters{align-items:center}
.shop-filters .chip{align-self:center;height:auto}
.sub-filters{margin-top:-8px;padding-top:0}
.chip.sm{font-size:.85rem;padding:8px 14px;min-height:36px}
.shop-art{display:block;aspect-ratio:1/1;overflow:hidden}
.shop-art img{display:block;width:100%;height:100%;object-fit:contain}
.shop-grid{align-items:start}
.shop-card{min-width:0}
.gift-cards[hidden]{display:none}
.gift-cards img{aspect-ratio:3/2;object-fit:contain;height:auto;max-width:100%}
.sizes label.na span{opacity:.35;text-decoration:line-through;cursor:not-allowed}
.designs{display:flex;flex-wrap:wrap;gap:8px}.designs label{position:relative;display:flex;flex-direction:column;align-items:center;width:84px;cursor:pointer;text-align:center;font-size:12px;line-height:1.2;gap:4px}.designs input{position:absolute;opacity:0;width:1px;height:1px}.designs img{width:72px;height:72px;aspect-ratio:1/1;object-fit:cover;border:2px solid transparent;border-radius:6px}.designs input:checked+img{border-color:currentColor;box-shadow:0 0 0 1px currentColor}.designs input:focus-visible+img{outline:3px solid #f90;outline-offset:2px}.swatches label.na{cursor:not-allowed}.swatches label.na span[data-sw]{opacity:.25;background-image:linear-gradient(135deg,transparent 45%,#c00 45%,#c00 55%,transparent 55%)!important}.shop-designs{display:block;margin-top:2px}
.designs img{object-fit:contain;padding:4px;box-sizing:border-box}
.swatches.many{gap:7px}.swatches.many span[data-sw]{width:28px;height:28px;border-width:1px}.card-dots .more{font-size:11px;font-weight:600;margin-left:3px;vertical-align:middle}
.pd-share{margin:6px 0 12px;padding-bottom:10px;border-bottom:1px dashed var(--line)}
.pd-share-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.pd-share-row button{font:inherit;font-size:.85rem;font-weight:600;padding:6px 10px;border-radius:999px;border:2px solid var(--ember);background:#fff;color:var(--ember);cursor:pointer}
.pd-share-row button:hover,.pd-share-row button:focus-visible{background:var(--ember);color:#fff}
.share-note{margin:4px 8px 2px;font-size:.8rem;color:var(--mist)}.share-note:empty{display:none}
.swatches.many{gap:6px}.swatches.many span[data-sw]{width:24px;height:24px}
@media(min-width:760px){.shop-modal{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.shop-modal .pd-art{align-self:start;position:sticky;top:0}}
.wb-chip{display:inline-flex;align-items:center;gap:6px}.wb-chip .wb-badge{width:22px;height:22px;object-fit:contain}.shop-wb .wb-banner:empty{display:none}.shop-wb .wb-banner img{display:block;width:100%;height:auto;border-radius:10px;margin:8px 0}
.wb-chip.has-pill{padding:0;border:0;background:none;line-height:0}.wb-chip .wb-pill{display:block;height:36px;width:auto}
.wb-head{text-align:center;margin:10px 0 14px}.wb-head h2{margin:.2em 0}.wb-head .wb-sub{margin:.2em 0 .7em}.wb-head .wb-tag{margin:.6em 0 0;font-style:italic}.wb-ed{margin:.6em 0 0}.ed-badge{display:inline-block;background:#2a1a0e;color:#ffd25a;font:700 .75rem/1 system-ui,sans-serif;padding:5px 9px;border-radius:999px}.pd-edition{margin:.4em 0}
.wb-vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.wb-banner-btn{display:block;width:100%;padding:0;border:0;background:none;cursor:pointer}
.shop-wb{background:#1f2a1c;color:#f3ead8;border-radius:16px;padding:14px 14px 20px;margin:12px 0 8px;border:3px solid #c9a227;box-shadow:0 6px 18px rgba(0,0,0,.18)}.shop-wb .wb-banner img{margin:0 0 10px}.shop-wb .wb-ed{color:#f3ead8;text-align:center}.wb-tabs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:6px 0 14px}.wb-tab{font:700 .95rem/1 system-ui,sans-serif;padding:10px 16px;border-radius:999px;border:2px solid #c9a227;background:transparent;color:#f3ead8;cursor:pointer}.wb-tab[aria-selected=true]{background:#c9a227;color:#1f2a1c}.wb-grid .shop-card{background:#fffdf7;color:#1a1a1a}.wb-soon{grid-column:1/-1;text-align:center;font:700 1.3rem/1.4 system-ui,sans-serif;color:#c9a227;padding:30px 0}.shop-more{margin:26px 0 10px;padding-top:18px;border-top:3px dashed #c9a227;text-align:center}
.wb-sect{margin:22px 0 0;padding-top:16px;border-top:2px solid rgba(201,162,39,.6)}.wb-sect h3{margin:0 0 10px;font-size:1.4rem;color:#ffd25a}.wb-sect h3 span{font-size:.9rem;color:#f3ead8;font-weight:600;margin-left:6px}.wb-sect-ban{display:block;width:100%;height:auto;border-radius:10px;margin:0 0 10px}a.wb-tab{text-decoration:none}a.wb-banner-btn{display:block;color:inherit;text-decoration:none}
.shop-wb a.wb-tab,.shop-wb a.wb-tab:visited{color:#f3ead8!important;background:transparent}.shop-wb a.wb-tab:hover{background:#c9a227;color:#1f2a1c!important}

/* Hollerbaks top strip. Text banner now; art via data-art="1" (python3 /workspace/wb_launch/topbar_on.py) loads /media/woodbooger/topbar_{desktop,mobile}.webp */
.wb-topbar{display:block;position:relative;overflow:hidden;text-align:center;text-decoration:none;background:linear-gradient(90deg,#1f3a1f,#3b5d2a 50%,#1f3a1f);color:#ffe9a8;font-weight:800;letter-spacing:.04em;text-transform:uppercase;font-size:.95rem;padding:7px 12px;border-bottom:2px solid #ffd400}
.wb-topbar:hover .wb-topbar-txt{text-decoration:underline}
.wb-topbar picture img{display:block;width:100%;height:auto}
.wb-topbar.has-art{padding:0}.wb-topbar.has-art .wb-topbar-txt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.wb-topbar.has-art{border-bottom:0;background:#1f3a1f}.wb-topbar picture img{max-height:110px;object-fit:cover;margin:0 auto}
@media (max-width:480px){.wb-topbar{font-size:.8rem;padding:6px 8px}}
.wb-topbar-sns{margin:0 -1rem .5rem}

/* ===== UX pass: cabin card facts, upfront first-night total, mobile stay summary ===== */
.card-facts { font-weight: 600; font-size: 0.92rem; margin-top: 0.55rem; }
.card-total { margin-top: 0.35rem; }
.card-total strong { font-size: 1.05rem; }
.stay-bar { display: none; }
@media (max-width: 899px) {
  .stay-bar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; align-items: center; justify-content: space-between; gap: 1rem; padding: 0.7rem 1rem calc(0.7rem + env(safe-area-inset-bottom)); background: var(--ink); color: var(--cream); box-shadow: 0 -6px 24px rgba(28, 20, 16, 0.25); }
  .stay-bar a { color: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
  .stay-bar-spacer { height: 4.25rem; }
}
