:root{--red:#b8322a;--terra:#c8642c;--olive:#4f6b35;--green:#2f6b3a;--cream:#fbf3e4;--paper:#fffaf1;--ink:#2b211c;--muted:#6f5f55;--gold:#e0a526;--r:18px;--sh:0 10px 30px rgba(80,40,10,.13)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"DM Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--cream);
background-image:radial-gradient(rgba(200,100,44,.07) 1.2px,transparent 1.2px);background-size:22px 22px;line-height:1.6;font-size:17px}
img{max-width:100%;display:block}
a{color:var(--red)}
h1,h2,h3{font-family:"Playfair Display",Georgia,serif;line-height:1.15;margin:.2em 0 .4em}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:99}
.awning{height:22px;background:repeating-linear-gradient(90deg,var(--red) 0 34px,#fff 34px 68px);
-webkit-mask:radial-gradient(17px at 50% 100%,#0000 97%,#000) 0 0/34px 100%;mask:radial-gradient(17px at 50% 100%,#0000 97%,#000) 0 0/34px 100%}
.top{display:flex;flex-wrap:wrap;gap:10px 24px;align-items:center;justify-content:space-between;padding:10px 20px;max-width:1200px;margin:auto}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-family:"Playfair Display",serif;font-size:1.25rem}
.brand b{color:var(--red)}.brand i{color:var(--olive)}
.logo{font-size:1.7rem;background:#fff;border-radius:50%;width:46px;height:46px;display:grid;place-items:center;box-shadow:var(--sh)}
.mainnav{display:flex;gap:6px;flex-wrap:wrap}
.mainnav a{text-decoration:none;color:var(--ink);font-weight:700;padding:7px 14px;border-radius:99px}
.mainnav a:hover{background:#fff}
.crumbs{max-width:1200px;margin:6px auto 0;padding:0 20px;font-size:.88rem;color:var(--muted)}
.crumbs a{color:var(--muted)}
.wrap{max-width:1200px;margin:auto;padding:0 20px}
.hero{position:relative;max-width:1240px;margin:14px auto 0;border-radius:28px;overflow:hidden;min-height:520px;display:flex;align-items:flex-end;box-shadow:var(--sh)}
.hero.small{min-height:380px}
.heroimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 25%,rgba(30,12,4,.82))}
.herotext{position:relative;z-index:1;color:#fff;padding:34px clamp(20px,4vw,52px);max-width:820px}
.herotext h1{font-size:clamp(2rem,5vw,3.6rem);text-shadow:0 3px 18px rgba(0,0,0,.4)}
.eyebrow{display:inline-block;background:var(--gold);color:#3b2400;font-weight:700;padding:4px 12px;border-radius:99px;font-size:.85rem;letter-spacing:.04em;text-transform:uppercase}
.lead{font-size:1.15rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:var(--red);color:#fff;text-decoration:none;font-weight:700;border:0;cursor:pointer;
padding:10px 16px;border-radius:12px;font-size:.95rem;font-family:inherit;transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translateY(-2px);box-shadow:0 6px 14px rgba(0,0,0,.18)}
.btn.big{padding:14px 22px;font-size:1.05rem;margin:4px 6px 4px 0}
.btn.ghost{background:#fff;color:var(--ink);border:2px solid #ead8bf}
.herotext .btn.ghost{background:rgba(255,255,255,.15);color:#fff;border-color:rgba(255,255,255,.6)}
.btn.walk{background:var(--olive)}.btn.drive{background:var(--terra)}
.btn.more{background:#fff;color:var(--ink);border:2px solid #ead8bf}
.btn.full{width:100%;margin:6px 0}
.sect{font-size:clamp(1.6rem,3.2vw,2.3rem);margin-top:1.6em;position:relative}
.sect::after{content:"";display:block;width:70px;height:5px;border-radius:5px;background:var(--c,var(--red));margin-top:8px}
.sect span{color:var(--red)}
.sect.light{color:#fff}
.seeall{font-family:"DM Sans";font-size:1rem;margin-left:8px}
.pills{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}
.catpill{display:inline-flex;align-items:center;gap:8px;background:#fff;border:2px solid var(--c);color:var(--ink);text-decoration:none;font-weight:700;padding:9px 16px;border-radius:99px}
.catpill span{font-size:1.2rem}
.catpill:hover{background:var(--c);color:#fff}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:22px;margin:20px 0}
.card{background:var(--paper);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);display:flex;flex-direction:column;border-top:6px solid var(--c);transition:transform .2s}
.card:hover{transform:translateY(-4px)}
.cardimg{position:relative;display:block;aspect-ratio:4/3;overflow:hidden}
.cardimg img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card:hover .cardimg img{transform:scale(1.06)}
.ill{position:absolute;right:8px;bottom:8px;background:rgba(0,0,0,.55);color:#fff;font-size:.7rem;padding:2px 8px;border-radius:99px}
.cardbody{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1}
.kicker{margin:0;font-size:.82rem;font-weight:700;color:var(--c,var(--red));text-transform:uppercase;letter-spacing:.04em}
.kicker a{color:inherit}
.since{background:#f3e3c7;color:#7a5520;border-radius:99px;padding:1px 8px;margin-left:4px;text-transform:none;letter-spacing:0}
.card h3{font-size:1.4rem;margin:.25em 0 .1em}
.card h3 a{color:var(--ink);text-decoration:none}
.tag{font-style:italic;color:var(--muted);margin:0 0 6px}
.meta{font-size:.9rem;margin:0 0 12px}
.dist{font-weight:700;color:var(--olive);margin-left:6px}
.go{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
.go .btn{padding:8px 12px;font-size:.88rem}
.center{text-align:center}
.band{background:var(--olive);margin:50px 0;padding:10px 0 34px;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.05) 0 12px,transparent 12px 24px)}
.soon{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}
.soon li{background:rgba(255,255,255,.12);border:2px dashed rgba(255,255,255,.4);border-radius:14px;padding:14px;color:#fff}
.soon span{display:block;font-family:"Playfair Display";font-size:1.3rem}
.soon small{opacity:.85}
.three{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}
.three>div{background:#fff;border-radius:var(--r);padding:20px;box-shadow:var(--sh)}
.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin:22px 0 6px;position:sticky;top:0;z-index:500;background:var(--cream);padding:10px 0}
.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.chip{white-space:nowrap;border:2px solid var(--c,var(--ink));background:#fff;color:var(--ink);border-radius:99px;padding:8px 14px;font-weight:700;cursor:pointer;font-family:inherit;font-size:.9rem}
.chip.on{background:var(--c,var(--ink));color:#fff}
.btn.near{background:var(--ink)}
.map{height:420px;border-radius:var(--r);box-shadow:var(--sh);background:#e9dfcf;z-index:1;margin-top:10px}
.mapfallback{padding:20px;color:var(--muted)}
.mapnote{margin-top:6px}
.pin{width:34px;height:34px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:grid;place-items:center;border:3px solid #fff;box-shadow:0 3px 8px rgba(0,0,0,.35)}
.pin span{transform:rotate(45deg);font-size:16px}
.note{background:#fff;border-left:6px solid var(--gold);border-radius:12px;padding:14px 18px;margin:20px 0;box-shadow:var(--sh)}
.catsec{scroll-margin-top:80px}
.tipsbox{background:#fff;border-radius:var(--r);padding:6px 24px 14px;margin:40px 0;box-shadow:var(--sh)}
.tipsbox li{margin:8px 0}
/* place */
.phead{position:relative}
.pimg{position:relative;max-width:1240px;margin:14px auto 0;height:min(56vw,460px);border-radius:28px;overflow:hidden;box-shadow:var(--sh)}
.pimg .ill{font-size:.78rem;right:14px;bottom:14px}
.ptitle{position:relative;margin-top:-70px;background:var(--paper);border-radius:22px;padding:22px 26px;max-width:860px;box-shadow:var(--sh);border-top:6px solid var(--c);margin-left:auto;margin-right:auto}
.ptitle h1{font-size:clamp(2rem,5vw,3.2rem);margin:.1em 0}
.tagline{font-family:"Playfair Display";font-style:italic;font-size:1.25rem;color:var(--c)}
.badge{display:inline-block;background:#f3e3c7;border-radius:99px;padding:3px 12px;margin:2px 4px 2px 0;font-size:.85rem;font-weight:700}
.pgrid{display:grid;grid-template-columns:1.6fr 1fr;gap:28px;margin-top:28px}
.story{font-size:1.12rem}
.story::first-letter{font-family:"Playfair Display";font-size:3.4em;float:left;line-height:.8;padding:6px 8px 0 0;color:var(--c)}
.box{background:#fff;border-radius:var(--r);padding:18px 22px;margin:18px 0;box-shadow:var(--sh)}
.box h2{font-size:1.35rem}
.order{border-left:6px solid var(--gold)}
.tips{border-left:6px solid var(--olive)}
.factlist{list-style:none;padding:0;margin:0 0 8px}
.factlist li{display:flex;justify-content:space-between;gap:12px;border-bottom:1px dashed #e7d6bd;padding:8px 0}
.factlist b{color:var(--muted);font-weight:500}
.factlist span{text-align:right;font-weight:700}
.pside{position:relative}
.embed{border-radius:var(--r);overflow:hidden;box-shadow:var(--sh);margin:16px 0;background:#e9dfcf}
.embed iframe{width:100%;height:360px;border:0;display:block}
/* guide */
.gitem{display:grid;grid-template-columns:340px 1fr;gap:26px;align-items:center;background:#fff;border-radius:var(--r);padding:18px;margin:26px 0;box-shadow:var(--sh);scroll-margin-top:20px}
.gimg{border-radius:14px;aspect-ratio:4/3;object-fit:cover;width:100%}
.phrase table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:var(--sh)}
.phrase th,.phrase td{text-align:left;padding:12px 16px;border-bottom:1px solid #f0e3cf}
.phrase th{background:var(--red);color:#fff}
.prose{max-width:780px;padding-top:20px;padding-bottom:30px}
.small{font-size:.86rem;color:var(--muted)}
.foot{margin-top:60px;background:#2b211c;color:#eadbc8;padding:30px 20px 40px;text-align:center}
.foot a{color:#ffd9a0}
.foot .small{color:#cbb9a3}
.flag{display:flex;justify-content:center;margin-bottom:14px}
.flag i{width:40px;height:8px;display:block}.flag i:nth-child(1){background:#2f8f46}.flag i:nth-child(2){background:#fff}.flag i:nth-child(3){background:#ce2b37}
.leaflet-popup-content{font-family:"DM Sans",sans-serif;font-size:14px}
.leaflet-popup-content a.pop{display:block;font-weight:700;font-size:15px;margin-bottom:4px}
@media (max-width:860px){.pgrid{grid-template-columns:1fr}.gitem{grid-template-columns:1fr}.hero{min-height:440px;border-radius:0;margin-top:0}.pimg{border-radius:0;margin-top:0}.ptitle{margin:-50px 12px 0}.map{height:340px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}}
/* illustrated placeholders */
.art{position:relative;width:100%;height:100%;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;overflow:hidden;
background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.35),transparent 55%),linear-gradient(135deg,var(--c),color-mix(in srgb,var(--c) 55%,#2b211c));color:#fff;text-align:center;padding:16px}
.art::before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.07) 0 14px,transparent 14px 28px)}
.art::after{content:"";position:absolute;left:0;right:0;bottom:0;height:10px;background:linear-gradient(90deg,#2f8f46 0 33%,#fff 33% 66%,#ce2b37 66%)}
.artemoji{position:relative;font-size:clamp(3rem,9vw,5rem);filter:drop-shadow(0 6px 10px rgba(0,0,0,.25))}
.artname{position:relative;font-family:"Playfair Display",serif;font-size:1.25rem;line-height:1.2;max-width:90%;text-shadow:0 2px 8px rgba(0,0,0,.3)}
.cardimg .art{aspect-ratio:4/3}
.pimg .art{position:absolute;inset:0}
.pimg .art .artemoji{font-size:clamp(4rem,14vw,8rem)}
.pimg .art .artname{font-size:clamp(1.4rem,3vw,2.2rem)}
.gitem .art.gimg{aspect-ratio:4/3;border-radius:14px}
.heroart{position:absolute;inset:0;background:radial-gradient(circle at 75% 30%,rgba(255,255,255,.25),transparent 50%),linear-gradient(135deg,var(--c),#2b211c);display:flex;align-items:center;justify-content:flex-end;padding-right:6%}
.heroart::before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.06) 0 16px,transparent 16px 32px)}
.heroart span{position:relative;font-size:clamp(6rem,18vw,13rem);opacity:.9;filter:drop-shadow(0 10px 20px rgba(0,0,0,.3))}
.citysec{margin-top:10px}
.sect span{font-size:.6em;color:var(--muted);font-style:italic}
.cardimg{text-decoration:none}
.pimg .art .artname{display:none}
.pimg .art{padding-bottom:70px}
.article p{font-size:1.08rem;line-height:1.75}
.related{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0}
.sources{margin:26px 0;padding:16px 20px;background:var(--paper);border-radius:var(--r);box-shadow:var(--sh);font-size:.92rem}
.sources h2{font-size:1.1rem;margin:0 0 8px}.sources ul{margin:0;padding-left:20px}.sources li{margin:4px 0;word-break:break-word}
.recfacts{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:8px 0 20px}
.recfacts li{background:var(--paper);box-shadow:var(--sh);border-radius:999px;padding:8px 16px}
.recipe .ingr li{margin:6px 0}.recipe .steps li{margin:10px 0;line-height:1.65}
.tipbox{background:#fff7e6;border-left:6px solid #e0a12a;border-radius:var(--r);padding:12px 20px;margin:22px 0}
.tipbox h2{font-size:1.1rem;margin:4px 0}
.recsec{margin:34px 0}
