/* City discovery shares the AGADA ivory, navy and gold design language. */
.city-site{color:var(--text-primary,#0c1e3c);background:var(--bg-primary,#f9f6f1);overflow-x:clip;}
.city-site [hidden]{display:none!important;}
.city-site a,.city-site button,.city-site input,.city-site select,.city-site textarea{touch-action:manipulation;}
.city-site :focus-visible{outline:3px solid var(--accent-gold-dark,#8a6325);outline-offset:4px;}
.city-site a[href^="tel:"],.city-site a[href^="mailto:"]{display:inline-block;direction:ltr;unicode-bidi:isolate;}
.city-nav{display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:1440px;margin-inline:auto;padding:22px clamp(20px,4vw,64px);border-bottom:1px solid var(--border,#e5ddd2);}
.city-brand{max-width:26ch;font-weight:800;font-size:1.05rem;line-height:1.4;}
.city-nav nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;}
.city-nav nav a{display:inline-flex;align-items:center;min-height:44px;font-size:.9rem;font-weight:600;}
.city-nav nav a:hover,.city-footer a:hover{text-decoration:underline;text-underline-offset:5px;}
.city-nav nav a[lang]{padding-inline-start:24px;border-inline-start:1px solid var(--border-dark,#d5ccbe);color:var(--accent-gold-text,#8b6914);}
.city-main{max-width:1240px;margin-inline:auto;padding:32px clamp(20px,4vw,48px) 80px;}
.city-main h1,.city-main h2,.city-main h3{color:var(--text-primary,#0c1e3c);overflow-wrap:anywhere;}
.city-main h2{font-size:clamp(1.5rem,2.5vw,2rem);line-height:1.35;margin-block-end:16px;}
.city-main h3{font-size:1.25rem;line-height:1.5;}
.city-main p{margin-block-end:16px;}
.city-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;font-size:.875rem;color:var(--text-secondary,#1a3a5c);}
.city-breadcrumb a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px;}
.city-hero{padding-block:48px 36px;max-width:960px;}
.city-eyebrow{display:flex;align-items:center;gap:12px;color:var(--accent-gold-text,#8b6914);font-size:.875rem;font-weight:700;line-height:1.6;}
.city-eyebrow::before{content:"";width:32px;height:2px;flex:0 0 32px;background:var(--accent-gold,#c4904a);}
.city-hero h1{max-width:24ch;font-size:clamp(2rem,4.5vw,3.6rem);font-weight:700;line-height:1.2;letter-spacing:-.025em;margin-block:0 24px;text-wrap:balance;}
.city-lead{max-width:70ch;font-size:clamp(1.05rem,1.6vw,1.2rem);line-height:1.8;color:var(--text-secondary,#1a3a5c);}
.city-hero .city-button{margin-block:8px 20px;}
.city-note{font-size:.875rem;line-height:1.75;color:var(--text-secondary,#1a3a5c);overflow-wrap:anywhere;}
.city-note a{text-decoration:underline;text-underline-offset:3px;}
.city-hero>label{display:block;font-size:1rem;font-weight:700;margin-block:30px 10px;}
.city-site input:not([type="checkbox"]),.city-site select,.city-site textarea{width:100%;min-width:0;min-height:48px;border:1px solid var(--border-dark,#d5ccbe);border-radius:6px;background:#fff;color:#0c1e3c;font:inherit;font-size:1rem;line-height:1.5;padding:12px 14px;transition:border-color .15s ease;}
.city-site input::placeholder,.city-site textarea::placeholder{color:#5b6a7b;opacity:1;}
.city-site input:hover,.city-site select:hover,.city-site textarea:hover{border-color:#8b7b64;}
.city-site input:focus,.city-site select:focus,.city-site textarea:focus{border-color:var(--accent-gold-dark,#8a6325);}
.city-site input[type="email"],.city-site input[type="tel"],.city-site input[type="number"]{direction:ltr;text-align:start;}
.city-site textarea{resize:vertical;min-height:112px;}
.city-site #city-search{display:block;max-width:600px;min-height:58px;padding-inline:18px;font-size:1.1rem;border-color:#b2a38c;box-shadow:var(--shadow-sm);}
.city-site #city-search-status{min-height:1.75em;margin-block:12px 0;}
.city-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-block:4px 32px;}
.city-directory article{min-width:0;border:1px solid var(--border,#e5ddd2);background:#fff;border-radius:8px;transition:border-color .15s ease,box-shadow .15s ease;}
.city-directory article:hover,.city-directory article:focus-within{border-color:var(--accent-gold,#c4904a);box-shadow:var(--shadow-md);}
.city-directory article>a{display:flex;flex-direction:column;min-height:174px;height:100%;padding:24px;}
.city-directory h2{font-size:1.35rem;margin-block-end:8px;}
.city-directory p{font-size:.9rem;color:var(--text-secondary,#1a3a5c);margin-block-end:18px;}
.city-directory span{margin-block-start:auto;color:var(--accent-gold-text,#8b6914);font-size:.875rem;font-weight:700;}
.city-types{display:flex;flex-wrap:wrap;gap:8px;padding-block:8px 24px;}
.city-types a{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 18px;border:1px solid var(--border-dark,#d5ccbe);border-radius:6px;background:#fff;font-size:.9rem;font-weight:600;}
.city-types a:hover{border-color:var(--accent-gold-dark,#8a6325);}
.city-types a[aria-current="page"]{background:var(--accent-navy,#0c1e3c);color:#fff;border-color:var(--accent-navy,#0c1e3c);}
.city-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:18px 16px;padding:24px;margin-block:0 48px;background:var(--bg-secondary,#f1eae0);border:1px solid var(--border,#e5ddd2);border-radius:8px;}
.city-filters label{display:flex;flex-direction:column;gap:8px;min-width:0;font-size:.875rem;font-weight:600;}
.city-filters label input,.city-filters label select{font-weight:400;}
.city-filters>a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;font-size:.875rem;text-decoration:underline;text-underline-offset:4px;}
.city-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 22px;border:1px solid var(--accent-navy,#0c1e3c);border-radius:6px;background:var(--accent-navy,#0c1e3c);color:#fff;font:inherit;font-size:.95rem;font-weight:700;line-height:1.5;text-align:center;text-decoration:none;transition:background .15s ease;}
.city-button:hover{background:var(--accent-navy-mid,#182e50);color:#fff;}
.city-button:disabled{cursor:wait;opacity:.7;}
.city-properties{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-block:24px;}
.city-property{display:flex;flex-direction:column;min-width:0;padding:24px;background:#fff;border:1px solid var(--border,#e5ddd2);border-radius:8px;}
.city-card-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-block-end:20px;font-size:.8rem;color:var(--text-secondary,#1a3a5c);}
.city-card-top>span:first-child{padding:4px 10px;border-radius:4px;background:var(--accent-gold-pale,#f5eddb);color:var(--accent-gold-darker,#6e520f);font-weight:600;}
.city-property h3{margin-block-end:22px;}
.city-property h3 a:hover{text-decoration:underline;text-underline-offset:4px;}
.city-property dl{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:16px;margin-block:auto 16px;padding-block:16px;border-block:1px solid var(--border-light,#f0eae2);}
.city-property dt{font-size:.8rem;color:var(--text-secondary,#1a3a5c);margin-block-end:4px;}
.city-property dd{font-size:1.05rem;font-weight:700;overflow-wrap:anywhere;}
.city-property .city-note{font-size:.8rem;margin-block-end:8px;}
.city-text-link{display:inline-flex;align-items:center;min-height:44px;color:var(--accent-gold-text,#8b6914);font-size:.875rem;font-weight:700;}
.city-text-link:hover{text-decoration:underline;text-underline-offset:4px;}
.city-pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px;margin-block:32px 48px;}
.city-pagination a{display:inline-flex;align-items:center;justify-content:center;min-width:80px;min-height:44px;padding:8px 16px;background:#fff;border:1px solid var(--border-dark,#d5ccbe);border-radius:6px;}
.city-pagination span{font-size:.9rem;color:var(--text-secondary,#1a3a5c);}
.city-empty,.city-alert{padding:28px;background:#fff;border:1px solid var(--border,#e5ddd2);border-inline-start:4px solid var(--accent-gold,#c4904a);border-radius:6px;margin-block:24px 40px;}
.city-empty h3{margin-block-end:12px;}
.city-empty p{margin:0;max-width:72ch;}
.city-guide{margin-block:48px;padding-block:32px;border-block:1px solid var(--border-dark,#d5ccbe);}
.city-guide>p,.city-guide ul{max-width:86ch;line-height:1.8;}
.city-guide ul{list-style:disc;padding-inline-start:24px;margin-block:20px;}
.city-guide li{padding-inline-start:4px;margin-block:12px;}
.city-enquiry{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:start;gap:clamp(28px,5vw,72px);margin-block:64px 0;padding:clamp(24px,4vw,48px);background:var(--bg-secondary,#f1eae0);border:1px solid var(--border,#e5ddd2);border-radius:10px;scroll-margin-block-start:24px;}
.city-enquiry>div>p:not(.city-eyebrow){color:var(--text-secondary,#1a3a5c);line-height:1.8;}
.city-enquiry>div>a{min-height:44px;padding-block:8px;font-size:1.2rem;font-weight:700;}
.city-enquiry form{position:relative;min-width:0;background:#fff;padding:clamp(20px,3vw,32px);border:1px solid var(--border,#e5ddd2);border-radius:8px;box-shadow:var(--shadow-sm);}
.city-enquiry form>label:not(.city-consent){display:block;font-size:.9rem;font-weight:600;margin-block:0 8px;}
.city-enquiry form>input,.city-enquiry form>textarea{margin-block-end:18px;}
.city-enquiry form>.city-note{font-size:.8rem;}
.city-enquiry .city-consent{display:flex;align-items:flex-start;gap:12px;min-height:44px;font-size:.875rem;line-height:1.75;margin-block:20px;cursor:pointer;}
.city-consent input[type="checkbox"]{flex:0 0 22px;width:22px;height:22px;margin-block-start:3px;accent-color:var(--accent-navy,#0c1e3c);}
.city-enquiry .city-button{width:100%;}
.city-honeypot{position:absolute;inset-inline-start:-10000px;width:1px;height:1px;overflow:hidden;}
.city-enquiry [aria-busy="true"] input,.city-enquiry [aria-busy="true"] textarea{opacity:.75;cursor:wait;}
#city-form-status:not(:empty){margin-block-start:20px;padding:18px;border-radius:6px;font-size:.95rem;line-height:1.8;overflow-wrap:anywhere;}
#city-form-status[data-enquiry-state="error"],#city-form-status[data-enquiry-state="validation"]{color:#8a1f1f;background:#fff3f1;border:1px solid #e6c1ba;}
#city-form-status[data-enquiry-state="confirmed"]{color:#164b43;background:#edf6f4;border:1px solid #b6d7cf;}
.city-footer{padding:40px clamp(20px,4vw,64px);background:var(--accent-navy,#0c1e3c);color:#fff;line-height:1.8;}
.city-footer>strong,.city-footer>p,.city-footer>nav{max-width:1144px;margin-inline:auto;}
.city-footer>strong{display:block;font-size:1.1rem;margin-block-end:8px;}
.city-footer p{font-size:.9rem;color:#e1e5ec;overflow-wrap:anywhere;}
.city-footer nav{display:flex;flex-wrap:wrap;gap:8px 24px;margin-block-start:20px;}
.city-footer nav a{display:inline-flex;align-items:center;min-height:44px;font-size:.875rem;}
@media(max-width:1050px){
  .city-filters{grid-template-columns:repeat(2,minmax(0,1fr));}
  .city-filters>label:first-of-type,.city-filters>label:last-of-type{grid-column:1/-1;}
  .city-properties{grid-template-columns:repeat(2,minmax(0,1fr));}
  .city-nav{gap:20px;padding-inline:24px;}
  .city-nav nav{gap:8px 16px;}
  .city-nav nav a[lang]{padding-inline-start:16px;}
}
@media(max-width:760px){
  .city-nav{align-items:flex-start;flex-direction:column;gap:12px;padding:20px;}
  .city-brand{max-width:none;font-size:1rem;}
  .city-nav nav{width:100%;justify-content:space-between;gap:8px 12px;}
  .city-nav nav a{font-size:.85rem;}
  .city-main{padding-block:20px 48px;}
  .city-hero{padding-block:28px;}
  .city-hero h1{font-size:clamp(2rem,6.8vw,3rem);letter-spacing:-.015em;}
  .city-directory{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
  .city-directory article>a{padding:20px;min-height:164px;}
  .city-enquiry{grid-template-columns:minmax(0,1fr);gap:24px;margin-block-start:40px;padding:24px;}
  .city-guide{margin-block:32px;}
}
@media(max-width:520px){
  .city-directory,.city-properties{grid-template-columns:minmax(0,1fr);}
  .city-directory article>a{min-height:146px;}
  .city-directory h2{font-size:1.3rem;}
  .city-hero .city-button{width:100%;}
  .city-types{gap:8px;}
  .city-types a{flex:1 1 calc(50% - 8px);padding-inline:12px;}
  .city-filters{gap:16px 12px;padding:20px;margin-block-end:32px;}
  .city-filters>.city-button,.city-filters>a{grid-column:1/-1;}
  .city-enquiry{padding:20px;}
  .city-enquiry form{padding:18px;}
  .city-property{padding:22px;}
  .city-property dl{gap:12px;}
  .city-nav nav a[lang]{padding-inline-start:12px;}
  .city-empty,.city-alert{padding:22px;}
}
@media(prefers-reduced-motion:reduce){
  .city-site *{scroll-behavior:auto;transition:none!important;}
}
