@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap');
:root{--ink:#1d2926;--sub:#61706b;--paper:#f6f3ec;--cream:#eeebe2;--line:#d9d8ce;--red:#b94432;--green:#2f594e;--white:#fffdf8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}.site-shell{max-width:1600px;margin:auto;overflow:hidden}.topbar{height:90px;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.brand{display:flex;align-items:center;gap:12px;font-weight:700;font-size:17px;letter-spacing:-.035em;white-space:nowrap}.brand-mark{width:32px;height:32px;border:2px solid var(--red);color:var(--red);font-size:17px;display:grid;place-items:center;font-family:serif;font-weight:700}.brand-comma{color:var(--red)}.topbar nav{display:flex;gap:39px;color:#465650;font-size:13px}.topbar nav a:hover,.topbar nav a:focus-visible,footer a:hover{color:var(--red)}.top-cta{border:1px solid var(--ink);padding:13px 17px;font-size:12px;font-weight:700;white-space:nowrap}.top-cta span{margin-left:18px}.top-cta:hover,.top-cta:focus-visible{background:var(--ink);color:white}.hero{display:grid;grid-template-columns:49% 51%;min-height:600px}.hero-copy{padding:95px 8% 45px 11.2%;display:flex;flex-direction:column;align-items:flex-start}.eyebrow{font-size:10px;letter-spacing:.19em;font-weight:700;color:var(--red);display:flex;align-items:center;gap:13px;margin:0 0 27px}.eyebrow-line{display:inline-block;width:27px;height:1px;background:var(--red)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Playfair Display',Georgia,serif}h1{font-size:clamp(58px,6vw,105px);line-height:1.08;letter-spacing:-.055em;font-weight:500;margin:0 0 27px}h1 em,h2 em{color:var(--red);font-weight:500}.hero-description{max-width:415px;color:var(--sub);font-size:15px;line-height:1.9;margin-bottom:32px}.primary-button{background:var(--red);color:white;padding:16px 20px;font-size:13px;font-weight:700;display:inline-flex;gap:50px;align-items:center;transition:transform .2s,background .2s}.primary-button:hover,.primary-button:focus-visible{background:#973823;transform:translateY(-2px)}.hero-meta{margin-top:auto;padding-top:50px;display:flex;align-items:center;gap:19px;color:#7b8580;font-size:10px;letter-spacing:.15em;font-weight:700}.meta-rule{width:52px;height:1px;background:#9ea9a2}.hero-art{min-height:600px;background:linear-gradient(145deg,#e3a58a 0%,#d88970 48%,#bb705c 100%);position:relative;overflow:hidden}.hero-sun{position:absolute;width:42%;aspect-ratio:1;border-radius:50%;background:#f2d5ae;top:13%;right:12%;box-shadow:0 0 80px #f2d5ae66}.mountain{position:absolute;width:130%;height:50%;left:-12%;bottom:-15%;clip-path:polygon(0 100%,0 67%,11% 55%,25% 64%,39% 30%,55% 66%,69% 40%,83% 60%,100% 35%,100% 100%)}.mountain-back{background:#b97369;bottom:12%;opacity:.55;transform:scaleX(-1)}.mountain-mid{background:#8b5d59;bottom:0;opacity:.75}.mountain-front{background:#414f4d;bottom:-17%;height:47%;clip-path:polygon(0 100%,0 53%,14% 45%,25% 59%,40% 33%,55% 60%,75% 48%,88% 58%,100% 43%,100% 100%)}.pavilion{position:absolute;width:37%;height:59%;bottom:13%;left:15%;filter:drop-shadow(8px 14px 3px #34433f45)}.roof,.floor,.base,.columns{position:absolute;background:#213d38}.roof{height:12%;clip-path:polygon(4% 70%,19% 44%,50% 0,81% 44%,96% 70%,100% 78%,84% 69%,50% 30%,16% 69%,0 78%)}.roof-upper{width:73%;top:0;left:14%}.floor{height:3%}.floor-upper{top:30%;left:21%;width:58%}.columns{background:repeating-linear-gradient(90deg,transparent 0 14%,#213d38 14% 20%,transparent 20% 37%)}.columns-upper{top:10%;left:26%;width:48%;height:20%}.roof-lower{width:100%;top:33%;height:16%}.floor-lower{top:79%;width:85%;left:7.5%}.columns-lower{top:46%;left:17%;width:66%;height:33%}.base{top:82%;left:1%;width:98%;height:4%}.art-stamp{position:absolute;right:10%;top:46%;border:1px solid #f7e9d6;color:#f7e9d6;padding:8px 7px;font-family:serif;font-size:19px;line-height:1.1;letter-spacing:2px}.art-caption{position:absolute;bottom:32px;right:9%;color:#f5e6d5;font-size:10px;font-weight:700;letter-spacing:.17em}.intro-band{min-height:105px;background:#315c50;color:#f6f0e6;padding:25px 5.5%;display:flex;align-items:center;gap:28px}.intro-band p{font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:22px;margin:0;flex:1}.band-symbol{font-size:28px;color:#d2aa83}.band-index{font-size:10px;letter-spacing:.15em;white-space:nowrap}.cities-section{padding:92px 5.5% 105px}.section-heading{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:39px}.section-heading .eyebrow{margin-bottom:17px}.muted{color:#9b7e67}.section-heading h2{font-size:clamp(42px,4.2vw,67px);letter-spacing:-.05em;line-height:1.1;font-weight:500;margin:0}.section-heading>p{font-size:14px;line-height:1.8;color:var(--sub);max-width:280px;margin:0 0 5px}.city-controls{display:flex;gap:25px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.city-tabs{display:flex;gap:27px;overflow-x:auto;scrollbar-width:thin}.city-tab{background:none;border:0;border-bottom:3px solid transparent;padding:16px 0 18px;color:#85908b;white-space:nowrap;font-size:14px;font-weight:700}.city-tab:hover,.city-tab:focus-visible{color:var(--ink)}.city-tab[aria-selected="true"]{color:var(--red);border-bottom-color:var(--red)}.city-tab span{font-size:11px;color:#aab2ac;margin-left:6px;font-weight:500}.search-wrap{border:1px solid var(--line);display:flex;align-items:center;padding:0 11px;margin-bottom:10px;min-width:195px;background:#faf8f3}.search-icon{font-size:24px;line-height:1;color:#7a8881}.search-wrap input{border:0;outline:0;background:none;padding:11px 7px;width:145px;font-size:12px;color:var(--ink)}.search-wrap:focus-within{border-color:var(--red)}.search-status{min-height:22px;margin:8px 0;color:var(--sub);font-size:12px}.guide-panel{display:grid;grid-template-columns:40% 60%;background:var(--white);border:1px solid var(--line);min-height:760px}.city-visual{position:relative;overflow:hidden;min-height:760px;background:var(--city-bg,#bc6755);color:white;display:flex;flex-direction:column;justify-content:space-between;padding:34px}.city-visual::before{content:"";position:absolute;width:78%;aspect-ratio:1;border-radius:50%;background:var(--city-sun,#edc7a9);top:16%;right:-10%;opacity:.83}.city-visual::after{content:"";position:absolute;inset:auto -18% 13% -18%;height:40%;background:var(--city-hill,#42594f);clip-path:polygon(0 100%,0 60%,15% 48%,30% 65%,47% 30%,62% 62%,79% 39%,100% 60%,100% 100%);opacity:.5}.visual-top,.visual-bottom,.visual-main{position:relative;z-index:1}.visual-top{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.16em;font-weight:700}.visual-main{margin:auto 0;text-align:center}.visual-character{font-family:Georgia,serif;font-size:clamp(155px,20vw,300px);line-height:1;color:#fff5e9;opacity:.87;text-shadow:8px 15px 0 #253b3433}.visual-name{font-family:'Playfair Display',Georgia,serif;font-size:56px;line-height:1.1;letter-spacing:-.06em;margin-top:-10px}.visual-bottom{border-top:1px solid #ffffff80;padding-top:16px;display:flex;justify-content:space-between;gap:10px;align-items:end;font-size:10px;letter-spacing:.14em;font-weight:700}.visual-bottom strong{font-family:'Playfair Display',Georgia,serif;font-size:17px;letter-spacing:0;font-style:italic;font-weight:500;text-align:right}.guide-content{padding:43px 6.4% 36px}.guide-kicker{color:var(--red);font-size:10px;letter-spacing:.2em;font-weight:700;margin:0 0 13px}.guide-content h3{font-size:clamp(34px,3.2vw,49px);line-height:1.17;letter-spacing:-.04em;font-weight:500;margin:0 0 14px}.guide-summary{font-size:14px;line-height:1.8;color:var(--sub);margin-bottom:25px;max-width:640px}.tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:25px}.tag{border:1px solid #d6d9d1;color:#63746d;border-radius:30px;padding:7px 11px;font-size:10px;font-weight:700;letter-spacing:.03em}.guide-columns{display:grid;grid-template-columns:1fr 1fr;gap:28px;border-top:1px solid var(--line);padding-top:24px}.guide-block h4,.route h4{font-family:'DM Sans',Arial,sans-serif;letter-spacing:.15em;font-size:10px;color:var(--red);margin:0 0 15px}.guide-block h4 span,.route h4 span{color:#a6aaa1;margin-right:6px}.entry{margin-bottom:18px}.entry strong{font-size:13px;display:block;margin-bottom:4px}.entry small{font-size:11px;color:#87948d;font-weight:700;margin-left:6px}.entry p{color:var(--sub);font-size:12px;line-height:1.65;margin:0}.route{border-top:1px solid var(--line);padding-top:20px;margin-top:5px}.route p{font-size:12px;line-height:1.7;color:var(--sub);margin:0}.source-link{display:inline-block;color:var(--red);border-bottom:1px solid #d2a194;font-weight:700;font-size:11px;margin-top:17px}.source-link:hover{color:#813821}.no-results{grid-column:1/-1;display:grid;place-items:center;text-align:center;padding:60px}.no-results h3{font-size:38px;margin-bottom:10px}.no-results p{color:var(--sub);font-size:14px}footer{background:#1c332e;color:#edf0e8;min-height:105px;padding:35px 5.5%;display:flex;gap:25px;justify-content:space-between;align-items:center;font-size:11px}.footer-hanzi{color:#9fb5aa;margin-left:12px}footer>span:nth-child(2){color:#a7b8ae}footer a{white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--red);outline-offset:3px}
@media(max-width:980px){.topbar{height:74px}.topbar nav{gap:17px}.hero{min-height:520px}.hero-copy{padding-top:75px}.hero-art{min-height:520px}.guide-panel{grid-template-columns:35% 65%}.city-visual{min-height:730px}.visual-name{font-size:43px}.guide-content{padding:35px 5%}.guide-columns{gap:17px}}
@media(max-width:700px){.topbar{padding:0 5%;height:68px}.topbar nav{display:none}.top-cta{padding:10px 12px}.top-cta span{margin-left:4px}.brand{font-size:14px}.hero{display:flex;flex-direction:column}.hero-copy{padding:66px 7% 35px;min-height:480px}.hero-art{min-height:365px}.hero-sun{width:35%;top:12%}.pavilion{width:29%;height:72%;bottom:8%;left:23%}.hero-meta{padding-top:30px}.art-caption{bottom:22px}.intro-band{min-height:90px;padding:20px 7%}.intro-band p{font-size:18px}.band-index{display:none}.cities-section{padding:70px 5%}.section-heading{display:block}.section-heading>p{margin-top:18px}.city-controls{align-items:stretch;flex-direction:column;gap:7px}.city-tabs{gap:22px}.search-wrap{margin:0 0 11px;width:100%}.search-wrap input{width:100%}.guide-panel{grid-template-columns:1fr}.city-visual{min-height:390px}.city-visual::before{width:45%;top:5%}.city-visual::after{height:55%}.visual-character{font-size:190px}.visual-name{font-size:45px}.guide-content{padding:30px 6%}.guide-content h3{font-size:38px}footer{padding:30px 7%;flex-wrap:wrap}footer>span:nth-child(2){display:none}}
@media(max-width:420px){h1{font-size:55px}.top-cta{font-size:10px}.brand-mark{width:28px;height:28px}.guide-columns{grid-template-columns:1fr}.city-visual{min-height:350px}.visual-character{font-size:150px}.visual-name{font-size:39px}}

/* Separate food and attraction browsing */
.content-switch{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:7px 0 25px}.content-switch button{border:0;border-bottom:3px solid transparent;background:transparent;color:#84918a;padding:12px 22px 14px 0;margin-right:15px;font-size:13px;font-weight:700}.content-switch button[aria-pressed="true"]{color:var(--red);border-bottom-color:var(--red)}.content-switch button:hover{color:var(--ink)}.explore-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:17px}.explore-heading .guide-kicker{margin-bottom:6px}.explore-heading h4{font-family:'Playfair Display',Georgia,serif;font-size:27px;font-weight:500;letter-spacing:-.035em;margin:0}.explore-heading>p{color:var(--sub);font-size:11px;line-height:1.55;max-width:220px;margin:0}.level-filters{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 17px}.level-filter{border:1px solid var(--line);background:transparent;color:#68776f;padding:7px 11px;font-size:10px;font-weight:700}.level-filter[aria-pressed="true"]{background:var(--green);border-color:var(--green);color:white}.level-filter:hover{border-color:var(--green)}.explore-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.explore-card{background:#f8f6f0;border:1px solid #e1e0d8;padding:16px;min-height:164px}.explore-card h5{font-size:15px;line-height:1.35;margin:13px 0 8px}.explore-card h5 span{font-size:11px;color:#87948d;font-weight:500;white-space:nowrap}.explore-card p{color:var(--sub);font-size:11px;line-height:1.6;margin:0 0 10px}.explore-card a{font-size:10px;color:var(--red);font-weight:700;border-bottom:1px solid #d2a194}.rating-badge,.card-number{font-size:9px;letter-spacing:.1em;font-weight:700;color:var(--red)}.rating-local{color:#548072}.food-card{min-height:145px}.food-card h5{margin-top:18px}.rating-note{font-size:10px;color:#8b968f;line-height:1.55;margin:13px 0 19px}.guide-content .route{margin-top:22px}.guide-content .route h4{margin-bottom:8px}
@media(max-width:980px){.explore-cards{grid-template-columns:1fr}.explore-card{min-height:auto}.explore-heading{display:block}.explore-heading>p{max-width:none;margin-top:8px}}
@media(max-width:700px){.explore-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.explore-heading{display:flex}}
@media(max-width:480px){.explore-cards{grid-template-columns:1fr}.explore-heading{display:block}}

.city-tab{display:inline-block;text-decoration:none}.city-tab:hover,.city-tab:focus-visible{color:var(--red);border-bottom-color:var(--red)}.open-city{display:flex;justify-content:space-between;align-items:center;background:var(--green);color:#fffdf8;padding:13px 17px;font-size:12px;font-weight:700;margin:0 0 20px}.open-city:hover{background:#24473e}.card-image{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#e9ddd0}.explore-card{padding:0;overflow:hidden}.card-body{padding:15px}.card-body h5{margin-top:10px}.food-card .card-body h5{margin-top:10px}.detail-page{padding:38px 5.5% 75px}.back-link{display:inline-block;color:var(--red);font-size:12px;font-weight:700;margin-bottom:38px}.detail-heading{max-width:900px;margin-bottom:33px}.detail-heading .eyebrow{margin-bottom:13px}.detail-heading h1{font-size:clamp(46px,6vw,82px);margin-bottom:12px}.detail-heading>p:last-child{color:var(--sub);font-size:15px;line-height:1.7}.detail-page .guide-panel{grid-template-columns:33% 67%}.detail-page .city-visual{min-height:900px}.detail-page .guide-content{padding:45px 6%}.detail-footnote{font-size:11px;color:#85928a;line-height:1.6;margin:21px 0 0}.detail-page .explore-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:980px){.detail-page .guide-panel{grid-template-columns:1fr}.detail-page .city-visual{min-height:390px}.detail-page .explore-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.detail-page{padding:28px 5% 55px}.detail-page .city-visual{min-height:320px}.detail-page .guide-content{padding:30px 6%}.detail-page .explore-cards{grid-template-columns:1fr}.back-link{margin-bottom:25px}}

.photo-credit{display:block!important;width:max-content;max-width:100%;margin-top:8px;color:#75847a!important;border-bottom:0!important;font-size:9px!important;line-height:1.5;font-weight:500!important}.photo-credit:hover{color:var(--red)!important}.card-image{object-position:center}

/* The homepage is a destination chooser; detailed cards live on city pages. */
.destination-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:-8px 0 25px}.destination-search{display:flex;align-items:center;gap:8px;width:min(100%,390px);min-height:48px;border:1px solid var(--line);background:var(--white);padding:0 14px}.destination-search:focus-within{border-color:var(--red);box-shadow:0 0 0 2px #b9443220}.destination-search input{width:100%;border:0;outline:0;background:transparent;color:var(--ink);font-size:13px}.destination-search input::placeholder{color:#87948d}.destination-search .search-icon{font-size:26px}.destination-count{margin:0;color:var(--sub);font-size:12px;white-space:nowrap}.no-results{border:1px solid var(--line);background:var(--white);min-height:270px}.no-results button{background:var(--green);border:0;color:white;padding:11px 17px;font-size:12px;font-weight:700}.no-results button:hover{background:#24473e}
.destination-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.destination-card{background:var(--white);border:1px solid var(--line);min-width:0;transition:box-shadow .2s,transform .2s}.destination-card:hover{box-shadow:0 18px 35px #263c3020;transform:translateY(-3px)}.destination-link{display:grid;grid-template-columns:43% 57%;min-height:345px}.destination-photo{position:relative;min-height:345px;overflow:hidden;background:#d2c6b6}.destination-photo img{position:absolute;width:100%;height:100%;object-fit:cover;transition:transform .45s}.destination-card:hover .destination-photo img{transform:scale(1.04)}.destination-index{position:absolute;top:20px;left:20px;color:white;background:#203b34a8;padding:7px 9px;font-size:10px;letter-spacing:.12em;font-weight:700}.destination-content{display:flex;flex-direction:column;align-items:flex-start;padding:31px 28px 25px;min-width:0}.destination-eyebrow{display:flex;justify-content:space-between;gap:8px;align-items:center;width:100%;font-size:10px;letter-spacing:.12em;font-weight:700;color:var(--red)}.destination-eyebrow span:last-child{font-size:14px;letter-spacing:0}.destination-content h3{font-size:clamp(34px,3vw,50px);letter-spacing:-.045em;font-weight:500;margin:18px 0 4px}.destination-mood{color:var(--sub);font-family:'Playfair Display',Georgia,serif;font-size:15px;font-style:italic;margin-bottom:25px}.destination-picks{border-top:1px solid var(--line);padding-top:17px;display:flex;flex-direction:column;gap:9px;width:100%;color:#4b5c54;font-size:12px;line-height:1.4}.destination-picks b{font-size:9px;letter-spacing:.12em;color:#a8755e;margin-right:7px}.destination-cta{display:flex;justify-content:space-between;width:100%;border-top:1px solid var(--line);margin-top:auto;padding-top:17px;color:var(--red);font-weight:700;font-size:12px}.destination-credit{padding:0 14px 11px}.destination-credit .photo-credit{margin:0}
@media(max-width:1100px){.destination-grid{grid-template-columns:1fr}.destination-link{grid-template-columns:40% 60%;min-height:300px}.destination-photo{min-height:300px}}
@media(max-width:620px){.destination-grid{gap:17px}.destination-link{grid-template-columns:1fr}.destination-photo{min-height:240px;aspect-ratio:16/9}.destination-content{padding:23px}.destination-content h3{margin-top:11px}.destination-mood{margin-bottom:18px}.destination-cta{margin-top:22px}}
@media(max-width:620px){.destination-toolbar{align-items:stretch;flex-direction:column;gap:8px}.destination-search{width:100%}.destination-count{align-self:flex-end}}

/* Static travel guides */
[hidden]{display:none!important}
.breadcrumbs{font-size:13px;color:var(--sub);margin:0 0 29px}
.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.breadcrumbs li+li::before{content:"/";margin-right:8px;color:#8b968f}
.breadcrumbs a,.itinerary a,.related-guides a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.guide-content h2{font-size:clamp(34px,3.2vw,49px);line-height:1.17;letter-spacing:-.04em;font-weight:500;margin:0 0 14px}
.guide-content .explore-heading h2{font-size:27px;margin:0}
.guide-content .card-body h3{font-family:inherit;font-size:15px;font-weight:700;letter-spacing:0;line-height:1.35;margin:10px 0 8px}
.guide-content .card-body h3 span{font-size:11px;color:#61706b;font-weight:500}
.guide-content .route h2{font-size:22px}
.guide-content .route p{font-size:14px}
.guide-content .explore-section{scroll-margin-top:16px;margin:28px 0}
.guide-jumps{display:flex;flex-wrap:wrap;gap:10px 18px;border-bottom:1px solid var(--line);padding:0 0 15px;font-size:13px;font-weight:700}
.guide-jumps a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
.related-guides{padding:26px 0 0}
.related-guides ul{display:flex;flex-wrap:wrap;gap:10px 24px;padding:0;list-style:none;margin:0}
.related-guides h2{font-size:26px;font-weight:500;margin:0 0 10px}
.itinerary{max-width:760px;margin:auto}
.itinerary .detail-heading{margin-bottom:24px}
.itinerary-photo{margin:0 0 27px}
.itinerary-photo img{display:block;width:100%;aspect-ratio:2/1;object-fit:cover;background:#e9ddd0}
.itinerary section{border-top:1px solid var(--line);padding:23px 0 5px}
.itinerary section h2{font-size:26px;font-weight:500;margin:0 0 8px}
.itinerary section h2 span{font:14px 'DM Sans',Arial,sans-serif;color:var(--sub);white-space:nowrap}
.itinerary section p,.itinerary-return{font-size:15px;line-height:1.8;color:var(--sub);margin:0 0 17px}
.directory-title{font-size:27px;font-weight:500;margin:24px 0 14px}
.country-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.country-card{background:var(--white);border:1px solid var(--line);min-width:0}
.country-card .country-link{display:block}
.country-card .card-image{aspect-ratio:16/9}
.country-card-body{padding:14px 15px 10px}
.country-card-body h4{font-family:'Playfair Display',Georgia,serif;font-size:25px;font-weight:500;margin:4px 0}
.country-card-body p,.country-card-body span{font-size:12px;color:var(--sub);margin-bottom:0}
.country-card .destination-credit{padding:0 15px 12px}
.country-card .country-link:hover h4{color:var(--red)}
.country-directory .section-heading{margin-top:26px}
.destination-toolbar{flex-wrap:wrap}
.destination-toolbar .no-results{flex:0 0 100%;padding:22px;min-height:0}
.destination-toolbar .no-results p{margin:0 0 10px}
@media(max-width:980px){.country-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.country-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}
@media(max-width:380px){.country-card-body h4{font-size:20px}}
.brand-icon{display:block;flex:none}
.destination-content h4{font-family:'Playfair Display',Georgia,serif;font-size:clamp(30px,3vw,46px);line-height:1.1;letter-spacing:-.045em;font-weight:500;margin:18px 0 8px}
.section-heading>h2{font-size:clamp(32px,4vw,52px);font-weight:500}
.designations{display:grid;gap:7px;list-style:none;padding:0;margin:0 0 12px}
.designations li{font-size:11px;line-height:1.45}
.designations .designation{display:inline-block;border:1px solid #c8d7c9;border-radius:4px;padding:3px 6px;color:#315c50;font-size:11px;background:#edf2e8}
.designations .designation-unesco{background:#eceef7;border-color:#cdd3e6;color:#394b7d}
.designations .designation-unesco-tentative{background:#f3eee2;border-color:#e0d5bc;color:#6d5826}
.designations small{display:block;color:var(--sub);font-size:10px;margin-top:2px}
.hero-photos{background:var(--green);display:grid;grid-template-columns:1.2fr 1fr;grid-template-rows:1fr 1fr;gap:3px;min-height:440px}
.hero-photos figure{position:relative;margin:0;min-width:0;min-height:0;overflow:hidden}
.hero-photos figure:first-child{grid-row:span 2}
.hero-photos figure>a{position:absolute;inset:0;display:block}
.hero-photos figure>a::after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#182b25c9)}
.hero-photos img{display:block;width:100%;height:100%;object-fit:cover}
.hero-photos figure>a span{position:absolute;left:14px;bottom:32px;z-index:1;color:#fffdf8;font-size:14px;font-weight:700}
.hero-photos figcaption{position:absolute;left:14px;right:10px;bottom:11px;pointer-events:none}
.hero-photos .photo-credit{color:#fffdf8!important;pointer-events:auto;text-shadow:0 1px 4px #000}

/* Ranked cities and trip ideas */
.city-ranking-source{margin:0 0 20px;color:var(--sub);font-size:13px;line-height:1.5}
.city-ranking-source a{text-decoration:underline;text-underline-offset:3px}
.city-rank{position:absolute;top:12px;left:12px;padding:6px 9px;background:#1c332e;color:#fffdf8;font-size:13px;font-weight:700}
.more-cities{margin-top:24px;border-top:1px solid var(--line)}
.more-cities summary{width:fit-content;padding:15px 20px 15px 0;font-size:15px;font-weight:700;cursor:pointer}
.more-cities summary span{color:var(--sub);font-weight:500}
.more-cities[open] summary{margin-bottom:9px}
#destinations:has(+ .featured-guide){padding-bottom:0}
.featured-guide{margin:55px 5.5% 65px;border-top:1px solid var(--line);padding-top:30px}
.featured-guide h2{font-size:clamp(29px,3vw,40px);font-weight:500;margin:0 0 20px}
.featured-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.featured-itinerary{display:flex;flex-direction:column;min-width:0;background:var(--white);border:1px solid var(--line)}
.featured-itinerary-link{flex:1;display:flex;flex-direction:column}
.featured-itinerary .card-image{aspect-ratio:16/9}
.featured-itinerary-copy{display:flex;flex:1;flex-direction:column;padding:18px 20px 12px}
.featured-itinerary-copy h3{font-size:25px;font-weight:500;margin:6px 0 8px}
.featured-itinerary-copy p{color:var(--sub);font-size:14px;line-height:1.55;margin:0 0 10px}
.featured-itinerary-copy .featured-location{font-size:12px;font-weight:700;margin:0}
.featured-action{margin-top:auto;padding-top:5px;color:var(--red);font-size:13px;font-weight:700}
.featured-itinerary-link:hover .featured-action{text-decoration:underline;text-underline-offset:3px}
.featured-credit{padding:0 20px 12px}
.featured-credit .photo-credit{margin:0}
.site-footer{gap:18px 35px;min-height:0;padding:26px 5.5%}
.site-footer .footer-brand{width:fit-content;gap:9px;color:inherit;font-size:16px}
.site-footer p{margin:7px 0 0;color:#cbdcd6;font-size:13px;line-height:1.45}
.site-footer nav{display:flex;flex-wrap:wrap;gap:12px 22px;font-size:13px}
.site-footer nav a:hover{text-decoration:underline;color:inherit;text-underline-offset:3px}
@media(max-width:700px){
  .featured-guide{margin:36px 5% 42px;padding-top:22px}
  .featured-grid{grid-template-columns:1fr;gap:14px}
  .featured-itinerary .card-image{aspect-ratio:2/1}
  .site-footer{padding:22px 5%;align-items:flex-start}
}

.home-hero {
  min-height: 0;
}
.home-hero .hero-copy {
  justify-content: center;
  min-height: 0;
  padding: 50px 7% 50px 11.2%;
}
.home-hero h1 {
  font-size: clamp(46px, 5.5vw, 86px);
  margin-bottom: 19px;
}
.home-hero .hero-description {
  margin-bottom: 24px;
}
.destination-search-row {
  display: flex;
  width: min(100%, 390px);
}
.destination-search-row .destination-search {
  flex: 1;
  min-width: 0;
}
.destination-search input {
  min-width: 0;
  font-size: 16px;
}
.destination-search input::placeholder {
  color: var(--sub);
}
.home-hero .destination-toolbar {
  align-items: flex-start;
  flex-direction: column;
  width: min(100%, 430px);
  gap: 8px;
  margin: 0 0 17px;
}
.home-hero .destination-search-row {
  width: 100%;
}
.home-hero .destination-count {
  align-self: flex-start;
}
.home-hero .no-results {
  width: 100%;
  padding: 12px;
  justify-items: start;
  text-align: left;
}
.search-submit {
  border: 1px solid var(--red);
  background: var(--red);
  color: white;
  padding: 0 16px;
  font: inherit;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
}
.search-submit:hover {
  background: #963725;
}
.browse-destinations {
  color: var(--green);
  font-size: 14px;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.home-hero + .cities-section {
  padding-top: clamp(38px, 5vw, 76px);
}

.compact-city-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
}
.compact-city-grid .destination-link {
  grid-template-columns: minmax(0, 1fr);
  min-height: 0;
}
.compact-city-grid .destination-photo {
  min-height: 0;
  aspect-ratio: 16 / 9;
}
.compact-city-grid .destination-content {
  padding: 14px 14px 9px;
}
.compact-city-grid .destination-eyebrow span {
  font-size: 11px;
  letter-spacing: .04em;
}
.compact-city-grid h4 {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px;
  width: 100%;
  font-size: clamp(20px, 2vw, 29px);
  overflow-wrap: anywhere;
  margin: 6px 0 0;
}
.compact-city-arrow {
  color: var(--red);
  font: 15px 'DM Sans', sans-serif;
}
.compact-city-grid .city-rank {
  top: 9px;
  left: 9px;
  padding: 4px 7px;
}

@media (max-width: 980px) {
  .compact-city-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 700px) {
  .home-hero .hero-copy {
    padding: 32px 5% 23px;
  }
  .home-hero h1 {
    font-size: clamp(36px, 9vw, 52px);
    margin-bottom: 12px;
  }
  .home-hero .hero-description {
    margin-bottom: 17px;
  }
  .hero-photos {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: 1fr;
    min-height: 146px;
  }
  .hero-photos figure:first-child {
    grid-row: auto;
  }
  .hero-photos figure > a span {
    left: 8px;
    bottom: 47px;
    font-size: 12px;
  }
  .hero-photos figcaption {
    left: 8px;
    right: 5px;
    bottom: 6px;
  }
  .compact-city-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  .compact-city-grid .destination-content {
    padding: 10px 10px 7px;
  }
  .compact-city-grid .destination-credit {
    padding: 0 10px 9px;
  }
}

.language-picker {
  position: relative;
  z-index: 2;
  font-size: 14px;
}
.language-picker summary {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 13px;
  border: 1px solid var(--line);
  background: var(--white);
  font-weight: 700;
  cursor: pointer;
  list-style: none;
  white-space: nowrap;
}
.language-picker summary::-webkit-details-marker {
  display: none;
}
.language-picker summary::after {
  content: "";
  width: 6px;
  height: 6px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
}
.language-picker summary:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 3px;
}
.language-picker ul {
  position: absolute;
  inset: calc(100% + 5px) 0 auto auto;
  min-width: 150px;
  list-style: none;
  padding: 5px;
  margin: 0;
  border: 1px solid var(--line);
  background: var(--white);
  box-shadow: 0 12px 32px #1c332e25;
}
.language-picker li > * {
  display: block;
  padding: 8px 10px;
}
.language-picker a:hover,
.language-picker [aria-current] {
  color: var(--green);
  background: #ebece3;
}
.home-hero .hero-copy {
  min-width: 0;
}
.home-hero h1,
.detail-heading h1 {
  overflow-wrap: anywhere;
}
@media (max-width: 700px) {
  .language-picker summary {
    padding: 8px 11px;
    font-size: 13px;
  }
}

.attraction-card-link {
  display: block;
  width: 100%;
}
.attraction-card-link:focus-visible {
  outline-offset: -3px;
}
.attraction-card-link:hover h3,
.attraction-card-link:focus-visible h3 {
  color: var(--red);
}
.attraction-action {
  display: inline-flex;
  gap: .5em;
  margin-top: 10px;
  color: var(--red);
  font-size: 14px;
  font-weight: 700;
}
.attraction-card-link:hover .attraction-action {
  text-decoration: underline;
  text-underline-offset: 3px;
}
.designations .designation {
  text-decoration: none;
}
.site-shell:has(> .city-detail, > .attraction-detail) {
  overflow: clip;
}
.guide-hero {
  display: grid;
  grid-template-columns: minmax(0, 4fr) minmax(0, 5fr);
  min-height: 340px;
  overflow: hidden;
  border-radius: 14px;
  background: #203c34;
  color: var(--white);
}
.guide-hero .detail-heading {
  align-self: center;
  min-width: 0;
  margin: 0;
  padding: clamp(24px, 4vw, 58px);
}
.guide-hero-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  color: #dcdfbf;
  font-size: 13px;
  font-weight: 700;
}
.guide-hero-meta .rating-badge {
  padding: 4px 8px;
  border: 1px solid #a5b09c;
  border-radius: 4px;
  color: #f1e8c8;
  font-size: 11px;
}
.guide-hero .detail-heading h1 {
  margin: 12px 0;
  color: inherit;
  font-size: clamp(33px, 4.4vw, 60px);
  line-height: 1.12;
  letter-spacing: -.035em;
  text-wrap: balance;
}
.guide-hero .detail-heading > p:last-child {
  max-width: 39ch;
  margin: 0;
  color: #e1e9e1;
  font-size: 16px;
  line-height: 1.65;
}
.guide-hero .visit-local-name {
  margin: 0 0 10px;
  color: #dcdfbf;
  font-size: 14px;
}
.guide-hero .city-cover {
  position: relative;
  margin: 0;
  min-height: 100%;
  background: #314c41;
}
.guide-hero .city-cover img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.guide-hero .city-cover figcaption {
  position: absolute;
  inset: auto 0 0;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 4px 10px;
  padding: 22px 16px 10px;
  background: linear-gradient(transparent, #13231eed);
  color: #fffdf8;
  font-size: 12px;
}
.guide-hero .photo-credit {
  margin: 0 0 0 auto;
  color: #fffdf8 !important;
  font-size: 11px !important;
  text-shadow: 0 1px 4px #000;
}
.guide-hero .photo-credit:hover {
  text-decoration: underline;
}
.reading-guide {
  display: grid;
  grid-template-columns: minmax(11rem, 15rem) minmax(0, 1fr);
  align-items: start;
  gap: clamp(24px, 3.6vw, 54px);
  margin-top: clamp(28px, 4vw, 48px);
}
.city-detail,
.attraction-detail {
  max-width: 1320px;
  margin-inline: auto;
}
.reading-sidebar {
  position: sticky;
  top: 20px;
  max-height: calc(100dvh - 40px);
  overflow: auto;
  scrollbar-width: thin;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--white);
}
.guide-toc summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 15px 17px;
  list-style: none;
  color: var(--green);
  font-weight: 700;
  cursor: pointer;
}
.guide-toc summary::-webkit-details-marker {
  display: none;
}
.guide-toc summary::after {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
}
.guide-toc[open] summary::after {
  transform: rotate(225deg);
}
.guide-toc nav {
  padding: 8px 9px 12px;
  border-top: 1px solid var(--line);
}
.guide-toc ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.toc-group + .toc-group {
  margin-top: 10px;
  border-top: 1px solid var(--line);
  padding-top: 9px;
}
.toc-heading {
  padding: 5px 8px;
  color: var(--ink);
  font-size: 14px;
  font-weight: 700;
}
.guide-toc a {
  display: block;
  margin: 2px 0;
  padding: 7px 9px 7px 12px;
  border-radius: 5px;
  color: #4f6158;
  font-size: 14px;
  line-height: 1.4;
}
.guide-toc a:hover,
.guide-toc a:focus-visible {
  background: #f0f2eb;
}
.guide-toc a[aria-current] {
  color: var(--white);
  background: var(--green);
  font-weight: 700;
}
.guide-toc a:focus-visible,
.guide-toc summary:focus-visible,
.city-detail .level-filter:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: -2px;
}
.guide-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 14px 0 0;
}
.guide-facts > div {
  min-width: 0;
  padding: 13px 15px 15px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--white);
  overflow-wrap: anywhere;
}
.guide-facts dt {
  color: var(--green);
  font-size: 13px;
  font-weight: 700;
}
.guide-facts dd {
  margin: 6px 0 0;
  font-size: 15px;
  line-height: 1.4;
}
.visit-designations {
  padding: clamp(16px, 3vw, 28px);
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--white);
  margin-top: 24px;
}
.visit-section h2,
.visit-designations h2,
.city-detail .explore-heading h2 {
  margin: 0 0 14px;
  color: var(--ink);
  font-size: clamp(26px, 2.9vw, 38px);
  line-height: 1.2;
  font-weight: 500;
}
.reading-section,
.city-detail .explore-section {
  margin: 0 0 34px;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--line);
}
.reading-section > h2 {
  padding-inline-start: 12px;
  border-inline-start: 3px solid var(--red);
}
.reading-section p,
.guide-list {
  margin: 0 0 12px;
  color: #3f4f48;
  font-size: 16px;
  line-height: 1.75;
  max-width: 76ch;
}
.reading-section p:last-child,
.guide-list:last-child {
  margin-bottom: 0;
}
.guide-list {
  padding-inline-start: 1.5em;
}
.guide-list li + li {
  margin-top: 7px;
}
.reading-subsection h3 {
  margin: 23px 0 7px;
  color: #24463d;
  font-size: 19px;
  font-weight: 700;
}
.reading-content [id] {
  scroll-margin-top: 24px;
}
.guide-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  margin: 14px 0;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--white);
}
.guide-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  line-height: 1.55;
}
.guide-table caption {
  padding: 12px 15px;
  text-align: start;
  color: #355448;
  background: #edf1e9;
  font-weight: 700;
}
.guide-table th,
.guide-table td {
  padding: 11px 15px;
  border-top: 1px solid var(--line);
  text-align: start;
  vertical-align: top;
}
.guide-table thead {
  background: #f8f8f1;
  color: var(--green);
}
.guide-table tbody th {
  width: 24%;
  color: var(--ink);
}
.guide-table tbody tr:nth-child(even) {
  background: #f5f5ed;
}
#budget .guide-table tbody td:last-child {
  color: var(--green);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.guide-cell-label {
  display: none;
}
.city-detail .explore-cards {
  gap: 16px;
}
.city-detail .explore-card {
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--white);
}
.city-detail .explore-card:focus-within,
.city-detail .explore-card:hover {
  border-color: #80948a;
}
.city-detail .attraction-card-link {
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 0;
}
.city-detail .card-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  align-items: flex-start;
  padding: 15px 17px 17px;
}
.city-detail .card-body h3 {
  margin: 5px 0 8px;
  color: var(--ink);
  font: 700 17px/1.35 'DM Sans', Arial, sans-serif;
  overflow-wrap: anywhere;
}
.city-detail .card-body h3 span {
  font-size: 13px;
  font-weight: 500;
  color: #52635b;
}
.city-detail .card-body p {
  color: #4f6158;
  font-size: 14px;
}
.city-detail .card-body .rating-badge {
  font-size: 11px;
}
.city-detail .attraction-action {
  margin-top: auto;
  padding-top: 5px;
}
.city-detail .level-filter {
  min-height: 36px;
  padding: 7px 12px;
  border-radius: 5px;
  color: #40584c;
  font-size: 13px;
}
.city-detail .level-filter[aria-pressed="true"] {
  color: white;
}
.visit-return {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin: 22px 0 0;
}
.visit-return a {
  color: var(--red);
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 760px) {
  .guide-hero {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    border-radius: 11px;
  }
  .guide-hero .detail-heading {
    padding: 25px 21px;
  }
  .guide-hero .city-cover {
    min-height: 0;
    aspect-ratio: 16 / 10;
  }
  .guide-hero .detail-heading > p:last-child {
    font-size: 15px;
  }
  .reading-guide {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .reading-sidebar {
    position: static;
    max-height: none;
  }
  .guide-toc summary {
    padding: 14px 16px;
  }
  .guide-toc a {
    padding-block: 10px;
  }
  .guide-table,
  .guide-table caption,
  .guide-table tbody,
  .guide-table tbody tr,
  .guide-table tbody th {
    display: block;
    width: 100%;
  }
  .guide-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }
  .guide-table td {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.9fr);
    gap: 10px;
    padding-block: 9px;
    overflow-wrap: anywhere;
  }
  .guide-table tbody th {
    background: #e6ede3;
    color: var(--green);
  }
  .guide-cell-label {
    display: block;
    color: var(--sub);
    font-weight: 700;
  }
  .guide-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
  .guide-facts > div {
    padding: 11px 12px;
  }
  .reading-section p,
  .guide-list {
    font-size: 15px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html:has(.guide-hero) {
    scroll-behavior: auto;
  }
}
