

:root {
  
  --ink:        #2b211c;   
  --ink-soft:   #675a4e;   
  --paper:      #faf5ec;   
  --paper-2:    #f1e8d8;   
  --surface:    #ffffff;   
  --surface-2:  #ffffff;   
  --line:       #e2d7c3;   
  --brand:      #4a3524;   
  --brand-deep: #362617;
  --accent:     #3e6b35;   
  --accent-deep:#325829;
  --accent-ink: #ffffff;   
  --gold:       #8a5a12;   
  --gold-soft:  #f7e7bc;   
  --gold-ink:   #63470c;   
  --ok:         #2f6f4f;
  --warn:       #9c5a20;

  --display: "Helvetica Neue", "Segoe UI", system-ui, Arial, sans-serif;
  --body: ui-sans-serif, system-ui, -apple-system, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
  --mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  --step--1: clamp(.83rem, .8rem + .15vw, .92rem);
  --step-0:  clamp(1rem, .96rem + .2vw, 1.12rem);
  --step-1:  clamp(1.2rem, 1.1rem + .5vw, 1.5rem);
  --step-2:  clamp(1.45rem, 1.25rem + 1vw, 2.1rem);
  --step-3:  clamp(1.85rem, 1.5rem + 1.8vw, 3.1rem);
  --step-4:  clamp(2.4rem, 1.8rem + 3vw, 4.4rem);

  --s1:.4rem; --s2:.7rem; --s3:1.1rem; --s4:1.7rem; --s5:2.6rem; --s6:4rem; --s7:6rem;
  --maxw: 72rem;
  
  --radius: 8px;
  --radius-sm: 5px;
  --shadow: 0 1px 2px rgba(43,33,28,.05), 0 10px 28px rgba(43,33,28,.08);
}

*,*::before,*::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0; background: var(--paper); color: var(--ink);
  font-family: var(--body); font-size: var(--step-0); line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: var(--brand); text-underline-offset: 3px; }
h1,h2 { font-family: var(--display); line-height: 1.05; letter-spacing: -.025em; font-weight: 800; margin: 0 0 var(--s3); color: var(--ink); }
h3 { font-family: var(--display); line-height: 1.2; letter-spacing: -.01em; font-weight: 700; margin: 0 0 var(--s3); color: var(--ink); }
h1 { font-size: var(--step-4); }
h2 { font-size: var(--step-3); margin-top: var(--s6); }
h3 { font-size: var(--step-1); margin-top: var(--s4); }
p { margin: 0 0 var(--s3); max-width: 64ch; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 4px; }

