/* capitolinemuseumstickets.com — "Desert Rose" design system (design.md).
   Sandstone surfaces, dusty-rose accent, sunburnt ink. Libre Caslon Display for
   headlines, Inter for everything else.
   Flat by design: no decorative gradients, one accent action per screen. */

:root{
  --ink:#1F1410;        /* primary: headlines & core text */
  --sage:#9E7B6E;       /* secondary: borders, meta, captions */
  --coral:#D97B5A;      /* tertiary: the single interaction accent */
  --coral-ink:#A34A26;  /* readable orange (same hue) for link/body text */
  --coral-dk:#A34A26;   /* button hover */
  --neutral:#F5E6D8;    /* page foundation */
  --surface:#FBF1E5;    /* card / panel surface */
  --white:#FFFFFF;
  --line:#E7D3C2;
  --r-sm:4px;
  --r-md:10px;
  --r-lg:20px;
  --coral-btn:#BE5A33; /* CTA fill: deepened rose, 4.45:1 on white */
  --maxw:1120px;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;
  font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:17px;line-height:1.65;color:var(--ink);background:var(--white);
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
img{max-width:100%;height:auto;display:block}
a{color:var(--coral-ink);text-decoration:none}
a:hover{text-decoration:underline}

h1,h2,.logo,.display{font-family:"Libre Caslon Display",Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:-.025em;line-height:1.08}
h1{font-size:2.6rem;margin:.1em 0 .5em;font-weight:400;letter-spacing:-.005em;line-height:1.12}
h3{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:700;font-size:1.2rem;margin:1.6em 0 .4em;letter-spacing:-.01em;line-height:1.25}
h2{font-size:1.7rem;margin:2.2em 0 .6em}
h3{font-size:1.2rem;margin:1.6em 0 .4em}
h4{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:600;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sage);margin:0 0 .6em}
p{margin:0 0 1.05em}
@media(max-width:640px){h1{font-size:1.85rem}h2{font-size:1.4rem}}

