/* Shared city previews and destination stories in the approved jade/gold system. */
.city-wrap { width:var(--page-width); margin:0 auto 5rem; overflow-wrap:anywhere; }
.city-intro { margin-bottom:var(--page-intro-gap); }
.city-intro .lead p { margin:0 0 1rem; }
.city-wrap h1 { font:500 var(--type-page-title)/1.12 Georgia,serif; letter-spacing:-.03em; margin:.25em 0; }
.city-wrap h2 { font:500 var(--type-section)/1.16 Georgia,serif; margin:.3em 0 .7em; }
.city-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.3rem; }
.city-grid-overview { grid-template-columns:minmax(0,1fr); gap:1.6rem; }
.city-grid-overview .city-card { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); }
.city-grid-overview .city-card-image img { height:100%; min-height:330px; }
.city-grid-overview .city-card-copy { padding:clamp(1.5rem,3vw,2.4rem); }
.city-grid-overview .city-card-copy .eyebrow { min-height:0; }
.city-card { min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:1.25rem; background:var(--card); }
.city-card-image { display:block; overflow:hidden; }
.city-card-image img { display:block; width:100%; aspect-ratio:3/2; height:auto; object-fit:cover; }
.city-card-copy { padding:1.5rem; }
.city-card-copy .eyebrow { min-height:3.6em; }
.city-card-credit { font-size:.7rem; margin:1.2rem 0 0; }
.city-card h2 { font-size:var(--type-card); line-height:1.2; }
.city-card h2 a { color:var(--ink); text-decoration:none; }
.city-card p:not(.eyebrow) { color:var(--muted); }
.city-link { display:inline-block; margin-top:.5rem; font-weight:700; }
.city-art-note { color:var(--muted); font-size:.8rem; margin:1rem 0 2.5rem; }
.city-breadcrumb { display:flex; gap:.7rem; font-size:.9rem; margin-bottom:1.7rem; }
.city-hero { display:grid; grid-template-columns:minmax(0,1fr); gap:1.4rem; }
.city-hero-intro p { margin:0 0 1rem; }
.city-hero-intro .button { margin-top:.5rem; }
.city-hero figure { margin:0; overflow:hidden; border-radius:1.4rem; background:var(--card); }
.city-hero img { display:block; width:100%; height:clamp(260px,36vw,480px); object-fit:cover; }
.city-wrap figcaption { color:var(--muted); font-size:.75rem; padding:.5rem 1rem; }
.city-about { max-width:850px; padding:3rem 0; overflow-wrap:anywhere; }
.city-criteria { padding-left:1.4rem; }
.city-criteria li { padding-left:.4rem; margin:.9rem 0; }
.city-clinics { max-width:850px; margin:3rem 0; }
.city-clinics-group { border-top:1px solid var(--line); padding:1rem 0; }
.city-clinics-group h3 { font:500 var(--type-card)/1.25 Georgia,serif; margin:.2rem 0 .5rem; }
.city-clinics-group ul { margin:.5rem 0; padding-left:1.4rem; }
.city-clinics-group li { margin:.4rem 0; }
.city-attractions { scroll-margin-top:7rem; }
.attraction { display:grid; grid-template-columns:1.1fr 1fr; margin:1.8rem 0; border-radius:1.3rem; overflow:hidden; background:var(--story-bg); }
.attraction:not(:has(figure)) { grid-template-columns:1fr; }
.attraction figure { margin:0; background:var(--card); }
.attraction img { display:block; width:100%; height:340px; object-fit:cover; }
.attraction-copy { padding:2rem; }
.attraction h3 { font:500 var(--type-subsection)/1.2 Georgia,serif; color:var(--story-heading); margin:.5rem 0; }
.visit-note { font-size:.9rem; border-top:1px solid #cdd7cf; margin-top:1.3rem; }
.city-practical { display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; margin:3rem 0 0; }
.city-practical section { padding:2rem; background:var(--story-bg); border-radius:1.3rem; }
.city-practical h2 { color:var(--story-heading); font-size:var(--type-subsection); }
.city-question { display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:2.5rem; background:var(--story-bg); border-radius:1.4rem; }
.city-question div { max-width:680px; }
.city-question .button { flex-shrink:0; }
.other-cities { margin:4rem 0 2rem; }
.other-cities .city-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.city-wrap a:focus-visible { outline:3px solid var(--jade); outline-offset:4px; }
@media (max-width:900px) { .city-grid { grid-template-columns:minmax(0,1fr); } .city-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); } .city-card-image img { height:100%; } .attraction { grid-template-columns:minmax(0,1fr); } .city-question { align-items:flex-start; flex-direction:column; } }
@media (max-width:900px) { .city-grid-overview .city-card { grid-template-columns:minmax(0,1fr) minmax(0,1fr); } }
@media (max-width:620px) { .city-card,.city-practical,.other-cities .city-grid { grid-template-columns:minmax(0,1fr); } .city-card-image img { height:auto; } .city-question,.attraction-copy,.city-practical section { padding:1.5rem; } .attraction img { height:auto; aspect-ratio:3/2; } }
@media (max-width:620px) { .city-grid-overview .city-card { grid-template-columns:minmax(0,1fr); } .city-grid-overview .city-card-image img { height:auto; min-height:0; } }
@media (max-width:620px) { body:has(.city-clinics) .contact-dock { display:none; } }