.wrap { width: min(100% - 2rem, var(--maxw)); margin-inline: auto; }
.wrap-narrow { width: min(100% - 2rem, 50rem); margin-inline: auto; }
.section { padding-block: var(--s6); }
.section + .section { padding-top: 0; }
.skip-link { position:absolute; left:-999px; top:0; background:var(--brand); color:#fff; padding:.6rem 1rem; z-index:50; font-weight:700; }
.skip-link:focus { left:8px; top:8px; }

.btn {
  display:inline-flex; align-items:center; gap:.5rem; justify-content:center;
  font-family: var(--display); font-weight:700; font-size: var(--step-0);
  padding: .85rem 1.4rem; border-radius: 999px; text-decoration:none; border:0; cursor:pointer;
  min-height: 48px; transition: transform .08s ease, background .15s ease;
}
.btn:active { transform: translateY(1px); }
.btn-primary { background: var(--accent); color:var(--accent-ink); }
.btn-primary:hover { background: var(--accent-deep); color:var(--accent-ink); }
.btn-brand { background: var(--brand); color:#fff; }
.btn-brand:hover { background: var(--brand-deep); }
.btn-ghost { background: transparent; color: var(--ink); border:2px solid var(--line); }
.btn-ghost:hover { border-color: var(--ink-soft); }

.site-header { position: sticky; top:0; z-index:40; background: rgba(246,248,250,.9); backdrop-filter: blur(10px); border-bottom:1px solid var(--line); }
.nav { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding-block:.7rem; }
.brand { font-family:var(--display); font-weight:800; font-size:var(--step-1); color:var(--ink); text-decoration:none; letter-spacing:-.02em; display:inline-flex; align-items:center; gap:.5rem; }
.brand-logo { width:28px; height:28px; border-radius:7px; display:block; }
.brand b { color: var(--accent); }
.nav-links { display:flex; gap:1.2rem; align-items:center; list-style:none; margin:0; padding:0; }
.nav-links a { color:var(--ink); text-decoration:none; font-weight:600; font-size:var(--step--1); }
.nav-links a:hover { color:var(--accent); }
.nav-links a.btn-brand { color:#fff; }
.nav-links a.btn-primary { color:#fff; }
.nav-toggle { display:none; background:none; border:0; font-size:1.6rem; min-height:48px; min-width:48px; cursor:pointer; color:var(--ink); }
@media (max-width: 760px) {
  .nav-toggle { display:block; }
  .nav-links { position:absolute; inset:100% 0 auto 0; flex-direction:column; background:var(--paper-2); border-bottom:1px solid var(--line); padding:1rem; gap:1rem; display:none; }
  .nav-links[data-open="true"] { display:flex; }
}

.crumbs { font-size: var(--step--1); color: var(--ink-soft); padding-block: var(--s3); }
.crumbs a { color: var(--ink-soft); }
.crumbs span[aria-current] { color: var(--ink); font-weight:600; }

.hero-full {
  min-height: 88svh;
  background-size: cover; background-position: center;
  display: flex; align-items: flex-end;
  color: #fff;
  border-bottom: 3px solid var(--accent);
}
.hero-full-inner { padding-block: var(--s7) var(--s6); }
.hero-full h1 { color: #fff; max-width: 21ch; }
.hero-full .lede { color: rgba(255,255,255,.9); max-width: 56ch; font-size: var(--step-1); }
.hero-full .author-hook { color: rgba(255,255,255,.85); display:flex; align-items:center; gap:.6rem; font-size:var(--step--1); margin: var(--s3) 0 var(--s4); }
.hero-full .author-hook a { color: #fff; }
.hero-full .author-hook img { width:38px; height:38px; border-radius:50%; object-fit:cover; border:2px solid rgba(255,255,255,.5); }
.hero-full-ghost { color:#fff; border-color: rgba(255,255,255,.55); }
.hero-full-ghost:hover { border-color:#fff; }
@media (max-width: 640px) { .hero-full { min-height: 72svh; } }

.hero { display:grid; grid-template-columns: 1.15fr .85fr; gap: var(--s5); align-items:center; padding-top: var(--s5); }

.hero--flip { grid-template-columns: .9fr 1.1fr; }
.hero--flip .hero-media { order:-1; }
.eyebrow { font-family:var(--display); text-transform:uppercase; letter-spacing:.14em; font-size:var(--step--1); color:var(--gold); font-weight:700; margin-bottom:var(--s2); }
.hero h1 { margin-bottom: var(--s3); }
.hero .author-hook { display:flex; align-items:center; gap:.6rem; font-size:var(--step--1); color:var(--ink-soft); margin-bottom:var(--s4); }
.hero .author-hook img { width:38px; height:38px; border-radius:50%; object-fit:cover; border:2px solid var(--line); }
.hero-media { aspect-ratio:16/9; border-radius:var(--radius); overflow:hidden; background:var(--surface); box-shadow:var(--shadow); }
.hero-media img { width:100%; height:100%; object-fit:cover; }
@media (max-width: 820px){ .hero{ grid-template-columns:1fr; align-items:start; } .hero--flip .hero-media { order:0; } }

.quick-answer { background: var(--surface); border:1px solid var(--line); border-left:5px solid var(--accent); color: var(--ink); border-radius: var(--radius); padding: var(--s4) var(--s5); margin-top: var(--s5); box-shadow: var(--shadow); }
.quick-answer p { color:var(--ink); font-size: var(--step-1); max-width: 60ch; margin:0; }
.quick-answer .qa-label { font-family:var(--display); text-transform:uppercase; letter-spacing:.14em; font-size:.72rem; color:var(--gold); margin-bottom:var(--s2); font-weight:700; }

.keyfacts { width:100%; border-collapse:collapse; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
.keyfacts th, .keyfacts td { text-align:left; padding:.8rem 1rem; border-bottom:1px solid var(--line); vertical-align:top; }
.keyfacts th { width:42%; font-family:var(--display); font-weight:700; color:var(--ink); background:var(--paper-2); }
.keyfacts tr:last-child th, .keyfacts tr:last-child td { border-bottom:0; }
@media (max-width:640px){
  .keyfacts { display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; }
  .keyfacts th { min-width: 9rem; }
}

.product-card { display:grid; grid-template-columns: 1fr 1.2fr; gap:0; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); }
.product-card .pc-media { background:var(--paper-2); overflow:hidden; }
.product-card .pc-media img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.product-card .pc-body { padding: var(--s4); display:flex; flex-direction:column; gap:var(--s2); }
.pc-tag { align-self:flex-start; background:var(--gold-soft); color:var(--gold-ink); font-weight:700; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; padding:.25rem .6rem; border-radius:999px; }
.pc-rating { font-weight:700; color:var(--ink); display:flex; align-items:center; gap:.45rem; flex-wrap:wrap; }
.pc-rating .src { font-weight:500; color:var(--ink-soft); font-size:var(--step--1); }

.stars { position:relative; display:inline-block; vertical-align:middle; line-height:1; white-space:nowrap; font-size:1.05em; }
.stars::before { content:"★★★★★"; color:var(--line); letter-spacing:2px; }
.stars .stars-fill { position:absolute; top:0; left:0; overflow:hidden; white-space:nowrap; }
.stars .stars-fill::before { content:"★★★★★"; color:var(--gold); letter-spacing:2px; }
.stars-num { font-weight:700; color:var(--ink); }
.trust .stars { font-size:1.15rem; margin-top:.2rem; }
.pc-price { font-family:var(--display); font-size:var(--step-2); font-weight:800; color:var(--ink); }
.pc-price small { font-size:var(--step--1); color:var(--ink-soft); font-weight:500; }
@media (max-width:680px){ .product-card{ grid-template-columns:1fr; } .product-card .pc-media{ aspect-ratio:4/3; } }

.incl { display:grid; grid-template-columns:1fr 1fr; gap:var(--s4); }
.incl ul { list-style:none; padding:0; margin:0; }
.incl li { padding:.35rem 0 .35rem 1.6rem; position:relative; }
.incl .yes::before { content:"✓"; position:absolute; left:0; color:var(--ok); font-weight:800; }
.incl .no::before  { content:"✕"; position:absolute; left:0; color:var(--accent); font-weight:800; }
@media (max-width:600px){ .incl{ grid-template-columns:1fr; } }

.timeline { list-style:none; margin:0; padding:0; border-left:3px solid var(--line); }
.timeline li { position:relative; padding:0 0 var(--s4) var(--s4); }
.timeline li::before { content:""; position:absolute; left:-9px; top:4px; width:15px; height:15px; border-radius:50%; background:var(--accent); border:3px solid var(--paper); }
.timeline .t { font-family:var(--display); font-weight:700; }

.proscons { display:grid; grid-template-columns:1fr 1fr; gap:var(--s4); }
.proscons .col { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:var(--s4); }
.proscons h3 { margin-top:0; }
.proscons ul { padding-left:1.1rem; margin:0; }
.proscons li { margin-bottom:.5rem; }
.proscons .pros { border-top:4px solid var(--ok); }
.proscons .cons { border-top:4px solid var(--accent); }
@media (max-width:600px){ .proscons{ grid-template-columns:1fr; } }

.author-block { background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius); padding:var(--s5); display:grid; grid-template-columns:auto 1fr; gap:var(--s4); align-items:start; }
.author-block img.avatar { width:84px; height:84px; border-radius:50%; object-fit:cover; border:3px solid var(--surface); box-shadow:var(--shadow); }
.author-block .updated { font-size:var(--step--1); color:var(--ink-soft); margin-top:var(--s3); }
@media (max-width:600px){ .author-block{ grid-template-columns:1fr; } }

.trust { display:grid; grid-template-columns:repeat(4,1fr); gap:var(--s3); text-align:center; background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius); padding:var(--s4); }
.trust .num { font-family:var(--display); font-size:var(--step-2); font-weight:800; color:var(--gold); }
.trust .lbl { font-size:var(--step--1); color:var(--ink-soft); }
@media (max-width:640px){ .trust{ grid-template-columns:repeat(2,1fr); gap:var(--s4); } }

.faq details { border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--surface); padding:.4rem 1rem; margin-bottom:.7rem; }
.faq summary { font-family:var(--display); font-weight:700; cursor:pointer; padding:.6rem 0; list-style:none; color:var(--ink); }
.faq summary::-webkit-details-marker{ display:none; }
.faq summary::after { content:"+"; float:right; color:var(--accent); font-weight:800; }
.faq details[open] summary::after { content:"−"; }

.related { display:grid; grid-template-columns:repeat(2,1fr); gap:var(--s4); }
.related .rcard { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); }
.related .rcard .rc-media { aspect-ratio:4/3; background:var(--paper-2); }
.related .rcard .rc-media img { width:100%; height:100%; object-fit:cover; }
.related .rcard .rc-body { padding:var(--s3) var(--s4); }
@media (max-width:600px){ .related{ grid-template-columns:1fr; } }

.cards-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s4); }
.cards-3 .rcard { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); display:flex; flex-direction:column; }
.cards-3 .rcard .rc-media { aspect-ratio:4/3; background:var(--paper-2); }
.cards-3 .rcard .rc-media img { width:100%; height:100%; object-fit:cover; }
.cards-3 .rcard .rc-body { padding:var(--s3) var(--s4) var(--s4); display:flex; flex-direction:column; gap:var(--s2); flex:1; }
.cards-3 .rcard .rc-body .btn { margin-top:auto; }
@media (max-width:820px){ .cards-3{ grid-template-columns:1fr; } }

.pc-reviews { font-weight:500; color:var(--ink-soft); font-size:var(--step--1); }
.pc-bestfor { align-self:flex-start; margin:0; background:var(--gold-soft); color:var(--gold-ink);
  font-weight:700; font-size:.7rem; text-transform:uppercase; letter-spacing:.05em; padding:.28rem .65rem; border-radius:999px; }
.pc-points { list-style:none; padding:0; margin:.15rem 0 0; display:flex; flex-direction:column; gap:.4rem; }
.pc-points li { position:relative; padding-left:1.45rem; font-size:var(--step--1); color:var(--ink); line-height:1.4; }
.pc-points li::before { content:"✓"; position:absolute; left:0; top:-.02em; color:var(--accent); font-weight:800; }
.rc-media, .pc-media { position:relative; }
.pc-badge { position:absolute; top:.6rem; left:.6rem; z-index:1; background:var(--gold-soft); color:var(--gold-ink);
  font-weight:800; font-size:.7rem; text-transform:uppercase; letter-spacing:.05em; padding:.32rem .7rem; border-radius:999px; box-shadow:var(--shadow); }
.cards-3 .rcard.is-popular, .product-card.is-popular { border-color:var(--gold); box-shadow:0 0 0 2px var(--gold), var(--shadow); }

.cta-banner { background:linear-gradient(120deg,#1d232a,#14181c); border:1px solid #14181c; color:#fff; border-radius:var(--radius); padding:var(--s5); text-align:center; }
.cta-banner h2, .cta-banner h3 { color:#fff; margin-top:0; }
.cta-banner p { color:rgba(255,255,255,.82); max-width:52ch; margin-inline:auto; }

.availability { display:flex; gap:.7rem; align-items:center; flex-wrap:wrap; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:var(--s3) var(--s4); box-shadow:var(--shadow); }
.availability .av-label { font-family:var(--display); font-weight:700; color:var(--ink); }
.availability .av-date { padding:.7rem .8rem; border:1px solid var(--line); border-radius:var(--radius-sm); font:inherit; min-height:48px; background:var(--surface-2); color:var(--ink); color-scheme:light; }
.availability .av-go, .availability .av-check { margin-left:auto; }
.availability .av-msg { width:100%; margin:.3rem 0 0; color:var(--ok); font-weight:600; }
@media (max-width:560px){ .availability .av-go, .availability .av-check { margin-left:0; width:100%; } }

.site-footer { background:#14181c; color:#b3bdc6; margin-top:var(--s7); padding-block:var(--s6) var(--s4); border-top:1px solid var(--line); }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:var(--s5); }
.site-footer a { color:#e6ecf1; text-decoration:none; }
.site-footer a:hover { text-decoration:underline; }
.site-footer h4, .site-footer .footer-h { font-family:var(--display); font-weight:700; font-size:var(--step-0); color:#fff; margin:0 0 var(--s2); }
.footer-nav ul { list-style:none; margin:0; padding:0; }
.footer-nav li { margin-bottom:.4rem; }
.socials { display:flex; gap:.8rem; margin-top:var(--s3); }
.socials a { width:40px; height:40px; display:grid; place-items:center; border:1px solid #3a434c; border-radius:50%; }
.socials a:hover { border-color:#e0b877; color:#e0b877; }
.disclosure { font-size:var(--step--1); color:#98a2ab; border-top:1px solid #2a3138; margin-top:var(--s5); padding-top:var(--s3); }
.disclosure p { max-width:none; }
@media (max-width:740px){ .footer-grid{ grid-template-columns:1fr; gap:var(--s4); } }

.blog-hero { margin:var(--s5) 0 0; }
.blog-hero img { width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; border-radius:var(--radius); box-shadow:var(--shadow); }
.blog-post .author-hook { display:flex; align-items:center; gap:.6rem; font-size:var(--step--1); color:var(--ink-soft); margin-top:var(--s3); }
.blog-post .author-hook img { width:38px; height:38px; border-radius:50%; object-fit:cover; border:2px solid var(--line); }
.prose { margin-top:var(--s5); }
.prose > * { max-width:64ch; }
.prose h2 { margin-top:var(--s6); }
.prose h3 { margin-top:var(--s5); }
.prose img { width:100%; max-width:100%; height:auto; border-radius:var(--radius); margin:var(--s4) 0; box-shadow:var(--shadow); }
.prose figure { margin:var(--s4) 0; }
.prose figcaption { font-size:var(--step--1); color:var(--ink-soft); margin-top:.4rem; }
.prose ul, .prose ol { padding-left:1.3rem; }
.prose li { margin-bottom:.4rem; }
.prose blockquote { margin:var(--s4) 0; padding:.4rem 0 .4rem var(--s4); border-left:4px solid var(--accent); color:var(--ink-soft); font-style:italic; }
.prose table { width:100%; max-width:100%; border-collapse:collapse; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; margin:var(--s4) 0; font-size:var(--step--1); }
.prose th, .prose td { text-align:left; padding:.7rem .9rem; border-bottom:1px solid var(--line); vertical-align:top; }
.prose thead th { background:var(--paper-2); font-family:var(--display); color:var(--ink); }
.prose tbody tr:last-child td { border-bottom:0; }
@media (max-width:640px){
  .prose table { display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; }
}
.prose a { color:var(--accent); }

.prose a.btn-primary, .prose a.btn-primary:hover { color:#fff; }
.prose a.btn-brand { color:#fff; }
.prose a.btn-ghost { color:var(--ink); }

.hotel-cta, .prose a.hotel-cta { display:inline-flex; align-items:center; gap:.35rem; font-family:var(--display); font-weight:800; font-size:var(--step--1); line-height:1; padding:.6rem 1.1rem; border-radius:10px; border:1px solid var(--gold); color:#fff; background:var(--gold); text-decoration:none; white-space:nowrap; box-shadow:var(--shadow); }
.hotel-cta:hover, .prose a.hotel-cta:hover { background:#835a17; color:#fff; text-decoration:none; }
.hotel-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.6rem .9rem; margin:.2rem 0 var(--s3); padding:.7rem .95rem; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-sm); }
.hotel-row .hr-name { font-weight:700; color:var(--ink); }
.blog-cta { background:var(--paper-2); border:1px solid var(--line); border-left:4px solid var(--accent); border-radius:var(--radius); padding:var(--s4) var(--s5); margin:var(--s6) 0 0; }
.blog-cta h2 { margin-top:0; }
.blog-cta p { margin-bottom:var(--s3); }
.blog-cta-btns { display:flex; gap:.6rem; flex-wrap:wrap; align-items:center; }

.infographic { margin:var(--s4) 0; }
.infographic img, .infographic svg { width:100%; height:auto; border-radius:var(--radius); border:1px solid var(--line); background:var(--surface); display:block; }
.infographic figcaption { margin-top:.6rem; text-align:center; color:var(--ink-soft); }
.embed + p, .embed + p.small, .video-grid + p { max-width:none; }

.infogain { background:var(--paper-2); border:1px solid var(--line); border-left:5px solid var(--gold); border-radius:var(--radius); padding:var(--s4) var(--s4) var(--s3); margin:var(--s5) 0; }
.infogain .infogain-h { display:flex; align-items:center; flex-wrap:wrap; gap:.55rem; font-family:var(--display); font-weight:800; font-size:var(--step-1); line-height:1.1; margin:0 0 var(--s3); max-width:none; color:var(--ink); }
.infogain .tag { font-family:var(--body); font-size:var(--step--1); font-weight:700; color:var(--gold-ink); background:var(--gold-soft); padding:.18rem .55rem; border-radius:999px; letter-spacing:.03em; text-transform:uppercase; }
.infogain ul { list-style:none; margin:0; padding:0; display:grid; gap:var(--s3); }
.infogain li { position:relative; padding-left:1.5rem; max-width:66ch; }
.infogain li::before { content:""; position:absolute; left:0; top:.5em; width:.55rem; height:.55rem; background:var(--gold); border-radius:50%; }
.infogain .src { display:block; font-size:var(--step--1); color:var(--ink-soft); margin-top:.2rem; }
.infogain .src a { color:var(--ink-soft); }
.infogain .infogain-note { font-size:var(--step--1); color:var(--ink-soft); margin:var(--s3) 0 0; max-width:none; }

.embed { position:relative; width:100%; aspect-ratio:16/9; border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow); background:var(--surface); }
.embed iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.video-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--s4); }
.video-grid .embed { box-shadow:none; }
@media (max-width:820px){ .video-grid{ grid-template-columns:1fr; } }

.btn-xl { font-size: var(--step-1); padding: 1.05rem 1.9rem; }
.cta-proof { display:block; font-size:var(--step--1); color:var(--ink-soft); margin:.55rem 0 0; max-width:none; }
.cta-proof .gold { color: var(--gold); font-weight:700; }
.cta-box { background:var(--paper-2); border:1px solid var(--line); border-top:3px solid var(--accent);
  border-radius:var(--radius); padding:var(--s5); margin:var(--s5) 0; max-width:none; text-align:center; }
.cta-box .cb-h { font-family:var(--display); font-weight:800; font-size:var(--step-2); color:var(--ink); margin:0 0 .5rem; max-width:none; }
.cta-box p { max-width:44ch; margin-inline:auto; }
.cta-box p:last-child { margin-bottom:0; max-width:none; }
.cta-box .btn { margin-top:.5rem; }
.cta-box a.btn-primary, .cta-box a.btn-primary:hover { color:var(--accent-ink); }
@media (max-width:640px){ .cta-box { padding:var(--s4); } .cta-box .btn { width:100%; } }

.sticky-cta { position:fixed; z-index:45; left:0; right:0; bottom:0; display:flex; align-items:center;
  justify-content:center; gap:.9rem; padding:.55rem .9rem calc(.55rem + env(safe-area-inset-bottom));
  background:rgba(255,255,255,.97); backdrop-filter:blur(8px); border-top:1px solid var(--line);
  transform:translateY(110%); transition:transform .25s ease; }
.sticky-cta.visible { transform:translateY(0); }
.sticky-cta .sc-proof { font-size:var(--step--1); color:var(--ink); white-space:nowrap; flex:0 1 auto; min-width:0; overflow:hidden; text-overflow:ellipsis; }
.sticky-cta .sc-proof .gold { color:var(--gold); font-weight:700; }
.sticky-cta .btn { min-height:44px; padding:.6rem 1.3rem; }
@media (min-width: 761px) {
  .sticky-cta { left:auto; right:1.2rem; bottom:1.2rem; border:1px solid var(--line);
    border-radius:999px; padding:.5rem .6rem .5rem 1.1rem; box-shadow:var(--shadow); }
  
  body.article .sticky-cta { left:0; right:0; bottom:0; border-radius:0; border:0;
    border-top:1px solid var(--line); box-shadow:none; padding:.55rem .9rem; }
}
@media (prefers-reduced-motion: reduce) { .sticky-cta { transition:none; } }

.reviews { display:grid; grid-template-columns:repeat(2,1fr); gap:var(--s4); }
.review-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:var(--s4); display:flex; flex-direction:column; gap:var(--s2); }
.review-card .stars { font-size:.95rem; }
.review-card blockquote { margin:0; font-size:var(--step-0); color:var(--ink); max-width:none; }
.review-card blockquote p { max-width:none; margin:0; }
.review-meta { margin-top:auto; font-size:var(--step--1); color:var(--ink-soft); }
.review-meta strong { color:var(--ink); }
@media (max-width:760px){ .reviews{ grid-template-columns:1fr; } }

.lede { font-size:var(--step-1); color:var(--ink-soft); }
.small { font-size:var(--step--1); color:var(--ink-soft); }
.mt-0{margin-top:0}.mb-0{margin-bottom:0}.text-center{text-align:center}

.hero--split { display:grid; grid-template-columns: .85fr 1.15fr; gap: var(--s5);
  align-items:center; padding-block: var(--s5) var(--s6); }
.hero--split .hero-media { order:-1; aspect-ratio:3/4; border-radius:var(--radius);
  overflow:hidden; background:var(--paper-2); box-shadow:var(--shadow); }
.hero--split .hero-media img { width:100%; height:100%; object-fit:cover; }
.hero--split h1 { margin-bottom: var(--s3); max-width: 16ch; }
.hero--split .lede { max-width: 46ch; margin-bottom: var(--s4); }
.hero--split .hero-actions { display:flex; flex-wrap:wrap; gap:.7rem; align-items:center; }
.hero--split .author-hook { display:flex; align-items:center; gap:.6rem;
  font-size:var(--step--1); color:var(--ink-soft); margin-top:var(--s4); }
.hero--split .author-hook img { width:38px; height:38px; border-radius:50%; object-fit:cover; border:2px solid var(--line); }
@media (max-width: 860px) {
  .hero--split { grid-template-columns:1fr; gap:var(--s4); padding-block:var(--s4) var(--s5); }
  
  .hero--split .hero-media { order:2; aspect-ratio:4/3; }
  .hero--split h1 { max-width:none; }
}

.section > h2:first-child, .rule-h2 { padding-bottom: var(--s2); border-bottom: 2px solid var(--ink); }

.cat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:var(--s3); }
.cat-card { display:flex; flex-direction:column; gap:.3rem; background:var(--surface);
  border:1px solid var(--line); border-left:4px solid var(--brand); border-radius:var(--radius-sm);
  padding:var(--s3) var(--s4); text-decoration:none; color:var(--ink); transition:border-color .15s ease, transform .08s ease; }
.cat-card:hover { border-left-color:var(--accent); transform:translateY(-2px); }
.cat-card .cc-name { font-family:var(--display); font-weight:800; font-size:var(--step-0); line-height:1.2; }
.cat-card .cc-meta { font-size:var(--step--1); color:var(--ink-soft); }
@media (max-width:900px){ .cat-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .cat-grid{ grid-template-columns:1fr; } }

.pc-platform { font-size:var(--step--1); font-weight:700; color:var(--ink-soft); }
.pc-platform .pf { display:inline-block; padding:.12rem .5rem; border-radius:999px;
  border:1px solid var(--line); background:var(--paper-2); color:var(--ink); font-size:.72rem;
  letter-spacing:.03em; text-transform:uppercase; }

.honesty { background:var(--surface); border:1px solid var(--line); border-left:5px solid var(--accent);
  border-radius:var(--radius); padding:var(--s4); margin:var(--s5) 0; }
.honesty .h-h { font-family:var(--display); font-weight:800; font-size:var(--step-1);
  margin:0 0 var(--s2); max-width:none; color:var(--ink); }
.honesty p:last-child { margin-bottom:0; }
.prose .honesty p { max-width:none; }

.tour-list { display:grid; gap:var(--s3); }
.tour-row { display:grid; grid-template-columns:1fr auto; gap:var(--s3) var(--s4); align-items:start;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:var(--s4); }
.tour-row.is-lead { border-color:var(--gold); box-shadow:0 0 0 2px var(--gold-soft), var(--shadow); }
.tour-row h3 { margin:0 0 .35rem; font-size:var(--step-1); }
.tour-row h3 a { color:var(--ink); text-decoration:none; }
.tour-row .tr-meta { font-size:var(--step--1); color:var(--ink-soft); margin:0 0 .5rem; max-width:none; }
.tour-row .tr-desc { margin:0; max-width:58ch; }
.tour-row .tr-cta { display:flex; flex-direction:column; align-items:flex-end; gap:.4rem; text-align:right; }
.tour-row .tr-price { font-family:var(--display); font-weight:800; font-size:var(--step-1); white-space:nowrap; }
.tour-row .tr-price small { display:block; font-family:var(--body); font-size:var(--step--1); font-weight:500; color:var(--ink-soft); }
@media (max-width:760px){
  .tour-row { grid-template-columns:1fr; }
  .tour-row .tr-cta { align-items:stretch; text-align:left; }
  .tour-row .tr-cta .btn { width:100%; }
}

.tour-picks {
  background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius);
  padding:var(--s4); margin:var(--s5) 0;
}
.tour-picks .tp-season {
  font-size:var(--step--1); color:var(--ink-soft); margin:0 0 var(--s3);
  border-left:3px solid var(--accent); padding-left:.7rem;
}
.tour-picks .tp-grid { display:grid; gap:var(--s3); grid-template-columns:1fr; }
@media (min-width:700px) { .tour-picks .tp-grid { grid-template-columns:repeat(3,1fr); } }
.tour-picks .tp-card {
  background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-sm);
  overflow:hidden; display:flex; flex-direction:column;
}
.tour-picks .tp-media { display:block; aspect-ratio:4/3; overflow:hidden; }
.tour-picks .tp-media img { width:100%; height:100%; object-fit:cover; }
.tour-picks .tp-body { padding:var(--s3); display:flex; flex-direction:column; gap:.5rem; flex:1; }
.tour-picks .tp-chips { margin:0; display:flex; gap:.35rem; flex-wrap:wrap; }
.pc-chip { display:inline-block; font-size:.7rem; font-weight:700; letter-spacing:.02em;
  padding:.2rem .55rem; border-radius:999px; background:var(--paper-2); color:var(--ink-soft);
  border:1px solid var(--line); }
.tour-picks .tp-chips .pc-chip { white-space:nowrap; }
.tour-picks .tp-chips .pc-chip:first-child { color:var(--ink); }
.tour-picks .tp-title { font-weight:700; color:var(--ink); font-size:var(--step--1); line-height:1.35; margin:0; }
.tour-picks .tp-title a { color:var(--ink); text-decoration:none; }
.tour-picks .tp-title a:hover { color:var(--accent); text-decoration:underline; }
.tour-picks .tp-proof { font-size:var(--step--1); color:var(--ink-soft); margin:0; }
.tour-picks .tp-proof .gold { color:var(--gold); font-weight:700; }
.tour-picks .tp-proof-none { font-style:italic; }
.tour-picks .tp-reassure { margin:0; font-size:.74rem; color:var(--ink-soft); }
.tour-picks .tp-body .btn { margin-top:auto; width:100%; white-space:nowrap; font-size:var(--step--1); padding:.7rem .8rem; }
.tour-picks a.btn-primary, .tour-picks a.btn-primary:hover { color:#fff; }

.wrap-narrow .tour-picks, .prose .tour-picks, .blog-post .tour-picks {
  max-width:none;
  width:min(100vw - 2rem, 68rem);
  margin-left:50%;
  transform:translateX(-50%);
}
@media (max-width:700px) {
  .wrap-narrow .tour-picks, .prose .tour-picks, .blog-post .tour-picks { width:100%; margin-left:0; transform:none; }
}

.cta-box.cta-card { display:grid; grid-template-columns:230px 1fr; gap:var(--s4); align-items:center; max-width:none; }
.cta-box.cta-card .cb-media { display:block; }
.cta-box.cta-card .cb-media img { width:100%; height:100%; min-height:170px; object-fit:cover; border-radius:var(--radius-sm); display:block; }
.cta-box.cta-card .cb-body p { margin:0 0 var(--s2); max-width:none; margin-inline:0; text-align:left; }
.cta-box.cta-card .tp-proof { color:var(--ink-soft); font-size:var(--step--1); }
@media (max-width: 700px) { .cta-box.cta-card { grid-template-columns:1fr; } }

.cat-card .cc-who { display:block; margin-top:.35rem; color:var(--ink-soft); font-size:var(--step--1); font-weight:600; }

.section.wrap > p { max-width: none; }
.tour-row.has-media { grid-template-columns: 220px 1fr auto; }
.tour-row .tr-media { display:block; align-self:stretch; }
.tour-row .tr-media img { width:100%; height:100%; min-height:150px; object-fit:cover; border-radius:var(--radius-sm); display:block; }
@media (max-width: 860px) {
  .tour-row.has-media { grid-template-columns: 1fr; }
  .tour-row .tr-media img { min-height:0; max-height:210px; }
}
.cat-card { padding-top:0; overflow:hidden; }
.cat-card .cc-media { display:block; margin:0 calc(-1 * var(--s4)) var(--s2); }
.cat-card .cc-media img { width:100%; height:130px; object-fit:cover; display:block; }

.cat-block { margin-top: var(--s5); scroll-margin-top: 5rem; }
.cat-block > h3 { margin-bottom: var(--s1); }
.cat-block > p.small { margin-top: 0; color: var(--ink-soft); }

.tp-solo { margin: var(--s5) 0; }
.tp-solo .tp-grid { grid-template-columns: 1fr; max-width: 34rem; margin-inline: auto; }

:root {
  color-scheme: light dark;
  --display: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Times New Roman", serif;
  --ink: #35220f; --ink-soft: #6a5340;
  --paper: #f8f0de; --paper-2: #efe2c6; --surface: #fffbf2; --surface-2: #fffbf2;
  --line: #dcc9a2;
  --brand: #4a2e1c; --brand-deep: #34200f;
  --accent: #a52118; --accent-deep: #8a1a12; --accent-ink: #ffffff; --accent-text: #a3231a;
  --basil: #2f5e2a; --link: #4a2e1c;
  --gold: #8a5a12; --gold-soft: #f7e7bc; --gold-ink: #63470c;
  --board-1: #ecd4a2; --board-2: #e0c188; --board-ink: #2e1b0b; --board-dust: rgba(255,255,255,.6);
  --head-bg: #fbf4e4; --foot-bg: #3a2415; --foot-card: #fffaf0; --foot-ink: #35220f; --foot-rule: #d9c7a0;
  --shadow: 0 1px 2px rgba(53,34,15,.06), 0 10px 26px rgba(53,34,15,.10);
}
@media (prefers-color-scheme: dark) {
  :root {
    --ink: #f4e9d3; --ink-soft: #d0bb9a;
    --paper: #1c140f; --paper-2: #281c14; --surface: #302217; --surface-2: #302217;
    --line: #54402d;
    --brand: #8a5532; --brand-deep: #70431f;
    --accent: #b5301f; --accent-deep: #982618; --accent-ink: #ffffff; --accent-text: #ff9d8a;
    --basil: #9fd08f; --link: #f0c98a;
    --gold: #e5b455; --gold-soft: #4a3811; --gold-ink: #f6dca0;
    --ok: #7fcf9f; --warn: #e0a060;
    --board-1: #5c3f27; --board-2: #482f1c; --board-ink: #fbf1dc; --board-dust: rgba(255,244,222,.5);
    --head-bg: #241912; --foot-bg: #120c08; --foot-card: #2a1e16; --foot-ink: #f4e9d3; --foot-rule: #4a3826;
    --shadow: 0 1px 2px rgba(0,0,0,.4), 0 10px 26px rgba(0,0,0,.35);
  }
}
a { color: var(--link); }
.prose a { color: var(--accent-text); }
.brand b { color: var(--accent-text); }
.nav-links a:hover { color: var(--accent-text); }
h1, h2, h3 { font-family: var(--display); font-weight: 700; letter-spacing: -.01em; }
h1 { line-height: 1.04; }
.btn { font-family: var(--body); }
.btn-primary, .btn-primary:hover { color: var(--accent-ink); }
.btn-brand, .btn-brand:hover { color: #fff; }
.btn-ghost { color: var(--ink); border-color: var(--ink-soft); }
.btn-ghost:hover { border-color: var(--accent-text); color: var(--accent-text); }
.pc-points li::before, .timeline .t, .faq summary::after { color: var(--accent-text); }
.rule-h2, .section > h2:first-child { border-bottom: 0; padding: .1rem 0 .1rem .85rem; border-left: 6px solid var(--accent); margin-top: 0; }
.faq summary::after { color: var(--accent-text); }
.cta-banner { background: linear-gradient(120deg, #4a2e1c, #34200f); border-color: #34200f; }
.cta-banner h2, .cta-banner h3 { color: #fff; }
.cta-banner .btn-primary { background: #d8402f; color: #fff; }
.cta-box { border-top-color: var(--accent); }
.infogain { border-left-color: var(--accent); }
.infogain li::before { background: var(--accent); }
.tour-picks .tp-title a:hover { color: var(--accent-text); }

.site-header { background: var(--head-bg); backdrop-filter: none; border-bottom: 3px double var(--line); }
.pmf-header .nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--s4); padding-block: .55rem; }
.pmf-header .brand { grid-column: 2; grid-row: 1; justify-self: center; font-family: var(--display); font-weight: 700; font-size: clamp(1.15rem, .9rem + 1vw, 1.6rem); letter-spacing: -.01em; text-align: center; gap: .6rem; color: var(--ink); }
.pmf-header .brand-logo { width: 34px; height: 34px; border-radius: 50%; }
.nav-sheet { display: contents; }
.nav-sheet-head, .nav-backdrop, .nav-toggle { display: none; }
.nav-side { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 1.4rem; grid-row: 1; }
.nav-l { grid-column: 1; justify-self: end; }
.nav-r { grid-column: 3; justify-self: start; }
.nav-side a { color: var(--ink); text-decoration: none; font-weight: 600; font-size: var(--step--1); padding: .5rem .1rem; border-bottom: 2px solid transparent; }
.nav-side a:hover { border-bottom-color: var(--accent); }
.nav-side a.btn { padding: .55rem 1.1rem; min-height: 44px; border-bottom: 0; font-size: var(--step--1); }
@media (max-width: 1060px) { .nav-side { gap: .9rem; } .pmf-header .nav { gap: var(--s3); } }
@media (max-width: 860px) {
  .pmf-header .nav { grid-template-columns: 56px 1fr 56px; gap: .4rem; }
  .nav-toggle { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; grid-column: 1; grid-row: 1; background: none; border: 0; min-height: 48px; min-width: 48px; color: var(--ink); cursor: pointer; font: inherit; }
  .nt-bars, .nt-bars::before, .nt-bars::after { display: block; width: 22px; height: 2.5px; background: var(--ink); border-radius: 2px; content: ""; }
  .nt-bars { position: relative; }
  .nt-bars::before { position: absolute; top: -7px; left: 0; }
  .nt-bars::after { position: absolute; top: 7px; left: 0; }
  .nt-txt { font-size: .75rem; font-weight: 700; margin-top: 8px; }
  .pmf-header .brand { grid-column: 2; font-size: 1.05rem; line-height: 1.15; }
  .pmf-header .brand-logo { width: 30px; height: 30px; }
  .nav-sheet { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; max-height: 82vh; overflow-y: auto;
    background: var(--surface); color: var(--ink); border-radius: 20px 20px 0 0; border-top: 4px solid var(--accent);
    padding: .6rem 1.1rem calc(1.2rem + env(safe-area-inset-bottom)); box-shadow: 0 -14px 40px rgba(0,0,0,.3);
    transform: translateY(105%); visibility: hidden; transition: transform .25s ease, visibility 0s linear .25s; }
  .nav-sheet[data-open="true"] { transform: none; visibility: visible; transition: transform .25s ease; }
  .nav-sheet-head { display: flex; align-items: center; justify-content: space-between; padding: .3rem 0 .6rem; }
  .nsh-t { font-family: var(--display); font-weight: 700; font-size: 1.25rem; }
  .nav-close { background: var(--paper-2); color: var(--ink); border: 1px solid var(--line); border-radius: 999px; min-height: 44px; padding: 0 1.1rem; font: inherit; font-weight: 700; cursor: pointer; }
  .nav-side { display: block; justify-self: stretch; }
  .nav-side li { border-bottom: 1px dashed var(--line); }
  .nav-side li:last-child { border-bottom: 0; }
  .nav-side a { display: flex; align-items: center; min-height: 52px; font-family: var(--display); font-size: 1.2rem; font-weight: 700; border: 0; padding: 0 .2rem; }
  .nav-side a.btn { justify-content: center; margin: .6rem 0 .2rem; font-family: var(--body); font-size: 1rem; }
  .nav-backdrop { position: fixed; inset: 0; z-index: 55; background: rgba(20,10,4,.55); }
  .nav-backdrop[hidden] { display: none; }
  html.nav-lock { overflow: hidden; }
}
@media (prefers-reduced-motion: reduce) { .nav-sheet { transition: none; } }

.pmf-hero { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: var(--s3) var(--s4); padding-block: var(--s4) var(--s3); align-items: stretch; }
.pmf-board {
  position: relative; border-radius: 14px; padding: clamp(1.3rem, 2.6vw, 2.3rem); color: var(--board-ink);
  background:
    radial-gradient(circle at 12% 20%, var(--board-dust) 0 1.4px, transparent 2px) 0 0 / 47px 43px,
    radial-gradient(circle at 70% 62%, var(--board-dust) 0 1px, transparent 1.7px) 0 0 / 31px 29px,
    radial-gradient(ellipse at 85% -10%, var(--board-dust), transparent 55%),
    repeating-linear-gradient(92deg, rgba(110,70,25,.07) 0 2px, transparent 2px 9px, rgba(110,70,25,.05) 9px 10px, transparent 10px 24px),
    linear-gradient(180deg, var(--board-1), var(--board-2));
  box-shadow: inset 0 0 0 1px rgba(90,55,20,.28), 0 14px 30px rgba(50,30,8,.2);
  display: flex; flex-direction: column; justify-content: center; }
.pmf-board h1 { color: var(--board-ink); font-size: clamp(2.3rem, 1.5rem + 3.2vw, 4rem); margin-bottom: var(--s3); max-width: 14ch; }
.pmf-board .lede { color: var(--board-ink); font-size: clamp(1rem, .95rem + .35vw, 1.2rem); max-width: none; line-height: 1.55; margin-bottom: var(--s3); }
.pmf-board .hero-actions { display: flex; flex-wrap: wrap; gap: .7rem; }
.pmf-board .btn-ghost { color: var(--board-ink); border-color: var(--board-ink); }
.pmf-board .btn-ghost:hover { background: rgba(255,255,255,.18); color: var(--board-ink); border-color: var(--board-ink); }
.pmf-side { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: var(--s3); }
.pmf-photo { margin: 0; border-radius: 14px; overflow: hidden; box-shadow: var(--shadow); background: var(--paper-2); min-height: 100%; position: relative; }
.pmf-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 30% 50%; }
.pmf-ribbon { list-style: none; margin: 0; padding: 0; counter-reset: rb; display: flex; flex-direction: column; justify-content: space-between; gap: .5rem; position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: 14px; padding: .9rem .8rem; }
.pmf-ribbon::before { content: ""; position: absolute; left: calc(.8rem + 18px - 3px); top: 2.1rem; bottom: 2.1rem; width: 6px; background: var(--accent); border-radius: 3px; opacity: .85; }
.pmf-ribbon li { counter-increment: rb; position: relative; padding-left: 3rem; display: flex; flex-direction: column; justify-content: center; min-height: 2.9rem; }
.pmf-ribbon li::before { content: counter(rb); position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border-radius: 50%; background: var(--accent); color: #fff; font-family: var(--display); font-weight: 700; font-size: 1.1rem; display: grid; place-items: center; box-shadow: 0 0 0 4px var(--surface); }
.pmf-ribbon li:last-child::before { background: var(--basil); }
@media (prefers-color-scheme: dark) { .pmf-ribbon li:last-child::before { color: #14210f; } }
.pmf-ribbon b { font-family: var(--display); font-size: 1.05rem; color: var(--ink); line-height: 1.15; }
.pmf-ribbon span { font-size: .9rem; line-height: 1.3; color: var(--ink-soft); }
.pmf-qa { grid-column: 1 / -1; margin: 0; padding: var(--s3) var(--s4); }
.pmf-qa p, .quick-answer.pmf-qa p { font-size: var(--step-0); max-width: none; }
.quick-answer .qa-label { color: var(--accent-text); }
@media (max-width: 900px) {
  .pmf-hero { grid-template-columns: 1fr; padding-block: var(--s3); }
  .pmf-side { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  .pmf-photo { min-height: 0; aspect-ratio: 3 / 4; }
  .pmf-ribbon { padding: .8rem .6rem; }
  .pmf-ribbon::before { left: calc(.6rem + 15px); top: 1.8rem; bottom: 1.8rem; }
  .pmf-ribbon li { padding-left: 2.6rem; min-height: 2.4rem; }
  .pmf-ribbon li::before { width: 30px; height: 30px; font-size: .95rem; box-shadow: 0 0 0 3px var(--surface); }
  .pmf-ribbon b { font-size: .98rem; } .pmf-ribbon span { font-size: .8rem; }
  .pmf-board h1 { max-width: none; }
  .pmf-board .hero-actions .btn { width: 100%; }
}

.pmf-picks { list-style: none; margin: var(--s3) 0 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s3); }
.pmf-pick a { display: flex; flex-direction: column; gap: .2rem; height: 100%; padding: .8rem .95rem; background: var(--surface); border: 1px solid var(--line); border-top: 4px solid var(--accent); border-radius: 6px; text-decoration: none; color: var(--ink); transition: transform .1s ease, box-shadow .1s ease; }
.pmf-pick a:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.pmf-pick .pk-want { font-size: var(--step--1); color: var(--ink-soft); line-height: 1.3; }
.pmf-pick .pk-kind { font-family: var(--display); font-weight: 700; line-height: 1.2; }
.pmf-pick .pk-price { margin-top: auto; padding-top: .3rem; font-weight: 700; font-size: var(--step--1); color: var(--accent-text); }
.pmf-pick-all a { border-top-color: var(--basil); background: var(--paper-2); }
@media (max-width: 900px) { .pmf-picks { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; } .pmf-pick a { padding: .65rem .7rem; } .pmf-pick .pk-want { font-size: .8rem; } }

.pmf-fig { margin: var(--s3) 0 var(--s4); }
.pmf-fig img { width: 100%; height: auto; aspect-ratio: 21 / 8; object-fit: cover; border-radius: 10px; border: 1px solid var(--line); }
.pmf-fig figcaption { margin-top: .4rem; font-size: var(--step--1); color: var(--ink-soft); }
@media (max-width: 700px) { .pmf-fig img { aspect-ratio: 3 / 2; } }

.tour-row { border-left: 6px solid var(--accent); background: var(--surface); }
.tour-row.is-lead { border-color: var(--line); border-left-color: var(--accent); box-shadow: 0 0 0 2px var(--gold-soft), var(--shadow); }
.tour-row h3 a:hover { color: var(--accent-text); }
.tour-row .tr-price { color: var(--ink); }
.pc-tag { background: var(--gold-soft); color: var(--gold-ink); }

.pmf-ladder { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: var(--s3) var(--s4) var(--s3); margin: var(--s3) 0 var(--s4); }
.rg-tools { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-bottom: var(--s2); }
.rg-sortlabel { font-size: var(--step--1); font-weight: 700; color: var(--ink-soft); margin-right: .2rem; }
.rg-tools button { min-height: 44px; padding: 0 1.1rem; border-radius: 999px; border: 2px solid var(--line); background: var(--paper-2); color: var(--ink); font: inherit; font-weight: 700; cursor: pointer; }
.rg-tools button[aria-pressed="true"] { background: var(--brand); border-color: var(--brand); color: #fff; }
.rg-list { list-style: none; margin: 0; padding: 0; }
.rg-list li { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) 4.5rem; align-items: center; gap: var(--s3); padding: .55rem 0; border-bottom: 1px dashed var(--line); }
.rg-list li:last-child { border-bottom: 0; }
.rg-name a { font-family: var(--display); font-weight: 700; color: var(--ink); text-decoration-color: var(--accent); }
.rg-meta { display: block; font-size: var(--step--1); color: var(--ink-soft); line-height: 1.35; }
.rg-bar { display: block; height: 14px; background: var(--paper-2); border-radius: 7px; overflow: hidden; }
.rg-bar i { display: block; height: 100%; background: linear-gradient(90deg, var(--accent), var(--accent-deep)); border-radius: 7px; }
.rg-price { text-align: right; font-family: var(--display); font-size: var(--step-1); color: var(--ink); }
.rg-note { margin: var(--s2) 0 0; }
@media (max-width: 700px) {
  .rg-list li { grid-template-columns: minmax(0, 1fr) 4.2rem; gap: .35rem .7rem; padding: .7rem 0; }
  .rg-name { grid-column: 1 / -1; }
  .rg-bar { grid-column: 1; }
  .rg-price { grid-column: 2; grid-row: 2; }
  .pmf-ladder { padding: var(--s3); }
}

.pmf-addr { list-style: none; margin: var(--s3) 0 var(--s4); padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s3); }
.pmf-addr li { display: flex; flex-direction: column; gap: .3rem; background: var(--surface); border: 1px solid var(--line); border-top: 4px solid var(--basil); border-radius: 6px; padding: .8rem .9rem; background-image: repeating-linear-gradient(transparent 0 1.6rem, color-mix(in srgb, var(--line) 55%, transparent) 1.6rem calc(1.6rem + 1px)); }
.ad-place { font-family: var(--display); font-size: var(--step-0); line-height: 1.25; }
.ad-course { font-size: var(--step--1); font-weight: 600; line-height: 1.35; }
.ad-detail { font-size: var(--step--1); color: var(--ink-soft); line-height: 1.35; margin-top: auto; }
@media (max-width: 1000px) { .pmf-addr { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .pmf-addr { grid-template-columns: 1fr; gap: .6rem; } }

.timeline { border-left: 0; counter-reset: none; margin: var(--s3) 0; position: relative; }
.timeline li { padding: 0 0 var(--s3) 3.6rem; position: relative; }
.timeline li::before { content: counter(list-item); left: 0; top: 0; width: 40px; height: 40px; border-radius: 50%; background: var(--accent); color: #fff; border: 0; font-family: var(--display); font-weight: 700; font-size: 1.2rem; display: grid; place-items: center; box-shadow: 0 0 0 4px var(--paper); }
.timeline li::after { content: ""; position: absolute; left: 18px; top: 46px; bottom: 6px; width: 4px; background: repeating-linear-gradient(var(--accent) 0 6px, transparent 6px 11px); opacity: .55; }
.timeline li:last-child::after { display: none; }
.timeline .t { display: block; font-size: var(--step-1); margin-bottom: .15rem; }

.infogain { border-style: dashed; border-width: 2px; border-left-width: 6px; }

.site-footer.pmf-foot { background: var(--foot-bg); border-top: 6px solid var(--accent); padding-block: var(--s5) var(--s4); }
.pmf-cards { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: var(--s4); align-items: start; }
.pmf-card, .pmf-slip { position: relative; background: var(--foot-card); color: var(--foot-ink); border-radius: 6px; padding: 2.4rem 1.3rem 1.2rem; box-shadow: 0 6px 18px rgba(0,0,0,.35);
  background-image: linear-gradient(var(--accent), var(--accent)), repeating-linear-gradient(transparent 0 1.7rem, var(--foot-rule) 1.7rem calc(1.7rem + 1px));
  background-size: 100% 2px, 100% 100%; background-repeat: no-repeat; background-position: 0 1.9rem, 0 0; }
.pmf-card-about { transform: rotate(-.6deg); } .pmf-cards > nav:nth-of-type(1) { transform: rotate(.5deg); } .pmf-cards > nav:nth-of-type(2) { transform: rotate(-.35deg); }
.site-footer .pmf-card a, .site-footer .pmf-slip a { color: var(--foot-ink); text-decoration: underline; text-decoration-color: var(--accent); text-underline-offset: 3px; }
.site-footer .pmf-card a:hover { color: var(--accent-text); }
.site-footer .pmf-card .brand { font-family: var(--display); font-size: 1.35rem; color: var(--foot-ink); text-decoration: none; }
.site-footer .pmf-card .footer-h { font-family: var(--display); font-size: 1.25rem; color: var(--foot-ink); position: absolute; top: .5rem; left: 1.3rem; margin: 0; }
.pmf-card-about .brand { display: block; margin-top: -.3rem; }
.pmf-card .small, .pmf-card p, .pmf-slip p { color: var(--foot-ink); max-width: none; }
.pmf-card .small { margin: 1.1rem 0 0; font-size: var(--step--1); }
.pmf-card .small + .small { margin-top: .5rem; }
.pmf-card .footer-nav ul, .pmf-card ul { list-style: none; margin: .4rem 0 0; padding: 0; }
.pmf-card li { padding: .15rem 0; margin: 0; line-height: 1.7rem; }
.pmf-card li a { display: inline-block; min-height: 1.7rem; }
.pmf-note { margin-top: var(--s4); transform: none; padding: 1.1rem 1.3rem; background-image: none; border-left: 6px solid var(--accent); }
.pmf-note p { font-size: var(--step--1); color: var(--foot-ink); }
.site-footer .disclosure { border-top: 0; margin-top: var(--s4); padding-top: 1.1rem; color: var(--foot-ink); }
.pmf-socials { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: var(--s3); }
.site-footer .pmf-socials a.sx-link.sx-link { width: 48px !important; height: 48px !important; margin: 0 !important; padding: 0 !important; border-radius: 50% !important; background: transparent !important; color: var(--accent-text) !important; border: 2px dashed currentColor !important; text-decoration: none !important; box-shadow: inset 0 0 0 4px var(--foot-card), inset 0 0 0 5.5px currentColor; opacity: 1 !important; transform: rotate(-7deg); transition: transform .12s ease; display: inline-flex !important; align-items: center; justify-content: center; }
.site-footer .pmf-socials a.sx-link.sx-link:nth-child(even) { transform: rotate(6deg); }
.site-footer .pmf-socials a.sx-link.sx-link:hover, .site-footer .pmf-socials a.sx-link.sx-link:focus-visible { transform: rotate(0) scale(1.08); background: var(--accent) !important; color: #fff !important; border-style: solid !important; }
.pmf-socials .sx-ico { width: 20px; height: 20px; }
@media (max-width: 860px) {
  .pmf-cards { grid-template-columns: 1fr; gap: var(--s4); }
  .pmf-card-about, .pmf-cards > nav:nth-of-type(1), .pmf-cards > nav:nth-of-type(2) { transform: none; }
}
@media (prefers-color-scheme: dark) { .site-footer .pmf-socials a.sx-link.sx-link:hover { color: #fff !important; } }

h2 { font-size: clamp(1.55rem, 1.15rem + 1.5vw, 2.35rem); }
.section { padding-block: var(--s5); }
.pmf-hero + .section { padding-top: var(--s4); }
.rule-h2 { margin-bottom: var(--s2); }
.pmf-hero { padding-block: var(--s3) var(--s2); }
.pmf-board { padding: clamp(1.1rem, 2vw, 1.8rem); }
.pmf-board h1 { font-size: clamp(2.1rem, 1.4rem + 2.8vw, 3.5rem); margin-bottom: var(--s2); }
.pmf-board .lede { font-size: clamp(.98rem, .92rem + .3vw, 1.12rem); line-height: 1.5; margin-bottom: var(--s2); }
.quick-answer.pmf-qa { padding: .8rem var(--s4); margin: 0; }
.quick-answer.pmf-qa p { font-size: .98rem; line-height: 1.5; }
.quick-answer.pmf-qa .qa-label { margin-bottom: .3rem; }
.section.wrap > p { line-height: 1.55; font-size: clamp(.95rem, .92rem + .2vw, 1.05rem); margin-bottom: var(--s2); }
.pmf-picks { gap: .6rem; margin-top: var(--s2); }
.pmf-pick a { padding: .6rem .85rem; gap: .1rem; }
.pmf-pick .pk-want { font-size: .8rem; }
.pmf-pick .pk-kind { font-size: .98rem; }
@media (max-width: 900px) {
  .section { padding-block: var(--s4); }
  .pmf-board .hero-actions .btn-ghost { display: none; }
  .pmf-board .hero-actions .btn { min-height: 44px; padding-block: .6rem; font-size: 1rem; }
  .pmf-side { gap: .6rem; }
  .pmf-photo { aspect-ratio: auto; min-height: 0; }
  .pmf-ribbon { padding: .5rem .6rem; gap: .2rem; }
  .pmf-ribbon li { min-height: 2.3rem; padding-left: 2.5rem; }
  .pmf-ribbon::before { top: 1.4rem; bottom: 1.4rem; }
  .quick-answer.pmf-qa { padding: .7rem .9rem; }
  .quick-answer.pmf-qa p { font-size: .9rem; line-height: 1.45; }
  .pmf-picks { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: .6rem; padding-bottom: .5rem; margin-inline: 0; -webkit-overflow-scrolling: touch; }
  .pmf-pick { flex: 0 0 62%; scroll-snap-align: start; }
  .section.wrap > p { font-size: .95rem; line-height: 1.5; }
}
@media (max-width: 900px) {
  .section { padding-block: var(--s3); }
  .pmf-hero + .section { padding-top: var(--s3); }
  .section.wrap > p { font-size: .9rem; line-height: 1.45; }
  .pmf-board { padding: 1rem; }
  .pmf-board h1 { font-size: 2rem; }
  .pmf-board .lede { font-size: .94rem; line-height: 1.45; }
  .quick-answer.pmf-qa p { font-size: .88rem; }
  h2 { font-size: 1.45rem; }
}
@media (max-width: 900px) {
  .section.wrap > p { line-height: 1.4; margin-bottom: .5rem; }
  .quick-answer.pmf-qa p { line-height: 1.4; }
  .pmf-ribbon li { min-height: 2.1rem; }
  .pmf-hero { gap: .5rem; }
  .rule-h2 { margin-bottom: .4rem; }
}
.nav-side a.btn-brand, .nav-side a.btn-brand:hover { color: #fff; border-bottom: 0; }
.contact-page .btn-xl, a.btn-xl[href^="mailto"] { overflow-wrap: anywhere; }
@media (max-width: 520px) { a.btn-xl[href^="mailto"] { font-size: 1rem; padding: .9rem 1rem; max-width: 100%; } }

.yt-facade { background: #1b120a; }
.yt-play { all: unset; box-sizing: border-box; position: absolute; inset: 0; cursor: pointer; display: block; }
.yt-play img { width: 100%; height: 100%; object-fit: cover; display: block; }
.yt-play:focus-visible { outline: 3px solid var(--accent); outline-offset: -3px; }
.yt-icon { position: absolute; left: 50%; top: 50%; width: 68px; height: 68px; margin: -34px 0 0 -34px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px rgba(255,255,255,.85), 0 6px 18px rgba(0,0,0,.4); }
.yt-icon::after { content: ""; position: absolute; left: 27px; top: 20px; border-style: solid; border-width: 14px 0 14px 22px; border-color: transparent transparent transparent #fff; }
.pmf-locator { position: relative; min-height: 300px; border-radius: 12px; overflow: hidden; border: 1px solid var(--line); background: var(--paper-2); display: flex; align-items: flex-end; margin: var(--s3) 0; }
.pm-art { position: absolute; inset: 0; width: 100%; height: 100%; }
.pm-street { fill: none; stroke: var(--line); stroke-width: 9; stroke-linecap: round; opacity: .8; }
.pm-river { fill: none; stroke: var(--basil); stroke-width: 26; opacity: .28; }
.pm-body { position: relative; width: 100%; padding: var(--s4) var(--s4) var(--s4); display: flex; flex-direction: column; align-items: center; gap: var(--s2); text-align: center; background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--paper-2) 92%, transparent) 38%); }
.pm-pin { width: 30px; height: 30px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: var(--accent); box-shadow: 0 0 0 4px var(--surface); }
.pm-cap { margin: 0; font-family: var(--display); font-weight: 700; color: var(--ink); max-width: none; }
.pm-actions { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: center; }
.pmf-locator iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; z-index: 2; }
.pmf-locator.is-live { min-height: 420px; }
.pmf-addr li, .pmf-card, .pmf-slip { background-image: none; }
.pmf-card, .pmf-slip { border-top: 5px solid var(--accent); padding-top: 2.8rem; }
.site-footer .pmf-card .footer-h { top: .7rem; }
.tour-row.is-lead { box-shadow: var(--shadow); border-color: var(--line); border-left-color: var(--accent); }
.rg-list li { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) 5.6rem; }
.rg-price { white-space: nowrap; text-align: right; justify-self: end; }
@media (max-width: 700px) { .rg-list li { grid-template-columns: minmax(0, 1fr) 5.4rem; } }
.infogain, .infogain ul, .infogain li { max-width: none; width: auto; }
.infogain ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s3) var(--s5); }
@media (max-width: 760px) { .infogain ul { grid-template-columns: 1fr; } }
.author-block { margin-bottom: var(--s6); }
.author-block > div { min-width: 0; }
.author-block p { max-width: none; }
.cards-3 { align-items: start; }
.cards-3 .rcard .rc-body { padding: var(--s3) var(--s4); gap: 0; flex: none; }
.cards-3 .rcard h3 { margin: 0; }
.reviews { align-items: start; }
.review-meta { margin-top: 0; }
.faq summary { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.faq summary::after { float: none; flex: none; line-height: 1; }
.pmf-swipe { display: none; }
@media (max-width: 900px) {
  .pmf-swipe { display: block; margin: .4rem 0 0; font-size: .8rem; font-weight: 700; color: var(--accent-text); text-align: right; max-width: none; }
  .pmf-picks { -webkit-mask-image: linear-gradient(to right, #000 86%, transparent); mask-image: linear-gradient(to right, #000 86%, transparent); }
}

@media (prefers-color-scheme: dark) {
  :root .cro-context, :root .cro-context.cro-image, :root .cro-end, :root .cro-floating, :root .cro-exit,
  :root .cro-no-match, :root .cro-result { background: var(--surface); border-color: var(--line); color: var(--ink); }
  :root .cro-context.cro-text { background: transparent; border-color: var(--basil); }
  :root .cro-end h2, :root .cro-end h3, :root .cro-end-pitch, :root .cro-result-title, :root .cro-result-benefit,
  :root .cro-intro, :root .cro-selector label, :root .cro-cost label, :root .cro-faq summary, :root .cro-end summary,
  :root .cro-floating, :root .cro-exit, :root .cro-no-match, :root .cro-end label, :root .cro-end summary { color: var(--ink); }
  :root .cro-result-facts, :root .cro-schedule, :root .cro-note, :root .cro-context figcaption { color: var(--ink-soft); }
  :root .cro-intro button, :root .cro-selector button { background: var(--paper-2); border-color: var(--ink-soft); color: var(--ink); }
  :root .cro-selector input:not([type=checkbox]), :root .cro-selector select, :root .cro-cost input, :root .cro-date {
    background: var(--paper); color: var(--ink); border-color: var(--ink-soft); }
  :root a.cro-action { background: #3e6b35; color: #fff !important; }
  :root a.cro-action:hover { background: #4f8143; }
  :root .cro-intro a.cro-action { background: none; color: var(--link) !important; }
  :root .cro-floating [data-dismiss], :root .cro-exit [data-dismiss] { color: var(--ink); }
}
