/* Scoped city directory components; the existing shared header is unchanged. */
.cities-skip { position:absolute;left:16px;top:-100px;padding:12px 18px;background:#fff;color:var(--maroon);z-index:9999; }
.cities-skip:focus { top:12px; }
.directory-tabs { display:flex;flex-wrap:wrap;gap:10px;margin:0 0 38px; }
.directory-tabs a { padding:12px 22px;border:1px solid var(--maroon);border-radius:8px;font-weight:800;color:var(--maroon);background:#fffdf9; }
.directory-tabs a[aria-current="page"] { color:#fff;background:var(--maroon); }
.directory-tabs a:hover { box-shadow:0 3px 12px rgba(95,36,48,.15); }
.city-directory [hidden] { display:none!important; }
.city-directory-content { background:var(--surface); }
.city-directory .hero-actions { margin-top:28px; }
.city-directory .hero-actions .btn { color:#fff; }
.city-directory .section-heading { max-width:780px; }
.city-search { max-width:680px;margin:0 0 24px; }
.city-search label { display:block;font-weight:800;color:var(--maroon-dark);margin-bottom:8px; }
.city-search input { width:100%;padding:17px 18px;font:inherit;border:1px solid #ad8e7f;background:#fff;border-radius:8px;color:var(--ink); }
.city-directory :is(a,button,input):focus-visible,.directory-tabs a:focus-visible { outline:3px solid var(--green);outline-offset:4px; }
.city-search p { color:var(--muted);font-size:.95rem;margin:8px 0 0; }
.city-country-jumps { display:flex;flex-wrap:wrap;gap:10px;padding-bottom:30px;border-bottom:1px solid var(--line); }
.city-country-jumps a { display:inline-flex;align-items:center;gap:12px;padding:9px 15px;border:1px solid var(--line);border-radius:8px;color:var(--maroon);font-weight:800;background:#fffdf9; }
.city-country-jumps span { font-size:.8rem;background:var(--soft);padding:1px 8px;border-radius:20px; }
.city-country { margin-top:44px;scroll-margin-top:125px; }
.city-country-heading { display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px; }
.city-country-heading h2 { margin:0;color:var(--maroon-dark);font-size:clamp(1.7rem,3vw,2.2rem); }
.city-country-heading a,.city-directory-help .city-contact-link,.city-no-results a { color:var(--green);font-weight:800;text-decoration:underline;text-underline-offset:4px; }
.city-card-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;list-style:none;padding:0;margin:0; }
.city-card-grid li { min-width:0; }
.city-card-grid a { display:flex;flex-direction:column;align-items:flex-start;height:100%;gap:12px;padding:24px;border:1px solid var(--line);border-left:5px solid var(--red);border-radius:8px;background:#fffdf9;box-shadow:0 6px 18px rgba(95,36,48,.06);transition:border-color .15s,box-shadow .15s; }
.city-card-grid a:hover { border-color:var(--maroon);box-shadow:0 8px 24px rgba(95,36,48,.14); }
.city-card-country { color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800; }
.city-card-name { color:var(--maroon-dark);font-size:1.25rem;font-weight:800;line-height:1.3;overflow-wrap:anywhere; }
.city-card-cta { margin-top:auto;padding-top:8px;color:var(--green);font-weight:800;font-size:.95rem; }
.city-no-results { padding:32px 0; }
.city-no-results button { border:0;padding:0;background:none;color:var(--green);font:inherit;font-weight:800;cursor:pointer;text-decoration:underline; }
.city-directory-help { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center;padding:32px;margin-top:56px;border-radius:12px;background:var(--soft); }
.city-directory-help h2 { color:var(--maroon-dark);margin:0 0 12px;font-size:clamp(1.6rem,3vw,2.2rem); }
.city-directory-help p:last-child { margin-bottom:0;max-width:700px; }
.city-help-actions { display:flex;flex-direction:column;align-items:center;gap:16px; }
.city-directory-help .btn { color:#fff; }
#city-guides { scroll-margin-top:110px; }
@media(max-width:900px) { .city-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.city-directory-help { grid-template-columns:1fr; }.city-help-actions { align-items:flex-start; } }
@media(max-width:540px) { .city-card-grid { grid-template-columns:1fr; }.city-country-heading { align-items:flex-start;flex-direction:column; }.city-directory-help { padding:24px; }.directory-tabs a { flex:1;text-align:center;padding:12px; }.city-directory .page-hero { padding:48px 0; }.city-directory .hero-actions { flex-direction:column;align-items:stretch; }.city-directory .hero-actions a { text-align:center; }.city-country-jumps a { font-size:.9rem; } }
@media(prefers-reduced-motion:reduce) { .city-card-grid a { transition:none; } }