.label{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:600;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--coral-ink);margin:0 0 .5em}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;background:var(--coral-btn);color:#fff;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:600;
  font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;
  padding:13px 22px;border-radius:var(--r-md);border:2px solid var(--coral-btn);
  transition:background .15s,border-color .15s;text-align:center;
}
.btn:hover{background:var(--coral-dk);border-color:var(--coral-dk);text-decoration:none;color:#fff}
.btn-ghost{background:transparent;color:var(--ink);border:2px solid var(--ink)}
.btn-ghost:hover{background:var(--ink);color:#fff}

/* ---------- header ---------- */
.site-head{position:sticky;top:0;z-index:40;background:var(--white);border-bottom:1px solid var(--line)}
.site-head .wrap{display:flex;align-items:center;gap:18px;height:66px}
.logo{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:1.1rem;font-weight:700;letter-spacing:-.02em}
.logo:hover{text-decoration:none}
.logo .mark{width:30px;height:30px;flex:0 0 auto}
.nav{margin-left:auto;display:flex;align-items:center;gap:24px}
.nav a{color:var(--ink);font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:700;font-size:.95rem;letter-spacing:.01em}
.nav a:hover{color:var(--coral-ink);text-decoration:none}
.nav a.btn{color:#fff}
.nav a.btn:hover{color:#fff}
.nav-toggle{display:none;margin-left:auto;background:none;border:0;font-size:1.5rem;color:var(--ink);cursor:pointer}
@media(max-width:860px){
  .nav-toggle{display:block}
  .nav{display:none;position:absolute;top:66px;left:0;right:0;flex-direction:column;gap:0;
        background:var(--white);border-bottom:1px solid var(--line);padding:8px 22px 16px}
  .nav.open{display:flex}
  .nav a{padding:11px 0;border-bottom:1px solid var(--line);width:100%}
  .nav a.btn{margin-top:10px;text-align:center}
}

/* ---------- breadcrumb ---------- */
.crumb{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:600;font-size:.74rem;color:var(--sage);padding:14px 22px 0;text-transform:uppercase;letter-spacing:.05em}
.crumb a{color:var(--sage)}

/* ---------- hero (flat solid overlay, not a gradient) ---------- */
.hero{position:relative;background:var(--ink) center/cover no-repeat;background-image:url('/images/hero.jpg');color:#fff;border-bottom:4px solid var(--coral)}
.hero{background-image:-webkit-image-set(url('/images/hero.webp') type('image/webp'),url('/images/hero.jpg') type('image/jpeg'));background-image:image-set(url('/images/hero.webp') type('image/webp'),url('/images/hero.jpg') type('image/jpeg'))}
.hero::before{content:"";position:absolute;inset:0;background:rgba(31,20,16,.60)}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:6px;background:var(--coral)}
.hero .wrap{position:relative;z-index:1;padding:163px 22px 145px;min-height:550px;display:flex;flex-direction:column;justify-content:center}
.hero-copy{max-width:56%}
.hero .label{color:#F0A883;opacity:1}
.hero h1{font-size:3.6rem;margin:0 0 .3em;color:#fff;font-weight:400;letter-spacing:-.01em;line-height:1.06}
.hero .lede{font-size:1.18rem;color:#F3E4D8;margin-bottom:1.5em;line-height:1.5}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:1.6em}
.hero .btn-ghost{color:#fff;border-color:#fff}
.hero .btn-ghost:hover{background:#fff;color:var(--ink)}
.hero-trust{font-size:.95rem;color:#E8D6C8;margin:0}
.hero-trust b{color:#fff}
@media(max-width:900px){.hero-copy{max-width:100%}}
@media(max-width:640px){.hero h1{font-size:2.1rem}.hero .wrap{padding:64px 22px 56px;min-height:0}}

/* ---------- tour-data facts strip (under hero) ---------- */
.facts-strip{background:var(--surface);border-bottom:1px solid var(--line)}
.facts-strip .wrap{display:flex;flex-wrap:wrap;padding:0}
.facts-item{flex:1 1 0;min-width:150px;padding:16px 22px;border-right:1px solid var(--line)}
.facts-item:last-child{border-right:0}
.facts-val{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:800;font-size:1.18rem;line-height:1.05;color:var(--ink);letter-spacing:-.02em}
.facts-val .star{color:var(--coral)}
.facts-label{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:.7rem;font-weight:600;color:var(--sage);text-transform:uppercase;letter-spacing:.06em;margin-top:.45em}
@media(max-width:780px){.facts-item{flex:1 1 50%;min-width:0;border-bottom:1px solid var(--line)}.facts-item:nth-child(2n){border-right:0}}
@media(max-width:420px){.facts-item{flex:1 1 100%;border-right:0}}

/* ---------- on-page jump bar (sticky anchor menu, homepage) ---------- */
.section-nav{position:sticky;top:66px;z-index:30;background:var(--ink);border-bottom:1px solid var(--ink)}
.section-nav .wrap{display:flex;gap:0;padding:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.section-nav .wrap::-webkit-scrollbar{display:none}
.section-nav a{flex:0 0 auto;display:inline-block;padding:13px 18px;color:#fff;
  font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:600;font-size:.82rem;letter-spacing:.02em;white-space:nowrap;border-right:1px solid rgba(255,255,255,.12)}
.section-nav a:hover{background:var(--coral-btn);color:#fff;text-decoration:none}
@media(max-width:780px){.section-nav{top:0}.section-nav a{padding:12px 15px;font-size:.8rem}}

/* ---------- explore link cluster (keyword interlinks, above footer) ---------- */
.explore{margin:2.4em 0 0;padding:26px 0 0;border-top:2px solid var(--ink)}
.explore h2{margin:0 0 .7em}
.explore-links{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 26px}
.explore-links a{display:block;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:.92rem;font-weight:400;
  color:var(--ink);padding:6px 0 6px 16px;border-left:3px solid var(--coral);line-height:1.35}
.explore-links a:hover{color:var(--coral-ink);border-left-color:var(--coral-ink)}
@media(max-width:780px){.explore-links{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.explore-links{grid-template-columns:1fr}}

/* ---------- main / prose ---------- */
.section-pad{padding-top:40px;padding-bottom:64px}
.prose{max-width:760px;margin:0 auto}
.prose.wide{max-width:960px}
.prose ul,.prose ol{margin:0 0 1.15em;padding-left:1.2em}
.prose li{margin:.32em 0}
ul.check{list-style:none;padding-left:0}
ul.check li{position:relative;padding-left:1.7em;margin:.5em 0}
ul.check li::before{content:"\2192";position:absolute;left:0;top:0;color:var(--coral-ink);font-weight:700}

/* page-hero banner inside articles */
.page-hero{margin:0 0 1.6em;border-radius:var(--r-lg);overflow:hidden}
.page-hero img{width:100%;max-height:380px;object-fit:cover}

/* ---------- answer box ---------- */
.answer-box{background:var(--neutral);border-left:5px solid var(--coral);padding:20px 24px;margin:0 0 1.8em;border-radius:0 var(--r-md) var(--r-md) 0}
.answer-box p{margin:0}
.answer-box strong{color:var(--ink)}
.answer-box a{text-decoration:underline;text-underline-offset:2px}

/* ---------- key takeaways (homecontent.TAKEAWAYS) ---------- */
.ia-takeaways{background:var(--ink);border-radius:var(--r-lg);padding:26px 30px;margin:34px 0;color:rgba(255,255,255,.92)}
.ia-takeaways h2{color:#fff;margin:0 0 14px;font-size:1.25rem}
.ia-takeaways ul{list-style:none;margin:0;padding:0}
.ia-takeaways li{position:relative;padding:7px 0 7px 30px;line-height:1.55;border-bottom:1px solid rgba(255,255,255,.14)}
.ia-takeaways li:last-child{border-bottom:0}
.ia-takeaways li::before{content:"\2713";position:absolute;left:2px;top:7px;color:var(--accent,var(--coral));font-weight:700}
.ia-takeaways b,.ia-takeaways strong{color:#fff}
.ia-takeaways a{color:var(--accent,var(--coral));filter:brightness(1.35);text-decoration-color:rgba(255,255,255,.35)}
.ia-takeaways a:hover{color:#fff;filter:none}

/* ---------- tables ---------- */
table{width:100%;border-collapse:collapse;margin:1.2em 0;font-size:.96rem}
th,td{text-align:left;padding:11px 13px;border-bottom:1px solid var(--line);vertical-align:top}
thead th{background:var(--ink);color:#fff;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:600;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}

/* ---------- tip / keyfacts / proscons ---------- */
.tip{background:var(--neutral);border:2px solid var(--coral);border-radius:var(--r-md);padding:16px 20px;margin:1.5em 0}
.tip-label{display:inline-block;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:600;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--coral-ink);margin-bottom:.3em}
.tip p{margin:0}

.keyfacts{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;margin:1.6em 0}
.keyfacts div{background:var(--surface);padding:14px 16px}
.kf-label{display:block;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--sage);font-weight:600;margin-bottom:3px}
.keyfacts b{font-size:1.02rem}
@media(max-width:640px){.keyfacts{grid-template-columns:repeat(2,1fr)}}

.proscons{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:1.6em 0}
.pc{border:2px solid var(--line);border-radius:var(--r-md);padding:18px 20px;background:var(--surface)}
.pc ul{list-style:none;margin:0;padding:0}
.pc li{position:relative;padding-left:1.6em;margin:.5em 0}
.pros{border-color:var(--coral)}
.pros li::before{content:"\2713";position:absolute;left:0;color:var(--coral-ink);font-weight:700}
.cons li::before{content:"!";position:absolute;left:.25em;color:var(--sage);font-weight:700}
@media(max-width:640px){.proscons{grid-template-columns:1fr}}

.inclist{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:1.6em 0}
.inclist>div{border:2px solid var(--line);border-radius:var(--r-md);padding:18px 20px;background:var(--surface)}
.inclist h4{margin:0 0 .5em;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
.inclist ul{list-style:none;margin:0;padding:0}
.inclist li{position:relative;padding-left:1.6em;margin:.5em 0}
.inclist .inc{border-color:var(--coral)}
.inclist .inc h4{color:var(--coral-ink)}
.inclist .inc li::before{content:"\2713";position:absolute;left:0;color:var(--coral-ink);font-weight:700}
.inclist .exc h4{color:var(--sage)}
.inclist .exc li::before{content:"\00d7";position:absolute;left:.15em;color:var(--sage);font-weight:700}
@media(max-width:640px){.inclist{grid-template-columns:1fr}}

/* ---------- scorecard (review pages) ---------- */
.scorecard{display:grid;grid-template-columns:200px 1fr;gap:0;border:2px solid var(--ink);border-radius:var(--r-md);overflow:hidden;margin:0 0 1.8em}
.sc-score{background:var(--ink);color:#fff;padding:22px;display:flex;flex-direction:column;justify-content:center;text-align:center}
.sc-big{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:800;font-size:3rem;line-height:1;letter-spacing:-.03em}
.sc-stars{color:var(--coral);letter-spacing:2px;margin:.2em 0}
.sc-rev{font-size:.8rem;color:#D9DBD7}
.sc-price{margin-top:.5em;font-weight:700;color:#fff}
.sc-specs{padding:8px 22px;background:var(--surface)}
.sc-row{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.sc-row:last-child{border-bottom:0}
.sc-row span{color:var(--sage)}
.sc-row b{text-align:right}
@media(max-width:560px){.scorecard{grid-template-columns:1fr}}

/* ---------- review hub cards ---------- */
.rev-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin:1.5em 0 .4em}
@media(max-width:600px){.rev-grid{grid-template-columns:1fr}}
.rev-card{display:flex;flex-direction:column;border:2px solid var(--line);border-radius:var(--r-lg);padding:0;overflow:hidden;background:var(--surface);color:var(--ink);transition:border-color .15s}
.rev-card:hover{border-color:var(--coral);text-decoration:none}
.rev-thumb{margin:0;aspect-ratio:16/9;overflow:hidden;background:var(--ink)}
.rev-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}
.rev-card:hover .rev-thumb img{transform:scale(1.04)}
.rev-body{display:flex;flex-direction:column;flex:1;padding:16px 20px 18px}
.rev-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:.6em}
.rev-score{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:800;font-size:1.3rem;line-height:1;color:var(--ink)}
.rev-stars{color:var(--coral);letter-spacing:1px;font-size:.9rem}
.rev-count{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:500;font-size:.72rem;color:var(--sage)}
.rev-card h3{font-weight:700;font-size:1.05rem;line-height:1.3;margin:0 0 .4em}
.rev-card p{font-size:.92rem;color:var(--sage);margin:0 0 1em}
.rev-price{font-weight:700;font-size:.9rem;margin-top:auto}
.rev-more{display:block;color:var(--coral-ink);font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:600;font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;margin-top:.5em}

/* ---------- tour cards ---------- */
.tours-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:20px;margin:1.5em 0 .4em}
.tours-grid.cols-4{grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:860px){.tours-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1024px){.tours-grid.cols-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.tours-grid,.tours-grid.cols-4{grid-template-columns:1fr}}
.tour{border:2px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--surface);display:flex;flex-direction:column;transition:border-color .15s}
.tour:hover{border-color:var(--coral)}
/* whole card is an <a> (see helpers._card) — kill link styling, keep hover feedback */
a.tour{color:inherit;text-decoration:none}
a.tour:hover .btn{filter:brightness(1.08)}
.thumb{position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--neutral)}
.thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.badge{position:absolute;top:10px;left:10px;background:var(--coral-btn);color:#fff;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:600;font-size:.64rem;letter-spacing:.06em;text-transform:uppercase;padding:5px 9px;border-radius:var(--r-sm)}
.tour-body{padding:16px 16px 18px;display:flex;flex-direction:column;flex:1}
.tour-body h3{font-size:1.02rem;margin:0 0 .45em;line-height:1.25;font-weight:700}
.rate{font-size:.85rem;color:var(--sage);margin-bottom:.5em}
.star{color:var(--coral)}
.price{font-weight:700;margin-bottom:.8em}
.price span{font-weight:400;color:var(--sage);font-size:.85rem}
.tour-body .btn{margin-top:auto}
/* decorative desert filler tile (rounds out incomplete card rows on desktop) */
.tour-filler{position:relative;border:2px dashed #e0c4ad;background:var(--neutral);align-items:center;justify-content:center;min-height:180px}
.tour-filler:hover{border-color:#e0c4ad}
.tour-filler .filler-art{position:absolute;inset:0;width:100%;height:100%;opacity:.6}
.tour-filler .filler-label{position:relative;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:600;text-transform:uppercase;letter-spacing:.1em;font-size:.64rem;color:var(--sage);background:rgba(244,245,242,.78);padding:5px 11px;border-radius:var(--r-sm)}
@media(max-width:860px){.tour-filler{display:none}}

/* ---------- book-card (docked chip availability) ---------- */
.book-card{position:relative;border:2px solid var(--ink);border-radius:var(--r-md);padding:26px 18px 14px;margin:1.6em 0;background:var(--surface)}
.book-chip{position:absolute;top:-13px;left:18px;background:var(--coral-btn);color:#fff;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:600;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;border-radius:var(--r-sm)}
.gyg-frame{min-height:220px}

/* ---------- comparison table ---------- */
.cmp-wrap{overflow-x:auto;margin:1.8em 0}
/* Break the comparison table out of the 760px prose column so it has more room
   to breathe. Prose has ~158px of slack each side inside .wrap, so -110px is safe. */
/* the bleed needs viewport >= wrap(1120) + 2*110 + gutter, not 1080 */
@media(min-width:1380px){.cmp-wrap{margin-left:-110px;margin-right:-110px}}
table.cmp{border-collapse:separate;border-spacing:0;min-width:640px;width:100%;font-size:1.02rem}
table.cmp th,table.cmp td{border:0;border-bottom:1px solid var(--line);padding:16px 20px;background:var(--surface)}
table.cmp thead th{background:var(--neutral);color:var(--ink);vertical-align:bottom;text-transform:none;letter-spacing:-.01em;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:700}
table.cmp .rowlabel{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:600;color:var(--sage);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}
table.cmp .feat{background:var(--neutral);border-left:2px solid var(--coral);border-right:2px solid var(--coral)}
table.cmp thead .feat{border-top:2px solid var(--coral)}
table.cmp tr.cmp-book .feat{border-bottom:2px solid var(--coral)}
.cmp-badge{display:inline-block;background:var(--coral-btn);color:#fff;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:600;font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;padding:4px 8px;border-radius:var(--r-sm);margin-bottom:6px}
.feat-title{display:block;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:800;font-size:1.12rem;letter-spacing:-.02em}
.col-alt{color:var(--ink)}
table.cmp .btn{width:100%;padding:11px 10px;font-size:.76rem}

/* ---------- gallery ---------- */
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:1.8em 0}
.gallery figure{margin:0;position:relative;border-radius:var(--r-md);overflow:hidden}
.gallery img{width:100%;aspect-ratio:3/4;object-fit:cover}
.gallery figcaption{position:absolute;left:0;right:0;bottom:0;background:rgba(21,24,24,.82);color:#fff;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:600;font-size:.72rem;padding:14px 12px 9px;text-transform:uppercase;letter-spacing:.04em}
@media(max-width:760px){.gallery{grid-template-columns:repeat(2,1fr)}}

/* ---------- steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:1.5em 0;counter-reset:s}
.step{border-top:3px solid var(--coral);padding:14px 4px 0;counter-increment:s}
.step::before{content:counter(s);font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:800;font-size:1.5rem;color:var(--coral-ink);display:block;margin-bottom:.1em}
.step h3{margin:0 0 .25em;font-size:1.05rem}
.step p{font-size:.9rem;color:var(--sage);margin:0}
@media(max-width:760px){.steps{grid-template-columns:repeat(2,1fr)}}

/* ---------- reviews band ---------- */
.reviews-band{background:var(--neutral);border-radius:var(--r-lg);padding:24px;margin:1.8em 0}
.reviews-head{display:flex;align-items:center;gap:18px}
.reviews-head .big{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:800;font-size:3rem;color:var(--ink);line-height:1;letter-spacing:-.03em}
.reviews-head .stars{color:var(--coral);font-size:1.1rem;letter-spacing:2px}

/* ---------- honest guide ---------- */
.honest-guide{background:var(--neutral);border-radius:var(--r-lg);padding:32px 30px;margin:2.4em 0}
.honest-guide h2{margin-top:0}
.honest-guide .lead{font-size:1.1rem;color:var(--ink)}
.honest-guide h3{margin-top:1.5em}
.guide-fig{margin:1.5em 0}
.guide-fig img{width:100%;max-height:340px;object-fit:cover;border-radius:var(--r-md)}
.guide-fig figcaption{font-size:.84rem;color:var(--sage);margin-top:.5em;font-style:italic}

/* ---------- FAQ ---------- */
.faq{margin:1em 0}
.faq details{border-bottom:1px solid var(--line);padding:4px 0}
.faq summary{cursor:pointer;font-weight:600;padding:14px 30px 14px 0;position:relative;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:12px;color:var(--coral-ink);font-weight:700;font-size:1.3rem}
.faq details[open] summary::after{content:"\2212"}
.faq-body{padding:0 0 12px}
.faq-body p{margin:0}
.faq-contact{margin:1.1em 0 .2em;font-weight:600;color:var(--ink)}
.faq-contact a{color:var(--coral-ink)}

/* ---------- disclosure ---------- */
.disclosure{font-size:.84rem;color:var(--sage);background:var(--neutral);border-radius:var(--r-md);padding:13px 16px;margin:1em 0 1.6em}
.disclosure a{color:var(--coral-ink)}

/* related strip */
.related{border-top:2px solid var(--ink);margin-top:2.4em;padding-top:1.2em}

/* sitemap */
.sitemap-list{list-style:none;padding-left:0}
.sitemap-list li{margin:.4em 0;padding-left:1.2em;position:relative}
.sitemap-list li::before{content:"\2192";position:absolute;left:0;color:var(--coral-ink)}

/* ---------- footer ---------- */
.site-foot{background:var(--ink);color:#C9CCC7;margin-top:40px;border-top:4px solid var(--coral)}
.site-foot .wrap{padding:48px 22px 30px}
.foot-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.4fr;gap:32px}
.site-foot .brand .logo{color:#fff;margin-bottom:.6em}
.site-foot .brand p{font-size:.9rem;max-width:34em}
.site-foot h4{color:#fff;margin-bottom:.8em}
.site-foot ul{list-style:none;margin:0;padding:0}
.site-foot li{margin:.4em 0}
.site-foot a{color:#C9CCC7;font-size:.92rem}
.site-foot a:hover{color:#fff}
.foot-guides{margin-top:30px;border-top:1px solid #2c2f2f;padding-top:20px}
.foot-guides ul{display:flex;flex-wrap:wrap;gap:8px 26px}
.foot-answers{margin-top:26px;border-top:1px solid #2c2f2f;padding-top:20px;display:flex;flex-wrap:wrap;align-items:baseline;gap:10px 18px}
.foot-answers .label{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:600;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:#8d918c}
.foot-answers nav{display:flex;flex-wrap:wrap;gap:8px 18px}
.foot-answers a{color:#C9CCC7;font-size:.86rem}
.foot-answers a:hover{color:#fff}
.foot-facts{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-top:22px;border-top:1px solid #2c2f2f;padding-top:22px}
.foot-facts .kf-label,.foot-facts .label{display:block;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:600;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:#8d918c;margin-bottom:3px}
.foot-facts b{color:#fff;font-size:.92rem}
.foot-searches{margin-top:22px;border-top:1px solid #2c2f2f;padding-top:20px}
.foot-searches h4{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:600;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:#8d918c;margin:0 0 12px}
.foot-searches ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.foot-searches li{margin:0}
.foot-searches a{display:inline-block;padding:5px 11px;border:1px solid #2c2f2f;border-radius:999px;font-size:.78rem;color:#9fa39d;line-height:1.3;transition:color .15s,border-color .15s,background .15s}
.foot-searches a:hover{color:#fff;border-color:var(--coral);background:rgba(255,255,255,.05)}
.foot-bottom{margin-top:28px;border-top:1px solid #2c2f2f;padding-top:18px;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:.74rem;color:#8d918c}
.foot-bottom a{color:#C9CCC7}
@media(max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:760px){.foot-grid{grid-template-columns:1fr}.foot-facts{grid-template-columns:repeat(2,1fr)}}

/* ---------- homepage: "what's included" two-column ---------- */
.includes{margin:2.2em 0;background:var(--surface);border:2px solid var(--line);border-radius:var(--r-lg);padding:26px 26px 22px}
.includes h2{margin:0 0 .25em}
.includes-lead{color:var(--sage);margin:0 0 1.2em;font-size:1rem}
.includes-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.includes-col h3{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:700;font-size:1.12rem;color:var(--ink);margin:0 0 .55em;padding-bottom:.4em;border-bottom:2px solid var(--coral);display:inline-block}
.includes-col ul.check{margin:0}
.includes-col .muted{color:var(--sage);font-style:italic}
@media(max-width:680px){.includes{padding:20px}.includes-grid{grid-template-columns:1fr;gap:18px}}

/* ---------- homepage: route / "what you see, in order" (AEO) ---------- */
.route{margin:2.4em 0}
.route h2{margin:0 0 .25em}
.route-lead{color:var(--sage);margin:0 0 1.1em;font-size:1rem}
.route-stops{list-style:none;margin:1.4em 0;padding:0;counter-reset:stop}
.route-stops li{counter-increment:stop;position:relative;padding:0 0 1.1em 3.2em;margin:0}
.route-stops li:before{content:counter(stop);position:absolute;left:0;top:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background:var(--coral-btn);color:#fff;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:.85rem;font-weight:600;border-radius:var(--r-sm)}
.route-stops li:not(:last-child):after{content:"";position:absolute;left:.95rem;top:2rem;bottom:.2em;width:2px;background:var(--line)}
.route-stops li strong{color:var(--ink)}

/* ---------- homepage: wide photo gallery (breaks out of prose) ---------- */
.photo-wide{position:relative;left:50%;transform:translateX(-50%);width:min(1180px,94vw);margin:2.6em 0}
.photo-wide-head{text-align:center;max-width:44em;margin:0 auto 1.2em}
.photo-wide-head h2{margin:.15em 0 .3em}
.photo-wide-sub{color:var(--sage);margin:0}
.photo-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.photo-strip .shot{margin:0;border-radius:var(--r-md);overflow:hidden;background:var(--neutral)}
.photo-strip .shot img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .4s ease}
.photo-strip .shot:hover img{transform:scale(1.06)}
@media(max-width:760px){.photo-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.photo-strip{grid-template-columns:1fr}}

/* ---------- homepage: guest testimonials (breaks out of prose) ---------- */
.testimonials{position:relative;left:50%;transform:translateX(-50%);width:min(1180px,94vw);margin:2.8em 0 2.2em}
.testimonials h2{text-align:center;margin:0 0 .25em}
.t-lead{text-align:center;color:var(--sage);margin:0 0 1.4em}
.t-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.t-card{margin:0;background:var(--white);border:2px solid var(--line);border-radius:var(--r-lg);padding:20px 20px 16px;display:flex;flex-direction:column}
.t-stars{color:var(--coral);letter-spacing:2px;font-size:.92rem;margin-bottom:.5em}
.t-card blockquote{margin:0 0 1em;font-size:.96rem;line-height:1.55;color:var(--ink)}
.t-card figcaption{margin-top:auto;border-top:1px solid var(--line);padding-top:.7em}
.t-name{display:block;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-weight:700;font-size:.86rem;color:var(--ink)}
.t-tour{display:block;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:.74rem;color:var(--sage);margin-top:2px}
.t-foot{text-align:center;color:var(--sage);font-size:.9rem;margin:1.4em 0 0}
@media(max-width:860px){.t-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.t-grid{grid-template-columns:1fr}}
/* ==========================================================================
   CONVERSION + UX LAYER
   High-CTR patterns applied directly into the layout, kept inside the
   "Record Sleeve" system from design.md: flat surfaces, near-square corners,
   ONE accent (--coral) reserved for interaction, ochre/umber neutrals.
   Every element here is PRICE-FREE by design.
   ========================================================================== */

/* --- a11y: visible skip link + a real focus ring on every interactive thing */
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--ink);color:#fff;
  padding:12px 18px;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;letter-spacing:.16em}
.skip:focus{left:0;text-decoration:none}
a:focus-visible,button:focus-visible,summary:focus-visible,.tour:focus-visible{
  outline:3px solid var(--coral);outline-offset:3px;border-radius:var(--r-sm)}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* --- hero trust cues: the highest-CTR element after the button itself ----- */
.trustbar{list-style:none;display:flex;flex-wrap:wrap;gap:8px 26px;margin:0;padding:0}
.trustbar li{display:flex;align-items:center;gap:8px;font-size:.92rem;color:#F1E4CB;line-height:1.3}
.trustbar .tick{display:inline-flex;align-items:center;justify-content:center;
  width:18px;height:18px;flex:0 0 18px;background:var(--coral);color:#fff;
  font-size:.7rem;font-weight:700;border-radius:var(--r-sm)}
.prose .trustbar li{color:var(--ink)}
@media(max-width:640px){.trustbar{gap:6px 18px}.trustbar li{font-size:.86rem}}

/* --- mobile sticky booking bar --------------------------------------------
   Docks to the bottom of the viewport below 860px so the CTA is always one
   thumb away. Hidden on desktop, where the hero + inline widget do the job. */
.sticky-cta{display:none}
@media(max-width:860px){
  .sticky-cta{display:block;position:fixed;left:0;right:0;bottom:0;z-index:60;
    background:var(--ink);border-top:3px solid var(--coral);
    padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px))}
  .sticky-inner{display:flex;align-items:center;gap:12px;max-width:var(--maxw);margin:0 auto}
  .sticky-note{flex:1 1 auto;color:#E3D3B4;font-size:.78rem;line-height:1.25}
  .sticky-cta .btn{flex:0 0 auto;padding:11px 16px;font-size:.78rem}
  body{padding-bottom:74px}
}

/* --- tour cards: spec line + trust cue where the price used to sit -------- */
.tour-meta{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:.86rem;
  letter-spacing:.09em;color:var(--sage);margin:.5em 0 .35em}
.tour-trust{display:flex;align-items:center;gap:7px;font-size:.82rem;color:var(--coral-ink);
  margin:0 0 .9em;line-height:1.3}
.tour-trust .tick{display:inline-flex;align-items:center;justify-content:center;
  width:16px;height:16px;flex:0 0 16px;background:var(--coral);color:#fff;
  font-size:.62rem;font-weight:700;border-radius:var(--r-sm)}
.tour{transition:transform .15s ease,box-shadow .15s ease}
.tour:hover{transform:translateY(-2px);box-shadow:0 6px 0 var(--line)}
.tour:hover .btn{background:var(--coral-dk);border-color:var(--coral-dk)}

/* --- the "why there is no price here" explainer --------------------------- */
.pricenote{background:var(--surface);border:1px dashed var(--sage);border-radius:var(--r-md);
  padding:14px 18px;margin:1.5em 0;font-size:.95rem;color:var(--ink)}

/* --- language switcher: header pills + footer full names ------------------
   Injected on every page of every edition by i18n_apply.py. Deliberately
   high-contrast and outside the burger menu so it never hides on mobile. */
.lang-switch{display:flex;align-items:center;gap:2px;margin-left:16px;flex:0 0 auto;
  border:2px solid var(--line);border-radius:var(--r-md);padding:2px;background:var(--surface)}
.lang-switch a{display:inline-block;padding:5px 9px;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  font-size:.86rem;letter-spacing:.1em;color:var(--sage);border-radius:var(--r-sm);line-height:1.15}
.lang-switch a:hover{background:var(--neutral);color:var(--ink);text-decoration:none}
.lang-switch a.on{background:var(--coral-btn);color:#fff}
@media(max-width:860px){
  .site-head .wrap{gap:10px}
  .lang-switch{margin-left:auto;order:2}
  .nav-toggle{margin-left:0;order:3}
  .nav{order:4;top:66px}
}
@media(max-width:400px){.lang-switch a{padding:5px 6px;font-size:.8rem}}

.lang-foot{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;
  padding:20px 0 4px;border-top:1px solid rgba(255,255,255,.14);margin-top:24px}
.lang-foot::before{content:"Language";font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  letter-spacing:.16em;font-size:.72rem;color:var(--coral);opacity:.9}
.lang-foot a{font-size:.9rem;color:rgba(255,255,255,.78)}
.lang-foot a.on{color:#fff;text-decoration:underline;text-underline-offset:3px}
.lang-foot a:hover{color:#fff}

/* --- booking panel: make the widget read as the destination, not an ad ---- */
.book-card{border:2px solid var(--ink);border-radius:var(--r-md);background:var(--surface)}
.book-chip{background:var(--coral);color:#fff;font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  letter-spacing:.14em}
#availability{scroll-margin-top:82px}

/* --- comparison table: make the featured column unmistakable -------------- */
table.cmp td.feat{background:rgba(217,123,90,.12)}
table.cmp th.feat{background:var(--coral-btn);color:#fff}
.cmp-badge{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;letter-spacing:.14em}

/* --- FAQ: closed by default reads as scannable; open reads as a wall ------ */
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:14px 34px 14px 0;position:relative;font-weight:700}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:12px;color:var(--coral-ink);
  font-size:1.4rem;line-height:1;font-weight:400}
.faq details[open] summary::after{content:"\2013"}
.faq-contact{font-size:.95rem;color:var(--sage);margin-top:1.4em}

/* --- footer answer + search blocks: readable pill treatment --------------- */
.foot-answers nav a,.foot-searches li a{border-bottom:1px solid transparent}
.foot-answers nav a:hover,.foot-searches li a:hover{border-bottom-color:var(--coral);text-decoration:none}

/* --- print: kill the sticky furniture ------------------------------------ */
@media print{.sticky-cta,.site-head,.gyg-frame,.lang-switch{display:none!important}
  body{padding-bottom:0}}

/* ==========================================================================
   RESPONSIVE FIXES — found in the Playwright pass, not by guessing
   ========================================================================== */

/* The hero was tall enough to push the trust cues below the fold on a laptop.
   Tightened so the CTA and the four cues sit in the first screen. */
.hero .wrap{padding:112px 22px 96px;min-height:520px}
@media(max-width:1100px){.hero h1{font-size:2.9rem}}
@media(max-width:900px){.hero .wrap{padding:72px 22px 64px;min-height:0}}

/* Header on narrow screens: the language pills were squeezing the wordmark
   onto three lines. Let the logo shrink instead of wrapping. */
@media(max-width:860px){
  .site-head .wrap{gap:8px}
  .logo{flex:0 1 auto;min-width:0;font-size:1rem;gap:8px}
  .logo .mark{width:26px;height:26px}
}
@media(max-width:520px){
  .logo{font-size:.9rem;letter-spacing:-.01em}
  .lang-switch{padding:1px;border-width:1px}
  .lang-switch a{padding:4px 5px;font-size:.78rem;letter-spacing:.06em}
}

/* The docked mobile CTA overflowed its own bar when the button label is long
   in French, German or Italian. Let both halves shrink, and drop the note on
   the narrowest screens rather than clipping the button. */
@media(max-width:860px){
  .sticky-inner{gap:10px}
  .sticky-note{flex:1 1 38%;min-width:0;font-size:.74rem}
  .sticky-cta .btn{flex:1 1 auto;min-width:0;white-space:normal;line-height:1.15;
    padding:10px 12px;font-size:.74rem;letter-spacing:.02em}
}
@media(max-width:520px){
  .sticky-note{display:none}
  .sticky-cta .btn{width:100%}
}


/* ==========================================================================
   CONVERSION + UX LAYER — applied at build time, not bolted on afterwards.
   Every rule here exists to make the page easier to scan or easier to book.
   ========================================================================== */

/* --- Inter is not a condensed display face: the eyebrow/label rules were
       tuned for Bebas. Give them real small-caps weight so they still read as
       labels rather than shrunken body copy. ------------------------------- */
.label,h4,.kf-label,.facts-label,.crumb,.t-tour,.foot-facts .label,
.foot-answers .label,.foot-searches h4,.tip-label{font-weight:600}
.btn,.badge,.book-chip,.cmp-badge{font-weight:700}
.facts-val,.sc-big,.rev-score,.reviews-head .big{font-weight:800;letter-spacing:-.02em}

/* --- GLANCE: the linked-card summary grid. Sits directly under the answer
       box, above the fold on a laptop. Every tile is a real link, so the
       block doubles as the site's top internal-link surface. --------------- */
.glance{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:0 0 2.2em}
.glance a{display:block;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-md);padding:16px 18px;color:var(--ink);
  transition:border-color .15s,transform .15s,box-shadow .15s}
.glance a:hover{border-color:var(--coral);text-decoration:none;transform:translateY(-2px);
  box-shadow:0 6px 18px rgba(31,20,16,.08)}
.glance .g-label{display:block;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--sage);font-weight:600;margin-bottom:5px}
.glance .g-val{display:block;font-weight:700;line-height:1.3;font-size:.98rem}
.glance .g-note{display:block;color:var(--sage);font-size:.86rem;margin-top:4px;line-height:1.4}
@media(max-width:860px){.glance{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.glance{grid-template-columns:1fr}}

/* --- EARLY CTA: a single line offering the booking panel before the reader
       has to scroll for it. The biggest measurable win on long info pages. -- */
.cta-early{display:flex;align-items:center;gap:16px;flex-wrap:wrap;
  background:var(--neutral);border:1px solid var(--line);border-left:5px solid var(--coral);
  border-radius:0 var(--r-md) var(--r-md) 0;padding:15px 20px;margin:0 0 2em}
.cta-early p{margin:0;flex:1 1 260px;font-size:.98rem;line-height:1.45}
.cta-early .btn{flex:0 0 auto}

/* --- PAGE BOOK BAR: the mobile docked CTA for inner pages (the homepage has
       its own). Revealed by scroll so it never covers the opening copy. ----- */
.page-bookbar{display:none}
@media(max-width:860px){
  .page-bookbar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:60;
    background:var(--ink);padding:9px 14px calc(9px + env(safe-area-inset-bottom));
    transform:translateY(110%);transition:transform .22s ease}
  .page-bookbar.on{transform:translateY(0)}
  .page-bookbar .pb-inner{display:flex;align-items:center;gap:12px;
    max-width:var(--maxw);margin:0 auto}
  .page-bookbar .pb-note{flex:1 1 40%;min-width:0;color:#E8D6C8;font-size:.74rem;line-height:1.25}
  .page-bookbar .btn{flex:1 1 auto;min-width:0;padding:11px 14px;font-size:.76rem;
    white-space:normal;line-height:1.15}
  body{padding-bottom:0}
}
@media(max-width:520px){.page-bookbar .pb-note{display:none}.page-bookbar .btn{width:100%}}

/* --- PULLQUOTE: breaks up 900-word answer pages and gives the eye a rest --- */
.pullquote{border-left:5px solid var(--coral);background:var(--surface);
  border-radius:0 var(--r-md) var(--r-md) 0;margin:2em 0;padding:20px 24px;
  font-family:"Libre Caslon Display",Georgia,"Times New Roman",serif;
  font-size:1.22rem;line-height:1.45;color:var(--ink)}
.pullquote cite{display:block;margin-top:.6em;font-family:inherit;font-style:normal;
  font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;color:var(--sage);font-weight:600}

/* --- card lift: a whole-card link should feel like one ------------------- */
.tour{transition:border-color .15s,transform .15s,box-shadow .15s}
.tour:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(31,20,16,.10)}
.rev-card{transition:border-color .15s,transform .15s}
.rev-card:hover{transform:translateY(-2px)}

/* --- tap targets: 44px minimum on every navigation surface --------------- */
@media(max-width:860px){
  .foot-grid a,.foot-answers nav a,.foot-searches li a,.explore-links a{
    display:block;padding:7px 0;min-height:44px}
  .lang-foot a{padding:6px 0;display:inline-block;min-height:32px}
}

/* --- perf: keep the long tail of sections off the first paint ------------ */
.photo-wide,.testimonials,.explore,.foot-searches{content-visibility:auto;
  contain-intrinsic-size:auto 600px}

/* --- focus ring in the accent, not the browser default ------------------- */
a:focus-visible,button:focus-visible,summary:focus-visible,.tour:focus-visible{
  outline:3px solid var(--coral-btn);outline-offset:3px;border-radius:var(--r-sm)}

/* --- answer box reads as the direct answer, so label it ------------------ */
.answer-box{position:relative}
.answer-box>p:first-child{margin-top:0}
.answer-box p:last-child{margin-bottom:0}

/* --- the disclosure line should be honest, not hidden -------------------- */
.disclosure{font-size:.88rem;color:var(--sage);border-top:1px solid var(--line);
  padding-top:12px;margin:1.6em 0 2.2em;line-height:1.5}
.disclosure a{color:var(--coral-ink)}

/* the two hero CTAs belong on one line at desktop widths */
@media(min-width:901px){.hero-cta{flex-wrap:nowrap}}

/* ==========================================================================
   LONG-LANGUAGE FIXES — German and Spanish run 15-25% longer than the English
   the layout was drawn against. Found by measuring, not by guessing.
   ========================================================================== */

/* The header nav fits five English labels at 1280px and does not fit five
   German ones ("Alle Tickets", "Sehenswertes", "Termine prüfen"), which wrapped
   the links onto two lines and pushed the wordmark over. Keep every nav item on
   one line, tighten the gaps, and hand over to the burger menu earlier. */
.nav a{white-space:nowrap}
@media(min-width:1201px){
  .nav{gap:18px}
  .nav a{font-size:.9rem}
  /* the wordmark is the first thing flexbox shrinks; it must not wrap */
  .logo{flex:0 0 auto;white-space:nowrap;font-size:1.02rem}
  .lang-switch{margin-left:14px}
  .lang-switch a{padding:5px 7px;font-size:.82rem}
}
@media(max-width:1200px){
  .nav-toggle{display:block}
  .nav{display:none;position:absolute;top:66px;left:0;right:0;flex-direction:column;
        gap:0;background:var(--white);border-bottom:1px solid var(--line);
        padding:8px 22px 16px;z-index:41}
  .nav.open{display:flex}
  .nav a{padding:11px 0;border-bottom:1px solid var(--line);width:100%;
         white-space:normal}
  .nav a.btn{margin-top:10px;text-align:center}
  .lang-switch{margin-left:auto;order:2}
}

/* A German CTA label is wider than a 390px phone. Let the button wrap rather
   than push the page sideways. */
.cta-early .btn,.book-card .btn,.hero-cta .btn{max-width:100%}
@media(max-width:640px){
  .cta-early{padding:14px 16px}
  .cta-early .btn{width:100%;white-space:normal;line-height:1.2;padding:12px 14px}
  .hero-cta{flex-wrap:wrap}
  .hero-cta .btn{white-space:normal;line-height:1.2}
}

/* The comparison table is meant to scroll inside its own frame; make sure it
   does in every language rather than widening the document. */
@media(max-width:1379px){
  .cmp-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
  table.cmp{min-width:620px}
}

/* A 33-character email address is wider than a 320px phone. Let long unbroken
   strings (addresses, URLs, German compounds) wrap rather than widen the page. */
.prose,.faq-contact,.foot-grid,.explore-links{overflow-wrap:break-word}
.faq-contact a,.prose a[href^="mailto:"]{overflow-wrap:anywhere;word-break:break-word}
