.city-hero .hero-deck { max-width: 760px; }
.city-local .region-1 { background: linear-gradient(145deg, #29335f, #414b7b); }
.city-local .region-2 { background: linear-gradient(145deg, #315f68, #467a70); }
.city-local .region-3 { background: linear-gradient(145deg, #874b42, #aa6750); }
.city-local .region-card { color: #fff; }
.city-local .region-label { color: #f3cd86; }
.city-local .region-card h3, .city-local .radius { color: #fff; }
.city-local .region-card { min-height: 430px; padding-bottom: 118px; }
.city-local .region-number { margin-bottom: 34px; }
.city-local .region-card > p:not(.region-label, .radius) { line-height: 1.58; }
.city-local .radius { padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, .2); line-height: 1.45; }
.city-reality-section { background: #f8f6f1; }
.city-reality-layout { display: grid; grid-template-columns: minmax(250px, .75fr) minmax(0, 1.35fr); gap: clamp(36px, 7vw, 90px); align-items: start; }
.city-reality-layout h2 { max-width: 520px; margin: 6px 0 0; font-family: "Playfair Display", Georgia, serif; font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.06; }
.city-reality-copy { padding: clamp(26px, 4vw, 42px); border-left: 4px solid var(--gold, #cf9d56); border-radius: 0 18px 18px 0; background: #fff; box-shadow: 0 18px 42px rgba(18, 31, 37, .06); }
.city-reality-copy p { margin-top: 0; color: var(--muted); font-size: 1.02rem; line-height: 1.72; }
.city-reality-copy p:last-child { margin-bottom: 0; }
.city-stats-section { color: #fff; background: var(--wine-950); }
.city-stats-section .section-heading { color: #fff; }
.city-stats-section .section-heading > p, .city-stats-section .split-heading > p { color: rgba(255, 255, 255, .76); }
.city-stats-section .kicker { color: #efcb91; }
.stats-panel { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr); gap: 20px; }
.age-stats, .marital-stats { padding: clamp(28px, 4vw, 42px); border: 1px solid rgba(255, 255, 255, .15); border-radius: 22px; background: rgba(255, 255, 255, .07); }
.stats-subhead { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 24px; padding-bottom: 15px; border-bottom: 1px solid rgba(255, 255, 255, .15); }
.stats-subhead span { color: #efcb91; font-size: .75rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.stats-subhead strong { color: rgba(255, 255, 255, .7); font-size: .78rem; }
.age-stat-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.age-stat-grid article { padding: 23px 20px; border-radius: 16px; color: var(--ink); background: #fff; }
.age-stat-grid article > p { margin: 0 0 7px; color: var(--wine-800); font-size: .78rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.age-stat-grid article > strong { display: block; margin-bottom: 22px; font-family: "Playfair Display", Georgia, serif; font-size: clamp(2.2rem, 4vw, 3.25rem); line-height: 1; }
.age-stat-grid dl { display: grid; gap: 8px; margin: 0; }
.age-stat-grid dl div { display: flex; justify-content: space-between; gap: 12px; padding-top: 8px; border-top: 1px solid var(--line); }
.age-stat-grid dt { color: var(--muted); font-size: .8rem; }
.age-stat-grid dd { margin: 0; font-size: .83rem; font-weight: 850; }
.marital-summary { display: grid; grid-template-columns: .82fr 1.18fr; gap: 22px; align-items: center; margin-bottom: 22px; }
.marital-summary > div { padding: 22px; border-radius: 16px; color: var(--ink); background: #efcb91; }
.marital-summary span { display: block; font-size: .78rem; font-weight: 850; line-height: 1.35; text-transform: uppercase; }
.marital-summary strong { display: block; margin-top: 8px; font-family: "Playfair Display", Georgia, serif; font-size: clamp(2rem, 3.5vw, 2.8rem); line-height: 1; }
.marital-summary p { margin: 0; color: rgba(255, 255, 255, .74); font-size: .86rem; }
.marital-stat-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.marital-stat-grid > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 13px 15px; border: 1px solid rgba(255, 255, 255, .12); border-radius: 10px; }
.marital-stat-grid span { color: rgba(255, 255, 255, .76); font-size: .82rem; }
.marital-stat-grid strong { font-size: 1rem; }
.stats-context { display: flex; gap: 10px; margin-top: 20px; padding: 20px 24px; border-left: 4px solid #efcb91; background: rgba(255, 255, 255, .07); }
.stats-context strong { flex: 0 0 auto; }
.stats-context p { margin: 0; color: rgba(255, 255, 255, .76); }
.city-stats-section .source-line { color: rgba(255, 255, 255, .6); }
.city-stats-section .source-line a { color: #efcb91; }
.offline-section { background: #f3eee4; }
.offline-main-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.offline-card { padding: clamp(28px, 4vw, 42px); border: 1px solid rgba(22, 31, 36, .1); border-radius: 20px; background: #fff; }
.offline-card.offline-feature { color: #fff; background: var(--wine-950); grid-row: span 2; }
.offline-type { margin: 0 0 13px; color: var(--wine-800); font-size: .74rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.offline-feature .offline-type { color: #efcb91; }
.offline-card h3 { margin: 0 0 16px; font-family: "Playfair Display", Georgia, serif; font-size: clamp(1.45rem, 2.5vw, 2rem); line-height: 1.15; }
.offline-card p:not(.offline-type) { color: var(--muted); }
.offline-feature p:not(.offline-type) { color: rgba(255, 255, 255, .82); }
.offline-card p:last-of-type { margin-bottom: 0; }
.offline-card a { display: inline-block; margin-top: 22px; color: #fff; font-weight: 800; text-underline-offset: 4px; }
.offline-regions { display: grid; grid-template-columns: minmax(250px, .72fr) minmax(0, 1.5fr); gap: 42px; margin-top: 24px; padding: clamp(30px, 5vw, 52px); border: 1px solid rgba(22, 31, 36, .1); border-radius: 20px; background: #fff; }
.offline-regions-heading h3, .offline-how h3 { margin: 5px 0 13px; font-family: "Playfair Display", Georgia, serif; font-size: clamp(1.55rem, 2.5vw, 2rem); line-height: 1.15; }
.offline-regions-heading > p:last-child { margin-bottom: 0; color: var(--muted); }
.offline-region-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
.offline-region-grid article { padding: 4px 24px; border-left: 1px solid var(--line); }
.offline-region-grid h4 { margin: 0 0 8px; font-family: "Playfair Display", Georgia, serif; font-size: 1.2rem; }
.offline-region-grid p { margin: 0; color: var(--muted); font-size: .87rem; }
.offline-region-grid .offline-place { margin-bottom: 11px; color: var(--wine-800); font-size: .78rem; font-weight: 800; line-height: 1.4; }
.offline-how { display: grid; grid-template-columns: minmax(230px, .7fr) minmax(0, 1.6fr); gap: 42px; margin-top: 24px; padding: clamp(30px, 5vw, 48px); border-radius: 20px; color: #fff; background: var(--wine-950); }
.offline-how .kicker { color: #efcb91; }
.offline-how ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 34px; margin: 0; padding: 0; list-style: none; counter-reset: offline-step; }
.offline-how li { position: relative; padding-left: 42px; counter-increment: offline-step; }
.offline-how li::before { content: counter(offline-step); position: absolute; left: 0; top: -3px; display: grid; width: 28px; height: 28px; border: 1px solid rgba(255, 255, 255, .35); border-radius: 50%; place-items: center; color: #efcb91; font-size: .78rem; font-weight: 850; }
.offline-how strong { display: block; margin-bottom: 5px; }
.offline-how span { display: block; color: rgba(255, 255, 255, .74); font-size: .9rem; line-height: 1.55; }
.date-ideas .idea-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.date-ideas .idea-grid article { display: flex; overflow: hidden; flex-direction: column; padding: 0; }
.date-image { position: relative; overflow: hidden; aspect-ratio: 16 / 8.7; margin: 0; background: #e8e0d4; }
.date-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.date-ideas .idea-grid article:hover .date-image img { transform: scale(1.025); }
.date-image figcaption { position: absolute; right: 12px; bottom: 12px; padding: 5px 8px; border-radius: 6px; color: #fff; background: rgba(18, 23, 31, .72); font-size: .67rem; font-weight: 750; }
.date-idea-copy { display: flex; flex: 1; flex-direction: column; padding: clamp(28px, 4vw, 40px); }
.date-ideas .idea-icon { margin-bottom: 25px; }
.date-ideas .idea-grid h3 { margin-bottom: 12px; font-size: clamp(1.35rem, 2.2vw, 1.7rem); }
.date-ideas .idea-grid p { font-size: .93rem; line-height: 1.62; }
.date-ideas .idea-grid .date-plan { margin-top: 20px; padding-top: 17px; border-top: 1px solid var(--line); }
.date-ideas .date-plan strong { color: var(--ink); }
.image-credit-line { margin: 10px 0 0; color: var(--muted); font-size: .72rem; }
.image-credit-line a { color: var(--wine-800); text-underline-offset: 3px; }
.city-subscription-check { background: #f8f6f1; }
.city-decision-panel { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.3fr); gap: 28px 52px; padding: clamp(30px, 5vw, 56px); border-radius: 24px; background: #fff; box-shadow: 0 18px 44px rgba(18, 31, 37, .07); }
.city-decision-intro h2 { margin: 6px 0 18px; font-family: "Playfair Display", Georgia, serif; font-size: clamp(1.8rem, 3vw, 2.55rem); line-height: 1.08; }
.city-decision-list { display: grid; gap: 18px; margin: 0; padding: 0; list-style: none; }
.city-decision-list li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 15px; }
.city-decision-list li > span { display: grid; width: 32px; height: 32px; border-radius: 50%; place-items: center; color: #fff; background: var(--wine-800); font-weight: 800; }
.city-decision-list strong { display: block; margin-bottom: 4px; }
.city-decision-list p { margin: 0; color: var(--muted); font-size: .92rem; }
.city-decision-panel aside { padding: 24px 28px; border-left: 4px solid var(--gold); border-radius: 12px; background: var(--cream); grid-column: 1 / -1; }
.city-decision-panel aside strong { font-family: "Playfair Display", Georgia, serif; font-size: 1.25rem; }
.city-decision-panel aside ul { display: grid; margin: 14px 0 0; padding-left: 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 28px; }
.city-month-plan { background: #f3eee4; }
.month-plan-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.month-plan-grid article { padding: clamp(26px, 4vw, 38px); border: 1px solid rgba(22, 31, 36, .1); border-radius: 20px; background: #fff; }
.month-plan-grid article > span { display: inline-block; margin-bottom: 13px; color: var(--wine-800); font-size: .75rem; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.month-plan-grid h3 { margin: 0 0 13px; font-family: "Playfair Display", Georgia, serif; font-size: clamp(1.4rem, 2.3vw, 1.85rem); }
.month-plan-grid p:last-child { margin-bottom: 0; }
.weather-note { display: flex; gap: 14px; align-items: baseline; margin-top: 26px; padding: 20px 24px; border-left: 4px solid var(--gold, #cf9d56); background: #fff; }
.weather-note p { margin: 0; }
.conversation-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.conversation-grid article { position: relative; padding: 28px 28px 28px 72px; border-radius: 18px; background: #fff; border: 1px solid rgba(22, 31, 36, .11); }
.conversation-grid article > span { position: absolute; left: 24px; top: 28px; color: var(--wine-800, #4f4775); font-weight: 800; }
.conversation-grid h3 { margin: 0 0 8px; }
.conversation-grid p { margin: 0; }
.city-purpose { background: #f8f6f1; }
.city-purpose .wrap { display: flex; gap: 40px; align-items: center; justify-content: space-between; }
.city-purpose .wrap > div { max-width: 820px; }
.city-purpose h2 { font-family: "Playfair Display", Georgia, serif; font-size: clamp(1.8rem, 4vw, 2.7rem); margin: 5px 0 12px; }
.city-link-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.city-link-grid a { display: flex; min-height: 110px; flex-direction: column; justify-content: space-between; padding: 22px; border: 1px solid rgba(22, 31, 36, .13); border-radius: 16px; background: #fff; color: inherit; text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.city-link-grid a:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(18, 31, 37, .09); }
.city-link-grid strong { font-family: var(--font-display); font-size: 1.25rem; }
.city-link-grid span { color: var(--wine-800, #4f4775); font-weight: 700; }
.nearby-section { background: #f8f6f1; }
@media (max-width: 880px) {
  .city-local .region-card { min-height: 0; padding-bottom: 112px; }
  .stats-panel, .offline-regions, .offline-how, .city-decision-panel, .month-plan-grid, .conversation-grid, .city-reality-layout { grid-template-columns: 1fr; }
  .offline-region-grid { grid-template-columns: 1fr; }
  .offline-region-grid article { padding: 18px 0; border-top: 1px solid var(--line); border-left: 0; }
  .city-decision-panel aside ul { grid-template-columns: 1fr; }
  .city-link-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .city-purpose .wrap { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 560px) {
  .age-stat-grid, .marital-summary { grid-template-columns: 1fr; }
  .stats-subhead, .stats-context { align-items: flex-start; flex-direction: column; }
  .marital-stat-grid { grid-template-columns: 1fr; }
  .offline-main-grid, .offline-how ol, .date-ideas .idea-grid { grid-template-columns: 1fr; }
  .offline-card.offline-feature { grid-row: auto; }
  .city-link-grid { grid-template-columns: 1fr; }
  .weather-note { display: block; }
  .conversation-grid article { padding-left: 58px; }
}
