/* CITY GUIDE — common school/About visual language, scoped to city pages. */
.city-page{max-width:1200px;margin-inline:auto;color:var(--shared-ink)}
.city-page .shared-wrap{max-width:1104px;width:calc(100% - 96px);margin-inline:auto}
.city-page .crumb{margin:0;padding:13px 0;font-size:16px}
body[data-page="city"] .header-action .btn{border-radius:7px;font-size:16px;padding:8px 15px;min-height:40px}
.city-page p{line-height:1.95}.city-page .eyebrow{font-size:16px;font-weight:800;letter-spacing:.09em;color:var(--shared-green)}
.city-hero{background:#fbfaf6;padding:36px 0 38px}
.city-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:38px;align-items:center}
.city-kicker{font-size:16px;color:var(--shared-green);font-weight:700;margin:15px 0 10px}
.city-hero h1{font-size:clamp(30px,3.8vw,46px);line-height:1.5;letter-spacing:-.035em;margin:0 0 22px;color:var(--shared-green);font-weight:800}
.city-hero h1>span{background:linear-gradient(transparent 88%,#f5d340 88%)}
.city-hero-copy>p:not(.city-kicker):not(.city-region):not(.city-tagline){font-size:16px;color:#485a65;margin:0 0 25px}
.city-page .actions{display:flex;gap:12px;flex-wrap:wrap}
.city-hero .actions .btn{font-size:16px;padding:10px 18px}
.city-photo{margin:0;min-width:0;position:relative}
.city-photo img{display:block;width:100%;aspect-ratio:1.58;object-fit:cover;border-radius:3px}
.city-photo figcaption{font-size:16px;text-align:right;color:#52636b;padding-top:5px;line-height:1.6}
.city-hero-mosaic{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end;padding:10px 0}
.city-hero-mosaic .city-photo:first-child{grid-column:1 / 3;margin-right:44px}
.city-hero-mosaic .city-photo:first-child img{aspect-ratio:2.1}
.city-hero-mosaic .city-photo:nth-child(2){grid-column:2;grid-row:2;margin-top:-46px;z-index:1;border:7px solid #fff;background:#fff;box-shadow:0 5px 15px #00453c12;transform:rotate(3deg)}
.city-hero-mosaic .city-photo:nth-child(2) img{aspect-ratio:1.6}
.city-hero-mosaic figcaption{font-size:16px}
.city-mosaic-note{grid-column:1;grid-row:2;font-size:16px;font-weight:700;color:var(--shared-green);margin:0 0 12px}
.city-section-nav{background:var(--shared-green)}
.city-section-nav>.shared-wrap{display:flex;padding:17px 0}
.city-section-nav a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;min-height:61px;border-right:1px solid #84b1af;color:#fff;font-weight:700;text-decoration:none;font-size:16px;padding:4px 10px;text-align:center}
.city-section-nav a:last-child{border-right:0}.city-section-nav .icon{width:26px;height:26px}
.city-section-nav a:hover{background:#ffffff16}
.city-section{padding:46px 0;scroll-margin-top:20px}
.city-section .shared-heading{margin-bottom:25px;gap:18px}
.city-section .section-number{font-size:90px}.city-section .shared-heading h2{font-size:30px;line-height:1.5;letter-spacing:-.03em}
.city-lead{font-size:16px;color:#465765;margin:0 0 26px}.city-overview{font-size:17px;line-height:2.1!important;margin:0;max-width:960px}
.city-cyan{background:#e9f7f9}.city-warm{background:#fbfaf6}
.city-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}
.city-guide-card{border:1px solid #c0dfe2;background:#fff;border-radius:6px;overflow:hidden;display:flex;flex-direction:column}
.city-card-image{position:relative;display:block;overflow:hidden;text-decoration:none}
.city-card-image .city-photo img{aspect-ratio:1.7;border-radius:0;transition:transform .2s}
.city-card-image .city-photo:after{content:"";position:absolute;inset:20% 0 0;background:linear-gradient(transparent,#003b37b5)}
.city-card-image figcaption{position:absolute;top:7px;right:8px;padding:3px 5px;background:#ffffffe6;border-radius:2px;font-size:16px;z-index:1;max-width:90%}
.city-card-name{position:absolute;bottom:17px;left:20px;color:#fff;display:flex;flex-direction:column;gap:1px}
.city-card-name b{font-family:Arial,sans-serif;font-size:28px;letter-spacing:.035em;line-height:1.2}.city-card-name>span{font-size:16px;font-weight:700}
.city-round-arrow{position:absolute;bottom:18px;right:16px;border-radius:50%;width:30px;height:30px;background:white;color:var(--shared-green);display:grid;place-items:center}.city-round-arrow .icon{width:18px;height:18px}
.city-card-image:hover img{transform:scale(1.025)}
.city-card-text{padding:20px;display:flex;flex-direction:column;flex:1;align-items:flex-start}
.city-region{font-size:16px;font-weight:700;color:var(--shared-green)}
.city-card-text h3{font-size:18px;line-height:1.7;margin:9px 0}.city-card-text h3 a{text-decoration:none;color:var(--shared-green)}
.city-card-text>p{font-size:16px;color:#485a65;margin:0 0 18px}
.city-text-link{font-size:16px;font-weight:700;display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--shared-green);margin-top:auto}
.city-text-link .icon{width:17px;height:17px}
.city-table-scroll{overflow:auto;border:1px solid #99ccd2;border-radius:4px;background:#fff}
.city-comparison{border-collapse:collapse;width:100%;min-width:730px;text-align:left;font-size:16px;line-height:1.8}
.city-comparison th,.city-comparison td{padding:17px 19px;border-bottom:1px solid #d7e9e9;vertical-align:top}
.city-comparison thead th{background:var(--shared-green);color:#fff;font-size:16px;font-weight:700}
.city-comparison tbody th{white-space:nowrap;background:#f5fbfb}.city-comparison tbody th a{color:var(--shared-green);font-size:16px}
.city-comparison td a{font-weight:700;color:var(--shared-green)}.city-comparison tr:last-child>*{border-bottom:0}.city-comparison th:last-child{width:170px}
.city-table-hint{font-size:16px;margin:0 0 8px;color:#52636b;display:none}
.city-note{font-size:16px;color:#52636b;margin:17px 0 0;line-height:1.85!important}
.city-panels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px}
.city-panels article{border:1px solid #aad3d9;padding:25px 24px;background:#fff;position:relative;border-radius:3px}
.city-panel-index{font-family:Arial,sans-serif;font-size:28px;font-weight:700;line-height:1;color:var(--shared-orange)}
.city-panels h3{font-size:19px;color:var(--shared-green);margin:15px 0 11px;line-height:1.65}
.city-panels p{font-size:16px;color:#465765;margin:0}
.city-highlight{border-left:3px solid #e3bf24;padding:23px 27px;background:#fff;margin-top:26px}.city-highlight h3{font-size:20px;color:var(--shared-green);margin:0 0 10px}.city-highlight p{font-size:16px;margin:0 0 18px}.city-highlight .btn{font-size:16px!important}
.city-faq-list{max-width:980px;margin:0 auto}.city-faq-list details{border:1px solid #abcdd3;background:#fff;margin:0 0 13px}.city-faq-list summary{display:flex;align-items:center;gap:16px;padding:18px 22px;font-size:16px;font-weight:700;list-style:none;cursor:pointer;background:#f6fbfb}.city-faq-list summary::-webkit-details-marker{display:none}.city-faq-list summary b{color:var(--shared-green);font:700 24px Arial,sans-serif}
.city-faq-plus{position:relative;flex:0 0 15px;height:15px;margin-left:auto}.city-faq-plus:before,.city-faq-plus:after{content:"";position:absolute;background:var(--shared-green);top:7px;left:0;width:15px;height:1px}.city-faq-plus:after{transform:rotate(90deg)}.city-faq-list details[open] .city-faq-plus:after{display:none}.city-faq-list details>p{padding:2px 24px 20px 56px;font-size:16px;color:#465765;margin:12px 0 0}
.city-detail-hero{display:grid;grid-template-columns:42% 1fr;gap:34px;align-items:center}
.city-detail-hero .city-region{margin:18px 0 0}.city-hero .city-name{font-size:clamp(32px,4.6vw,52px);margin:7px 0 10px;letter-spacing:-.02em}
.city-tagline{font-size:22px;line-height:1.7!important;color:var(--shared-green);font-weight:800;margin:14px 0 16px}
.city-tags{display:flex;flex-wrap:wrap;gap:7px;list-style:none;padding:0;margin:0 0 24px}.city-tags li{font-size:16px;padding:5px 10px;border:1px solid #97c4c4;border-radius:20px;color:var(--shared-green);background:#fff}
.city-detail-hero>.city-photo img{aspect-ratio:1.28}.city-insight{display:flex;gap:18px;align-items:flex-start;border-left:3px solid #e3bf24;background:#fbfaf6;padding:22px 25px;margin-top:25px}.city-insight .icon{width:29px;height:29px;flex-shrink:0;color:var(--shared-green);margin-top:5px}.city-insight p{font-size:16px;margin:0;color:var(--shared-green);font-weight:500}
.city-budget-line{display:flex;align-items:center;justify-content:space-between;gap:25px;margin-top:26px}.city-budget-line>div{display:flex;gap:15px;align-items:center}.city-budget-line .icon{width:32px;height:32px;color:var(--shared-green);flex-shrink:0}.city-budget-line p{margin:0;font-size:16px}.city-budget-line strong{display:block;font-size:17px;color:var(--shared-green)}.city-budget-line p>span{display:block}.city-budget-line>.btn{flex-shrink:0;font-size:16px!important}
.city-access-grid{display:grid;grid-template-columns:1fr 1fr;gap:38px}.city-access-grid .city-lead{margin-bottom:0}.city-check-box{border:1px solid #b0d5da;background:#f5fbfc;padding:25px}.city-check-box h3{font-size:17px;display:flex;align-items:center;gap:12px;margin:0 0 18px;color:var(--shared-green)}.city-check-box h3 .icon{width:25px;height:25px;flex-shrink:0}
.city-checks{padding:0;margin:0;list-style:none}.city-checks li{display:flex;align-items:flex-start;gap:10px;font-size:16px;line-height:1.9;margin-top:12px}.city-checks .icon{width:17px;height:17px;flex-shrink:0;color:var(--shared-green);margin-top:4px}
.city-two{grid-template-columns:1fr 1fr}.city-two article{padding:26px 28px}.city-two .city-panel-index{font-size:22px}
.city-school-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.city-school-link{display:grid;grid-template-columns:38% 1fr;align-items:stretch;border:1px solid #b8dadd;border-radius:4px;overflow:hidden;text-decoration:none;color:var(--shared-green);min-width:0}.city-school-link>img{width:100%;height:100%;min-height:148px;object-fit:cover}.city-school-link>span{padding:19px;display:flex;flex-direction:column;align-items:flex-start;gap:7px}.city-school-link small{font-size:16px}.city-school-link b{font-size:18px;line-height:1.5}.city-school-link>span>span{font-size:16px;display:flex;gap:8px;align-items:center;margin-top:auto;padding-top:5px}.city-school-link .icon{width:16px;height:16px}.city-school-link:hover{background:#f2fbfb;border-color:#4a9697}
.city-school-actions{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:28px}.city-detail-faq{margin-top:32px}
.city-school-consult{display:flex;gap:32px;align-items:center;justify-content:space-between;background:#e9f7f9;padding:30px}.city-school-consult h3{font-size:21px;color:var(--shared-green);margin:0 0 13px}.city-school-consult p{font-size:16px;margin:0;max-width:650px}.city-school-consult>.btn{flex-shrink:0;font-size:16px!important}
.city-sources{padding-block:18px 34px;font-size:16px;color:#52636b}.city-sources summary{cursor:pointer;color:var(--shared-green);font-weight:700;padding:10px 0}.city-sources p{font-size:16px;margin:12px 0}.city-sources ul{padding-left:18px}.city-sources li{margin:9px 0}.city-source-link{color:#176d72;text-underline-offset:3px}
.city-closing{text-align:center;padding:42px 0;background:#fbfaf6;border-top:1px solid #deeeee}.city-closing h2{font-size:27px;line-height:1.7;color:var(--shared-green);margin:10px 0 12px}.city-closing p{font-size:16px;color:#52636b;margin:0 0 22px}.city-closing .actions{justify-content:center}.city-closing .btn{min-width:190px}.city-back{display:inline-flex;align-items:center;gap:12px;margin-top:22px;font-size:16px;color:var(--shared-green);text-decoration:none}.city-back .icon{width:16px;height:16px}
.city-route-notice{padding:12px 24px;background:#fff8db;font-size:16px;max-width:1200px;margin:auto}
.city-page a:focus-visible,.city-page summary:focus-visible,.city-table-scroll:focus-visible{outline:3px solid #e8831a;outline-offset:3px}
@media(min-width:761px) and (max-width:1000px){.city-page .shared-wrap{width:calc(100% - 56px)}.city-guide-grid{grid-template-columns:1fr 1fr}.city-hero-grid{gap:20px}.city-mosaic-note{font-size:16px}.city-section .shared-heading h2{font-size:26px}.city-panels{gap:14px}.city-panels article{padding:21px 17px}.city-panels h3{font-size:17px}.city-panels p{font-size:16px}.city-budget-line,.city-school-consult{align-items:flex-start;flex-direction:column}.city-detail-hero{gap:23px}.city-detail-hero>.city-photo img{aspect-ratio:1}.city-tagline{font-size:20px}.city-school-link{grid-template-columns:1fr}.city-school-link>img{height:180px;min-height:0}.city-table-hint{display:block}}
@media(max-width:760px){
 .city-page .shared-wrap{width:calc(100% - 36px)}.city-page .crumb{font-size:16px;padding:11px 0}
 .city-hero{padding:26px 0}.city-hero-grid,.city-detail-hero{grid-template-columns:1fr;gap:24px}.city-kicker{font-size:16px;margin-top:12px}.city-hero h1{font-size:clamp(28px,8vw,38px);line-height:1.5;margin-bottom:18px}.city-hero-copy>p:not(.city-kicker):not(.city-region):not(.city-tagline){font-size:16px;margin-bottom:20px}.city-hero .actions{gap:8px}.city-hero .actions .btn{font-size:16px;padding:10px 14px;flex:1;min-width:0}.city-hero-mosaic{padding:0;max-width:460px;width:100%;margin:auto}.city-mosaic-note{font-size:16px}.city-hero-mosaic .city-photo:first-child{margin-right:35px}.city-hero-mosaic .city-photo:nth-child(2){margin-top:-29px}
 .city-section-nav>.shared-wrap{width:100%;padding:8px 10px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.city-section-nav a{font-size:16px;min-height:68px;padding:8px 3px;gap:6px}.city-section-nav a:nth-child(3n){border-right:0}.city-section-nav a:nth-child(-n+3){border-bottom:1px solid #75a5a3}.city-section-nav a:last-child{border-right:0}.city-hub-hero+.city-section-nav>.shared-wrap{grid-template-columns:repeat(2,1fr)}.city-hub-hero+.city-section-nav a:nth-child(2n){border-right:0}.city-hub-hero+.city-section-nav a:nth-child(3){border-bottom:0;border-right:1px solid #75a5a3}.city-section-nav .icon{height:23px;width:23px}
 .city-section{padding:31px 0}.city-section .shared-heading{gap:10px;margin-bottom:22px;align-items:center}.city-section .section-number{font-size:61px}.city-section .shared-heading h2{font-size:20px;line-height:1.6;letter-spacing:-.04em}.city-section .shared-heading .eyebrow{font-size:16px}.city-section .sunrays{display:none}.city-lead{font-size:16px;margin-bottom:22px}.city-overview{font-size:16px}
 .city-guide-grid{grid-template-columns:1fr;gap:20px}.city-card-image .city-photo img{aspect-ratio:1.8}.city-card-name b{font-size:30px}.city-card-text{padding:20px}.city-card-text h3{font-size:19px}.city-card-text>p{font-size:16px}.city-text-link{font-size:16px}.city-card-image figcaption{font-size:16px}
 .city-table-hint{display:block}.city-comparison th,.city-comparison td{padding:14px 15px}.city-note{font-size:16px;line-height:1.9!important}
 .city-panels,.city-two{grid-template-columns:1fr;gap:15px}.city-panels article{padding:22px}.city-panels h3{font-size:19px;margin:12px 0 10px}.city-panels p{font-size:16px}.city-panel-index{font-size:27px}.city-highlight{padding:20px;margin-top:22px}.city-highlight h3{font-size:18px}.city-highlight p{font-size:16px}.city-highlight .actions{gap:9px}.city-highlight .btn{font-size:16px!important;padding:9px 13px!important}
 .city-hero .city-name{font-size:35px}.city-tagline{font-size:21px;margin:12px 0 14px}.city-tags{margin-bottom:21px}.city-detail-hero .btn{font-size:16px!important}.city-detail-hero>.city-photo img{aspect-ratio:1.5}.city-insight{padding:19px 17px;gap:12px}.city-insight p{font-size:16px}.city-insight .icon{width:24px;height:24px}
 .city-budget-line{display:block;margin-top:24px}.city-budget-line strong{font-size:16px}.city-budget-line p{font-size:16px}.city-budget-line>.btn{margin-top:17px;font-size:16px!important}.city-access-grid{grid-template-columns:1fr;gap:22px}.city-check-box{padding:22px}.city-check-box h3{font-size:17px}.city-checks li{font-size:16px}
 .city-school-grid{grid-template-columns:1fr;gap:14px}.city-school-link{grid-template-columns:36% 1fr}.city-school-link>span{padding:15px}.city-school-link b{font-size:16px}.city-school-link>img{min-height:142px}.city-school-actions{gap:10px;flex-direction:column;align-items:stretch;margin-top:22px}.city-school-actions .btn{font-size:16px!important}.city-school-consult{display:block;padding:23px}.city-school-consult h3{font-size:20px}.city-school-consult p{font-size:16px}.city-school-consult>.btn{margin-top:22px;font-size:16px!important;padding:12px 14px!important;width:100%}
 .city-faq-list summary{font-size:16px;padding:17px 14px;gap:10px}.city-faq-list summary b{font-size:22px}.city-faq-list details>p{padding:0 18px 20px;font-size:16px}.city-detail-faq{margin-top:24px}.city-sources{padding-bottom:25px}.city-sources a{overflow-wrap:anywhere}.city-closing{padding:32px 0}.city-closing h2{font-size:24px}.city-closing p{font-size:16px}.city-closing .actions{gap:9px;flex-wrap:nowrap}.city-closing .btn{font-size:16px!important;min-width:0;flex:1;padding:11px 8px!important;gap:7px}.city-closing .btn .icon{width:20px;height:20px}.city-closing .button-arrow .icon{width:14px;height:14px}
}
@media(prefers-reduced-motion:reduce){.city-card-image img{transition:none}}

.city-page .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.city-page .shared-heading>div{min-width:0}.city-page .shared-heading h2>span{min-width:0;overflow-wrap:break-word}
