:root{
  --walnut:#3b2416; --walnut-2:#2b1a0f; --cream:#f0dfc2; --paper:#f8ecd8; --ink:#2a211b; --muted:#6f6257;
  --tomato:#b23a2b; --tomato-dark:#8f2c20; --basil:#2f5d3a; --wine:#7a1f2b; --gold:#e3c98f; --rule:#e0cba8;
  --serif:'Playfair Display',Georgia,serif; --body:'Source Serif 4',Georgia,serif;
  --max:1120px; --gutter:clamp(16px,4vw,40px);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--tomato)}
h1,h2,h3{font-family:var(--serif);color:var(--walnut);line-height:1.1;margin:0 0 .4em;font-weight:700}
h1{font-size:clamp(2.4rem,6vw,4.3rem);font-weight:800;letter-spacing:-.5px}
h2{font-size:clamp(1.9rem,4.2vw,3rem)}
h3{font-size:1.35rem}
em.accent{font-style:italic;color:var(--tomato);font-weight:500}
p{margin:0 0 1em}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.kicker{font-family:var(--body);font-size:.78rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--tomato);margin-bottom:1rem}
.tri{height:4px;width:120px;border-radius:2px;background:linear-gradient(90deg,#2f7a45 0 33.3%,#fff 33.3% 66.6%,#c8372d 66.6%);box-shadow:0 0 0 .5px #d9ccb8;margin:1.2rem 0 1.6rem}
.center{text-align:center}.center .tri{margin-left:auto;margin-right:auto}
section{padding:clamp(64px,9vw,120px) 0}
.lead{font-size:1.2rem;color:#4a3d33;max-width:640px}
.center .lead{margin-left:auto;margin-right:auto}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.6em;font-family:var(--body);font-weight:600;font-size:1.05rem;text-decoration:none;color:#fff;background:var(--tomato);padding:.9em 1.5em;border-radius:999px;border:0;cursor:pointer;transition:background .2s,transform .2s;box-shadow:0 6px 18px rgba(178,58,43,.25)}
.btn:hover{background:var(--tomato-dark);transform:translateY(-1px)}
.btn .price{font-weight:700}
.btn.secondary{background:transparent;color:var(--walnut);box-shadow:inset 0 0 0 2px var(--walnut)}
.btn.secondary:hover{background:var(--walnut);color:#fff}
.btn.disabled,.btn[aria-disabled="true"]{background:#bfb3a5;box-shadow:none;cursor:not-allowed;transform:none}
.btn.secondary[aria-disabled="true"]{background:transparent;color:#9a8b7b;box-shadow:inset 0 0 0 2px #cdbfae}
.soon{display:block;font-size:.8rem;color:var(--muted);margin-top:.5rem}

/* top bar */
.topbar{position:sticky;top:0;z-index:50;background:rgba(248,236,216,.93);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule)}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;gap:1rem}
.brand{font-family:var(--serif);font-weight:800;font-size:1.35rem;color:var(--walnut);text-decoration:none;white-space:nowrap}
.nav{display:flex;align-items:center;gap:1.6rem}
.nav a{color:var(--ink);text-decoration:none;font-size:.95rem}
.nav a:hover{color:var(--tomato)}
.nav .btn{padding:.55em 1.1em;font-size:.9rem;color:#fff}
@media (max-width:760px){.nav a:not(.btn){display:none}}

/* hero */
.hero{padding-top:clamp(40px,6vw,80px)}
.hero .grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(24px,5vw,64px);align-items:center}
.hero p.lead{margin-bottom:1.8rem}
.hero .ctas{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.4rem}
.hero .alt{font-size:.95rem;color:var(--muted)}
.hero .alt a{color:var(--walnut)}
.checks{list-style:none;padding:0;margin:2rem 0 0;display:grid;grid-template-columns:1fr 1fr;gap:.5rem 1.2rem;font-size:.98rem}
.checks li{padding-left:1.6em;position:relative}
.checks li::before{content:"";position:absolute;left:0;top:.5em;width:.75em;height:.4em;border-left:2px solid var(--basil);border-bottom:2px solid var(--basil);transform:rotate(-45deg)}
.hero-art{position:relative;width:100%}
.hero-art .stack{position:relative;aspect-ratio:1/1.05}
.hero-art .stack img{position:absolute;width:68%;border-radius:4px;box-shadow:0 26px 50px rgba(43,26,15,.3)}
.hero-art .b1{left:0;top:4%;transform:rotate(-5deg)}
.hero-art .b2{right:0;top:0;transform:rotate(4deg)}
.badge{position:absolute;left:-10px;bottom:-6%;z-index:2;background:var(--tomato);color:#fff;border-radius:50%;width:112px;height:112px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;font-family:var(--serif);box-shadow:0 10px 24px rgba(0,0,0,.25);transform:rotate(-8deg)}
.badge b{font-size:2.1rem;line-height:1}.badge span{font-family:var(--body);font-size:.75rem;line-height:1.2;margin-top:.2em}
@media (max-width:860px){.hero .grid{grid-template-columns:1fr}.hero-art{width:100%;max-width:440px;margin:12px auto 0}.checks{grid-template-columns:1fr}.badge{left:-6px}}

/* city band */
.band{background:var(--walnut-2);color:var(--cream);padding:22px 0;overflow:hidden}
.band .row{display:flex;justify-content:center;flex-wrap:wrap;gap:.6rem 2.2rem;font-family:var(--serif);font-size:clamp(1.1rem,2.4vw,1.6rem);font-style:italic}
.band .row span::after{content:"·";margin-left:2.2rem;color:var(--gold);font-style:normal}
.band .row span:last-child::after{content:none}

/* rule vs shortcut table */
.rules{background:var(--cream)}
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:2.4rem}
table.rvs{width:100%;min-width:720px;border-collapse:collapse}
.rvs th{text-align:left;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600;padding:0 1rem .8rem;border-bottom:2px solid var(--walnut)}
.rvs td{padding:1.2rem 1rem;border-bottom:1px solid var(--rule);vertical-align:top}
.rvs td.dish{font-family:var(--serif);font-weight:700;color:var(--walnut);width:22%}
.rvs td.dish small{display:block;font-family:var(--body);font-weight:400;font-size:.8rem;color:var(--muted);margin-top:.2em}
.rvs td.rule{font-size:1.08rem;width:42%}
.rvs td.never{color:#8a7a6c;width:36%}
.rvs td.never s{text-decoration-color:var(--tomato);text-decoration-thickness:2px}
.swipe{display:none;font-size:.85rem;color:var(--muted);margin-top:.8rem}
@media (max-width:760px){.swipe{display:block}}

/* about */
.about .grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(24px,5vw,64px);align-items:center}
.about img{border-radius:8px;box-shadow:0 20px 40px rgba(43,26,15,.18)}
.about .sig{font-family:var(--serif);font-style:italic;font-size:1.6rem;color:var(--tomato)}
@media (max-width:860px){.about .grid{grid-template-columns:1fr}}

/* books */
.books{background:var(--cream)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:2.6rem}
.card{background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:22px;display:flex;flex-direction:column;position:relative}
.card.feature{border:2px solid var(--tomato);box-shadow:0 18px 40px rgba(178,58,43,.12)}
.card .ribbon{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--tomato);color:#fff;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:.35em 1em;border-radius:999px;white-space:nowrap}
.card img{border-radius:4px;box-shadow:0 10px 24px rgba(43,26,15,.18);margin-bottom:1.2rem;aspect-ratio:17/22;object-fit:cover;width:100%}
.card h3{margin-bottom:.2em}
.card .meta{font-size:.9rem;color:var(--muted);margin-bottom:1rem}
.card ul{padding-left:1.1em;margin:0 0 1.4rem;font-size:.95rem;flex:1}
.card li{margin-bottom:.35em}
.card .price-row{display:flex;align-items:baseline;gap:.6rem;margin-bottom:1rem}
.card .price{font-family:var(--serif);font-size:2rem;font-weight:800;color:var(--walnut)}
.card .save{font-size:.9rem;color:var(--basil);font-weight:600}
.card .btn{justify-content:center}
@media (max-width:960px){.cards{grid-template-columns:1fr;max-width:460px;margin-left:auto;margin-right:auto}}

/* anatomy */
.anatomy .grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,5vw,64px);align-items:start}
.anatomy ol{counter-reset:a;list-style:none;padding:0;margin:0}
.anatomy li{counter-increment:a;padding:0 0 1.1rem 3rem;position:relative}
.anatomy li::before{content:counter(a);position:absolute;left:0;top:-.1em;width:2.1rem;height:2.1rem;border-radius:50%;background:var(--walnut);color:var(--cream);font-family:var(--serif);font-weight:700;display:flex;align-items:center;justify-content:center}
.anatomy li b{display:block;font-family:var(--serif);color:var(--walnut);font-size:1.12rem}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:3rem}
.stat{background:#f3e3c7;border-radius:10px;padding:20px;text-align:center}
.stat b{display:block;font-family:var(--serif);font-size:2.4rem;color:var(--tomato);line-height:1}
.stat span{font-size:.88rem;color:var(--muted)}
.anatomy .page-img{border-radius:6px;box-shadow:0 20px 44px rgba(43,26,15,.2)}
@media (max-width:860px){.anatomy .grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}}

/* look inside */
.inside{background:var(--walnut-2);color:var(--cream)}
.inside h2{color:var(--cream)}
.inside .lead{color:#d9c7a8}
.carousel{display:flex;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px var(--gutter) 24px;margin-top:2.4rem;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:#6f5440 transparent}
.carousel figure{flex:0 0 clamp(240px,30vw,320px);margin:0;scroll-snap-align:start}
.carousel button{all:unset;cursor:zoom-in;display:block}
.carousel img{border-radius:4px;box-shadow:0 14px 30px rgba(0,0,0,.4);transition:transform .25s}
.carousel button:hover img,.carousel button:focus-visible img{transform:translateY(-4px)}
.carousel figcaption{font-size:.88rem;color:#d9c7a8;margin-top:.8rem}
.carousel figcaption b{color:var(--gold);font-weight:600;display:block;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}
.carousel-nav{display:flex;gap:10px;justify-content:flex-end}
.carousel-nav button{width:44px;height:44px;border-radius:50%;border:1px solid #6f5440;background:transparent;color:var(--cream);font-size:1.2rem;cursor:pointer}
.carousel-nav button:hover{background:#3b2416}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(20,12,7,.92);display:none;align-items:center;justify-content:center;padding:24px}
.lightbox.open{display:flex}
.lightbox img{max-height:92vh;width:auto;border-radius:4px}
.lightbox button{position:absolute;top:16px;right:16px;width:48px;height:48px;border-radius:50%;border:0;background:var(--cream);font-size:1.4rem;cursor:pointer}

/* fit */
.fit .grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:2.4rem}
.fit .box{border-radius:10px;padding:28px}
.fit .yes{background:#e9f0e6}.fit .no{background:#f5e6e2}
.fit h3{font-size:1.2rem}
.fit ul{margin:0;padding-left:1.1em}.fit li{margin-bottom:.5em}
@media (max-width:760px){.fit .grid{grid-template-columns:1fr}}

/* guarantee */
.guarantee{background:var(--cream)}
.g-box{display:grid;grid-template-columns:auto 1fr;gap:32px;align-items:center;max-width:820px;margin:0 auto;background:var(--paper);border:1px solid var(--rule);border-radius:14px;padding:clamp(24px,4vw,44px)}
.seal{width:140px;height:140px;border-radius:50%;border:3px solid var(--basil);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--basil);text-align:center;font-family:var(--serif)}
.seal b{font-size:3rem;line-height:.9}.seal span{font-family:var(--body);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:600}
@media (max-width:640px){.g-box{grid-template-columns:1fr;text-align:center}.seal{margin:0 auto}}

/* faq */
.faq-list{max-width:820px;margin:2.4rem auto 0}
.faq-list details{border-bottom:1px solid var(--rule);padding:1.1rem 0}
.faq-list summary{cursor:pointer;list-style:none;font-family:var(--serif);font-weight:700;font-size:1.15rem;color:var(--walnut);display:flex;justify-content:space-between;gap:1rem}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";font-family:var(--body);color:var(--tomato);font-size:1.5rem;line-height:1;transition:transform .2s}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list details p{margin:.8rem 0 0;color:#4a3d33}

/* closing */
.closing{background:var(--walnut-2);color:var(--cream);text-align:center}
.closing h2{color:var(--cream)}
.closing .lead{color:#d9c7a8}
.closing img{max-width:760px;width:100%;margin:2.4rem auto 0;border-radius:8px;opacity:.95}

/* footer */
footer{background:#1d1109;color:#b9a892;padding:48px 0 120px;font-size:.92rem}
footer .row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;align-items:flex-start}
footer a{color:#e9dcc6;text-decoration:none}
footer a:hover{color:#fff;text-decoration:underline}
footer .links{display:flex;flex-wrap:wrap;gap:.5rem 1.4rem}
footer .brand{color:#fbf3e4}
footer .yt{display:inline-flex;align-items:center;gap:.5em}
footer .small{margin-top:28px;font-size:.82rem;line-height:1.55;max-width:780px}
footer .legal{margin-top:12px;font-size:.7rem;color:#6f6257}

/* sticky buy bar */
.buybar{position:fixed;left:50%;bottom:16px;transform:translate(-50%,220%);z-index:60;background:#fff;border-radius:999px;box-shadow:0 12px 40px rgba(43,26,15,.28);display:flex;align-items:center;gap:14px;padding:8px 8px 8px 10px;transition:transform .35s ease;width:min(560px,calc(100% - 24px))}
.buybar.show{transform:translate(-50%,0)}
.buybar img{width:40px;height:52px;object-fit:cover;border-radius:3px}
.buybar .t{flex:1;min-width:0;line-height:1.2}
.buybar .t b{display:block;font-family:var(--serif);color:var(--walnut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.buybar .t span{font-size:.82rem;color:var(--muted)}
.buybar .btn{padding:.7em 1.2em;font-size:.95rem;white-space:nowrap}

/* reveal */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}.buybar{transition:none}}

/* policy pages */
.policy{max-width:760px;margin:0 auto;padding:64px var(--gutter) 96px}
.policy h1{font-size:clamp(2rem,5vw,3rem)}
.policy h2{font-size:1.4rem;margin-top:2rem}
.policy .updated{color:var(--muted);font-size:.9rem}

/* cities */
.cities{background:linear-gradient(180deg,#2b1a0f,#3a2414);color:var(--cream)}
.cities h2{color:var(--cream)}
.cities .lead{color:#e3d0b0}
.city-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:2.6rem;align-items:start}
.city{background:rgba(255,240,215,.06);border:1px solid rgba(227,201,143,.22);border-top:4px solid var(--c);border-radius:10px;transition:background .2s}
.city[open]{background:rgba(255,240,215,.1)}
.city summary{list-style:none;cursor:pointer;padding:20px 18px 18px;display:flex;flex-direction:column;gap:.25rem;position:relative}
.city summary::-webkit-details-marker{display:none}
.city summary::after{content:"+";position:absolute;right:14px;top:14px;font-size:1.5rem;line-height:1;color:var(--c);transition:transform .2s}
.city[open] summary::after{transform:rotate(45deg)}
.city summary:hover{background:rgba(255,240,215,.05)}
.cname{font-family:var(--serif);font-size:1.6rem;font-weight:700;font-style:italic;color:#fbf3e4}
.creg{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.ctease{font-size:.93rem;color:#e3d0b0;line-height:1.4;margin-top:.3rem}
.city ul{margin:0;padding:0 18px 0 34px;font-size:.92rem;line-height:1.5;color:#f3e6d0}
.city li{margin-bottom:.65em}
.city li::marker{color:var(--c)}
.city .inbook{margin:.4rem 18px 18px;padding-top:.8rem;border-top:1px solid rgba(227,201,143,.25);font-size:.85rem;color:#e3d0b0}
.city .inbook b{color:var(--gold);font-weight:600}
.city-panel{display:none}
@media (min-width:1101px){
  .city-grid.tabs .city > :not(summary){display:none}
  .city-grid.tabs .city summary::after{content:none}
  .city-grid.tabs .city[open]{background:rgba(255,240,215,.14);border-color:var(--c);box-shadow:0 0 0 1px var(--c)}
  .city-grid.tabs .city{align-self:stretch}
  .city-grid.tabs .city summary{height:100%}
  .city-panel.on{display:block;margin-top:16px;background:rgba(255,240,215,.1);border:1px solid rgba(227,201,143,.25);border-left:4px solid var(--pc,#c8372d);border-radius:10px;padding:26px 30px}
  .city-panel h3{color:#fbf3e4;font-style:italic;font-size:1.6rem;margin-bottom:.8rem}
  .city-panel ul{columns:2;column-gap:44px;margin:0;padding-left:1.1em;font-size:1rem;line-height:1.55;color:#f3e6d0}
  .city-panel li{break-inside:avoid;margin-bottom:.7em}
  .city-panel li::marker{color:var(--pc)}
  .city-panel .inbook{margin:.6rem 0 0;padding-top:.9rem;border-top:1px solid rgba(227,201,143,.25);font-size:.92rem;color:#e3d0b0}
  .city-panel .inbook b{color:var(--gold);font-weight:600}
}
@media (max-width:1100px){.city-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.city-grid{grid-template-columns:1fr}}