.city-wrap{max-width:1120px;margin:0 auto;padding:1.25rem}
.city-hero{padding:8rem 0 2.5rem}
.city-grid{display:grid;grid-template-columns:1fr;gap:1rem}
.city-card{border:1px solid var(--border);border-radius:1.25rem;padding:1.25rem;background:var(--glass-bg)}
.city-kicker{display:inline-flex;gap:.35rem;align-items:center;padding:.35rem .7rem;border-radius:9999px;background:rgba(10,186,181,.12);color:var(--accent-dark);font-size:.8rem;font-weight:700}
.city-faq-item{border-top:1px solid var(--border);padding:.85rem 0}
.city-faq-item summary{font-weight:600;cursor:pointer;color:var(--ink)}
.city-faq-item p{margin-top:.5rem;color:var(--ink-secondary)}
.souvenir-grid{display:grid;grid-template-columns:1fr;gap:1rem}
.souvenir-card{border:1px solid var(--border);border-radius:1.2rem;overflow:hidden;background:var(--glass-bg);text-decoration:none;transition:transform .2s ease,box-shadow .2s ease}
.souvenir-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(0,0,0,.08)}
.souvenir-card-media{position:relative;height:210px;background:#d8eceb}
.souvenir-card-media img{width:100%;height:100%;object-fit:cover}
.souvenir-type{position:absolute;left:.75rem;bottom:.75rem;background:rgba(0,0,0,.58);color:#fff;font-size:.78rem;padding:.22rem .55rem;border-radius:9999px}
.souvenir-card-body{padding:1rem}
.souvenir-card-body h3{margin:0;color:var(--ink);font-size:1.08rem;line-height:1.3}
.souvenir-card-body p{margin:.5rem 0 0;color:var(--ink-secondary);font-size:.94rem;line-height:1.45}
.souvenir-wrap{max-width:1120px;margin:0 auto;padding:1.25rem}
.souvenir-hero{padding-top:7.5rem;display:grid;grid-template-columns:1fr;gap:1rem}
.souvenir-media{border:1px solid var(--border);border-radius:1.2rem;overflow:hidden;background:#d9eceb}
.souvenir-media img{width:100%;height:100%;max-height:500px;object-fit:cover}
.souvenir-content{border:1px solid var(--border);border-radius:1.2rem;padding:1.25rem;background:var(--glass-bg)}
.section{border:1px solid var(--border);border-radius:1rem;padding:1rem;background:var(--glass-bg)}
.grid{display:grid;grid-template-columns:1fr;gap:1rem;margin-top:1rem}
.chips{display:flex;flex-wrap:wrap;gap:.45rem}
.chip{background:rgba(10,186,181,.12);color:var(--accent-dark);padding:.2rem .55rem;border-radius:9999px;font-size:.8rem;font-weight:700}
.souvenir-faq-item{border-top:1px solid var(--border);padding:.85rem 0}
.souvenir-faq-item summary{font-weight:600;cursor:pointer;color:var(--ink)}
.souvenir-faq-item p{margin-top:.5rem;color:var(--ink-secondary)}
.city-index-grid{display:grid;grid-template-columns:1fr;gap:1rem;margin-top:1.5rem}
.city-index-card{border:1px solid var(--border);border-radius:1rem;padding:1rem;background:var(--glass-bg)}
.guide-wrap{max-width:900px;margin:0 auto;padding:6rem 1.25rem 3rem}
.app-promo{border:1px solid var(--border);border-radius:1.2rem;padding:1rem;background:linear-gradient(135deg, rgba(10,186,181,.14), rgba(12,20,39,.04));box-shadow:0 8px 26px rgba(4,18,28,.07)}
.app-promo-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.28rem .62rem;border-radius:9999px;background:rgba(10,186,181,.14);color:var(--accent-dark);font-size:.76rem;font-weight:700}
.app-promo-title{margin:.7rem 0 0;color:var(--ink);font-size:1.2rem;line-height:1.28}
.app-promo-copy{margin:.55rem 0 0;color:var(--ink-secondary);font-size:.95rem;line-height:1.5}
.app-promo-actions{margin-top:.9rem;display:flex;flex-wrap:wrap;gap:.6rem}
@media (min-width:900px){.city-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.souvenir-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.city-index-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:980px){.souvenir-hero{grid-template-columns:1.08fr .92fr}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.blog-orb{position:fixed;z-index:0;pointer-events:none;filter:blur(30px);opacity:.45}
.blog-orb-a{top:90px;left:-110px;width:290px;height:290px;border-radius:9999px;background:radial-gradient(circle at center,rgba(10,186,181,.35),transparent 70%)}
.blog-orb-b{top:320px;right:-120px;width:320px;height:320px;border-radius:9999px;background:radial-gradient(circle at center,rgba(15,130,190,.26),transparent 70%)}
.blog-wrap{position:relative;z-index:1;max-width:1120px;margin:0 auto;padding:6.7rem 1.1rem 3.2rem}
.blog-hero{padding:1.05rem 0 .85rem;max-width:760px}
.blog-hero h1{margin:.3rem 0 0;color:var(--ink);font-size:2rem;line-height:1.08;text-wrap:balance}
.blog-description{color:var(--ink-secondary);margin-top:.75rem;line-height:1.65}
.blog-featured-card{border:1px solid rgba(10,186,181,.24);border-radius:1.25rem;padding:1.25rem;background:linear-gradient(140deg,rgba(10,186,181,.12),rgba(255,255,255,.54));box-shadow:0 16px 44px rgba(6,34,52,.12);margin-top:.55rem}
.blog-featured-card h2{margin:.45rem 0 .55rem;color:var(--ink);font-size:1.5rem;line-height:1.18}
.blog-featured-card h2 a{color:inherit;text-decoration:none}
.blog-featured-card p{margin:0;color:var(--ink-secondary);line-height:1.62}
.blog-featured-card .btn-primary{margin-top:.95rem}
.blog-list-section{margin-top:1.2rem}
.blog-list-title{margin:0 0 .8rem;color:var(--ink);font-size:1.2rem;font-weight:700}
.blog-grid{display:grid;gap:.95rem;grid-template-columns:1fr}
.blog-card{border:1px solid var(--border);border-radius:1.05rem;padding:1rem;background:var(--glass-bg);box-shadow:0 8px 26px rgba(5,24,37,.06);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.blog-card:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(5,24,37,.12);border-color:rgba(10,186,181,.4)}
.blog-card h2{margin:.28rem 0 .58rem;font-size:1.18rem;line-height:1.27}
.blog-card h2 a{color:var(--ink);text-decoration:none}
.blog-card p{margin:0;color:var(--ink-secondary);line-height:1.57}
.blog-read-more{display:inline-flex;align-items:center;margin-top:.78rem;color:var(--accent-dark);font-weight:700;text-decoration:none}
.blog-article{border:1px solid var(--border);border-radius:1.25rem;padding:1.05rem;background:linear-gradient(170deg,rgba(255,255,255,.7),rgba(255,255,255,.45));box-shadow:0 14px 36px rgba(5,24,37,.08)}
.blog-article-hero{display:flex;gap:.55rem;flex-wrap:wrap;align-items:center}
.blog-pill{display:inline-flex;align-items:center;border-radius:9999px;padding:.28rem .62rem;font-size:.72rem;font-weight:700;background:rgba(10,186,181,.15);color:var(--accent-dark)}
.blog-title{margin:.58rem 0 .7rem;color:var(--ink);font-size:1.85rem;line-height:1.08;text-wrap:balance}
.blog-article-layout{display:grid;grid-template-columns:1fr;gap:1rem}
.blog-toc{border:1px solid var(--border);border-radius:.95rem;background:rgba(10,186,181,.05);padding:.82rem .9rem}
.blog-toc-title{margin:0 0 .42rem;font-size:.82rem;font-weight:700;letter-spacing:.02em;color:var(--ink)}
.blog-toc ul{margin:0;padding:0;list-style:none;display:grid;gap:.35rem}
.blog-toc a{text-decoration:none;color:var(--ink-secondary);font-size:.88rem;line-height:1.4}
.blog-toc a:hover{color:var(--accent-dark)}
.blog-content{color:var(--ink-secondary);line-height:1.75;font-size:1.02rem}
.blog-content h2,.blog-content h3,.blog-content h4{color:var(--ink);line-height:1.28;scroll-margin-top:90px}
.blog-content h2{margin-top:1.6rem;margin-bottom:.52rem;font-size:1.46rem}
.blog-content h3{margin-top:1.2rem;margin-bottom:.44rem;font-size:1.18rem}
.blog-content h4{margin-top:1rem;margin-bottom:.4rem;font-size:1.05rem}
.blog-content p{margin:.7rem 0}
.blog-content ul,.blog-content ol{margin:.75rem 0 .95rem;padding-left:1.35rem}
.blog-content li{margin:.34rem 0}
.blog-content a{color:var(--accent-dark);text-underline-offset:2px}
.blog-content blockquote{margin:1rem 0;padding:.75rem .9rem;border-left:3px solid rgba(10,186,181,.45);background:rgba(10,186,181,.08);border-radius:.65rem;color:var(--ink)}
.blog-content pre{margin:1rem 0;padding:.9rem;overflow:auto;border-radius:.72rem;background:#0f1a2b;color:#d6e3ff}
.blog-content code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}
@media (min-width:760px){.blog-wrap{padding-top:7.1rem;padding-left:1.35rem;padding-right:1.35rem}.blog-hero h1{font-size:2.45rem}.blog-featured-card{padding:1.45rem}.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blog-article{padding:1.35rem}.blog-title{font-size:2.3rem}}
@media (min-width:1080px){.blog-article{padding:1.65rem}.blog-article-layout{grid-template-columns:minmax(0,1fr) 280px;gap:1.35rem}.blog-content{grid-column:1}.blog-toc{grid-column:2;align-self:start;position:sticky;top:92px}.blog-title{font-size:2.55rem}}
