/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.hidden{display:none}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--ink:#071b38;--cream:#f2f0e8;--paper:#fbfaf6;--coral:#d94870;--coral-paper:#b13455;--lime:#3ce0b5;--blue:#2d6bff;--line:#071b3833}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--cream);color:var(--ink);margin:0;font-family:Arial,Helvetica Neue,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%}a:focus-visible{outline:2px solid var(--coral);outline-offset:4px}.nav{border-bottom:1px solid var(--line);z-index:20;-webkit-backdrop-filter:blur(18px);background:#f2f0e8f5;justify-content:space-between;align-items:center;gap:24px;min-height:82px;padding:0 3.5vw;display:flex;position:sticky;top:0}.brand{letter-spacing:.1em;white-space:nowrap;align-items:center;gap:12px;font-size:12px;font-weight:800;display:inline-flex}.brand-mark{background:var(--ink);border-radius:50%;flex:none;width:46px;height:46px;transition:transform .18s;display:block;overflow:hidden}.brand-mark img{object-fit:cover;width:100%;height:100%;display:block}.brand:hover .brand-mark{transform:scale(1.05)}.brand-name em{letter-spacing:.04em;font-family:Georgia,Times New Roman,serif;font-weight:400}.nav-links{letter-spacing:.08em;text-transform:uppercase;gap:22px;margin-left:auto;font-size:11px;font-weight:700;display:flex}.nav-links a:hover{color:var(--blue)}.donate-link{min-height:42px;color:var(--cream);background:var(--ink);border:1px solid var(--ink);letter-spacing:.12em;text-transform:uppercase;justify-content:center;align-items:center;padding:0 18px;font-size:10px;font-weight:800;transition:color .18s,background .18s;display:inline-flex}.donate-link:hover{color:var(--ink);background:var(--lime)}.welcome{flex-direction:column;min-height:100svh;display:flex}.home-hero{color:#fff;isolation:isolate;background:#061831;min-height:clamp(620px,52vw,870px);position:relative;overflow:hidden}.home-hero>img{z-index:-3;object-fit:cover;object-position:center center;width:100%;max-width:none;height:100%;position:absolute;inset:0}.home-hero-shade{z-index:-2;background:linear-gradient(90deg,#020d25d6 0%,#04123066 43%,#0412300d 72%),linear-gradient(#0000 55%,#030e28b8 100%);position:absolute;inset:0}.home-hero-copy{max-width:900px;position:absolute;bottom:110px;left:4vw}.home-hero-copy>p{color:var(--lime);letter-spacing:.18em;text-transform:uppercase;margin:0 0 20px;font-size:10px;font-weight:800}.home-hero-copy h1{letter-spacing:-.075em;text-transform:uppercase;text-wrap:balance;margin:0;font-size:clamp(70px,10vw,160px);font-weight:700;line-height:.78}.home-hero-copy h1 em{text-transform:none;font-family:Georgia,Times New Roman,serif;font-size:.76em;font-weight:400}.home-hero-meta{letter-spacing:.1em;text-transform:uppercase;border-top:1px solid #ffffff7a;justify-content:space-between;align-items:center;gap:24px;padding-top:14px;font-size:10px;font-weight:800;display:flex;position:absolute;bottom:28px;left:4vw;right:4vw}.home-hero-meta a{align-items:center;gap:12px;display:inline-flex}.home-hero-meta a span{color:var(--lime);font-size:17px}.home-buy{color:#fff;background:var(--ink);padding:120px 4vw}.home-section-heading{grid-template-columns:minmax(150px,.55fr) minmax(420px,1.6fr) minmax(240px,.85fr);align-items:end;gap:34px;padding-bottom:66px;display:grid}.home-section-heading .label{color:var(--lime)}.home-section-heading :is(h1,h2){letter-spacing:-.07em;text-transform:uppercase;margin:0;font-size:clamp(58px,7vw,112px);line-height:.83}.home-section-heading :is(h1,h2) em{text-transform:none;font-family:Georgia,Times New Roman,serif;font-size:.8em;font-weight:400}.home-section-heading>p:last-child{color:#ffffffb8;max-width:390px;margin:0;font-family:Georgia,Times New Roman,serif;font-size:18px;line-height:1.5}.buy-grid{border-top:1px solid #ffffff6b;border-left:1px solid #ffffff6b;grid-template-columns:1fr 1fr;display:grid}.buy-card{border-bottom:1px solid #ffffff6b;border-right:1px solid #ffffff6b}.buy-card summary{cursor:pointer;grid-template-columns:50px 1fr 34px;align-items:end;gap:24px;min-height:230px;padding:28px 30px;list-style:none;transition:color .18s,background .18s;display:grid}.buy-card summary::-webkit-details-marker{display:none}.buy-card summary:hover{color:var(--ink);background:var(--lime)}.buy-number{color:var(--lime);letter-spacing:.12em;align-self:start;font-size:10px;font-weight:800}.buy-card summary:hover .buy-number{color:var(--ink)}.buy-title{letter-spacing:-.055em;font-family:Georgia,Times New Roman,serif;font-size:clamp(46px,5.3vw,82px);line-height:.9}.buy-toggle{align-self:center;font-size:38px;font-weight:200;line-height:1;transition:transform .18s}.buy-card[open] .buy-toggle{transform:rotate(45deg)}.buy-card-copy{min-height:160px;color:var(--ink);background:var(--cream);padding:26px 30px 30px 104px}.buy-card-copy p{max-width:480px;margin:0 0 34px;font-family:Georgia,Times New Roman,serif;font-size:20px;line-height:1.45}.buy-card-copy span,.buy-card-copy>a{letter-spacing:.13em;text-transform:uppercase;border-bottom:1px solid;gap:10px;padding-bottom:5px;font-size:9px;font-weight:800;display:inline-flex}.arrival-card-copy{min-height:0;padding:34px clamp(24px,3vw,48px) 42px}.arrival-card-copy .arrival-intro{max-width:620px;margin-bottom:22px;font-size:22px}.arrival-tip{border:1px solid var(--ink);grid-template-columns:110px minmax(0,1fr);gap:20px;padding:18px 20px;display:grid;max-width:none!important;margin:0 0 34px!important;font-family:inherit!important;font-size:13px!important;line-height:1.55!important}.arrival-tip strong{color:var(--coral);letter-spacing:.12em;text-transform:uppercase;font-size:9px;font-weight:800}.arrival-groups{background:#071b384d;border:1px solid #071b384d;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid}.arrival-groups section{background:var(--paper);padding:24px}.arrival-groups h2{min-height:42px;color:var(--coral);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:10px;font-weight:800}.arrival-groups ul{border-top:1px solid #071b3838;margin:0;padding:0;list-style:none}.arrival-groups li{border-bottom:1px solid #071b3838;padding:14px 0;font-size:12px;line-height:1.6}.arrival-sources{flex-wrap:wrap;align-items:center;gap:12px 22px;margin-top:30px;display:flex}.arrival-sources>span{color:var(--coral);letter-spacing:.12em;text-transform:uppercase;border:0;font-size:9px;font-weight:800;display:inline-flex}.arrival-sources a{letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid;padding-bottom:4px;font-size:10px;font-weight:800}.arrival-sources a span{font-size:inherit;border:0;padding:0;display:inline}.welcome-map{background:var(--cream);flex:1;padding:40px 4vw}.welcome-map-frame{background:var(--paper);border:1px solid var(--ink);border-radius:0;width:100%;height:766px;display:block}.areas-map{background:var(--cream);border-bottom:1px solid var(--ink);padding:40px 4vw 58px;scroll-margin-top:82px}.buy-page{color:#fff;background:var(--ink);min-height:100svh}.buy-page-content{min-height:calc(100svh - 82px)}.donate-page{background:var(--lime);min-height:100svh}.donate-page-content{align-content:center;min-height:calc(100svh - 82px)}.home-donate{color:var(--ink);background:var(--lime);grid-template-columns:minmax(170px,.55fr) minmax(0,2fr);gap:50px;padding:110px 4vw;display:grid}.home-donate>div{grid-template-columns:minmax(0,1.5fr) minmax(260px,.7fr);align-items:end;gap:50px;display:grid}.home-donate :is(h1,h2){letter-spacing:-.075em;text-transform:uppercase;grid-row:1/3;margin:0;font-size:clamp(66px,8vw,130px);line-height:.8}.home-donate :is(h1,h2) em{text-transform:none;font-family:Georgia,Times New Roman,serif;font-size:.8em;font-weight:400}.home-donate>div>p{margin:0;font-family:Georgia,Times New Roman,serif;font-size:18px;line-height:1.55}.home-donate>div>a{letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid;justify-self:start;padding-bottom:6px;font-size:10px;font-weight:800}.support-page{min-height:100svh;color:var(--cream);background:var(--ink)}.support-content{padding:96px 4vw 110px}.support-heading{border-bottom:1px solid #f2f0e84d;grid-template-columns:minmax(160px,.5fr) minmax(0,1.5fr) minmax(280px,.7fr);align-items:end;gap:42px;padding-bottom:72px;display:grid}.support-heading .label{color:var(--lime);align-self:start}.support-heading h1{letter-spacing:-.075em;text-transform:uppercase;margin:0;font-size:clamp(64px,7.7vw,126px);line-height:.82}.support-heading h1 em{text-transform:none;font-family:Georgia,Times New Roman,serif;font-size:.8em;font-weight:400}.support-heading-copy{gap:22px;display:grid}.support-heading-copy p{margin:0;font-family:Georgia,Times New Roman,serif;font-size:18px;line-height:1.55}.support-heading-copy span{color:var(--lime);letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:800;line-height:1.5}.support-payment-grid{background:#f2f0e84d;border:1px solid #f2f0e84d;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:72px;display:grid}.support-payment-card{background:var(--paper);min-width:0;color:var(--ink);padding:clamp(24px,3vw,46px)}.support-payment-head{grid-template-columns:44px 1fr;align-items:start;gap:20px;min-height:110px;display:grid}.support-payment-head>span{letter-spacing:.12em;padding-top:8px;font-size:11px;font-weight:800}.support-payment-head p{color:#071b389e;letter-spacing:.12em;text-transform:uppercase;margin:0 0 8px;font-size:10px;font-weight:800}.support-payment-head h2{letter-spacing:-.06em;text-transform:uppercase;margin:0;font-size:clamp(40px,4.7vw,74px);line-height:.92}.support-payment-card--wechat .support-payment-head h2{color:#07b964}.support-payment-card--alipay .support-payment-head h2{color:#1677ff}.support-payment-card--paypal .support-payment-head h2{color:#0070ba}.support-qr-frame{border:1px solid var(--ink);background:#fff;overflow:hidden}.support-qr-frame img{aspect-ratio:7/10;object-fit:contain;width:100%;height:auto;display:block}.support-instruction{max-width:520px;min-height:58px;margin:24px 0 0;font-family:Georgia,Times New Roman,serif;font-size:16px;line-height:1.5}.support-note{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:40px;padding:36px 0 0;display:grid}.support-note p{color:#f2f0e8b8;max-width:760px;margin:0;font-size:13px;line-height:1.6}.support-note a{border-bottom:1px solid var(--lime);color:var(--lime);letter-spacing:.12em;text-transform:uppercase;padding-bottom:6px;font-size:10px;font-weight:800}.hero{max-width:1600px;margin:0 auto;padding:28px 4vw 0}.hero img{border:1px solid var(--ink);width:100%;height:auto;display:block}.hero-caption{border-bottom:1px solid var(--line);letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;gap:20px;padding:14px 0;font-size:10px;font-weight:700;display:flex}.hero-caption p{margin:0}.section{padding:110px 7vw}.compact-section{padding-top:0}.label{letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:10px;font-weight:800}.intro{grid-template-columns:1fr 3fr;gap:40px;display:grid}.intro h1{letter-spacing:-.075em;text-transform:uppercase;margin:0;font-size:clamp(64px,10vw,150px);line-height:.82}.lede{max-width:650px;margin:48px 0 0 auto;font-family:Georgia,serif;font-size:clamp(21px,2.3vw,34px);line-height:1.42}.areas-page-head{border-bottom:1px solid var(--ink);padding-bottom:76px}.areas-page-head h1{letter-spacing:-.065em;max-width:950px;margin:28px 0 0;font-family:Georgia,serif;font-size:clamp(64px,9vw,138px);font-weight:400;line-height:.9}.areas-page-intro{color:#0b3738bd;max-width:580px;margin:30px 0 0;font-size:17px;line-height:1.6}.district-list{max-width:1800px;margin:0 auto}.district{border-bottom:1px solid var(--ink);padding-top:76px;padding-bottom:88px}.district-head{grid-template-columns:minmax(0,1.5fr) minmax(260px,.7fr);align-items:end;gap:40px;margin-bottom:32px;display:grid}.district-name{grid-template-columns:42px 72px minmax(0,1fr);align-items:baseline;gap:18px;display:grid}.district-name .number{color:var(--coral-paper);font-size:10px;font-weight:800}.district-name .chinese{font-size:28px;font-weight:800}.district-name h2{letter-spacing:-.05em;margin:0;font-family:Georgia,serif;font-size:clamp(42px,5vw,74px);font-weight:400;line-height:.92}.district-head>p{color:#0b3738d9;max-width:380px;margin:0;font-size:15px;line-height:1.55}.district-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:18px;display:grid}.district-card{border:1px solid var(--line);background:var(--paper);min-width:0;transition:transform .18s,box-shadow .18s;overflow:hidden}.district-card>summary{cursor:pointer;list-style:none;display:block;position:relative}.district-card>summary::-webkit-details-marker{display:none}.district-card>summary:focus-visible{outline:3px solid var(--coral);outline-offset:-3px}.district-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px #0b37381a}.district-card[open]{transform:none;box-shadow:0 14px 30px #0b373814}.district-photo{aspect-ratio:4/3;background-color:#cbd7d5;background-image:var(--photo-image,none), url(/areas-places.png);background-position:center, var(--photo-x) var(--photo-y);border-bottom:1px solid var(--line);background-repeat:no-repeat,no-repeat;background-size:cover,300% 600%;width:100%}.district-card-copy{grid-template-columns:28px minmax(0,1fr) 24px;align-items:start;gap:10px 12px;min-height:128px;padding:16px 18px 18px;display:grid;position:relative}.district-card-number{color:var(--coral-paper);font-size:9px;font-weight:800}.district-card-type{color:#0b37389e;letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:800;line-height:1.35}.district-card-copy h3{letter-spacing:-.035em;grid-column:2/4;margin:0;font-family:Georgia,serif;font-size:clamp(23px,2.1vw,32px);font-weight:400;line-height:1.02}.district-card-toggle{color:var(--coral);text-align:right;grid-area:1/3;font-family:Georgia,serif;font-size:22px;line-height:.7;transition:transform .18s}.district-card[open] .district-card-toggle{transform:rotate(45deg)}.district-card-details{color:var(--ink);background:var(--paper);border-top:1px solid var(--line);padding:20px 18px 22px}.district-card-intro{color:var(--ink);margin:0;font-family:Georgia,serif;font-size:19px;line-height:1.42}.district-card-facts{gap:12px;margin-top:20px;display:grid}.district-card-facts p,.district-card-tip{color:#0b3738d9;margin:0;font-size:15px;line-height:1.6}.district-card-facts strong,.district-card-tip strong{color:var(--ink);letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px;font-size:10px;font-weight:800;display:block}.district-card-tip{background:#0b373809;border:1px solid #0b373826;margin-top:18px;padding:14px}.district-card-details>a{color:var(--ink);letter-spacing:.08em;text-underline-offset:4px;text-transform:uppercase;gap:8px;margin-top:18px;font-size:11px;font-weight:800;text-decoration-thickness:1px;display:inline-flex}.district-photo-credit{color:#0b37389e;margin:16px 0 0;font-size:11px;line-height:1.45}.district-photo-credit a{color:inherit;text-underline-offset:3px;text-decoration-thickness:1px}.district-nearby{border-top:1px solid var(--line);grid-template-columns:170px minmax(0,1fr);gap:18px;margin-top:22px;padding-top:18px;display:grid}.district-nearby span{color:var(--coral-paper);letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:800}.district-nearby p{color:#0b3738b8;margin:0;font-family:Georgia,serif;font-size:16px;line-height:1.45}.shekou{background:var(--ink);min-height:720px;color:var(--cream);grid-template-columns:1fr 1.2fr;align-items:center;gap:7vw;padding:100px 7vw;display:grid;overflow:hidden}.shekou-mark{color:var(--lime);letter-spacing:-.13em;opacity:.96;font-size:clamp(180px,25vw,400px);font-weight:900;line-height:.7}.shekou-copy .label{color:var(--lime)}.shekou-copy h2,.shekou-copy h1{letter-spacing:-.07em;text-transform:uppercase;margin:34px 0;font-size:clamp(60px,8vw,120px);line-height:.82}.shekou-page{min-height:calc(100svh - 72px)}.shekou-sections{min-height:calc(100svh - 192px)}.shekou-section-grid{border-top:1px solid var(--ink);border-left:1px solid var(--line);grid-template-columns:repeat(4,1fr);display:grid}.mount-blue-card{background:var(--paper);border-right:1px solid var(--line);border-bottom:1px solid var(--ink);grid-column:1/-1}.mount-blue-card summary{cursor:pointer;list-style:none}.mount-blue-card summary::-webkit-details-marker{display:none}.mount-blue-card summary:focus-visible{outline:3px solid var(--coral);outline-offset:-3px}.mount-blue-photo{aspect-ratio:2.15;border-bottom:1px solid var(--ink);width:100%;overflow:hidden}.mount-blue-photo img{object-fit:cover;object-position:center bottom;width:100%;max-width:none;height:100%;display:block}.mount-blue-summary{background:var(--lime);grid-template-columns:minmax(120px,.35fr) minmax(0,1.65fr);gap:18px 44px;padding:38px 40px 34px;display:grid}.mount-blue-meta{letter-spacing:.1em;text-transform:uppercase;grid-column:1/-1;justify-content:space-between;gap:20px;font-size:10px;font-weight:800;display:flex}.mount-blue-summary>.label{color:var(--coral);align-self:end}.mount-blue-summary h2{letter-spacing:-.06em;margin:18px 0 0;font-family:Georgia,serif;font-size:clamp(58px,8vw,118px);font-weight:400;line-height:.86}.mount-blue-summary>p:not(.label){grid-column:2;max-width:640px;margin:8px 0 0;font-family:Georgia,serif;font-size:clamp(19px,2vw,28px);line-height:1.45}.mount-blue-toggle{letter-spacing:.1em;text-transform:uppercase;border-top:1px solid;grid-column:2;justify-content:space-between;align-items:center;gap:20px;margin-top:18px;padding-top:18px;font-size:10px;font-weight:800;display:flex}.mount-blue-toggle i{border:1px solid;border-radius:50%;place-items:center;width:34px;height:34px;font-family:Arial,sans-serif;font-size:20px;font-style:normal;font-weight:400;transition:transform .18s;display:inline-grid}.mount-blue-card[open] .mount-blue-toggle{color:var(--coral)}.mount-blue-card[open] .mount-blue-toggle i{transform:rotate(45deg)}.mount-blue-details{border-top:1px solid var(--ink);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.mount-blue-details>section{padding:42px 40px}.mount-blue-details>section:nth-of-type(odd){border-right:1px solid var(--ink)}.mount-blue-details>section:nth-of-type(-n+2){border-bottom:1px solid var(--ink)}.mount-blue-overview h3,.mount-blue-prices h3,.mount-blue-rentals h3,.mount-blue-location h3{letter-spacing:-.045em;margin:34px 0 22px;font-family:Georgia,serif;font-size:clamp(32px,3.6vw,54px);font-weight:400;line-height:1}.mount-blue-overview>p:not(.label),.mount-blue-rentals>p:not(.label){margin:16px 0 0;font-size:14px;line-height:1.65}.mount-blue-quick-facts{border-top:1px solid var(--ink);border-left:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:30px;display:grid}.mount-blue-quick-facts>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;justify-content:space-between;gap:20px;min-height:112px;padding:18px;display:flex}.mount-blue-quick-facts span,.mount-blue-price-lead span,.mount-blue-price-lead small,.mount-blue-rent-list span,.mount-blue-management-fee span,.mount-blue-management-fee small{letter-spacing:.08em;text-transform:uppercase;font-size:10px}.mount-blue-quick-facts strong{font-family:Georgia,serif;font-size:24px;font-weight:400}.mount-blue-price-lead{border-top:1px solid var(--ink);border-left:1px solid var(--line);grid-template-columns:1fr 1fr;margin-top:30px;display:grid}.mount-blue-price-lead>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;gap:9px;min-height:160px;padding:22px;display:flex}.mount-blue-price-lead strong,.mount-blue-management-fee strong{margin-top:auto;font-family:Georgia,serif;font-size:clamp(27px,2.7vw,40px);font-weight:400;line-height:1}.mount-blue-rent-list{border-top:1px solid var(--ink);margin-top:30px}.mount-blue-rent-list>div{border-bottom:1px solid var(--line);grid-template-columns:.65fr .8fr 1.2fr;align-items:center;gap:20px;padding:20px 0;display:grid}.mount-blue-rent-list strong{font-family:Georgia,serif;font-size:20px;font-weight:400}.mount-blue-rent-list em{color:var(--coral);text-align:right;font-size:12px;font-style:normal;font-weight:800}.mount-blue-management-fee{background:var(--lime);border:1px solid var(--ink);flex-direction:column;gap:9px;min-height:155px;margin-top:28px;padding:22px;display:flex}.mount-blue-timeline{border-top:1px solid var(--ink);border-left:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));margin-top:34px;display:grid}.mount-blue-timeline>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:130px;padding:18px 16px}.mount-blue-timeline span{color:var(--coral);font-size:10px;font-weight:800}.mount-blue-timeline p{margin:36px 0 0;font-size:11px;line-height:1.45}.mount-blue-details dl{margin:32px 0 0}.mount-blue-details dl>div{border-bottom:1px solid var(--line);grid-template-columns:minmax(120px,.32fr) minmax(0,1fr);gap:28px;padding:22px 0;display:grid}.mount-blue-details dt{color:var(--coral);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:800}.mount-blue-details dd{margin:0;font-family:Georgia,serif;font-size:clamp(17px,1.7vw,23px);line-height:1.45}.mount-blue-composition>ul{gap:0;margin:28px 0 24px;padding:0;list-style:none;display:grid}.mount-blue-composition>ul li{border-bottom:1px solid var(--line);padding:13px 0;font-family:Georgia,serif;font-size:18px}.mount-blue-fees{border-top:1px solid var(--ink);border-left:1px solid var(--line);grid-template-columns:1fr 1fr;margin-top:30px;display:grid}.mount-blue-fees>div{border-right:1px solid var(--line);border-bottom:1px solid var(--line);flex-direction:column;gap:8px;padding:22px;display:flex}.mount-blue-fees span,.mount-blue-fees small{color:var(--ink);letter-spacing:.08em;text-transform:uppercase;font-size:10px}.mount-blue-fees strong{font-family:Georgia,serif;font-size:34px;font-weight:400}.mount-blue-note{background:var(--blue);border-top:1px solid var(--ink);grid-column:1/-1;grid-template-columns:minmax(180px,.35fr) minmax(0,1.65fr);gap:36px;padding:32px 40px;display:grid}.mount-blue-note>p:last-child{max-width:850px;margin:0;font-family:Georgia,serif;font-size:clamp(19px,2.2vw,30px);line-height:1.45}.shekou-feature-card{background:var(--paper);border-right:1px solid var(--line);border-bottom:1px solid var(--ink);grid-column:1/-1}.shekou-feature-card summary{cursor:pointer;background:var(--blue);grid-template-columns:60px minmax(180px,.7fr) minmax(260px,1.3fr) 42px;align-items:center;gap:28px;min-height:230px;padding:34px 40px;list-style:none;display:grid}.shekou-feature-card summary::-webkit-details-marker{display:none}.shekou-feature-card summary:focus-visible{outline:3px solid var(--coral);outline-offset:-3px}.shekou-feature-card summary>span{align-self:start}.shekou-feature-card summary h2{margin:0;font-size:clamp(42px,5vw,72px)}.shekou-feature-card summary p{max-width:600px;font-family:Georgia,serif;font-size:clamp(17px,2vw,24px);line-height:1.5}.shekou-feature-card summary b{border:1px solid var(--ink);border-radius:50%;place-items:center;width:38px;height:38px;font-size:22px;font-weight:400;transition:transform .18s;display:inline-grid}.shekou-feature-card[open] summary b{color:var(--coral);border-color:var(--coral);transform:rotate(45deg)}.shekou-feature-details{border-top:1px solid var(--ink);grid-template-columns:minmax(280px,.7fr) minmax(0,1.3fr);display:grid}.shekou-feature-photo{background:var(--cream);border-bottom:1px solid var(--ink);grid-column:1/-1;margin:0}.shekou-feature-photo img{aspect-ratio:3/2;object-fit:cover;width:100%;display:block}.shekou-feature-intro{border-right:1px solid var(--ink);padding:38px 40px}.shekou-feature-intro h3{letter-spacing:-.045em;margin:38px 0 24px;font-family:Georgia,serif;font-size:clamp(34px,4vw,56px);font-weight:400;line-height:1}.shekou-feature-intro>p:not(.label){max-width:520px;margin:0;font-size:14px;line-height:1.7}.shekou-feature-details>ul{margin:0;padding:0;list-style:none}.shekou-feature-details li{border-bottom:1px solid var(--line);grid-template-columns:minmax(145px,.35fr) minmax(0,1fr);align-items:start;gap:24px;padding:22px 28px;display:grid}.shekou-feature-details li:last-child{border-bottom:0}.shekou-feature-details li strong{font-family:Georgia,serif;font-size:19px;font-weight:400}.shekou-feature-details li p{margin:0;font-size:12px;line-height:1.6}.shekou-feature-card.shekou-restaurants summary{background:var(--blue)}.shekou-feature-placeholder{grid-template-columns:1fr}.shekou-feature-placeholder .shekou-feature-intro{border-right:0;grid-column:1/-1}.shekou-restaurant-grid{border-top:1px solid var(--ink);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.shekou-restaurant-spot{border-right:1px solid var(--ink);min-width:0}.shekou-restaurant-spot:last-child{border-right:0}.shekou-restaurant-photo{border-bottom:1px solid var(--ink);background:var(--cream);overflow:hidden}.shekou-restaurant-photo img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.shekou-restaurant-spot:first-child .shekou-restaurant-photo img{object-position:center 58%}.shekou-restaurant-copy{padding:28px}.shekou-restaurant-meta{color:var(--coral);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:20px;font-size:9px;font-weight:800;display:flex}.shekou-restaurant-copy h3{letter-spacing:-.045em;margin:54px 0 18px;font-family:Georgia,serif;font-size:clamp(34px,3.4vw,54px);font-weight:400;line-height:.98}.shekou-restaurant-lead{min-height:92px;margin:0;font-size:13px;line-height:1.65}.shekou-restaurant-copy ul{border-top:1px solid var(--line);margin:26px 0;padding:0;list-style:none}.shekou-restaurant-copy li{border-bottom:1px solid var(--line);padding:14px 0;font-size:11px;line-height:1.55}.shekou-restaurant-copy dl{margin:0}.shekou-restaurant-copy dl>div{grid-template-columns:88px minmax(0,1fr);gap:16px;padding:10px 0;display:grid}.shekou-restaurant-copy dt{color:var(--coral);letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:800}.shekou-restaurant-copy dd{margin:0;font-size:11px;line-height:1.45}.shekou-section-grid article{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:290px;padding:24px}.shekou-section-grid article:nth-child(3n+1){background:var(--paper)}.shekou-section-grid article:nth-child(3n+2){background:var(--blue)}.shekou-section-grid article:nth-child(3n+3){background:var(--lime)}.shekou-section-grid span{color:var(--coral);font-size:10px;font-weight:800}.shekou-section-grid h2{letter-spacing:-.035em;margin:75px 0 18px;font-family:Georgia,serif;font-size:clamp(25px,2vw,34px);font-weight:400;line-height:1.05}.shekou-section-grid p{margin:0;font-size:13px;line-height:1.6}.shekou-detail{grid-template-columns:1fr 2fr;gap:50px;display:grid}.shekou-detail h2{letter-spacing:-.04em;max-width:800px;margin:0;font-family:Georgia,serif;font-size:clamp(40px,5vw,72px);font-weight:400;line-height:1.05}.shekou-detail div>p{max-width:650px;font-size:17px;line-height:1.7}.shekou-copy>p:not(.label){max-width:610px;font-family:Georgia,serif;font-size:23px;line-height:1.5}.shekou-notes{flex-wrap:wrap;gap:10px;margin-top:42px;display:flex}.shekou-notes span{letter-spacing:.08em;text-transform:uppercase;border:1px solid #f5eedc6b;border-radius:99px;padding:10px 13px;font-size:10px}.essential-grid{border-top:1px solid var(--ink);border-left:1px solid var(--line);grid-template-columns:repeat(3,1fr);display:grid}.essential-grid article{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:310px;padding:28px 24px}.essential-grid span{color:var(--coral);font-size:10px;font-weight:800}.essential-grid h3{margin:90px 0 18px;font-family:Georgia,serif;font-size:26px;font-weight:400}.essential-grid p{margin:0;font-size:13px;line-height:1.6}.phone-plan-card{background:var(--paper);border-right:1px solid var(--line);border-bottom:1px solid var(--ink);grid-column:1/-1}.phone-plan-card summary{cursor:pointer;grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);min-height:420px;list-style:none;display:grid}.phone-plan-card summary::-webkit-details-marker{display:none}.phone-plan-card summary:focus-visible{outline:3px solid var(--coral);outline-offset:-3px}.phone-plan-photo{min-height:420px;overflow:hidden}.phone-plan-photo img{object-fit:cover;width:100%;height:100%;display:block}.phone-plan-summary-copy{border-left:1px solid var(--ink);background:var(--lime);flex-direction:column;min-width:0;padding:36px 42px 34px;display:flex}.phone-plan-summary-copy h2{letter-spacing:-.05em;max-width:760px;margin:80px 0 22px;font-family:Georgia,serif;font-size:clamp(42px,5.2vw,76px);font-weight:400;line-height:.95}.phone-plan-summary-copy>p{max-width:600px;margin:0;font-size:14px;line-height:1.65}.phone-plan-card[open] .living-category-toggle{color:var(--coral)}.phone-plan-card[open] .living-category-toggle i{transform:rotate(45deg)}.phone-plan-details{border-top:1px solid var(--ink);grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);display:grid}.phone-plan-details>div{border-right:1px solid var(--ink);padding:44px 40px}.phone-plan-details h2{letter-spacing:-.05em;max-width:760px;margin:36px 0 28px;font-family:Georgia,serif;font-size:clamp(44px,6vw,82px);font-weight:400;line-height:.95}.phone-plan-details>div>p:not(.label){max-width:720px;margin:18px 0 0;font-size:15px;line-height:1.7}.phone-plan-details ul{flex-wrap:wrap;gap:8px;margin:30px 0;padding:0;list-style:none;display:flex}.phone-plan-details li{border:1px solid var(--ink);border-radius:99px;padding:9px 13px;font-size:10px;font-weight:700}.phone-plan-details small{border-top:1px solid var(--line);opacity:.7;max-width:680px;padding-top:18px;font-size:10px;line-height:1.55;display:block}.phone-plan-details figure{background:var(--blue);margin:0;padding:34px}.phone-plan-details figure img{border:1px solid var(--ink);width:min(100%,420px);margin:0 auto;display:block}.phone-plan-unicom{border-top:1px solid var(--ink);background:var(--paper);grid-column:1/-1;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);display:grid}.phone-plan-unicom-copy{border-right:1px solid var(--ink);padding:44px 40px}.phone-plan-unicom-copy h3{letter-spacing:-.045em;max-width:720px;margin:32px 0 22px;font-family:Georgia,serif;font-size:clamp(38px,4.8vw,70px);font-weight:400;line-height:.98}.phone-plan-unicom-copy>p:not(.label){max-width:690px;margin:0;font-size:14px;line-height:1.7}.phone-plan-unicom-rates{border-top:1px solid var(--ink);border-left:1px solid var(--ink);grid-template-columns:repeat(2,minmax(0,1fr));margin:30px 0;display:grid}.phone-plan-unicom-rates>div{border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);min-height:112px;padding:18px}.phone-plan-unicom-rates dt{color:var(--coral);letter-spacing:.08em;text-transform:uppercase;margin-bottom:28px;font-size:9px;font-weight:800}.phone-plan-unicom-rates dd{margin:0;font-family:Georgia,serif;font-size:clamp(19px,2vw,28px);line-height:1.1}.phone-plan-unicom-copy small{border-top:1px solid var(--line);opacity:.72;max-width:680px;padding-top:18px;font-size:10px;line-height:1.55;display:block}.phone-plan-unicom-photo{background:var(--cream);place-items:center;padding:34px;display:grid}.phone-plan-unicom-photo img{object-fit:contain;border:1px solid var(--ink);width:min(100%,500px);max-height:920px;display:block}.living-guide-page{min-height:calc(100svh - 192px)}.living-category-card{background:var(--paper);border-right:1px solid var(--line);border-bottom:1px solid var(--ink);grid-column:1/-1}.living-category-card summary{cursor:pointer;grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);min-height:420px;list-style:none;display:grid}.living-category-card summary::-webkit-details-marker{display:none}.living-category-card summary:focus-visible{outline:3px solid var(--coral);outline-offset:-3px}.living-category-photo{min-height:420px;overflow:hidden}.living-category-photo img{object-fit:cover;width:100%;height:100%;display:block}.living-category-copy{border-left:1px solid var(--ink);flex-direction:column;padding:36px 42px 34px;display:flex}.living-category-card:nth-of-type(2) .living-category-copy{background:var(--blue)}.living-category-card:nth-of-type(3) .living-category-copy{background:var(--paper)}.living-category-card:nth-of-type(4) .living-category-copy{background:var(--lime)}.living-category-card.visa-guide .living-category-copy{background:var(--paper)}.living-category-card.schools-guide .living-category-copy{background:var(--lime)}.living-category-meta{color:var(--coral);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:20px;font-size:10px;font-weight:800;display:flex}.living-category-copy h2{letter-spacing:-.05em;max-width:760px;margin:80px 0 22px;font-family:Georgia,serif;font-size:clamp(42px,5.2vw,76px);font-weight:400;line-height:.95}.living-category-copy>p{max-width:600px;margin:0;font-size:14px;line-height:1.65}.living-category-toggle{letter-spacing:.1em;text-transform:uppercase;border-top:1px solid;justify-content:space-between;align-items:center;gap:20px;margin-top:auto;padding-top:20px;font-size:10px;font-weight:800;display:flex}.living-category-toggle i{border:1px solid;border-radius:50%;place-items:center;width:34px;height:34px;font-family:Arial,sans-serif;font-size:20px;font-style:normal;font-weight:400;transition:transform .18s;display:inline-grid}.living-category-card[open] .living-category-toggle{color:var(--coral)}.living-category-card[open] .living-category-toggle i{transform:rotate(45deg)}.living-category-details{border-top:1px solid var(--ink);border-left:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.living-category-details article{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:190px;padding:22px}.living-category-details article.has-photo{min-height:0;padding:0}.living-category-item-photo{border-bottom:1px solid var(--line);background:var(--cream);overflow:hidden}.living-category-item-photo img{aspect-ratio:4/3;object-fit:cover;width:100%;display:block}.living-category-item-copy{min-height:165px;padding:22px}.living-category-details span{color:var(--coral);font-size:10px;font-weight:800}.living-category-details h3{letter-spacing:-.035em;margin:66px 0 0;font-family:Georgia,serif;font-size:clamp(22px,2.3vw,34px);font-weight:400;line-height:1.05}.living-category-details article.has-photo h3{margin-top:54px}.memberships-head h1{font-size:clamp(58px,9vw,138px)}.membership-list{max-width:1800px;margin:0 auto}.membership-card{border-top:1px solid var(--ink)}.membership-card:last-child{border-bottom:1px solid var(--ink)}.membership-card>summary{cursor:pointer;grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);min-height:430px;list-style:none;display:grid}.membership-card>summary::-webkit-details-marker{display:none}.membership-card>summary:focus-visible{outline:3px solid var(--coral);outline-offset:-3px}.membership-photo{background-image:url(/memberships-places.jpg);background-position-y:50%;background-repeat:no-repeat;background-size:300%;min-height:430px}.membership-photo-waterfall{background-position-x:0%}.membership-photo-four-seasons{background-position-x:50%}.membership-photo-sams{background-position-x:100%}.membership-summary-copy{border-left:1px solid var(--ink);flex-direction:column;padding:36px 42px 34px;display:flex}.membership-card:first-child .membership-summary-copy{background:var(--lime)}.membership-card:nth-child(2) .membership-summary-copy{background:var(--paper)}.membership-card:nth-child(3) .membership-summary-copy{background:var(--blue)}.membership-meta{letter-spacing:.1em;text-transform:uppercase;justify-content:space-between;gap:20px;font-size:10px;font-weight:800;display:flex}.membership-summary-copy h2{letter-spacing:-.04em;max-width:760px;margin:auto 0 22px;font-family:Georgia,serif;font-size:clamp(42px,5.2vw,76px);font-weight:400;line-height:.98}.membership-summary-copy>p{max-width:580px;margin:0;font-size:15px;line-height:1.6}.membership-toggle{letter-spacing:.1em;text-transform:uppercase;border-top:1px solid;justify-content:space-between;align-items:center;gap:20px;margin-top:34px;padding-top:18px;font-size:10px;font-weight:800;display:flex}.membership-toggle i{border:1px solid;border-radius:50%;place-items:center;width:32px;height:32px;font-family:Arial,sans-serif;font-size:20px;font-style:normal;font-weight:400;line-height:1;transition:transform .18s;display:inline-grid}.membership-card[open] .membership-toggle i{transform:rotate(45deg)}.membership-card[open] .membership-toggle{color:var(--coral)}.membership-details{background:var(--paper);border-top:1px solid var(--ink);grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);display:grid}.membership-details dl{border-right:1px solid var(--ink);margin:0}.membership-details dl>div{border-bottom:1px solid var(--line);grid-template-columns:minmax(130px,.35fr) minmax(0,1fr);gap:28px;padding:25px 34px;display:grid}.membership-details dl>div:last-child{border-bottom:0}.membership-details dt{color:var(--coral);letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:800}.membership-details dd{margin:0;font-family:Georgia,serif;font-size:clamp(18px,2vw,26px);line-height:1.35}.membership-subsections{border-right:1px solid var(--ink)}.membership-subsection{border-bottom:1px solid var(--line)}.membership-subsection:last-child{border-bottom:0}.membership-subsection>summary{cursor:pointer;grid-template-columns:44px minmax(0,1fr) 34px;align-items:center;gap:18px;min-height:112px;padding:22px 34px;list-style:none;display:grid}.membership-subsection>summary::-webkit-details-marker{display:none}.membership-subsection>summary:focus-visible{outline:3px solid var(--coral);outline-offset:-3px}.membership-subsection>summary>span:first-child{color:var(--coral);letter-spacing:.1em;font-size:10px;font-weight:800}.membership-subsection>summary>span:nth-child(2){gap:5px;display:grid}.membership-subsection strong{letter-spacing:-.035em;font-family:Georgia,serif;font-size:clamp(24px,2.7vw,38px);font-weight:400;line-height:1}.membership-subsection small{letter-spacing:.09em;text-transform:uppercase;opacity:.65;font-size:10px;font-weight:800}.membership-subsection>summary i{border:1px solid;border-radius:50%;place-items:center;width:32px;height:32px;font-family:Arial,sans-serif;font-size:20px;font-style:normal;font-weight:400;line-height:1;transition:transform .18s;display:inline-grid}.membership-subsection[open]>summary{color:var(--coral)}.membership-subsection[open]>summary i{transform:rotate(45deg)}.membership-subsection-body{padding:4px 34px 30px 96px}.membership-subsection-body>p{max-width:760px;margin:0;font-family:Georgia,serif;font-size:clamp(18px,2vw,25px);line-height:1.4}.membership-subsection-body ul{gap:8px;margin:22px 0 0;padding:0;list-style:none;display:grid}.membership-subsection-body li{padding-left:18px;font-size:13px;line-height:1.5;position:relative}.membership-subsection-body li:before{background:var(--coral);content:"";border-radius:50%;width:6px;height:6px;position:absolute;top:.65em;left:0}.membership-highlights{padding:34px}.membership-highlights ul{flex-wrap:wrap;gap:9px;margin:30px 0 0;padding:0;list-style:none;display:flex}.membership-highlights li{border:1px solid var(--ink);border-radius:99px;padding:10px 14px;font-size:11px;font-weight:700}.membership-note{border-top:1px solid var(--line);opacity:.7;margin:42px 0 0;padding-top:18px;font-size:11px;line-height:1.55}.membership-evidence{background:var(--cream);border-top:1px solid var(--ink);grid-column:1/-1;margin:0;padding:32px 34px}.membership-evidence img{object-fit:contain;object-position:center top;border:1px solid var(--ink);background:#fff;width:min(100%,960px);max-height:760px;margin:0 auto;display:block}.about{background:var(--coral);grid-template-columns:1fr 2fr;gap:50px;display:grid}.about-copy{max-width:780px}.about .hello{letter-spacing:-.05em;margin:0 0 26px;font-family:Georgia,serif;font-size:clamp(50px,6vw,86px)}.about-page{grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr);align-items:start;gap:34px 56px;min-height:calc(100svh - 192px)}.about-page>.label{grid-column:1/-1}.about-portrait{margin:0}.about-portrait img{aspect-ratio:1;object-fit:cover;border:1px solid var(--ink);width:100%;display:block}.about-portrait figcaption{letter-spacing:.08em;text-transform:uppercase;margin-top:12px;font-size:10px;font-weight:800}.about-copy h1{letter-spacing:-.065em;margin:0 0 35px;font-family:Georgia,serif;font-size:clamp(64px,9vw,130px);font-weight:400;line-height:.82}.about-copy>p:not(.hello){max-width:700px;margin:0;font-size:18px;line-height:1.65}.about-copy>p+p{margin-top:18px}.about-education{border-top:1px solid var(--ink);margin:34px 0 0;padding:0;list-style:none}.about-education li{border-bottom:1px solid #012b2d61;grid-template-columns:120px minmax(0,1fr);gap:20px;padding:16px 0;display:grid}.about-education span{letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:800}.about-education strong{font-family:Georgia,serif;font-size:18px;font-weight:400;line-height:1.35}.contact{border-top:1px solid;align-items:center;gap:20px;margin-top:45px;padding-top:16px;display:inline-flex}.contact span{letter-spacing:.18em;font-size:9px;font-weight:800}.contact strong{font-family:Georgia,serif;font-size:30px;font-weight:400}footer{background:var(--paper);justify-content:space-between;align-items:center;gap:30px;min-height:120px;padding:30px 4vw;font-size:11px;display:flex}footer p{margin:0}footer>a:last-child{text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid;padding-bottom:4px}.subpage-head{border-bottom:1px solid var(--line);grid-template-columns:1fr 2fr;align-items:start;gap:30px 60px;display:grid}.subpage-head h1{letter-spacing:-.075em;text-transform:uppercase;margin:0;font-size:clamp(64px,10vw,150px);line-height:.82}.subpage-head>p:last-child{grid-column:2;max-width:520px;margin:0;font-family:Georgia,serif;font-size:22px;line-height:1.5}.editorial-page{--subsection-accent:var(--lime);--subsection-line:#f2f0e857;background:var(--cream)}.editorial-page :is(.mount-blue-summary,.shekou-feature-card summary,.phone-plan-summary-copy,.living-category-copy,.membership-summary-copy),.editorial-page :is(.living-category-card:nth-of-type(2) .living-category-copy,.living-category-card:nth-of-type(3) .living-category-copy,.living-category-card:nth-of-type(4) .living-category-copy,.living-category-card.visa-guide .living-category-copy,.living-category-card.schools-guide .living-category-copy,.membership-card:first-child .membership-summary-copy,.membership-card:nth-child(2) .membership-summary-copy,.membership-card:nth-child(3) .membership-summary-copy){color:var(--cream);background:var(--ink)}.editorial-page :is(.mount-blue-meta,.mount-blue-summary>.label,.shekou-feature-card summary>span,.living-category-meta,.membership-meta){color:var(--subsection-accent)}.editorial-page :is(.mount-blue-summary h2,.shekou-feature-card summary h2,.phone-plan-summary-copy h2,.living-category-copy h2,.membership-summary-copy h2){letter-spacing:-.055em;font-family:Georgia,Times New Roman,serif;font-weight:400}.editorial-page :is(.mount-blue-toggle,.living-category-toggle,.membership-toggle){border-color:var(--subsection-line)}.editorial-page :is(.mount-blue-toggle i,.living-category-toggle i,.membership-toggle i,.shekou-feature-card summary b){color:var(--subsection-accent);border-color:var(--subsection-accent)}.editorial-page :is(.mount-blue-card[open] .mount-blue-toggle,.phone-plan-card[open] .living-category-toggle,.living-category-card[open] .living-category-toggle,.membership-card[open] .membership-toggle){color:var(--subsection-accent)}.editorial-page :is(.mount-blue-card,.shekou-feature-card,.phone-plan-card,.living-category-card,.membership-card){background:var(--paper);border-color:var(--ink)}.editorial-page :is(.mount-blue-details,.shekou-feature-details,.shekou-restaurant-grid,.phone-plan-details,.living-category-details,.membership-details){color:var(--ink);background:var(--paper)}.editorial-page :is(.mount-blue-details .label,.shekou-feature-intro .label,.phone-plan-details .label,.phone-plan-unicom .label,.membership-highlights .label,.shekou-restaurant-meta,.mount-blue-details dt,.phone-plan-unicom-rates dt,.membership-details dt){color:var(--subsection-accent)}.editorial-page .mount-blue-management-fee,.editorial-page .membership-highlights{color:var(--ink);background:var(--subsection-accent)}.editorial-page .mount-blue-note{color:var(--cream);background:var(--ink)}.editorial-page .phone-plan-details figure{background:var(--ink)}.editorial-page .membership-subsection{border-bottom-color:var(--subsection-line);background:var(--ink)}.editorial-page .membership-subsection>summary{color:var(--cream)}.editorial-page .membership-subsection>summary>span:first-child{color:var(--subsection-accent)}.editorial-page .membership-subsection>summary i{color:var(--subsection-accent);border-color:var(--subsection-accent)}.editorial-page .membership-subsection[open]>summary{color:var(--cream)}.editorial-page .membership-subsection-body{color:var(--ink);background:var(--cream);border-top:1px solid var(--subsection-line)}.editorial-page .membership-subsection-body li:before{background:var(--subsection-accent)}.editorial-page .living-category-details article,.editorial-page .shekou-restaurant-copy,.editorial-page .shekou-section-grid article{color:var(--cream);background:var(--ink);border-color:var(--subsection-line)}.editorial-page .living-category-details span,.editorial-page .shekou-restaurant-meta,.editorial-page .shekou-restaurant-copy dt,.editorial-page .shekou-section-grid span{color:var(--subsection-accent)}.editorial-page .living-category-details :is(article,.living-category-item-photo),.editorial-page .shekou-restaurant-copy :is(ul,li){border-color:var(--subsection-line)}.editorial-page .shekou-section-grid article:nth-child(3n+1),.editorial-page .shekou-section-grid article:nth-child(3n+2),.editorial-page .shekou-section-grid article:nth-child(3n+3){color:var(--cream);background:var(--ink)}.editorial-page .district-card{border-color:var(--ink);background:var(--ink);box-shadow:none}.editorial-page .district-card:hover{box-shadow:0 18px 36px #071b382e}.editorial-page .district-photo{border-bottom-color:var(--subsection-line)}.editorial-page .district-card-copy{color:var(--cream);background:var(--ink)}.editorial-page .district-card-copy span{color:var(--subsection-accent)}.editorial-page :is(.mount-blue-card summary,.shekou-feature-card summary,.phone-plan-card summary,.living-category-card summary,.membership-card>summary,.membership-subsection>summary):focus-visible{outline-color:var(--subsection-accent)}@media (width<=1020px){.welcome-map-frame{height:1226px}}@media (width<=900px){.nav{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 6vw;display:grid}.nav-links{scrollbar-width:none;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;grid-area:2/1/auto/-1;gap:20px;width:100%;margin-left:0;padding-bottom:0;display:flex;overflow-x:auto}.nav-links::-webkit-scrollbar{display:none}.nav-links a{scroll-snap-align:start;flex:none;align-items:center;min-height:44px;display:inline-flex}.donate-link{grid-area:1/2}.home-hero{min-height:720px}.home-hero-copy{bottom:112px;left:6vw}.home-hero-meta{left:6vw;right:6vw}.home-buy{padding:90px 6vw}.home-section-heading{grid-template-columns:1fr;align-items:start;gap:24px;padding-bottom:52px}.home-section-heading>p:last-child{max-width:520px}.buy-card summary{grid-template-columns:38px 1fr 28px;gap:16px;min-height:200px}.buy-card-copy{padding-left:84px}.arrival-card-copy{padding:30px}.arrival-groups{grid-template-columns:1fr}.arrival-groups h2{min-height:0;margin-bottom:18px}.welcome-map,.areas-map{padding:22px 0 18px}.welcome-map-frame{border-left:0;border-right:0}.home-donate{grid-template-columns:1fr;gap:34px;padding:90px 6vw}.home-donate>div{grid-template-columns:1fr;align-items:start;gap:30px}.home-donate :is(h1,h2){grid-row:auto}.support-content{padding:86px 6vw 90px}.support-heading{grid-template-columns:1fr;align-items:start;gap:26px;padding-bottom:54px}.support-heading-copy{max-width:620px}.support-payment-grid{grid-template-columns:1fr;margin-top:54px}.support-payment-card{padding:6vw}.support-note{grid-template-columns:1fr}.support-note a{justify-self:start}.section{padding:80px 6vw}.intro{grid-template-columns:1fr}.lede{margin-left:0}.section-title{display:block}.section-title .label{margin-bottom:20px}.areas-page-head{padding-bottom:60px}.district-head{grid-template-columns:1fr;align-items:start;gap:18px}.district-card-grid{grid-template-columns:1fr 1fr}.district-nearby{grid-template-columns:150px minmax(0,1fr)}.shekou{grid-template-columns:1fr;min-height:auto;padding:90px 6vw}.shekou-mark{font-size:45vw}.shekou-section-grid{grid-template-columns:1fr 1fr}.mount-blue-summary{grid-template-columns:minmax(105px,.3fr) minmax(0,1.7fr);padding:32px}.mount-blue-details{grid-template-columns:1fr}.mount-blue-details>section:nth-child(odd){border-right:0}.mount-blue-details>section{border-bottom:1px solid var(--ink)}.mount-blue-timeline{grid-template-columns:1fr 1fr}.shekou-feature-card summary{grid-template-columns:46px minmax(150px,.55fr) minmax(0,1.45fr) 40px;padding:30px}.shekou-feature-details{grid-template-columns:1fr}.shekou-feature-intro{border-right:0;border-bottom:1px solid var(--ink)}.shekou-restaurant-grid{grid-template-columns:1fr}.shekou-restaurant-spot{border-right:0;border-bottom:1px solid var(--ink);grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);display:grid}.shekou-restaurant-spot:last-child{border-bottom:0}.shekou-restaurant-photo{border-right:1px solid var(--ink);border-bottom:0;min-height:100%}.shekou-restaurant-photo img{aspect-ratio:auto;height:100%}.shekou-restaurant-lead{min-height:0}.essential-grid{grid-template-columns:1fr 1fr}.phone-plan-card summary{grid-template-columns:minmax(250px,.8fr) minmax(0,1.2fr);min-height:360px}.phone-plan-photo{min-height:360px}.phone-plan-summary-copy{padding:30px}.phone-plan-summary-copy h2{margin-top:58px;font-size:clamp(38px,6vw,60px)}.phone-plan-details{grid-template-columns:1fr}.phone-plan-details>div{border-right:0;border-bottom:1px solid var(--ink)}.phone-plan-unicom{grid-template-columns:1fr}.phone-plan-unicom-copy{border-right:0;border-bottom:1px solid var(--ink)}.living-category-card summary{grid-template-columns:minmax(250px,.8fr) minmax(0,1.2fr);min-height:360px}.living-category-photo{min-height:360px}.living-category-copy{padding:30px}.living-category-copy h2{margin-top:58px;font-size:clamp(38px,6vw,60px)}.living-category-details{grid-template-columns:1fr 1fr}.essential-grid article{min-height:250px}.essential-grid h3{margin-top:55px}.membership-card>summary{grid-template-columns:minmax(250px,.8fr) minmax(0,1.2fr);min-height:360px}.membership-photo{min-height:360px}.membership-summary-copy{padding:30px}.membership-summary-copy h2{font-size:clamp(38px,6vw,60px)}.membership-details{grid-template-columns:1fr}.membership-details dl,.membership-subsections{border-right:0}.membership-highlights{border-top:1px solid var(--ink)}.about,.subpage-head{grid-template-columns:1fr}.subpage-head>p:last-child{grid-column:1}.shekou-detail{grid-template-columns:1fr}}@media (width<=560px){.nav{gap:6px;padding:8px 5vw 12px;position:static}.brand{align-items:center;min-height:44px;display:inline-flex}.brand-mark{width:38px;height:38px;font-size:26px}.brand-name{font-size:10px}.donate-link{min-height:38px;padding:0 13px}.nav-links{border-top:1px solid var(--line);border-left:1px solid var(--line);scroll-snap-type:none;grid-area:2/1/auto/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;width:100%;margin:0;padding:0;display:grid;overflow:visible}.nav-links a{text-align:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:center;min-width:0;padding:0 6px;line-height:1.25}.home-hero{min-height:72svh}.home-hero>img{object-position:62% center}.home-hero-shade{background:linear-gradient(#04123033 26%,#020d25e0 100%),linear-gradient(90deg,#020d255c,#0000)}.home-hero-copy{bottom:102px;left:5vw;right:5vw}.home-hero-copy>p{margin-bottom:14px;font-size:9px}.home-hero-copy h1{font-size:17vw}.home-hero-meta{left:5vw;right:5vw}.home-hero-meta>span{display:none}.home-hero-meta a{margin-left:auto}.home-buy{padding:72px 5vw}.home-section-heading{padding-bottom:40px}.home-section-heading :is(h1,h2){font-size:15vw}.home-section-heading>p:last-child{font-size:17px}.buy-grid{grid-template-columns:1fr}.buy-card summary{grid-template-columns:30px minmax(0,1fr) 24px;min-height:164px;padding:22px 20px}.buy-title{font-size:14vw}.buy-card-copy{min-height:0;padding:24px 20px 28px 66px}.buy-card-copy p{font-size:18px}.arrival-card-copy{padding:26px 20px 30px}.arrival-card-copy .arrival-intro{font-size:19px}.arrival-tip{grid-template-columns:1fr;gap:8px}.arrival-groups section{padding:20px}.welcome-map,.areas-map{padding:0 0 12px}.home-donate{gap:28px;padding:70px 5vw}.home-donate :is(h1,h2){font-size:16vw}.home-donate>div>p{font-size:17px}.support-content{padding:68px 5vw 72px}.support-heading{padding-bottom:42px}.support-heading h1{font-size:15vw}.support-heading-copy p{font-size:17px}.support-payment-grid{margin:42px -5vw 0}.support-payment-card{border-left:0;border-right:0;padding:30px 5vw 34px}.support-payment-head{grid-template-columns:34px 1fr;gap:12px;min-height:92px}.support-payment-head h2{font-size:13vw}.support-instruction{min-height:0;font-size:15px}.support-note{padding-top:30px}.section{padding:56px 5vw}.compact-section{padding-top:0}.hero{padding:16px 0 0}.hero img{border-left:0;border-right:0}.hero-caption{margin:0 6vw;display:block}.hero-caption p+p{margin-top:8px}.intro h1{font-size:17vw}.subpage-head h1,.memberships-head h1{overflow-wrap:anywhere;font-size:clamp(44px,15vw,72px)}.subpage-head>p:last-child{font-size:18px}.areas-page-head{padding-top:48px;padding-bottom:48px}.areas-page-head h1{font-size:16vw}.areas-page-intro{font-size:15px}.district{padding-top:48px;padding-bottom:56px}.district-name{grid-template-columns:30px 46px minmax(0,1fr);gap:10px}.district-name .chinese{font-size:22px}.district-name h2{font-size:12vw}.district-head>p{font-size:14px}.district-card-grid{grid-template-columns:1fr}.district-card-copy{min-height:112px}.district-card-copy h3{font-size:30px}.district-nearby{grid-template-columns:1fr;gap:10px}.essential-grid,.shekou-section-grid{grid-template-columns:1fr}.mount-blue-photo{aspect-ratio:2.15}.mount-blue-summary{grid-template-columns:1fr;gap:14px;padding:26px 24px 24px}.mount-blue-summary>.label,.mount-blue-summary h2,.mount-blue-summary>p:not(.label),.mount-blue-toggle{grid-column:1}.mount-blue-summary>.label{margin-top:38px}.mount-blue-summary h2{margin-top:0;font-size:clamp(50px,17vw,74px)}.mount-blue-summary>p:not(.label){font-size:19px}.mount-blue-details>section{padding:30px 24px}.mount-blue-details dl>div{grid-template-columns:1fr;gap:9px}.mount-blue-overview h3,.mount-blue-prices h3,.mount-blue-rentals h3,.mount-blue-location h3{font-size:38px}.mount-blue-timeline{grid-template-columns:1fr 1fr}.mount-blue-fees,.mount-blue-price-lead{grid-template-columns:1fr}.mount-blue-rent-list>div{grid-template-columns:1fr;gap:8px}.mount-blue-rent-list em{text-align:left}.mount-blue-note{grid-template-columns:1fr;gap:16px;padding:28px 24px}.shekou-feature-card summary{grid-template-columns:1fr;gap:14px;min-height:0;padding:28px 24px}.shekou-feature-card summary h2{margin-top:42px}.shekou-feature-card summary b{justify-self:end;margin-top:16px}.shekou-feature-intro{padding:30px 24px}.shekou-feature-details li{grid-template-columns:1fr;gap:8px;padding:20px 24px}.shekou-restaurant-spot{grid-template-columns:1fr}.shekou-restaurant-photo{border-right:0;border-bottom:1px solid var(--ink);min-height:0}.shekou-restaurant-photo img{aspect-ratio:4/3;height:auto}.shekou-restaurant-copy{padding:24px}.shekou-restaurant-copy h3{margin-top:42px;font-size:44px}.essential-grid article{min-height:220px}.phone-plan-card summary{grid-template-columns:1fr;min-height:0}.phone-plan-photo{aspect-ratio:4/3;min-height:0}.phone-plan-summary-copy{border-top:1px solid var(--ink);border-left:0;min-height:330px;padding:24px}.phone-plan-summary-copy h2{margin-top:54px}.phone-plan-details>div{padding:32px 24px}.phone-plan-details figure{padding:24px}.phone-plan-unicom-copy{padding:32px 24px}.phone-plan-unicom-rates{grid-template-columns:1fr}.phone-plan-unicom-rates>div{min-height:100px}.phone-plan-unicom-photo{padding:24px}.living-category-card summary{grid-template-columns:1fr;min-height:0}.living-category-photo{aspect-ratio:4/3;min-height:0}.living-category-copy{border-top:1px solid var(--ink);border-left:0;min-height:330px;padding:24px}.living-category-copy h2{margin-top:54px;font-size:clamp(38px,12vw,56px)}.living-category-details{grid-template-columns:1fr 1fr}.living-category-details article{min-height:160px;padding:18px}.living-category-details h3{margin-top:48px;font-size:24px}.shekou-section-grid article{min-height:240px;padding:22px}.membership-card>summary{grid-template-columns:1fr;min-height:0}.membership-photo{aspect-ratio:4/3;min-height:0}.membership-summary-copy{border-top:1px solid var(--ink);border-left:0;min-height:340px;padding:24px}.membership-summary-copy h2{margin-top:72px;font-size:clamp(36px,11vw,52px)}.membership-details dl>div{grid-template-columns:1fr;gap:10px;padding:22px 24px}.membership-details dd{font-size:20px}.membership-subsection>summary{grid-template-columns:34px minmax(0,1fr) 32px;gap:12px;min-height:96px;padding:18px 20px}.membership-subsection strong{font-size:26px}.membership-subsection-body{padding:2px 24px 26px 66px}.membership-subsection-body>p{font-size:19px}.membership-highlights{padding:28px 24px}.membership-evidence{padding:24px}.about-copy h1{font-size:17vw}.about-copy>p:not(.hello){font-size:16px}.about-education li{grid-template-columns:1fr;gap:8px}.contact{flex-wrap:wrap;max-width:100%}.contact strong{font-size:26px}footer{flex-direction:column;align-items:flex-start;gap:18px;padding:28px 5vw}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}

/* --- News page ------------------------------------------------------- */
.news-grid .news-meta{display:block;border:0;padding:0;margin:0 0 16px;color:#071b3899;letter-spacing:.13em;text-transform:uppercase;font-size:9px;font-weight:800}
.news-grid .buy-card-copy p+.district-card-tip{margin-top:-14px}
.news-grid .district-card-tip{margin-bottom:30px}
.news-grid .buy-title{font-size:clamp(30px,3.1vw,46px);line-height:1}
@media (max-width:700px){.news-grid .buy-title{font-size:8.4vw}}
/* Story copy varies in length, so paint the card itself cream when open:
   leftover space in the grid row then matches instead of showing the dark
   page through. (flex:1 on .buy-card-copy cannot work — <details> wraps its
   content in an anonymous slot box.) */
.news-grid .buy-card>summary{background:var(--ink)}
.news-grid .buy-card[open]{background:var(--cream)}

/* --- Services page --------------------------------------------------- */
/* One service per full-width row, so the three columns inside each card
   (covers / one-off / retainer) have room to breathe. */
.services-grid{grid-template-columns:1fr}
.services-grid .buy-title{font-size:clamp(34px,4vw,64px)}
.service-contact{justify-content:flex-start;gap:14px 26px}
.service-price{display:inline-flex;align-items:center;gap:10px;border:0;padding:0;font-size:9px}
.service-price strong{color:var(--coral);letter-spacing:.12em;text-transform:uppercase;font-size:9px;font-weight:800}
.price-todo{background:var(--coral);color:#fff;letter-spacing:.08em;text-transform:uppercase;font-style:normal;font-size:9px;font-weight:800;padding:5px 9px}
.services-foot{color:#ffffffb8;max-width:640px;margin:44px 0 0;font-family:Georgia,Times New Roman,serif;font-size:17px;line-height:1.55}
.services-foot strong{color:var(--lime);font-weight:400}
/* Keep the six focused routes plus Search and booking CTA comfortable. */
@media (min-width:900px){.nav{padding:0 2.6vw}.nav-links{gap:16px}}

/* Long one-word card titles ("Transportation") were clipped at the right
   edge on phones: 14vw Georgia cannot fit them in the summary grid cell.
   Let them hyphenate instead of overflowing. */
@media (max-width:560px){.buy-title{hyphens:auto;overflow-wrap:anywhere}}

/* Living Guide subsection tiles: short body text under each title */
.living-category-details article p{color:#f2f0e8c2;margin:12px 0 0;font-size:14px;line-height:1.55}

/* Hotels page: photo at the top of each open card */
.hotel-photo{aspect-ratio:5/3;object-fit:cover;width:100%;margin:0 0 18px;display:block}

/* News page: broadsheet layout — a cream paper sheet on the dark section */
.broadsheet{color:var(--ink);background:var(--paper);margin-top:10px;padding:clamp(22px,4vw,54px);box-shadow:0 30px 70px #00000059}
.broadsheet-masthead{border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);letter-spacing:.14em;text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;gap:6px 18px;padding:10px 2px;font-size:9px;font-weight:800;display:flex}
.paper-kicker{color:var(--coral-paper);letter-spacing:.13em;text-transform:uppercase;margin:0 0 10px;font-size:9px;font-weight:800}
.paper-lead{grid-template-columns:2.2fr 1fr;gap:clamp(22px,3vw,44px);padding:28px 0 32px;display:grid}
.paper-lead h2{letter-spacing:-.04em;text-wrap:balance;margin:0 0 14px;font-family:Georgia,Times New Roman,serif;font-size:clamp(30px,4vw,52px);font-weight:400;line-height:1.02}
.paper-standfirst{color:#071b38c4;margin:0 0 18px;font-family:Georgia,Times New Roman,serif;font-size:18px;line-height:1.45}
.paper-cols{columns:2;column-gap:36px;column-rule:1px solid #071b3826}
.paper-cols p{margin:0 0 14px;font-size:14px;line-height:1.65}
.paper-cols p:first-child::first-letter{float:left;padding:5px 8px 0 0;font-family:Georgia,Times New Roman,serif;font-size:54px;line-height:.8}
.paper-aside{border-left:1px solid #071b3826;padding-left:clamp(16px,2vw,28px)}
.paper-aside h3{letter-spacing:.13em;text-transform:uppercase;margin:4px 0 10px;font-size:10px;font-weight:800}
.paper-aside p{margin:0 0 12px;font-size:13px;line-height:1.6}
.paper-source{letter-spacing:.08em;text-transform:uppercase;font-size:9px;font-weight:800}
.paper-source a{color:var(--coral-paper)}
.paper-source a:hover{text-decoration:underline;text-underline-offset:3px}
.paper-grid{border-top:2px solid var(--ink);grid-template-columns:repeat(3,1fr);display:grid}
.paper-grid article{border-left:1px solid #071b3826;flex-direction:column;padding:24px clamp(16px,2vw,28px);display:flex}
.paper-grid article:nth-child(3n+1){border-left:0;padding-left:0}
.paper-grid article:nth-child(3n){padding-right:0}
.paper-grid article:nth-child(n+4){border-top:1px solid #071b3826}
.paper-grid h3{letter-spacing:-.03em;text-wrap:balance;margin:0 0 10px;font-family:Georgia,Times New Roman,serif;font-size:22px;font-weight:400;line-height:1.12}
.paper-grid p{margin:0 0 12px;font-size:13.5px;line-height:1.6}
.paper-grid .paper-source{margin-top:auto;padding-top:4px}
@media (max-width:900px){.paper-lead{grid-template-columns:1fr}.paper-aside{border-left:0;border-top:1px solid #071b3826;padding-left:0;padding-top:18px}.paper-grid{grid-template-columns:1fr 1fr}.paper-grid article{border-left:0;padding:20px 0}.paper-grid article:nth-child(2n){border-left:1px solid #071b3826;padding-left:20px}.paper-grid article:nth-child(2n+1){padding-right:20px}.paper-grid article:nth-child(n+3){border-top:1px solid #071b3826}}
@media (max-width:600px){.paper-cols{columns:1}.paper-grid{grid-template-columns:1fr}.paper-grid article{border-left:0!important;padding:20px 0!important}.paper-grid article:nth-child(n+2){border-top:1px solid #071b3826}}

/* Restaurants: photo card headers — title overlaid on the photo's lower
   edge with a gradient shade, like the site's hero blocks. */
.resto-grid .buy-card summary{grid-template-columns:none;min-height:0;padding:0;display:block;position:relative;overflow:hidden}
.resto-grid .resto-thumb{aspect-ratio:16/9;object-fit:cover;width:100%;max-width:none;margin:0;display:block;transition:transform .5s}
.resto-grid .buy-card summary::after{content:"";background:linear-gradient(#0000 40%,#071b38e6 100%);position:absolute;inset:0;pointer-events:none}
.resto-grid .buy-card summary:hover{background:none;color:inherit}
.resto-grid .buy-card summary:hover .resto-thumb{transform:scale(1.035)}
.resto-grid .buy-number{color:var(--lime);z-index:1;position:absolute;top:16px;left:18px}
.resto-grid .buy-card summary:hover .buy-number{color:var(--lime)}
.resto-grid .buy-title{color:#fff;text-shadow:0 2px 16px #071b38;z-index:1;font-size:clamp(26px,2.8vw,38px);line-height:1;position:absolute;bottom:16px;left:18px;right:60px}
.resto-grid .buy-toggle{color:#fff;z-index:1;position:absolute;bottom:16px;right:18px}
@media (max-width:560px){.resto-grid .buy-title{font-size:26px}}

/* Broadsheet photos and weather line */
.paper-photo{margin:0 0 18px}
.paper-photo img{aspect-ratio:2/1;object-fit:cover;width:100%;display:block}
.paper-photo figcaption{color:#071b3899;border-bottom:1px solid #071b3826;margin-top:8px;padding-bottom:8px;font-family:Georgia,Times New Roman,serif;font-style:italic;font-size:12px}
.paper-photo figcaption a:hover{color:var(--coral)}
.paper-photo-sm{margin:2px 0 14px}
.paper-photo-sm img{aspect-ratio:16/9}
.paper-weather{border-bottom:1px solid var(--ink);flex-wrap:wrap;align-items:baseline;gap:6px 18px;padding:9px 2px;font-size:12px;display:flex}
.paper-weather-label{color:var(--coral-paper);letter-spacing:.13em;text-transform:uppercase;font-size:9px;font-weight:800}
.paper-weather-now{font-family:Georgia,Times New Roman,serif;font-size:15px}
.paper-weather-days{color:#071b38b0;flex-wrap:wrap;gap:6px 16px;display:inline-flex}
.paper-weather-days b{color:var(--ink);letter-spacing:.08em;text-transform:uppercase;margin-right:4px;font-size:9px;font-weight:800}

/* Homepage: the broadsheet weather line as a slim strip under the hero */
.home-weather-strip{color:var(--ink);background:var(--cream);padding:4px 4vw 2px}
.home-weather-strip .paper-weather{border-bottom:0}

/* Full-width services cards get a wider banner crop */
.services-grid .resto-thumb{aspect-ratio:3/1}

/* Living guide: school address line */
.school-address{color:#071b38b3;letter-spacing:.1em;text-transform:uppercase;margin:10px 0 0;font-size:10px;font-weight:700}

/* Page hero: the main-page header style, as a compact dark band for pages
   whose content is light (Areas, Living guide, Memberships). */
.page-hero{color:#fff;background:var(--ink);padding:64px 4vw 58px}
.page-hero .home-section-heading{padding-bottom:0}
@media (max-width:560px){.page-hero{padding:42px 5vw 38px}}
/* About: title matches the site-wide header style (uppercase + serif em) */
.about-copy h1{letter-spacing:-.075em;text-transform:uppercase;font-family:Arial,Helvetica Neue,sans-serif;font-weight:700}
.about-copy h1 em{text-transform:none;font-family:Georgia,Times New Roman,serif;font-size:.8em;font-style:italic;font-weight:400}

/* The nav sits on its cream bar on every page — pin its text to ink so
   dark page shells (.buy-page sets color:#fff) cannot bleed white into it. */
.nav{color:var(--ink)}

/* Services: payment-process and worked-example boxes */
.trust-grid{grid-template-columns:1fr 1fr;gap:22px;margin-top:56px;display:grid}
.trust-box{background:#ffffff08;border:1px solid #ffffff24;padding:24px 26px 26px}
.trust-box h2{color:var(--lime);letter-spacing:.13em;text-transform:uppercase;margin:0 0 14px;font-size:10px;font-weight:800}
.trust-box p,.trust-box li{color:#ffffffc4;font-size:14px;line-height:1.62}
.trust-box p{margin:0}
.trust-box ol{margin:0;padding-left:18px;display:grid;gap:10px}
.trust-box strong{color:#fff}
.trust-note{color:#ffffff8f;max-width:640px;margin:16px 0 0;font-size:12px;line-height:1.6}
@media (max-width:760px){.trust-grid{grid-template-columns:1fr;gap:14px}}

/* Homepage intro band: who Giovanni is + email capture for movers */
.home-intro{color:var(--cream);background:var(--ink);border-top:1px solid #ffffff2e;grid-template-columns:1.35fr 1fr;gap:40px;padding:56px 4vw 60px;display:grid}
.home-intro-label{color:var(--lime);letter-spacing:.14em;text-transform:uppercase;margin:0 0 16px;font-size:10px;font-weight:800}
.home-intro-lead{letter-spacing:-.01em;max-width:640px;margin:0 0 22px;font-family:Georgia,Times New Roman,serif;font-size:clamp(19px,1.8vw,24px);line-height:1.45}
.home-intro-cta{color:var(--ink);background:var(--lime);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:10px;min-height:44px;padding:0 22px;font-size:10px;font-weight:800;display:inline-flex;transition:background .18s,color .18s}
.home-intro-cta:hover{color:var(--cream);background:none;box-shadow:inset 0 0 0 1px var(--cream)}
.home-intro-capture{background:#ffffff08;border:1px solid #ffffff24;padding:26px 26px 24px}
.home-intro-cap-copy{color:#ffffffc4;margin:0 0 16px;font-size:14px;line-height:1.6}
.home-intro-capture form{gap:10px;display:flex;flex-wrap:wrap}
.home-intro-capture input{color:var(--cream);background:#ffffff0d;border:1px solid #ffffff33;flex:1 1 200px;min-height:44px;padding:0 14px;font-family:inherit;font-size:14px;transition:border-color .18s}
.home-intro-capture input:focus{outline:0;border-color:var(--lime)}
.home-intro-capture input::placeholder{color:#ffffff6b}
.home-intro-capture button{cursor:pointer;color:var(--ink);background:var(--lime);border:0;letter-spacing:.1em;text-transform:uppercase;min-height:44px;padding:0 18px;font-size:10px;font-weight:800;transition:background .18s,color .18s}
.home-intro-capture button:hover{color:var(--ink);background:var(--cream)}
.home-intro-cap-note{color:#ffffff8f;margin:12px 0 0;font-size:11px;line-height:1.5}
.home-intro-cap-note a{text-decoration:underline;text-underline-offset:3px}
.home-intro-cap-note a:hover{color:var(--lime)}
@media (max-width:820px){.home-intro{grid-template-columns:1fr;gap:28px;padding:38px 5vw 44px}}

/* About: example testimonials */
.about-testimonials{border-top:1px solid #071b3826;grid-column:1/-1;margin-top:54px;padding-top:34px}
.about-testimonials>.label{color:var(--coral);margin:0 0 22px}
.testimonial-grid{grid-template-columns:repeat(3,1fr);gap:26px;display:grid}
.testimonial-grid blockquote{border-left:2px solid var(--coral);margin:0;padding:2px 0 2px 18px}
.testimonial-grid p{letter-spacing:-.01em;margin:0 0 12px;font-family:Georgia,Times New Roman,serif;font-size:16px;font-style:italic;line-height:1.5}
.testimonial-grid cite{color:#071b38a6;letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-style:normal;font-weight:800}
.testimonial-note{color:#071b3880;margin:18px 0 0;font-size:11px}
@media (max-width:760px){.testimonial-grid{grid-template-columns:1fr;gap:18px}}

/* Homepage: client quotes row on the dark intro band */
.home-quotes{border-top:1px solid #ffffff24;grid-column:1/-1;margin-top:46px;padding-top:36px}
.home-quotes .testimonial-grid blockquote{border-left-color:var(--lime)}
.home-quotes .testimonial-grid p{color:#fffffff0}
.home-quotes .testimonial-grid cite{color:#ffffff8f}
.home-quotes-note{color:#ffffff66;margin:18px 0 0;font-size:11px}

/* Hero: credential line above the kicker */
.home-hero-copy>p.home-hero-cred{color:#ffffffd9;letter-spacing:0;text-transform:none;max-width:540px;margin:0 0 22px;font-family:Georgia,Times New Roman,serif;font-size:15px;font-style:italic;font-weight:400;line-height:1.55}
@media (max-width:560px){.home-hero-copy>p.home-hero-cred{max-width:none;margin-bottom:16px;font-size:13px}}

/* --- Article pages (guides, district pages, news stories) ------------- */
.crumb{color:#ffffffa8;letter-spacing:.12em;text-transform:uppercase;margin:0 0 18px;font-size:9px;font-weight:800}
.crumb a{color:var(--lime)}
.crumb a:hover{text-decoration:underline;text-underline-offset:3px}
.crumb span{margin:0 8px}
.article{background:var(--paper);color:var(--ink);padding:56px 4vw 72px}
.article-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.9fr) minmax(240px,.85fr);gap:clamp(28px,4vw,64px);align-items:start}
.article-body{min-width:0}
.article-lede{letter-spacing:-.01em;margin:0 0 28px;font-family:Georgia,Times New Roman,serif;font-size:clamp(19px,2vw,25px);line-height:1.45}
.article-body h2{letter-spacing:-.03em;text-wrap:balance;border-top:1px solid #071b3826;margin:38px 0 14px;padding-top:22px;font-family:Georgia,Times New Roman,serif;font-size:clamp(24px,2.6vw,32px);font-weight:400;line-height:1.1}
.article-body h3{letter-spacing:.1em;text-transform:uppercase;margin:26px 0 10px;font-size:11px;font-weight:800}
.article-body p{margin:0 0 16px;font-size:15.5px;line-height:1.68}
.article-body ul,.article-body ol{margin:0 0 18px;padding-left:20px;display:grid;gap:9px}
.article-body li{font-size:15.5px;line-height:1.6}
.article-body strong{font-weight:700}
.article-body a:not(.article-cta){color:#0f3d8c;text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px}
.article-body a:not(.article-cta):hover{color:var(--coral)}
.article-figure{margin:0 0 26px}
.article-figure img{aspect-ratio:16/9;object-fit:cover;width:100%;display:block}
.article-figure figcaption{color:#071b3899;border-bottom:1px solid #071b3826;margin-top:8px;padding-bottom:8px;font-family:Georgia,Times New Roman,serif;font-style:italic;font-size:12px}
.article-figure figcaption a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.article-callout{background:#071b380a;border-left:2px solid var(--coral);margin:24px 0;padding:18px 22px}
.article-callout strong{color:var(--coral-paper);letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:800;display:block;margin-bottom:8px}
.article-callout p{margin:0;font-size:14.5px;line-height:1.62}
.article-aside{position:sticky;top:100px;display:grid;gap:18px}
.article-facts{background:var(--ink);color:var(--cream);padding:22px 24px 24px}
.article-facts h2{color:var(--lime);letter-spacing:.13em;text-transform:uppercase;border:0;margin:0 0 14px;padding:0;font-family:inherit;font-size:10px;font-weight:800}
.article-facts dl{margin:0;display:grid;gap:12px}
.article-facts dt{color:#ffffff8f;letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:800}
.article-facts dd{margin:3px 0 0;font-size:14px;line-height:1.5}
.article-facts dd a{color:var(--lime);text-underline-offset:3px;text-decoration:underline}
.article-next{border:1px solid #071b3826;padding:20px 22px 22px}
.article-next h2{letter-spacing:.13em;text-transform:uppercase;border:0;margin:0 0 12px;padding:0;font-family:inherit;font-size:10px;font-weight:800}
.article-next ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.article-next a{font-family:Georgia,Times New Roman,serif;font-size:15px;line-height:1.35;display:block}
.article-next a:hover{color:var(--coral)}
.article-cta{background:var(--ink);color:var(--cream);letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:10px;min-height:46px;margin-top:8px;padding:0 22px;font-size:10px;font-weight:800;display:inline-flex;transition:background .18s,color .18s}
.article-cta:hover{background:var(--lime);color:var(--ink)}
@media (max-width:860px){.article-inner{grid-template-columns:1fr}.article-aside{position:static}.article{padding:36px 5vw 48px}}

/* Hub pages: link row into the deeper guides */
.hub-links{border-top:1px solid #ffffff2e;margin-top:48px;padding-top:30px}
.hub-links h2{color:var(--lime);letter-spacing:.13em;text-transform:uppercase;margin:0 0 18px;font-size:10px;font-weight:800}
.hub-links ul{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:2px;margin:0;padding:0;list-style:none;display:grid}
.hub-links li{background:#ffffff08;border:1px solid #ffffff24}
.hub-links a{color:var(--cream);padding:16px 18px;font-family:Georgia,Times New Roman,serif;font-size:16px;line-height:1.3;height:100%;display:block;transition:background .18s,color .18s}
.hub-links a:hover{background:var(--lime);color:var(--ink)}
.hub-links a span{color:var(--lime);letter-spacing:.1em;text-transform:uppercase;font-family:Arial,Helvetica Neue,sans-serif;font-size:9px;font-weight:800;display:block;margin-bottom:6px}
.hub-links a:hover span{color:var(--ink)}

/* A breadcrumb is an extra child of the heading grid, which would otherwise
   open a phantom column and push the title off-screen. Give it its own
   full-width row. NOT scoped to .page-hero: eight hub pages put the same
   heading block inside a different section, and scoping this to the hero
   left them with the broken grid. grid-column is ignored on non-grid
   children, so applying it to every p.crumb is safe. */
p.crumb{grid-column:1/-1}
@media (min-width:901px){.page-hero .home-section-heading{grid-template-columns:minmax(140px,.5fr) minmax(0,1.7fr) minmax(220px,.8fr)}}
.page-hero .home-section-heading :is(h1,h2){overflow-wrap:anywhere}

/* --- Directory footer -------------------------------------------------- */
.site-footer{color:var(--cream);background:var(--ink);border:0;gap:0;padding:56px 4vw 34px;display:block}
.footer-top{border-bottom:1px solid #ffffff2e;align-items:baseline;gap:14px 28px;padding-bottom:22px;display:flex;flex-wrap:wrap}
.footer-top .brand{color:var(--cream)}
.footer-top .brand span{color:var(--lime);font-family:Georgia,Times New Roman,serif;font-size:16px;font-weight:400}
.footer-top p{color:#ffffffa8;max-width:520px;margin:0;font-family:Georgia,Times New Roman,serif;font-size:14px;line-height:1.5}
.footer-cols{grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:26px 22px;padding:28px 0 8px;display:grid}
.footer-cols h2{color:var(--lime);letter-spacing:.13em;text-transform:uppercase;margin:0 0 12px;font-size:9px;font-weight:800}
.footer-group-toggle{color:inherit;background:none;border:0;letter-spacing:inherit;text-align:left;text-transform:inherit;width:100%;padding:0;font:inherit;display:none}
.footer-cols ul{margin:0;padding:0;list-style:none;display:grid;gap:7px}
.footer-cols a{color:#ffffffcc;font-size:13px;line-height:1.4}
.footer-cols a:hover{color:var(--lime)}
.footer-legal{color:#ffffff9e;border-top:1px solid #ffffff2e;margin:20px 0 0;padding-top:18px;font-size:11px;line-height:1.6}
@media (max-width:560px){.site-footer{padding:38px 5vw 26px}.footer-cols{gap:22px 18px}}

/* Freshness stamp for volatile information — deliberately quiet: a small
   pill that reassures without competing with the page. */
.verified{color:#071b38a8;letter-spacing:.11em;text-transform:uppercase;background:#071b3808;border:1px solid #071b381f;border-radius:999px;align-items:center;gap:6px;margin:0 0 14px;padding:3px 10px 3px 8px;font-size:8.5px;font-weight:700;line-height:1.7;display:inline-flex}
.verified::before{content:"";background:var(--lime);border-radius:50%;flex:none;width:5px;height:5px;display:block}
.page-hero .verified,.home-buy .verified,.buy-card-copy .verified,.article-facts .verified{color:#ffffff8a;background:#ffffff0f;border-color:#ffffff26}
.verified.gov::before{background:var(--coral)}
.article-facts .verified{margin:0 0 12px}

/* Eleven nav items need tighter spacing between the tablet breakpoint and
   wide desktops, or the row runs past the Support button. */


/* --- Directory lists (restaurant roster, school lists) ----------------- */
.dir-group{margin:0 0 40px}
.dir-group>h2{color:var(--lime);letter-spacing:.13em;text-transform:uppercase;border-bottom:1px solid #ffffff2e;margin:0 0 4px;padding-bottom:12px;font-size:10px;font-weight:800}
.dir-group>p.dir-intro{color:#ffffffb8;margin:14px 0 18px;font-family:Georgia,Times New Roman,serif;font-size:15px;line-height:1.55}
.dir-list{margin:0;padding:0;list-style:none;display:grid}
.dir-list li{border-bottom:1px solid #ffffff1f;grid-template-columns:minmax(0,1.15fr) minmax(0,1.5fr);align-items:start;gap:6px 26px;padding:16px 0;display:grid}
.dir-name{letter-spacing:-.02em;font-family:Georgia,Times New Roman,serif;font-size:19px;line-height:1.2}
.dir-name span{color:#ffffff8f;margin-left:8px;font-size:14px}
.dir-meta{color:var(--lime);letter-spacing:.08em;text-transform:uppercase;margin:6px 0 0;font-size:9px;font-weight:800}
.dir-list p{color:#ffffffc4;margin:0;font-size:14px;line-height:1.6}
.dir-list a{text-underline-offset:3px;text-decoration:underline}
.dir-list a:hover{color:var(--lime)}
@media (max-width:700px){.dir-list li{grid-template-columns:1fr;gap:8px;padding:14px 0}.dir-name{font-size:17px}}

/* Directory thumbnails: a real photo where one exists, otherwise a lettered
   tile. The tile is deliberately not a photograph — we do not have a picture
   of every place and will not imply we do. */
.dir-list li:has(.dir-thumb){grid-template-columns:64px minmax(0,1fr) minmax(0,1.4fr);gap:6px 20px}
.dir-thumb{aspect-ratio:1;object-fit:cover;border:1px solid #ffffff2e;width:64px;height:64px;display:block}
span.dir-thumb{color:var(--ink);background:linear-gradient(150deg,#3ce0b5,#2fbfa0);place-items:center;font-family:Georgia,Times New Roman,serif;font-size:26px;line-height:1;display:grid}
span.dir-thumb[data-c="2"]{background:linear-gradient(150deg,#f2f0e8,#cfcbba)}
span.dir-thumb[data-c="3"]{background:linear-gradient(150deg,#d94870,#b33a5c);color:#fff}
span.dir-thumb[data-c="4"]{background:linear-gradient(150deg,#4ab8ff,#2d6bff);color:#fff}
span.dir-thumb[data-c="5"]{background:linear-gradient(150deg,#0e2c55,#071b38);color:var(--lime);border-color:#ffffff42}
.dir-body{min-width:0}
@media (max-width:700px){.dir-list li:has(.dir-thumb){grid-template-columns:52px minmax(0,1fr);gap:4px 14px}.dir-thumb{width:52px;height:52px}.dir-list p{grid-column:1/-1}}

/* The stamp sits inside heading grids whose paragraph rules are more specific
   than .verified, and grid blockifies inline-flex — so it was rendering at
   17-18px and stretching the full column. Pin it back down. */
.home-section-heading>p.verified{grid-column:1/-1}
.home-section-heading>p.verified,.article-facts p.verified,.buy-card-copy p.verified,.article-body p.verified,p.verified{
  font-family:Arial,Helvetica Neue,sans-serif;font-size:8.5px;font-weight:700;line-height:1.7;
  letter-spacing:.11em;max-width:100%;width:fit-content;justify-self:start;align-self:start
}

/* --- Quote request form ------------------------------------------------ */
.quote{background:#ffffff0a;border:1px solid #ffffff26;margin-top:52px;padding:30px clamp(20px,3vw,34px) 34px}
.quote h2{color:var(--lime);letter-spacing:.13em;text-transform:uppercase;margin:0 0 8px;font-size:10px;font-weight:800}
.quote-lead{color:#ffffffc9;max-width:560px;margin:0 0 22px;font-family:Georgia,Times New Roman,serif;font-size:17px;line-height:1.5}
.quote-grid{grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:18px 20px;display:grid}
.quote-field{min-width:0;display:grid;gap:7px}
.quote-field.wide{grid-column:1/-1}
.quote-field label{color:#ffffff9e;letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-weight:800}
.quote-field select,.quote-field input,.quote-field textarea{color:var(--cream);background:#ffffff0d;border:1px solid #ffffff33;border-radius:0;width:100%;min-height:44px;padding:10px 12px;font-family:inherit;font-size:14px;line-height:1.5;transition:border-color .18s,background .18s}
.quote-field textarea{min-height:96px;resize:vertical}
.quote-field select{-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,#0000 50%,var(--lime) 50%),linear-gradient(135deg,var(--lime) 50%,#0000 50%);background-position:calc(100% - 18px) 20px,calc(100% - 13px) 20px;background-size:5px 5px;background-repeat:no-repeat;cursor:pointer;padding-right:38px}
.quote-field select option{color:var(--ink);background:var(--cream)}
.quote-field :is(select,input,textarea):focus{outline:0;border-color:var(--lime);background:#ffffff14}
.quote-field input::placeholder,.quote-field textarea::placeholder{color:#ffffff5c}
.quote-actions{align-items:center;gap:18px;margin-top:22px;display:flex;flex-wrap:wrap}
.quote-actions button{cursor:pointer;color:var(--ink);background:var(--lime);border:0;letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:10px;min-height:48px;padding:0 26px;font-size:10px;font-weight:800;display:inline-flex;transition:background .18s,color .18s,gap .18s}
.quote-actions button:hover{color:var(--cream);background:#ffffff1f;box-shadow:inset 0 0 0 1px var(--cream);gap:14px}
.quote-note{color:#ffffff8a;margin:14px 0 0;font-size:11.5px;line-height:1.6}
.quote-note a{color:var(--lime);text-underline-offset:3px;text-decoration:underline}

/* --- Case studies (proof) ---------------------------------------------- */
.cases{grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:20px;margin-top:26px;display:grid}
.case{background:#ffffff08;border:1px solid #ffffff24;flex-direction:column;padding:22px 24px 24px;display:flex}
.case h3{letter-spacing:-.02em;margin:0 0 4px;font-family:Georgia,Times New Roman,serif;font-size:21px;font-weight:400;line-height:1.2}
.case-kicker{color:var(--coral-paper);letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px;font-size:9px;font-weight:800}
.case dl{border-top:1px solid #ffffff1f;margin:12px 0 0;padding-top:12px;display:grid;gap:8px}
.case dl>div{justify-content:space-between;gap:14px;display:flex}
.case dt{color:#ffffff8a;letter-spacing:.06em;text-transform:uppercase;flex:none;font-size:9px;font-weight:800;line-height:1.5}
.case dd{color:var(--cream);text-align:right;margin:0;font-size:13px;line-height:1.5}
.case dd strong{color:var(--lime);font-weight:700}
.case p{color:#ffffffb8;margin:0 0 4px;font-size:13.5px;line-height:1.6}
.case-foot{color:#ffffff70;border-top:1px solid #ffffff1f;margin-top:auto;padding-top:12px;font-size:10.5px;line-height:1.5}

/* --- Legal pages ------------------------------------------------------- */
.legal{background:var(--paper);color:var(--ink);padding:56px 4vw 72px}
.legal-inner{max-width:780px;margin:0 auto}
.legal-inner h2{letter-spacing:-.02em;border-top:1px solid #071b3826;margin:34px 0 12px;padding-top:20px;font-family:Georgia,Times New Roman,serif;font-size:clamp(21px,2.3vw,27px);font-weight:400;line-height:1.15}
.legal-inner h3{letter-spacing:.1em;text-transform:uppercase;margin:22px 0 8px;font-size:10px;font-weight:800}
.legal-inner p,.legal-inner li{font-size:15px;line-height:1.68}
.legal-inner p{margin:0 0 14px}
.legal-inner ul,.legal-inner ol{margin:0 0 16px;padding-left:20px;display:grid;gap:8px}
.legal-inner a:not(.article-cta){color:#0f3d8c;text-underline-offset:3px;text-decoration:underline}
.legal-inner a:not(.article-cta):hover{color:var(--coral)}
.legal-meta{color:#071b3899;border-bottom:1px solid #071b3826;margin:0 0 22px;padding-bottom:16px;font-size:12.5px;line-height:1.6}
.footer-legal-links{border-top:1px solid #ffffff2e;flex-wrap:wrap;gap:8px 18px;margin-top:16px;padding-top:16px;display:flex}
.footer-legal-links a{color:#ffffff9e;font-size:11px}
.footer-legal-links a:hover{color:var(--lime)}

/* Photo credits: present but quiet — they are attribution, not content. */
.district-photo-credit{margin:10px 0 0;font-size:0}
.district-photo-credit a{color:#071b38a6;letter-spacing:.06em;font-size:9.5px;font-weight:600;line-height:1.5;text-underline-offset:2px;text-decoration:none}
.district-photo-credit a:hover{color:var(--coral);text-decoration:underline}
.page-hero .district-photo-credit a,.home-buy .district-photo-credit a,.buy-card-copy .district-photo-credit a{color:#ffffff5c}
.article-figure figcaption,.paper-photo figcaption{font-size:11.5px}
.article-figure figcaption a,.paper-photo figcaption a{color:#071b38a6;font-size:9.5px;font-style:normal;letter-spacing:.05em;text-decoration:none}
.article-figure figcaption a:hover,.paper-photo figcaption a:hover{color:var(--coral);text-decoration:underline}
.stay-photo figcaption{font-size:8.5px}

/* Numbered payment steps */
.pay-steps ol.steps{counter-reset:s;margin:0;padding:0;list-style:none;display:grid;gap:16px}
.pay-steps ol.steps li{counter-increment:s;grid-template-columns:26px minmax(0,1fr);gap:14px;display:grid}
.pay-steps ol.steps li::before{content:counter(s);color:var(--ink);background:var(--lime);border-radius:50%;place-items:center;width:24px;height:24px;font-size:11px;font-weight:800;display:grid}
.pay-steps ol.steps h3{color:var(--cream);letter-spacing:0;text-transform:none;margin:2px 0 4px;font-family:Georgia,Times New Roman,serif;font-size:16px;font-weight:400;line-height:1.25}
.pay-steps ol.steps p{color:#ffffffb8;margin:0;font-size:13.5px;line-height:1.6}

/* Breathing room between a hub-link directory and the cards beneath it */
.hub-links+.buy-grid,.hub-links+.dir-group{margin-top:44px}
.hub-links{margin-bottom:4px}
@media (max-width:700px){.hub-links+.buy-grid,.hub-links+.dir-group{margin-top:30px}}

/* Payment steps, corrected.
   1. Each <li> is a 2-col grid (marker | text). The h3 and p are separate
      children, so the p was wrapping to row 2 column 1 — a 26px-wide
      column — and rendering as a vertical sliver. Pin both to column 2.
   2. The trust grid was fixed at two columns but now holds a single box,
      leaving half the row empty and squeezing the steps. Let it fit its
      content, and run the four steps across the width as a process. */
.trust-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr))}
.pay-steps{grid-column:1/-1}
.pay-steps ol.steps{grid-template-columns:repeat(auto-fit,minmax(min(100%,235px),1fr));align-items:start;gap:22px 26px}
.pay-steps ol.steps li{align-content:start;grid-template-columns:26px minmax(0,1fr);gap:4px 12px}
.pay-steps ol.steps li h3,.pay-steps ol.steps li p{grid-column:2}
.pay-steps ol.steps li::before{grid-row:1}
@media (max-width:640px){.pay-steps ol.steps{gap:18px}}

/* Living guide card grid: the two/three fixed columns overflowed the row on
   narrow phones once a card was open. Collapse to one column there. */
@media (max-width:700px){.essential-grid{grid-template-columns:minmax(0,1fr)}.essential-grid>*{min-width:0}}
@media (max-width:700px){.living-category-details{grid-template-columns:minmax(0,1fr)}.living-category-details>*{min-width:0}}

/* --- Case studies ------------------------------------------------------ */
.case-study{border-top:1px solid #071b3826;margin-top:40px;padding-top:34px}
.case-study:first-of-type{border-top:0;margin-top:0;padding-top:0}
.case-study>h2{letter-spacing:-.03em;border:0;margin:0 0 6px;padding:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(24px,2.7vw,34px);font-weight:400;line-height:1.1}
.case-study .case-kicker{color:var(--coral-paper);letter-spacing:.12em;text-transform:uppercase;margin:0 0 10px;font-size:9px;font-weight:800}
.case-study .case-sub{color:#071b3899;margin:0 0 20px;font-family:Georgia,Times New Roman,serif;font-style:italic;font-size:15px}
.case-block{margin:0 0 22px}
.case-block h3{color:var(--coral-paper);letter-spacing:.11em;text-transform:uppercase;margin:0 0 8px;font-size:9.5px;font-weight:800}
.case-block p{margin:0 0 12px;font-size:15.5px;line-height:1.68}
.case-block ol{counter-reset:cs;margin:0;padding:0;list-style:none;display:grid;gap:12px}
.case-block ol li{counter-increment:cs;grid-template-columns:24px minmax(0,1fr);gap:12px;display:grid}
.case-block ol li::before{content:counter(cs);color:#fff;background:var(--ink);border-radius:50%;place-items:center;width:22px;height:22px;font-size:10px;font-weight:800;display:grid}
.case-block ol li p{margin:0;font-size:15px;line-height:1.6}
.case-block ol li b{font-weight:700}
.case-proof{background:#071b380a;border-left:2px solid var(--lime);padding:18px 22px}
.case-proof h3{color:var(--ink)}
.case-proof dl{margin:0;display:grid;gap:9px}
.case-proof dl>div{border-bottom:1px dotted #071b3826;justify-content:space-between;gap:16px;padding-bottom:8px;display:flex}
.case-proof dl>div:last-child{border-bottom:0;padding-bottom:0}
.case-proof dt{color:#071b38a8;letter-spacing:.06em;text-transform:uppercase;flex:none;font-size:9px;font-weight:800;line-height:1.6}
.case-proof dd{text-align:right;margin:0;font-size:13.5px;line-height:1.5}
.case-proof .case-proof-note{color:#071b38a8;margin:12px 0 0;font-size:11.5px;line-height:1.6}
.case-quote{border-left:2px solid var(--coral);margin:20px 0 0;padding:2px 0 2px 18px}
.case-quote p{letter-spacing:-.01em;margin:0 0 8px;font-family:Georgia,Times New Roman,serif;font-size:17px;font-style:italic;line-height:1.5}
.case-quote cite{color:#071b38a6;letter-spacing:.1em;text-transform:uppercase;font-size:9px;font-style:normal;font-weight:800}
@media (max-width:700px){.case-proof dl>div{flex-direction:column;gap:2px}.case-proof dd{text-align:left}}

/* --- Homepage section directory ---------------------------------------- */
.home-dir{color:var(--cream);background:var(--ink);padding:64px 4vw 22px}
.home-dir+.home-dir{padding-top:0}
.home-dir-head{border-bottom:1px solid #ffffff2e;align-items:baseline;gap:10px 26px;margin-bottom:26px;padding-bottom:14px;display:flex;flex-wrap:wrap}
.home-dir-head .label{color:var(--lime);flex:none}
.home-dir-head h2{letter-spacing:-.04em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(24px,3vw,38px);font-weight:400;line-height:1.05}
.home-dir-head h2 em{color:#ffffffa8}
.home-dir-head p{color:#ffffff9e;max-width:420px;margin:0 0 0 auto;font-size:13px;line-height:1.5}
.home-dir-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:2px;margin-bottom:42px;display:grid}
.home-card{background:#ffffff08;border:1px solid #ffffff24;flex-direction:column;min-width:0;display:flex;overflow:hidden;transition:background .2s,border-color .2s,transform .2s}
.home-card:hover{background:#ffffff12;border-color:#3ce0b58c;transform:translateY(-2px)}
.home-card img{aspect-ratio:16/9;object-fit:cover;width:100%;display:block;transition:transform .5s}
.home-card:hover img{transform:scale(1.04)}
.home-card-body{flex-direction:column;flex:1;padding:18px 20px 20px;display:flex}
.home-card-kicker{color:var(--lime);letter-spacing:.12em;text-transform:uppercase;margin:0 0 8px;font-size:9px;font-weight:800}
.home-card h3{letter-spacing:-.02em;text-wrap:balance;margin:0 0 8px;font-family:Georgia,Times New Roman,serif;font-size:21px;font-weight:400;line-height:1.15}
.home-card p{color:#ffffffb8;margin:0 0 14px;font-size:13.5px;line-height:1.55}
.home-card-more{color:var(--lime);letter-spacing:.1em;text-transform:uppercase;margin-top:auto;font-size:9px;font-weight:800}
.home-card:hover .home-card-more{color:#fff}
@media (max-width:700px){.home-dir{padding:40px 5vw 12px}.home-dir-head{margin-bottom:18px}.home-dir-head p{margin-left:0}.home-dir-grid{margin-bottom:28px}}

/* Route from each service block to the matching case study — this is where
   someone decides whether to trust the money, so the proof belongs here. */
.service-case-link{margin:14px 0 0}
.service-case-link a{color:var(--lime);letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid #3ce0b559;padding-bottom:2px;font-size:11px;font-weight:800;text-decoration:none;transition:color .18s,border-color .18s}
.service-case-link a:hover{color:#fff;border-bottom-color:#fff}






/* ---------------------------------------------------------------- Calculators
   These live inside .article, which is a LIGHT surface (--paper). The first
   version was styled off the dark homepage palette by mistake, which left
   white text on near-white paper. The shape now: a light input panel matching
   .case-proof, and a dark result card matching .article-facts, so the answer
   reads as a distinct object rather than more body copy.

   Everything is scoped under .article-body because `.article-body p` (0,1,1)
   outranks a bare `.calc-*` class. */

.calc{background:#071b380a;border:1px solid #071b3826;border-left:2px solid var(--blue);margin:26px 0;padding:20px 22px}
.calc .calc-head{flex-wrap:wrap;align-items:flex-end;gap:16px 18px;display:flex}
.calc .calc-head+.calc-head{border-top:1px dotted #071b3826;margin-top:16px;padding-top:16px}

/* labels + fields */
.calc .calc-year{color:#071b38a6;letter-spacing:.1em;text-transform:uppercase;flex-direction:column;gap:6px;font-size:9.5px;font-weight:800;display:flex}
.calc input,.calc select{color:var(--ink);background:#fff;border:1px solid #071b3840;border-radius:2px;padding:9px 11px;font-family:inherit;font-size:15px;font-weight:400}
.calc input:focus,.calc select:focus{border-color:var(--blue);outline:2px solid #2d6bff2e;outline-offset:0}
.calc .calc-check{flex-direction:row;align-items:center;gap:8px}
.calc .calc-check input{accent-color:var(--blue);width:auto}

/* buttons */
.calc .calc-add{color:var(--cream);background:var(--ink);letter-spacing:.09em;text-transform:uppercase;cursor:pointer;border:none;border-radius:2px;padding:11px 15px;font-family:inherit;font-size:9.5px;font-weight:800}
.calc .calc-add:hover{background:var(--blue)}
.calc .calc-row{border-top:1px dotted #071b3826;flex-wrap:wrap;align-items:flex-end;gap:14px;margin-top:14px;padding-top:14px;display:flex}
.calc .calc-row label{color:#071b38a6;letter-spacing:.1em;text-transform:uppercase;flex-direction:column;gap:6px;font-size:9.5px;font-weight:800;display:flex}
.calc .calc-del{color:#071b3899;cursor:pointer;background:#fff;border:1px solid #071b3840;border-radius:2px;width:34px;height:34px;font-size:17px;line-height:1}
.calc .calc-del:hover{color:var(--coral);border-color:var(--coral)}

/* the comparison rows stay on the light surface */
.calc .calc-crow{border-bottom:1px solid #071b3826;grid-template-columns:1.1fr 1fr 1fr;align-items:center;gap:10px;padding:9px 0;display:grid}
.calc .calc-chead{color:#071b38c4;letter-spacing:.1em;text-transform:uppercase;border-bottom-color:#071b3859;font-size:9px;font-weight:800}
.calc .calc-cat{color:var(--ink);font-size:14.5px}
.calc .calc-sz{color:#071b38a6;font-size:13px}
.calc .calc-in input{width:100%}

/* the answer, as a dark card */
.calc .calc-out{color:var(--cream);background:var(--ink);border-radius:2px;margin:20px -22px -20px;padding:22px}
.calc .calc-big{color:var(--lime);letter-spacing:-.03em;margin:0 0 8px;font-family:Georgia,Times New Roman,serif;font-size:40px;font-weight:400;line-height:1}
.calc .calc-out.is-res .calc-big{color:#ffb35c}
.calc .calc-big span{color:#ffffffb8;letter-spacing:0;font-family:inherit;font-size:14px}
.calc .calc-verdict{color:var(--cream);margin:0 0 12px;font-size:15px;font-weight:700;line-height:1.5}
.calc .calc-note{color:#ffffff9e;margin:10px 0 0;font-size:13px;line-height:1.6}
.calc .calc-warn{color:#ffd9a8;background:#ffb35c1f;border-left:2px solid #ffb35c;margin:14px 0 0;padding:11px 13px;font-size:13px;line-height:1.6}
.calc .calc-h3{color:var(--lime);letter-spacing:.11em;text-transform:uppercase;margin:22px 0 4px;font-family:inherit;font-size:9.5px;font-weight:800}
.calc .calc-table{border-collapse:collapse;width:100%;margin:10px 0 0;font-size:14px}
.calc .calc-table th{color:#ffffff8f;text-align:left;border-bottom:1px solid #ffffff1f;padding:8px 0;font-weight:400}
.calc .calc-table td{color:var(--cream);text-align:right;border-bottom:1px solid #ffffff1f;padding:8px 0}
.calc .calc-table em{color:#ffffff8a;font-size:12px;font-style:normal}
.calc .calc-bars{align-items:flex-end;gap:4px;height:104px;margin:14px 0 6px;display:flex}
.calc .calc-bar{flex-direction:column;flex:1;align-items:center;gap:6px;height:100%;display:flex}
.calc .calc-bar span{background:linear-gradient(#3ce0b5,#3ce0b566);border-radius:1px;width:100%;min-height:3px;margin-top:auto;transition:height .25s;display:block}
.calc .calc-bar em{color:#ffffff8a;font-size:9px;font-style:normal;font-weight:800}

/* before any input, the placeholder note sits on the light panel, not the card */
.calc>.calc-note,.calc>div>.calc-note:only-child{color:#071b38a6}

@media (max-width:560px){
  .calc{padding:18px}
  .calc .calc-out{margin:18px -18px -18px;padding:18px}
  .calc .calc-big{font-size:32px}
  .calc .calc-year,.calc .calc-row label{width:100%}
  .calc input,.calc select{width:100%}
  .calc .calc-crow{grid-template-columns:1fr 1fr;gap:6px}
  .calc .calc-chead .calc-in{display:none}
  .calc .calc-cat{grid-column:1/-1;font-weight:700}
}

/* Note under an embedded calculator, pointing at its own page for the full
   caveats. Only shown where the widget is a guest on someone else's page. */
.calc+.calc-embed-note{color:#071b38a6;margin:10px 0 0;font-size:13px;line-height:1.6}
.calc+.calc-embed-note a{border-bottom:1px solid #071b3840}

/* ------------------------------------------------------------- Grouped nav
   Six focused routes replace an encyclopedic header: Start Here, Move,
   Living, Explore, Tools and Get Help. The curated links are real markup in
   the served HTML — no JS builds the menu — so it works with scripting off.
   The complete directory remains in the footer and Ultimate Guides. The
   script only adds click-to-open on touch and Escape-to-close.

   Panels open on hover AND on focus-within, so keyboard users get them too. */
.nav{position:relative}
.nav-links{align-items:stretch}
.nav-item{position:relative;display:flex;align-items:center}
.nav-top{letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:5px;min-height:44px;font-size:11px;font-weight:700;display:inline-flex}
.nav-caret{border-top:3px solid currentColor;border-left:3px solid #0000;border-right:3px solid #0000;opacity:.45;width:0;height:0;transition:transform .18s,opacity .18s}
.nav-item:hover .nav-caret,.nav-item:focus-within .nav-caret{opacity:1;transform:rotate(180deg)}
.nav-top:hover,.nav-item:focus-within .nav-top{color:var(--blue)}

.nav-panel{background:var(--paper);border:1px solid var(--line);box-shadow:0 18px 40px #071b381f;opacity:0;pointer-events:none;z-index:40;min-width:230px;padding:18px 20px 16px;transition:opacity .16s,transform .16s;position:absolute;top:100%;left:-14px;transform:translateY(-6px)}
.nav-item:hover .nav-panel,.nav-item:focus-within .nav-panel,.nav-item.is-open .nav-panel{opacity:1;pointer-events:auto;transform:translateY(0)}
.nav-blurb{color:#071b38a6;max-width:330px;margin:0 0 12px;font-size:12px;line-height:1.5}
.nav-panel-cols{gap:26px;display:flex}
.nav-group-title{color:var(--coral-paper);letter-spacing:.11em;text-transform:uppercase;margin:0 0 8px;font-size:9px;font-weight:800}
.nav-group ul{grid-gap:7px;margin:0;padding:0;list-style:none;display:grid}
.nav-group a{color:var(--ink);white-space:normal;overflow-wrap:anywhere;letter-spacing:0;text-transform:none;font-size:13.5px;font-weight:400;line-height:1.3}
.nav-group a:hover{color:var(--blue)}

.nav-toggle{display:none}

/* ------------------------------------------------------ Unified site header
   The homepage established the brand treatment: deep navy, warm gold and a
   quiet outlined action. Keep the shared menu markup and behavior, but carry
   that visual language across every route. Dropdowns remain light so dense
   link groups retain maximum contrast. */
.nav{
  color:#fff;
  background:#06162a;
  border-bottom-color:#d9b37c66;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  position:sticky;
  top:0;
}
.nav .brand,
.nav .nav-top{color:#fff}
.nav .brand-mark{
  border:1px solid #d9b37cb8;
  background:#041223;
}
.nav .brand-name{color:#fff}
.nav .brand-name em{
  color:#d9b37c;
  font-style:normal;
}
.nav .nav-top:hover,
.nav .nav-item:focus-within .nav-top{color:#d9b37c}
.nav .donate-link{
  color:#fff;
  background:transparent;
  border-color:#f7f0e5a6;
}
.nav .donate-link:hover,
.nav .donate-link:focus-visible{
  color:#06162a;
  background:#d9b37c;
  border-color:#d9b37c;
}
.nav .nav-panel{
  border-top-color:#d9b37c;
}
.nav :is(a,button):focus-visible{
  outline:3px solid #d9b37c;
  outline-offset:3px;
}

@media (max-width:1280px){
  .nav .nav-toggle{border-color:#f7f0e58a}
  .nav .nav-toggle span{background:#fff}
  .nav .nav-links{border-top-color:#f7f0e533}
  .nav .nav-links.is-open{
    background:#06162a;
    max-height:calc(100svh - 72px);
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .nav .nav-item{border-bottom-color:#f7f0e52e}
  .nav .nav-panel{border-top-color:transparent}
  .nav .nav-group-title{color:#d9b37c}
  .nav .nav-group a{color:#fff}
  .nav .nav-group a:hover{color:#d9b37c}
}

/* On small phones the expanded accordion belongs in document flow; retaining
   the established static behavior avoids trapping a tall menu in the viewport. */
@media (max-width:560px){.nav{position:static}}

@media (max-width:1280px){
  /* one accordion column; panels open on tap and push the page down */
  .nav{grid-template-columns:minmax(0,1fr) auto auto;gap:10px;position:static}
  .nav-js .nav-toggle{cursor:pointer;background:none;border:1px solid var(--line);border-radius:2px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:42px;height:42px;display:flex}
  .nav-toggle span{background:var(--ink);width:17px;height:2px;transition:transform .2s,opacity .2s;display:block}
  .nav-toggle[aria-expanded="true"] span:first-child{transform:translateY(6px)rotate(45deg)}
  .nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .nav-toggle[aria-expanded="true"] span:last-child{transform:translateY(-6px)rotate(-45deg)}
  .nav-links{border-top:1px solid var(--line);grid-area:2/1/auto/-1;flex-direction:column;align-items:stretch;gap:0;width:100%;min-width:0;margin-left:0;display:flex;overflow:visible}
  .nav-js .nav-links{display:none}
  .nav-js .nav-links.is-open{display:flex}
  .nav-item{border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch}
  .nav-top{justify-content:space-between;padding:2px 0}
  .nav-panel{opacity:1;pointer-events:auto;box-shadow:none;background:none;border:0;padding:0 0 12px;position:static;transform:none;display:block}
  .nav-js .nav-panel{display:none}
  .nav-js .nav-item.is-open .nav-panel{display:block}
  .nav-panel-cols{flex-direction:column;gap:14px}
  .nav-blurb{display:none}
  .nav-group a{font-size:15px;min-height:32px;display:flex;align-items:center}
}

@media (min-width:561px) and (max-width:1280px){.nav-js .nav{position:sticky}}

/* Panels on the right-hand items must open leftwards or they run off the
   screen — worst case was "Money & practical" overflowing by 174px at 920px
   wide. And between the mobile breakpoint and a comfortable desktop the row
   itself needs a little tightening. */
@media (min-width:1281px){
  .nav-item:nth-last-child(-n+4) .nav-panel{left:auto;right:-14px}
  .nav-panel{width:min(560px,92vw);max-width:min(560px,92vw)}
  .nav-item[data-nav="news"] .nav-panel{left:50%;right:auto;translate:-50% 0}
}
@media (min-width:1281px) and (max-width:1440px){
  .nav{padding:0 1.2vw;gap:10px}
  .nav-links{gap:11px}
  .nav-top{letter-spacing:.05em;font-size:10px}
  .donate-link{padding:0 13px;font-size:9px}
  .nav-panel{padding:16px 17px 14px}
  .nav-panel-cols{gap:20px}
  .nav-group a{font-size:13px}
}

/* The pre-existing mobile nav layout stopped at 900px; the grouped nav now
   switches to its accordion before translated labels become cramped, so the
   grid layout also covers the 901-1280px band. */
@media (min-width:901px) and (max-width:1280px){
  .nav{grid-template-columns:minmax(0,1fr) auto auto auto auto;align-items:center;gap:10px;padding:12px 4vw;display:grid}
  .nav>.brand{grid-column:1;grid-row:1}
  .nav>.language-switcher{grid-column:2;grid-row:1}
  .nav>.nav-search{grid-column:3;grid-row:1}
  .nav>.nav-toggle{grid-column:4;grid-row:1}
  .nav>.donate-link{grid-column:5;grid-row:1}
  .nav>.nav-links{grid-column:1/-1;grid-row:2}
}

/* ------------------------------------------------ Collapsible reference folds
   /taxes/ is a reference page — nothing in it is padding — but it ran to
   nearly twenty screens on a phone. The detail is all still there, one tap
   away, instead of standing between the reader and the next thing. */
.fold{border-top:1px solid #071b3826;margin:0}
.fold summary{cursor:pointer;justify-content:space-between;align-items:baseline;gap:16px;padding:18px 0;list-style:none;display:flex}
.fold summary::-webkit-details-marker{display:none}
.fold-h{letter-spacing:-.03em;text-wrap:balance;font-family:Georgia,Times New Roman,serif;font-size:clamp(19px,2.2vw,25px);font-weight:400;line-height:1.15}
.fold-meta{color:#071b3899;white-space:nowrap;letter-spacing:.08em;text-transform:uppercase;flex:none;font-size:9px;font-weight:800}
.fold-meta:after{content:" ▸";display:inline-block;transition:transform .18s}
.fold[open] .fold-meta:after{transform:rotate(90deg)}
.fold summary:hover .fold-h{color:var(--blue)}
.fold-body{padding-bottom:14px}
.fold-body>h2:first-child{border-top:0;margin-top:0;padding-top:0}
.fold+.fold{margin-top:0}

/* ------------------------------------------------------ Mobile footer weight
   The footer directory has many groups and runs for several screens on a
   phone. Collapse it only after nav.js has marked the document as enhanced;
   without JavaScript the directory remains open and every link stays usable. */
@media (max-width:700px){
  .footer-cols{display:block}
  .footer-cols>div{border-top:1px solid #ffffff1f}
  .nav-js .footer-cols>div>h2{margin:0}
  .nav-js .footer-group-label{display:none}
  .nav-js .footer-group-toggle{cursor:pointer;justify-content:space-between;align-items:center;padding:15px 0;display:flex}
  .nav-js .footer-group-toggle:after{content:"+";font-size:15px;font-weight:400;transition:transform .18s}
  .nav-js .footer-cols>div.is-open .footer-group-toggle:after{transform:rotate(45deg)}
  .nav-js .footer-cols>div>ul{display:none;padding-bottom:14px}
  .nav-js .footer-cols>div.is-open>ul{display:grid}
  .footer-cols>div>ul a{min-height:34px;align-items:center;display:flex}
}

/* -------------------------------------------- macOS / iOS Safari and touch
   Safari applies its own chrome to form controls, which was overriding the
   calculator field styling on Mac and iPhone; it also inflates text on
   rotation and paints a grey flash on every tap. */
input,select,textarea,button{-webkit-appearance:none;appearance:none;border-radius:0}
select{background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 15px) 52%,calc(100% - 10px) 52%;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:30px}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
a,button,summary,input,select,label{-webkit-tap-highlight-color:#2d6bff26}
/* iOS zooms the page in when a focused field is under 16px */
@media (max-width:700px){
  .calc input,.calc select{font-size:16px}
}
/* the notch and the home indicator */
@supports(padding:max(0px)){
  .nav{padding-left:max(3.5vw,env(safe-area-inset-left));padding-right:max(3.5vw,env(safe-area-inset-right))}
  .site-footer{padding-bottom:max(28px,env(safe-area-inset-bottom))}
}
/* long unbroken strings — Chinese addresses, URLs — must not force a
   horizontal scrollbar on a narrow screen */
.article-body,.legal-inner,.calc,.dir-body{overflow-wrap:break-word}

/* A reference page should not make you scroll past the theory to reach the
   thing that answers your question. */
.jump-to-calc{margin:0 0 18px}
.jump-to-calc a{color:var(--ink);background:#3ce0b52e;border-bottom:2px solid var(--lime);align-items:center;gap:8px;padding:9px 14px;font-size:14px;font-weight:700;display:inline-flex}
.jump-to-calc a:hover{background:var(--lime)}

/* The nav is sticky, so an anchored jump lands with the target tucked under
   it. Give anything linkable room to clear it. */
:target,h1[id],h2[id],h3[id],section[id],[id^="calculator"],.calc{scroll-margin-top:96px}
@media (max-width:1000px){:target,h1[id],h2[id],h3[id],section[id],.calc{scroll-margin-top:16px}}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Resetting -webkit-appearance for Safari removes the native dropdown arrow,
   and the generic `select` arrow rule loses to `.calc select`. Put the
   chevron back at matching specificity, or the selects read as text fields. */
.calc select{background-image:linear-gradient(45deg,#0000 50%,#071b38a6 50%),linear-gradient(135deg,#071b38a6 50%,#0000 50%);background-position:calc(100% - 16px) 54%,calc(100% - 11px) 54%;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:32px}

/* -------------------------------------------------------- Cost of living
   Seven budgets of eleven rows each is a lot of undifferentiated numbers.
   Three changes: money gets tabular figures so columns align optically, a
   faint bar behind each row shows its share of the total, and the monthly
   total stops pretending to be another line item. */

/* money should line up as a column, which proportional digits will not do */
.case-proof dd,.col-row dd,.col-total dd,.col-c-total{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}

.col-row{position:relative;align-items:baseline;gap:16px;padding:7px 10px 7px 0;display:flex;justify-content:space-between;border-bottom:1px dotted #071b3826}
/* the share bar sits behind the row, not as an extra element to read */
.col-row:before{content:"";background:linear-gradient(90deg,#2d6bff1f,#2d6bff0a);width:var(--share,0%);z-index:0;border-radius:0 2px 2px 0;position:absolute;top:2px;bottom:2px;left:-10px;pointer-events:none}
.col-row dt,.col-row dd{position:relative;z-index:1}
.col-row dt{color:var(--ink)}
.col-row dd{color:var(--ink);text-align:right;flex:1 1 auto;min-width:0;font-weight:700}

/* the number the reader came for */
.col-total{border-top:2px solid var(--ink);flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin-top:10px;padding-top:14px;display:flex;justify-content:space-between}
.col-total dt{color:#071b38a6;letter-spacing:.11em;text-transform:uppercase;font-size:9.5px;font-weight:800}
.col-total dd{letter-spacing:-.02em;color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:clamp(22px,3.4vw,30px);font-weight:400;line-height:1}

/* the comparison strip: find your situation before reading anything */
.col-compare{background:var(--ink);color:var(--cream);margin:26px 0 34px;padding:24px 26px 26px}
.col-compare-h{color:var(--lime);letter-spacing:.13em;text-transform:uppercase;border:0;margin:0 0 8px;padding:0;font-family:inherit;font-size:10px;font-weight:800}
.col-compare-note{color:#ffffff9e;max-width:56ch;margin:0 0 18px;font-size:13.5px;line-height:1.55}
.col-compare-list{counter-reset:sc;margin:0;padding:0;list-style:none;display:grid;gap:2px}
.col-compare-list a{grid-template-columns:1fr auto;align-items:baseline;gap:4px 14px;padding:11px 12px;display:grid;position:relative;transition:background .16s}
.col-compare-list a:hover,.col-compare-list a:focus-visible{background:#ffffff14}
.col-c-bar{background:linear-gradient(90deg,#3ce0b5,#3ce0b533);width:var(--w,0%);height:2px;grid-column:1/-1;border-radius:1px}
.col-c-name{color:var(--cream);font-size:14.5px;line-height:1.3}
.col-c-total{color:var(--lime);white-space:nowrap;font-size:13.5px;font-weight:700}

@media (max-width:560px){
  .col-compare{margin:20px 0 28px;padding:20px 18px 22px}
  .col-row{gap:10px;padding-right:0}
  .col-row dt{font-size:14px}
  .col-row dd{font-size:14px}
  .col-c-name{font-size:13.5px}
}

/* The generic mobile treatment stacks case-proof rows label-above-value. For
   a budget line that wastes the share bar and doubles the page height, and
   the pair fits on one line anyway — 46px of label plus 93px of value in
   299px. Keep these on one row. */
@media (max-width:700px){
  .case-proof dl>div.col-row{flex-direction:row;gap:12px;align-items:baseline}
  .col-row dt{min-width:0;overflow-wrap:anywhere}
  .col-row dd{flex:1 1 auto;min-width:0}
  .case-proof dl>div.col-total{flex-direction:row;align-items:baseline;gap:12px}
}

/* Money never breaks; a trailing note wraps like ordinary prose and drops
   under it. Three values on this page carry one — "annual fees divided by
   twelve" — and forcing those onto a single line blew the row 100px past
   the viewport on a phone. */
.col-num{white-space:nowrap}
.col-note{color:#071b38a6;font-weight:400;font-size:12.5px;line-height:1.4;display:block;margin-top:2px}

/* ------------------------------------------------------------ Page mastheads
   A page masthead is a heading block that carries the page's H1. It was
   inheriting the homepage band's proportions — a headline clamping up to
   112px, 66px of padding under the block, and a wrapping section padded
   120px top and bottom. On /moving-to-shenzhen/ that was ~600px of mostly
   empty navy before a word of content.

   Scoped with :has(h1) so the homepage's own section headings — which are
   H2s and are meant to be that big — are untouched. */
.home-section-heading:has(h1){align-items:end;gap:18px 30px;padding-bottom:0}
.home-section-heading:has(h1) h1{letter-spacing:-.045em;font-size:clamp(32px,4.4vw,60px);line-height:.92}
.home-section-heading:has(h1) h1 em{font-size:.86em}
/* the standfirst should sit with the headline, not float in its own column */
.home-section-heading:has(h1)>p:not(.crumb):not(.label):not(.verified){font-size:16px;line-height:1.5;max-width:38ch}
.home-section-heading:has(h1) .label{align-self:end}

/* and the section wrapping a masthead stops being a content band */
section:has(.home-section-heading>h1){padding-top:44px}
.page-hero:has(.home-section-heading h1){padding-top:44px;padding-bottom:36px}

@media (max-width:900px){
  .home-section-heading:has(h1){gap:12px}
  .home-section-heading:has(h1) h1{font-size:clamp(30px,7.5vw,44px)}
  section:has(.home-section-heading>h1){padding-top:28px}
  .page-hero:has(.home-section-heading h1){padding-top:28px;padding-bottom:24px}
}

/* /about/ and /support/ build their masthead from their own containers, so
   the rules above miss them — they were still running 128px and 110px
   headlines. Bring them to the same scale. */
.about-copy h1,.support-heading h1{letter-spacing:-.045em;font-size:clamp(32px,4.4vw,60px);line-height:.92}
.about-copy h1 em,.support-heading h1 em{font-size:.86em}
section.about.about-page{padding-top:44px}
.support-content{padding-top:44px}
@media (max-width:900px){
  .about-copy h1,.support-heading h1{font-size:clamp(30px,7.5vw,44px)}
  section.about.about-page,.support-content{padding-top:28px}
}

/* ------------------------------------------------------- The freshness stamp
   It is a footnote, not a headline: it should reassure and get out of the way.
   Pinned hard because it sits in three different contexts — a masthead grid,
   an article body and a dark facts panel — and each has paragraph rules more
   specific than a bare class. It must never stretch a grid column or wrap. */
p.verified,.home-section-heading p.verified,.article-body p.verified,
.article-facts p.verified,.buy-card-copy p.verified,.legal-inner p.verified{
  font-size:8.5px;line-height:1.6;letter-spacing:.1em;font-weight:700;
  padding:3px 9px 3px 7px;margin:0 0 14px;
  display:inline-flex;width:fit-content;max-width:100%;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  align-self:start;justify-self:start
}
/* the long government variants get a little room rather than three lines */
@media (max-width:560px){
  p.verified,.home-section-heading p.verified,.article-body p.verified{
    white-space:normal;line-height:1.5
  }
}

/* ----------------------------------------------------------- Type normalising
   Three sizes were doing the job of one. Body copy rendered at 15.5px in
   .article-body, 15px in .legal-inner and 15.5px in .case-block, and callouts
   at 14.5px — differences small enough to read as sloppiness rather than
   hierarchy. And `.legal-inner p` (0,1,1) outranked `.article-lede` (0,1,0),
   so the opening paragraph on /taxes/ and /cost-of-living/ was rendering at
   body size instead of the intended 19-25px.

   One scale, deliberately spaced:
     lede      19-25px   the opening paragraph, clearly larger
     body      15.5px    everything you read at length
     callout   15px      one step down, an aside
     meta      14px      captions, facts panels, list detail  */

p.article-lede,.article-body p.article-lede,.legal-inner p.article-lede,.case-block p.article-lede{
  font-family:Georgia,Times New Roman,serif;font-size:clamp(19px,2vw,25px);
  line-height:1.45;letter-spacing:-.01em;margin:0 0 28px
}
.legal-inner p,.legal-inner li{font-size:15.5px;line-height:1.68}
.legal-inner p.article-callout-p,.article-callout p,.legal-inner .article-callout p{font-size:15px;line-height:1.62}

/* ------------------------------------------------- Bare masthead (no headline)
   Four hub pages now have no visible headline — just a breadcrumb and the
   freshness stamp — and the three-column masthead grid was still giving them
   165px of chrome to hold two short lines. When the H1 is screen-reader-only,
   collapse to a single row: crumb left, stamp right. */
.home-section-heading:has(h1.sr-only){
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:8px 20px;padding:0
}
.home-section-heading:has(h1.sr-only)>p.crumb{margin:0}
.home-section-heading:has(h1.sr-only)>p.verified{margin:0}
section:has(.home-section-heading>h1.sr-only){padding-top:18px;padding-bottom:14px}
@media (max-width:560px){
  .home-section-heading:has(h1.sr-only){justify-content:flex-start;gap:8px 12px}
  section:has(.home-section-heading>h1.sr-only){padding-top:14px;padding-bottom:12px}
}

/* ------------------------------------------------------ News attribution line
   .paper-source is 9px in its own rule but was rendering at 13-14px, because
   .paper-cols p / .paper-grid p / .paper-aside p are all (0,1,1) and outrank a
   bare class. Pinned here, and treated as what it is: a footer to the story,
   ruled off, with the call-to-action reading louder than the attribution. */
.paper-source,
.paper-cols p.paper-source,.paper-grid p.paper-source,.paper-aside p.paper-source,
.paper-lead-main p.paper-source{
  color:#071b3899;letter-spacing:.1em;text-transform:uppercase;
  font-size:8.5px;font-weight:800;line-height:1.7;
  border-top:1px solid #071b3826;margin:16px 0 0;padding-top:9px
}
/* the internal link is the action; the outbound source is the receipt */
.paper-source a{color:var(--coral-paper)}
.paper-source a[target="_blank"]{color:#071b38a6;font-weight:700}
.paper-source a[target="_blank"]:hover{color:var(--ink)}
.paper-grid .paper-source{margin-top:auto}

/* ---- "Also this month" -------------------------------------------------
   Nine items that are true, sourced and worth a line each, but do not carry
   two paragraphs. Running them as full grid cards would have buried the eight
   stories above them, so they get the shape a newspaper gives briefs: a heavy
   rule, three narrow columns, one rule between each. `break-inside:avoid`
   keeps an item from being split across a column boundary, which is what
   makes multi-column lists unreadable. */
.paper-brief{border-top:2px solid var(--ink);padding-top:16px}
.paper-brief-h{letter-spacing:.14em;text-transform:uppercase;margin:0 0 6px;font-size:10px;font-weight:800}
.paper-brief ul{columns:3;column-gap:clamp(18px,2.4vw,32px);column-rule:1px solid #071b3826;margin:0;padding:0;list-style:none}
.paper-brief li{break-inside:avoid;border-bottom:1px solid #071b3826;padding:13px 0}
.paper-brief li:last-child{border-bottom:0}
.paper-brief-when{color:var(--coral-paper);letter-spacing:.13em;text-transform:uppercase;margin:0 0 6px;font-size:9px;font-weight:800}
.paper-brief-text,.paper-brief p.paper-brief-text{margin:0;font-size:13px;line-height:1.55}
/* the brief's own attribution sits tight under it — the <li> rule already
   separates items, so a second border here would double up */
.paper-brief p.paper-source{border-top:0;margin:7px 0 0;padding-top:0}
/* "Source" / "Sources" is a label, not a link — lighter, same ink */
.paper-source-sep{font-weight:600}

@media (max-width:900px){
  .paper-brief ul{columns:2}
}
@media (max-width:600px){
  .paper-brief ul{columns:1;column-rule:0}
}

/* ---- Dark-shell components sitting on a light page ----------------------
   .hub-links and .dir-group were written for the dark shell, so their text is
   white and lime. Four pages place them inside .article-body, which is cream.
   White text on cream measures 1.03:1 — that is not "hard to read", it is
   invisible, and it had a whole school directory inside it on /schools/.
   Same components, re-inked for the surface they actually land on. */
.article-body .hub-links{border-top-color:#071b3826}
.article-body .hub-links li{background:#071b3805;border-color:#071b381f}
.article-body .hub-links a{color:var(--ink)}
.article-body .hub-links h2,
.article-body .hub-links a span,
.article-body .dir-group>h2,
.article-body .dir-meta{color:var(--coral-paper)}
.article-body .dir-group>h2{border-bottom-color:#071b3826}
.article-body .dir-group>p.dir-intro{color:#071b38c4}
.article-body .dir-list li{border-bottom-color:#071b3814}
.article-body .dir-list p{color:#071b38d1}
.article-body .dir-name span{color:#071b3899}
.article-body .dir-list a:hover{color:var(--coral-paper)}
/* the lime hover is left alone: lime behind ink reads fine on either surface */

/* ---- Four pillars, and News beside them --------------------------------
   The nav went from seven flat sections to Move | Live | Explore | Work with
   me, which means the panels now hold three and four columns instead of two.
   560px was fine for two; at four it gives each column 125px and the link
   text wraps to three lines. Width follows the column count. */
.nav-panel:has(.nav-group:nth-child(3)){max-width:min(700px,94vw)}
.nav-panel:has(.nav-group:nth-child(4)){max-width:min(860px,94vw)}

/* News is not a fifth pillar — it is a different kind of thing: dated,
   perishable, and the reason to come back. It gets a mark the pillars do not
   have, rather than a louder colour, so the four still read as a set. */
.nav-item[data-nav="news"] .nav-top::before{
  content:"";background:var(--lime);border-radius:50%;
  flex:none;width:5px;height:5px;margin-right:1px;display:block}
.nav-item[data-nav="news"] .nav-top{font-weight:800}

@media (max-width:1000px){
  /* stacked accordion: the panel is full width, so the count rules do nothing
     and the dot would sit oddly against a left-aligned row */
  .nav-panel:has(.nav-group:nth-child(3)),
  .nav-panel:has(.nav-group:nth-child(4)){max-width:none}
}

/* ---- The relocation roadmap --------------------------------------------
   The site had the guides but no through-line: a reader had to already know
   that a SIM comes before the bank. This page is the through-line, so the
   design has to carry sequence — numbered bands, a time marker on each, and
   the two statutory clocks called out where they fall rather than buried in
   the page they belong to. */
.roadmap{counter-reset:rm;margin:0;padding:0;list-style:none}
.roadmap-jump{flex-wrap:wrap;align-items:center;gap:10px 14px;margin:34px 0 0;display:flex}
.roadmap-jump>span{color:#ffffff8a;letter-spacing:.13em;text-transform:uppercase;font-size:9px;font-weight:800}
.roadmap-jump a{color:var(--cream);border:1px solid #ffffff2e;padding:9px 15px;font-size:12px;font-weight:700;transition:background .16s,color .16s}
.roadmap-jump a:hover{background:var(--lime);border-color:var(--lime);color:var(--ink)}

.roadmap-note{border-left:2px solid var(--lime);margin:30px 0 0;padding:2px 0 2px 20px}
.roadmap-note p{color:#ffffffc4;margin:0;font-size:15px;line-height:1.62}
.roadmap-note strong{color:var(--cream);font-weight:700}
.roadmap-note a{color:var(--lime);text-underline-offset:3px;text-decoration:underline}
.roadmap-note--end{border-left-color:var(--coral);margin-top:44px}

.roadmap-step{border-top:1px solid #ffffff2e;padding:44px 0 8px}
.roadmap-step-head{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:22px;display:grid}
.roadmap-num{color:var(--lime);letter-spacing:-.04em;font-family:Georgia,Times New Roman,serif;font-size:44px;line-height:.8}
.roadmap-when{color:#ffffff8a;letter-spacing:.13em;text-transform:uppercase;margin:0 0 8px;font-size:9px;font-weight:800}
.roadmap-step-head h2{letter-spacing:-.03em;margin:0 0 10px;font-family:Georgia,Times New Roman,serif;font-size:clamp(26px,3vw,38px);font-weight:400;line-height:1.08}
.roadmap-lede{color:#ffffffc4;max-width:62ch;margin:0;font-size:15.5px;line-height:1.6}

/* the two clocks: statutory, and the reason the page exists */
.roadmap-flag{background:#ffffff0f;border:1px solid #ffffff24;margin:22px 0 0;padding:14px 18px}
.roadmap-flag p{color:#ffffffd1;margin:0;font-size:14px;line-height:1.6}
.roadmap-flag strong{color:var(--lime);letter-spacing:.1em;text-transform:uppercase;margin-right:10px;font-size:9px;font-weight:800}

.roadmap-tasks{grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:1px;margin-top:24px;display:grid}
.roadmap-task{background:#ffffff08;border:1px solid #ffffff24;flex-direction:column;gap:6px;padding:16px 18px 18px;display:flex;transition:background .16s,color .16s}
.roadmap-task:hover{background:var(--lime);border-color:var(--lime);color:var(--ink)}
.roadmap-task-name{font-family:Georgia,Times New Roman,serif;font-size:17px;line-height:1.25}
.roadmap-task-why{color:#ffffffb8;font-size:12.5px;line-height:1.5}
.roadmap-task:hover .roadmap-task-why{color:#071b38c4}
.roadmap-task--urgent{border-color:#3ce0b566}
.roadmap-task--urgent .roadmap-task-name::after{content:"·  on a clock";color:var(--lime);letter-spacing:.1em;text-transform:uppercase;margin-left:8px;font-family:Arial,Helvetica Neue,sans-serif;font-size:8.5px;font-weight:800;white-space:nowrap}
.roadmap-task--urgent:hover .roadmap-task-name::after{color:var(--ink)}

@media (max-width:700px){
  .roadmap-step{padding-top:34px}
  .roadmap-step-head{gap:14px}
  .roadmap-num{font-size:32px}
  .roadmap-tasks{grid-template-columns:1fr}
}

/* ---- "New to Shenzhen?" -------------------------------------------------
   The hero offered "Explore the city", which serves a browser and fails the
   person who has just been told they are moving in six weeks. That reader
   needs one obvious door, so it gets the solid treatment and the browse link
   stays beside it as the quieter option. */
.home-hero-cta{background:var(--lime);color:var(--ink);letter-spacing:.02em;align-items:center;gap:8px;padding:13px 20px;font-size:14px;font-weight:800;display:inline-flex;transition:background .16s}
.home-hero-cta:hover{background:var(--cream)}
.home-hero-meta{flex-wrap:wrap;align-items:center;gap:14px 20px}
@media (max-width:600px){
  .home-hero-cta{justify-content:center;width:100%}
}

/* Mobile homepage: the full-width newcomer CTA wraps the hero meta onto two
   rows. Give that taller block its own space so it cannot cover "up close",
   and cap the photo height so tall phone screens do not create a dead void. */
@media (max-width:600px){
  .home-hero{min-height:clamp(540px,68svh,620px)}
  .home-hero-copy{bottom:150px}
  .home-hero-copy h1{line-height:.82}
  .home-hero-cta{text-align:center;line-height:1.2}
}

/* ---- Giovanni's project ecosystem ------------------------------------- */
.home-ecosystem{background:var(--paper);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:64px 4vw 70px}
.home-ecosystem-head{grid-template-columns:minmax(160px,.45fr) minmax(0,1.55fr);align-items:end;gap:34px;margin-bottom:34px;display:grid}
.home-ecosystem-head .label{color:var(--coral-paper);align-self:start}
.home-ecosystem-head h2{letter-spacing:-.055em;max-width:850px;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(38px,5vw,72px);font-weight:400;line-height:.96}
.home-ecosystem-head h2 em{color:var(--coral-paper);font-weight:400}
.home-ecosystem-copy{color:#071b38b8;max-width:680px;margin:0 0 32px auto;font-size:15px;line-height:1.65}
.home-ecosystem-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--ink);border:1px solid var(--ink);display:grid}
.home-ecosystem-card{--project-accent:var(--lime);background:var(--paper);min-height:240px;position:relative;padding:24px 22px 22px;display:flex;flex-direction:column;transition:background .18s,color .18s}
.home-ecosystem-card--super{--project-accent:#f06a31}
.home-ecosystem-card--physics{--project-accent:#2d6bff}
.home-ecosystem-card--model{--project-accent:var(--coral-paper)}
.home-ecosystem-domain{color:var(--project-accent);letter-spacing:.14em;text-transform:uppercase;font-size:9px;font-weight:800}
.home-ecosystem-card h3{letter-spacing:-.045em;margin:36px 0 12px;font-family:Georgia,Times New Roman,serif;font-size:30px;font-weight:400;line-height:1}
.home-ecosystem-card p{color:#071b38b8;margin:0 0 26px;font-size:13.5px;line-height:1.58}
.home-ecosystem-link{letter-spacing:.1em;text-transform:uppercase;margin-top:auto;font-size:9px;font-weight:800}
.home-ecosystem-link span{color:var(--project-accent);font-size:15px}
.home-ecosystem-card:hover{color:var(--cream);background:var(--ink)}
.home-ecosystem-card:hover p{color:#f2f0e8b8}
.home-ecosystem-more{letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid;gap:9px;margin-top:26px;padding-bottom:5px;font-size:9px;font-weight:800;display:inline-flex}
.home-ecosystem-more span{color:var(--coral-paper);font-size:15px}

.ecosystem-page{color:var(--cream);background:var(--ink);min-height:100svh}
.ecosystem-inner{width:min(1320px,92vw);margin:0 auto}
.ecosystem-hero{border-bottom:1px solid #f2f0e84d;padding:50px 0 60px}
.ecosystem-kicker{color:var(--lime);letter-spacing:.17em;text-transform:uppercase;margin:0;font-size:9px;font-weight:800}
.ecosystem-hero .ecosystem-kicker{margin-top:30px}
.ecosystem-hero h1{letter-spacing:-.065em;text-transform:uppercase;max-width:1100px;margin:20px 0 24px;font-size:clamp(54px,7.5vw,108px);font-weight:700;line-height:.84}
.ecosystem-hero h1 em{text-transform:none;font-family:Georgia,Times New Roman,serif;font-size:.72em;font-weight:400}
.ecosystem-lede{color:#f2f0e8c4;max-width:760px;margin:0 0 0 auto;font-family:Georgia,Times New Roman,serif;font-size:clamp(18px,2vw,25px);line-height:1.5}
.ecosystem-directory{padding:58px 0 68px}
.ecosystem-directory-head{grid-template-columns:minmax(150px,.45fr) minmax(0,1.55fr);align-items:end;gap:34px;margin-bottom:34px;display:grid}
.ecosystem-directory-head h2{letter-spacing:-.04em;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(36px,4.5vw,66px);font-weight:400;line-height:1}
.ecosystem-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#f2f0e84d;border:1px solid #f2f0e84d;display:grid}
.ecosystem-card{--project-accent:var(--lime);color:var(--cream);background:var(--ink);min-height:290px;padding:26px;display:flex;flex-direction:column;transition:background .18s,color .18s}
.ecosystem-card--super{--project-accent:#ff8a4c}
.ecosystem-card--physics{--project-accent:#75a0ff}
.ecosystem-card--model{--project-accent:#e8759a}
.ecosystem-number,.ecosystem-domain{color:var(--project-accent);letter-spacing:.14em;text-transform:uppercase;font-size:9px;font-weight:800}
.ecosystem-domain{margin:18px 0 0}
.ecosystem-card h3{letter-spacing:-.05em;margin:42px 0 14px;font-family:Georgia,Times New Roman,serif;font-size:clamp(34px,3.7vw,50px);font-weight:400;line-height:.98}
.ecosystem-card p{color:#f2f0e8b8;max-width:560px;margin:0 0 28px;font-size:14.5px;line-height:1.62}
.ecosystem-link{letter-spacing:.12em;text-transform:uppercase;margin-top:auto;font-size:9px;font-weight:800}
.ecosystem-link span{color:var(--project-accent);font-size:15px}
.ecosystem-card:hover{color:var(--ink);background:var(--project-accent)}
.ecosystem-card:hover :is(.ecosystem-number,.ecosystem-domain,.ecosystem-link span,.ecosystem-card p){color:var(--ink)}
.ecosystem-note{color:#f2f0e899;max-width:840px;margin:28px 0 0;font-size:12px;line-height:1.65}
.ecosystem-about{color:var(--ink);background:var(--lime);padding:70px 0 76px}
.ecosystem-about .ecosystem-kicker{color:var(--ink)}
.ecosystem-about-grid{grid-template-columns:minmax(150px,.45fr) minmax(0,1.55fr);gap:34px;display:grid}
.ecosystem-about h2{letter-spacing:-.04em;margin:0 0 18px;font-family:Georgia,Times New Roman,serif;font-size:clamp(36px,4vw,60px);font-weight:400;line-height:1}
.ecosystem-about p{max-width:760px;margin:0 0 28px;font-size:15px;line-height:1.65}
.ecosystem-about a{letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid;gap:8px;padding-bottom:5px;font-size:9px;font-weight:800;display:inline-flex}

@media (max-width:820px){
  .home-ecosystem{padding:64px 5vw 70px}
  .home-ecosystem-head,.ecosystem-directory-head,.ecosystem-about-grid{grid-template-columns:1fr;align-items:start;gap:20px}
  .home-ecosystem-copy{margin-left:0}
  .home-ecosystem-grid{grid-template-columns:1fr}
  .home-ecosystem-card{min-height:235px}
  .home-ecosystem-card h3{margin-top:38px}
  .ecosystem-hero{padding:48px 0 58px}
  .ecosystem-grid{grid-template-columns:1fr}
  .ecosystem-card{min-height:300px}
  .ecosystem-directory{padding:58px 0 64px}
}

@media (max-width:560px){
  .home-ecosystem{padding-top:54px;padding-bottom:58px}
  .home-ecosystem-head h2{font-size:40px}
  .home-ecosystem-card{min-height:220px;padding:22px 20px}
  .home-ecosystem-card h3{font-size:30px}
  .ecosystem-inner{width:90vw}
  .ecosystem-hero h1{font-size:16vw;line-height:.83}
  .ecosystem-lede{font-size:18px}
  .ecosystem-card{min-height:280px;padding:24px 22px}
  .ecosystem-card h3{margin-top:44px}
  .ecosystem-about{padding:54px 0 58px}
}

/* ---- Service packages ---------------------------------------------------
   Fixed scopes above the rate card. Built to the same standard as the rest of
   the page — price, contents, and an explicit statement of what the fee does
   not cover — because that transparency is the only reason the page works. */
.pkg-section{margin:40px 0 0}
.pkg-intro h2{letter-spacing:-.03em;margin:0 0 10px;font-family:Georgia,Times New Roman,serif;font-size:clamp(26px,3vw,38px);font-weight:400;line-height:1.08}
.pkg-intro p:last-child{color:#ffffffc4;max-width:66ch;margin:0;font-size:15.5px;line-height:1.6}
.pkg-grid{grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:1px;margin-top:28px;display:grid}
.pkg{background:#ffffff08;border:1px solid #ffffff24;flex-direction:column;padding:24px 22px 22px;display:flex}
.pkg-head{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:14px;display:grid}
.pkg-num{color:var(--lime);letter-spacing:.12em;padding-top:5px;font-size:11px;font-weight:800}
.pkg-for{color:#ffffff8a;letter-spacing:.13em;text-transform:uppercase;margin:0 0 7px;font-size:9px;font-weight:800}
.pkg-head h2{letter-spacing:-.02em;margin:0 0 8px;font-family:Georgia,Times New Roman,serif;font-size:22px;font-weight:400;line-height:1.15}
.pkg-price{color:var(--cream);align-items:baseline;gap:8px;margin:0;font-size:26px;font-weight:800;display:flex}
.pkg-price span{color:#ffffff8a;letter-spacing:.11em;text-transform:uppercase;font-size:9px;font-weight:800}
.pkg-list{color:#ffffffc4;margin:18px 0 0;padding:0;font-size:13.5px;line-height:1.58;list-style:none}
.pkg-list li{border-top:1px solid #ffffff1f;padding:10px 0}
.pkg-cta{color:var(--lime);letter-spacing:.1em;text-transform:uppercase;border-top:1px solid #ffffff24;margin-top:auto;padding-top:14px;font-size:10px;font-weight:800}
.pkg-cta:hover{color:var(--cream)}
.pkg--family{border-color:#3ce0b566}
.pkg-note{border-left:2px solid var(--coral);margin-top:26px;padding:2px 0 2px 20px}
.pkg-note p{color:#ffffffc4;max-width:78ch;margin:0;font-size:14.5px;line-height:1.62}
.pkg-note strong{color:var(--cream);font-weight:700}
@media (max-width:700px){ .pkg-grid{grid-template-columns:1fr} }

/* ---- Numbered steps on a light page ------------------------------------
   .pay-steps was built for the dark services page, so its headings are cream
   and its body text is white at 72%. Six visa pages place the same component
   inside .article-body, which is the cream sheet — the headings measured
   1.09:1 and the paragraphs 1.03:1. Not faint: invisible. A reader on
   /visas/ saw numbered markers and blank space where the sequence should be. */
.article-body .pay-steps ol.steps h3{color:var(--ink)}
.article-body .pay-steps ol.steps p{color:#071b38c4}

/* =========================================================================
   Legibility sweep: every remaining contrast failure on the site.
   38 distinct rules across 10 pages, 20 of them below 3:1. The cause is the
   same one throughout — components that exist on both the dark shell and the
   cream sheet carry one set of colours, so wherever they land on the other
   surface the text disappears. Fixed by surface, not by page.
   ====================================================================== */

/* --- accent text sitting on its own accent background (1:1, invisible) --- */
.home-hero-cta span{color:inherit}                       /* lime arrow on the lime button — mine, from today */
.membership-highlights .label{color:var(--ink)}          /* lime on lime */
.about-testimonials .label{color:var(--ink)}             /* coral on coral */

/* --- photo credits: let them take the colour of the card they sit on -----
   .district-photo-credit appears on light cards (/services/, /buy/) and dark
   ones (/living-guide/), and each had the other surface's colour hard-coded:
   white at 36% on cream, ink at 65% on ink. Inheriting adapts to both. */
.buy-card-copy .district-photo-credit a,
.living-category-item-copy .district-photo-credit a,
.page-hero .district-photo-credit a,
.home-buy .district-photo-credit a{color:inherit;opacity:.72}
.buy-card-copy .district-photo-credit a:hover,
.living-category-item-copy .district-photo-credit a:hover{opacity:1}

/* --- lime accents that landed on the cream sheet (1.47–1.61) ------------- */
.service-case-link a,
.membership-details dt,
.phone-plan-details .label,
.phone-plan-unicom-copy .label,
.phone-plan-unicom-rates dt,
.legal-inner .hub-links h2,
.legal-inner .hub-links a span,
.legal-inner .dir-group>h2,
.legal-inner .dir-meta{color:var(--coral-paper)}
.legal-inner .hub-links a{color:var(--ink)}
.legal-inner .hub-links li{background:#071b3805;border-color:#071b381f}
.legal-inner .dir-group>p.dir-intro,.legal-inner .dir-list p{color:#071b38c4}

/* --- coral accents on the cream sheet (3.6–3.93) ------------------------ */
.arrival-tip strong,
.arrival-sources span,
.arrival-sources .service-price strong,
.arrival-sources .service-price em,
.arrival-groups>section>h2{color:var(--coral-paper)}
.buy-card-copy .news-meta{color:#071b38b8}

/* --- coral accents on the dark shell (4.18, just short) ------------------ */
.living-category-meta span,
.living-category-toggle{color:#e8759a}

/* --- the support page's brand-coloured headings (2.47 at 60px) ----------- */
.support-payment-card--wechat .support-payment-head h2{color:#079e55}

/* --- /about/: an ink-on-coral panel that never quite cleared ------------- */
.about{background:#e37896}                               /* ink on coral 4.18 -> 6.05 */
.about>.crumb,.about>.crumb span{color:#071b38c4}
.about>.crumb a{color:var(--ink)}
.about>.verified{color:#071b38d1;background:#ffffff2e;border-color:#071b3826}
.testimonial-grid blockquote cite{color:#071b38c4}

/* --- services: the exclusions note was butting into the card below ------- */
.pkg-note{margin-bottom:52px}

/* ---- Services masthead ---------------------------------------------------
   A photograph behind "Work with me directly" — the CMB and CGB towers, which
   is what the page is about rather than decoration. The overlay is 90-96% ink
   so the existing white type keeps the contrast it already had; the picture
   reads as texture under it, not as a background competing with the words. */
.services-hero{
  background-image:linear-gradient(rgba(7,27,56,.90),rgba(7,27,56,.96)),url("/photos/cmb-tower.jpg");
  background-position:center 22%;
  background-size:cover;
  background-repeat:no-repeat}
@media (max-width:700px){ .services-hero{background-position:center 14%} }

/* ---- Second pass: the ones that lost on specificity ---------------------
   The first pass fixed 139 of 187. What survived did so because of a single
   variable: .editorial-page sets --subsection-accent to lime and then paints
   the cream page with it — labels, dt terms, meta lines. Fighting that
   selector by selector was the wrong instinct; the variable is the bug. */
/* reverted: --subsection-accent is lime because it is correct on the DARK cards.
   Changing it globally put #b13455 on #071b38 at 2.86 across three pages —
   worse than the bug it was meant to fix. Only the cream-surface uses are
   overridden below. */

/* the accent is also used as a BACKGROUND in three places, where lime is
   correct and ink sits on top of it — pin those back */
.editorial-page .mount-blue-management-fee,
.editorial-page .membership-highlights{background:var(--lime)}
.editorial-page .membership-subsection-body li:before{background:var(--lime)}
.editorial-page :is(.membership-highlights .label,.mount-blue-management-fee .label){color:var(--ink)}

/* toggles on the dark cards: coral reads 4.18 there, just short */
.editorial-page .phone-plan-card[open] .living-category-toggle,
.editorial-page .living-category-card[open] .living-category-toggle,
.phone-plan-card[open] .living-category-toggle,
.living-category-card[open] .living-category-toggle{color:#e8759a}

/* the hero arrow: .home-hero-meta a span (0,1,2) outranked .home-hero-cta span */
.home-hero-meta a.home-hero-cta span{color:inherit}

/* /support/ builds its masthead from its own container, so the freshness
   stamp never picked up the dark-shell variant and stayed ink on ink */
.support-heading-copy .verified{color:#ffffff8a;background:#ffffff0f;border-color:#ffffff26}

/* photo credits at 72% opacity came out at 3.86 — not invisible any more,
   still short of AA */
.buy-card-copy .district-photo-credit a,
.living-category-item-copy .district-photo-credit a,
.page-hero .district-photo-credit a,
.home-buy .district-photo-credit a{opacity:.85}

/* /about/: ink at 77% on the lightened coral is 4.31 */
.about>.crumb,.about>.crumb span,.testimonial-grid blockquote cite{color:#071b38e6}

/* Only the accent uses that land on the cream sheet. .editorial-page :is(...)
   is (0,2,0); each of these is (0,3,0) and wins without touching the dark. */
.editorial-page .phone-plan-details .label,
.editorial-page .phone-plan-unicom .label,
.editorial-page .phone-plan-unicom-rates dt,
.editorial-page .membership-details dt,
.editorial-page .mount-blue-details .label,
.editorial-page .mount-blue-details dt,
.editorial-page .shekou-feature-intro .label{color:var(--coral-paper)}
/* ink on the lime-filled block */
.editorial-page .membership-highlights .label{color:var(--ink)}
/* photo credits take the card's own colour, undimmed */
.buy-card-copy .district-photo-credit a,
.living-category-item-copy .district-photo-credit a,
.page-hero .district-photo-credit a,
.home-buy .district-photo-credit a{opacity:1}

/* ---- Third pass, and the actual reason the last one missed --------------
   :is() takes the specificity of its MOST specific argument. So
   .editorial-page :is(… .mount-blue-details .label …) is (0,3,0), and my
   .editorial-page .phone-plan-unicom-rates dt was (0,2,1) — two classes lose
   to three regardless of the extra element. Matching the same shape and
   placing it later is what wins. */
.editorial-page :is(.phone-plan-details .label,.phone-plan-unicom .label,
  .phone-plan-unicom-rates dt,.membership-details dt,.mount-blue-details .label,
  .mount-blue-details dt,.shekou-feature-intro .label){color:var(--coral-paper)}
/* on the lime-filled block, ink — must come after the rule above */
.editorial-page :is(.membership-highlights .label){color:var(--ink)}
/* the toggle is a <span>, so .essential-grid span (0,1,1) was beating
   .living-category-toggle (0,1,0) */
.editorial-page .essential-grid .living-category-toggle,
.editorial-page .essential-grid .living-category-meta span{color:#e8759a}
/* the photo credit inherited its card's 62%-alpha body colour, which is 3.86
   on cream. Give it its own value per surface instead of inheriting. */
.buy-card-copy .district-photo-credit a{color:#071b38c4}
.living-category-item-copy .district-photo-credit a{color:#ffffffc4}

/* At 360px and below the full wordmark and two header actions cannot share
   the three-column nav. The labelled brand mark remains the home link. */
@media (max-width:360px){.nav .brand-name{display:none}}

/* Google Ads measurement consent. The tag starts storage-denied; this small
   first-party panel lets a visitor opt in without borrowing a generic CMP UI. */
.google-consent{position:fixed;z-index:1000;right:clamp(12px,2.5vw,32px);bottom:clamp(12px,2.5vw,32px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end;width:min(720px,calc(100vw - 24px));padding:22px 24px;border:1px solid #071b38;background:#fbfaf6;color:#071b38;box-shadow:8px 8px 0 #071b38}
.google-consent-copy h2{margin:0 0 6px;font:700 clamp(20px,2vw,27px)/1.05 Georgia,serif}
.google-consent-copy p{margin:0 0 8px;max-width:58ch;font-size:14px;line-height:1.55}
.google-consent-copy a{color:#174dc9;font-size:13px;font-weight:700;text-underline-offset:3px}
.google-consent-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.google-consent button{min-height:44px;padding:10px 15px;border:1px solid #071b38;border-radius:0;font:700 13px/1.1 Arial,sans-serif;cursor:pointer}
.google-consent-decline{background:#fbfaf6;color:#071b38}
.google-consent-allow{background:#071b38;color:#fff}
.google-consent button:focus-visible{outline:3px solid #2d6bff;outline-offset:3px}
.measurement-choice{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.measurement-choice button{min-height:44px;padding:9px 14px;border:1px solid currentColor;background:#071b38;color:#fff;font:700 13px/1.2 Arial,sans-serif;cursor:pointer}.measurement-choice button:focus-visible{outline:3px solid #2d6bff;outline-offset:3px}
@media(max-width:700px){.google-consent{right:max(12px,env(safe-area-inset-right));left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));width:auto;max-width:none;grid-template-columns:1fr;gap:14px;padding:16px;box-shadow:6px 6px 0 #071b38}.google-consent-actions{min-width:0;justify-content:stretch}.google-consent button{min-width:0;flex:1}}
@media(max-width:390px){.google-consent{right:10px;left:10px;bottom:10px;width:auto;max-width:calc(100vw - 20px);padding:15px;box-shadow:4px 4px 0 #071b38;overflow:hidden}.google-consent-copy{min-width:0}.google-consent-copy h2{font-size:20px;overflow-wrap:anywhere}.google-consent-copy p{max-width:100%;font-size:13px;line-height:1.45;overflow-wrap:anywhere}.google-consent-actions{width:100%;min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:8px}.google-consent button{width:100%;max-width:100%;padding-inline:8px;font-size:12px;white-space:normal}}
@media(prefers-reduced-motion:reduce){.google-consent{scroll-behavior:auto}}
@media print{.google-consent{display:none!important}}

/* Compact desktop rhythm: keep the phone layout unchanged while reducing
   long blank runs between shared editorial sections. */
@media (min-width:561px){.section{padding:82px 7vw}}

@media(max-width:390px){html,body{max-width:100%;overflow-x:hidden}}

/* Shenzhen Food Intelligence -------------------------------------------
   Two surfaces, and they need opposite palettes. The .food-intel block sits
   on the dark restaurants hub, where .dir-list already uses white-alpha and
   --lime. The .dir-why and .food-foot lines sit inside .article-body on the
   category pages, which is the cream sheet, so they take ink and
   --coral-paper. Getting this backwards is what made 187 rules invisible
   last time. */
.food-intel{margin:0 0 44px}
.food-intel .home-section-heading{margin-bottom:26px}
.food-axes{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:22px;display:grid}
.food-axis{border-top:1px solid #ffffff2e;padding-top:16px}
.food-axis h3{color:var(--lime);letter-spacing:.13em;text-transform:uppercase;margin:0 0 8px;font-family:inherit;font-size:10px;font-weight:800}
.food-axis>p{color:#ffffff8f;margin:0 0 14px;font-family:Georgia,Times New Roman,serif;font-size:13px;line-height:1.5}
.food-axis ul{margin:0;padding:0;list-style:none;display:grid;gap:9px}
.food-axis li{align-items:baseline;gap:10px;display:flex}
.food-axis li a{color:var(--cream);text-underline-offset:3px;font-family:Georgia,Times New Roman,serif;font-size:15.5px;text-decoration:underline}
.food-axis li a:hover{color:var(--lime)}
.food-axis li span{color:#ffffff8f;letter-spacing:.06em;margin-left:auto;font-size:10px;font-weight:800}
.food-gaps{color:#ffffffb8;border-left:2px solid var(--lime);margin:30px 0 0;padding:2px 0 2px 18px;font-family:Georgia,Times New Roman,serif;font-size:14px;line-height:1.6}
.food-gaps strong{color:var(--cream);font-weight:700}

/* cream surface — inside .article-body on the generated category pages */
.article-body .dir-why{border-left:2px solid var(--coral);margin:10px 0 0;padding:2px 0 2px 14px;font-size:13.5px;line-height:1.6;color:#071b38c4}
.article-body .dir-why span{color:var(--coral-paper);letter-spacing:.1em;text-transform:uppercase;margin-right:7px;font-size:9px;font-weight:800}
.article-body .food-foot{color:#071b38a8;border-top:1px solid #071b3814;margin:26px 0 0;padding-top:16px;font-size:13.5px;line-height:1.6}
/* .dir-list li is a grid (thumb | name | note). The why-line is a fourth
   child, so without this it wraps into column 1 under the thumbnail instead
   of sitting beneath the note it belongs to. */
.article-body .dir-list li:has(.dir-thumb) .dir-why{grid-column:3}
.article-body .dir-list li:not(:has(.dir-thumb)) .dir-why{grid-column:2}

/* The Shenzhen Living Index -------------------------------------------
   Lives inside .article-body, which is the cream sheet — so ink text and
   --coral-paper accents, never the dark surface's white-alpha and --lime. */
.li-wrap{overflow-x:auto;margin:22px 0 8px;-webkit-overflow-scrolling:touch}
.living-index{border-collapse:collapse;width:100%;min-width:620px;font-size:14px}
.living-index caption{color:#071b38a8;text-align:left;margin-bottom:12px;font-size:12.5px;line-height:1.5}
.living-index th,.living-index td{border-bottom:1px solid #071b3814;padding:12px 14px 12px 0;text-align:left;vertical-align:top}
.living-index thead th{color:var(--coral-paper);letter-spacing:.09em;text-transform:uppercase;border-bottom:1px solid #071b3826;font-size:9.5px;font-weight:800;line-height:1.5}
.living-index tbody th{font-family:Georgia,Times New Roman,serif;font-size:16px;font-weight:400;white-space:nowrap}
.living-index tbody th a{color:var(--ink);text-underline-offset:3px;text-decoration:underline}
.living-index tbody th a:hover{color:var(--coral-paper)}
.li-unscored{color:#071b3899;letter-spacing:.04em;text-transform:none;font-size:9px;font-weight:600;display:block;margin-top:3px}
.li-score{color:var(--ink);font-family:Georgia,Times New Roman,serif;font-size:21px;line-height:1;display:block}
.li-score[data-band=high]{color:var(--coral-paper);font-weight:700}
.li-score[data-band=low]{color:#071b38a8}
.li-detail{color:#071b38a8;letter-spacing:.05em;margin-top:5px;font-size:10px;font-weight:700;display:block}
.li-listed .li-detail{color:#071b38c4;letter-spacing:0;font-size:13px;font-weight:400;margin-top:0;line-height:1.5}
.li-na span{color:#071b38a8;letter-spacing:.06em;text-transform:uppercase;font-size:9px;font-weight:800}
.li-notes{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:20px;margin:20px 0 8px;display:grid}
.li-note{border-top:1px solid #071b3826;padding-top:14px}
.li-note h3{margin:0 0 7px;font-family:Georgia,Times New Roman,serif;font-size:15.5px;font-weight:400}
.li-measures{letter-spacing:.09em;text-transform:uppercase;font-size:8.5px;font-weight:800;display:block;margin-top:4px}
.li-measures[data-m=district]{color:var(--coral-paper)}
.li-measures[data-m=site]{color:#071b3899}
.li-note p{color:#071b38c4;margin:0;font-size:13px;line-height:1.6}

/* School selection consultation on /services/ --------------------------
   Sits on the dark services surface alongside .pkg-section, so it takes the
   same palette: --cream headings, #ffffffc4 body, --lime for the action. */
.school-consult{margin:44px 0 0}
.sc-body{grid-template-columns:minmax(0,1.6fr) minmax(min(100%,272px),.9fr);gap:34px;margin-top:26px;display:grid;align-items:start}
.sc-copy p{color:#ffffffc4;margin:0 0 14px;font-family:Georgia,Times New Roman,serif;font-size:15px;line-height:1.62}
.sc-copy h3{color:var(--lime);letter-spacing:.13em;text-transform:uppercase;margin:22px 0 12px;font-family:inherit;font-size:10px;font-weight:800}
.sc-list{color:#ffffffc4;margin:0;padding:0;font-size:13.5px;line-height:1.58;list-style:none;display:grid;gap:10px}
.sc-list li{border-left:1px solid #ffffff2e;padding-left:14px}
.sc-price{background:#ffffff0a;border:1px solid #ffffff1f;padding:22px 22px 24px;display:flex;flex-direction:column;gap:12px}
.sc-price-label{color:#ffffff8a;letter-spacing:.13em;text-transform:uppercase;margin:0;font-size:9px;font-weight:800}
.sc-price-value{color:var(--cream);align-items:baseline;gap:6px;margin:0;font-size:30px;font-weight:800;display:flex;flex-wrap:wrap;line-height:1.1}
.sc-price-value span{color:#ffffff8f;font-size:19px;font-weight:700}
.sc-price-note{color:#ffffffb0;margin:0;font-size:12.5px;line-height:1.58}
.sc-price-alt{color:#ffffff8f;border-top:1px solid #ffffff1f;margin:0;padding-top:12px;font-size:12px;line-height:1.55}
.sc-price-alt a{color:var(--lime);text-underline-offset:3px;text-decoration:underline}
.sc-foot{color:#ffffff8f;margin:22px 0 0;font-size:12.5px;line-height:1.6}
.sc-foot a{color:var(--lime);text-underline-offset:3px;text-decoration:underline}
@media (max-width:760px){.sc-body{grid-template-columns:minmax(0,1fr)}}
.food-partner-link{color:#ffffff8f;margin:16px 0 0;font-size:12.5px;line-height:1.6}
.food-partner-link a{color:var(--lime);text-underline-offset:3px;text-decoration:underline}

/* ===================================================== Shenzhen Compass UI
   One restrained interaction language for the whole site: a separate menu
   caret, lazy Find dialog, one-line section route, and compact route figure.
   All links and labels are present before JavaScript runs. */
.nav-top-row{display:flex;align-items:center;min-width:0}
.nav-panel-toggle{color:inherit;cursor:pointer;display:grid;place-items:center;width:28px;height:44px;margin-left:1px}
.nav-panel-toggle:hover{color:#d9b37c}
.nav-panel-toggle[aria-expanded="true"] .nav-caret{opacity:1;transform:rotate(180deg)}
.nav-js .nav-item.is-escape-closed .nav-panel{visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-6px)}
.nav-item[data-current-section="true"]>.nav-top-row>.nav-top:before{content:"";background:var(--lime);border-radius:50%;width:5px;height:5px;margin-right:2px;display:block}
.nav :is(.nav-top,.nav-group a)[aria-current="page"]{color:#d9b37c}
.nav-search{border:1px solid #f7f0e55c;min-width:44px;height:42px;padding:0 11px;display:inline-flex;align-items:center;justify-content:center;gap:6px;color:#fff;letter-spacing:.09em;text-transform:uppercase;font-size:9px;font-weight:800}
.nav-search>span:first-child{color:var(--lime);font-size:20px;font-weight:400;line-height:1;transform:rotate(-18deg)}
.nav-search:hover{color:#06162a;background:var(--lime);border-color:var(--lime)}
.nav-search:hover>span:first-child{color:inherit}

/* Language choice -------------------------------------------------------
   A compact, crawlable EN / ES pair sits beside Search. The URL itself is
   the preference, so the control works without JavaScript and never silently
   redirects somebody away from the language they chose. */
.language-switcher{border:1px solid #f7f0e55c;height:42px;display:inline-flex;align-items:stretch;flex:none;position:relative}
.language-option{color:#ffffffb8;min-width:36px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;letter-spacing:.08em;font-size:10px;font-weight:800;line-height:1;position:relative}
.language-option+.language-option{border-left:1px solid #f7f0e533}
.language-option:hover{color:#06162a;background:var(--lime)}
.language-option[aria-current="true"]{color:#06162a;background:#d9b37c}
.language-option[aria-current="true"]:hover{background:#e5c99f}
.language-option[data-language-fallback="true"]>span:first-child:after{content:"⌂";font-size:8px;margin-left:2px;vertical-align:.12em}
.language-fallback-note{position:absolute;z-index:20;right:-1px;top:calc(100% + 9px);color:#fff;background:#06162a;border:1px solid #d9b37c;padding:7px 9px;box-shadow:0 8px 22px #0006;white-space:nowrap;letter-spacing:.04em;font-size:9px;font-weight:700;line-height:1.2;opacity:0;visibility:hidden;transform:translateY(-3px);transition:opacity .15s ease,transform .15s ease,visibility .15s ease;pointer-events:none}
.language-fallback-note:before{content:"";position:absolute;right:12px;bottom:100%;border:5px solid transparent;border-bottom-color:#d9b37c}
.language-option[data-language-fallback="true"]:is(:hover,:focus-visible) .language-fallback-note{opacity:1;visibility:visible;transform:translateY(0)}
html[lang="es"] a[data-language-fallback="en"]:after{content:"EN";color:currentColor;border:1px solid currentColor;border-radius:999px;margin-left:.45em;padding:2px 4px;display:inline-flex;vertical-align:.18em;opacity:.65;letter-spacing:.08em;font:800 7px/1 Arial,sans-serif}

.site-search{color:var(--ink);background:transparent;border:0;width:min(760px,calc(100vw - 28px));max-width:none;max-height:min(82vh,760px);max-height:min(82dvh,760px);margin:auto;padding:0;overflow:visible}
.site-search::backdrop{background:#020b1bd9;backdrop-filter:blur(5px)}
.site-search-shell{background:var(--paper);border:1px solid #d9b37c;padding:clamp(22px,4vw,38px);box-shadow:0 28px 80px #0008;max-height:min(82vh,760px);max-height:min(82dvh,760px);overflow:auto}
.site-search-head{border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:start;gap:24px;padding-bottom:18px}
.site-search-head>div>span{color:var(--coral-paper);letter-spacing:.14em;text-transform:uppercase;font-size:9px;font-weight:800}
.site-search-head h2{letter-spacing:-.04em;margin:4px 0 0;font:400 clamp(28px,4vw,44px)/1.05 Georgia,"Times New Roman",serif}
.site-search-head button{cursor:pointer;border:1px solid var(--line);min-height:44px;padding:0 13px;letter-spacing:.09em;text-transform:uppercase;font-size:9px;font-weight:800}
.site-search-head button:hover{background:var(--lime);border-color:var(--ink)}
.site-search-field{display:block;margin:22px 0 12px}
.site-search-field input{background:#fff;border:1px solid var(--ink);border-radius:0;width:100%;min-height:56px;padding:0 17px;font:400 18px/1.2 Georgia,"Times New Roman",serif}
.site-search-field input:focus{outline:3px solid var(--lime);outline-offset:2px}
.site-search-intents{display:flex;gap:7px;overflow-x:auto;padding:2px 0 14px;scrollbar-width:none}
.site-search-intents::-webkit-scrollbar{display:none}
.site-search-intents a{background:#071b3808;border:1px solid #071b3824;border-radius:999px;white-space:nowrap;min-height:44px;padding:8px 12px;display:inline-flex;align-items:center;letter-spacing:.08em;text-transform:uppercase;font-size:8px;font-weight:800}
.site-search-intents a:hover{background:var(--lime);border-color:var(--lime)}
.site-search :is(button,a):focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.site-search-status{color:#071b38a0;margin:0;padding:8px 0;font-size:12px}
.site-search-results{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}
.site-search-results li{border-bottom:1px solid #071b381a}
.site-search-results a{display:grid;gap:3px;padding:14px 4px}
.site-search-results a:hover strong{color:var(--coral-paper)}
.site-search-results strong{font:400 18px/1.2 Georgia,"Times New Roman",serif}
.site-search-results span{color:#071b38a0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:11px}

.page-sections{color:var(--ink);background:#f8f6efed;border-bottom:1px solid #071b3828;z-index:19;min-height:48px;padding:0 3.5vw;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:stretch;position:sticky;top:82px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.page-sections-label,.page-sections-count{letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;display:flex;align-items:center;font-size:8px;font-weight:800}
.page-sections-label{color:var(--coral-paper);padding-right:16px}
.page-sections-count{color:#071b3875;border-left:1px solid #071b3820;padding-left:16px}
.page-sections-track{display:flex;align-items:stretch;overflow-x:auto;overscroll-behavior-inline:contain;scroll-padding-inline:15px;scrollbar-width:none}
.page-sections-track::-webkit-scrollbar{display:none}
.page-sections-track a{border-left:1px solid #071b381a;white-space:nowrap;display:flex;align-items:center;gap:7px;min-height:47px;padding:0 15px;font:400 12px/1.2 Georgia,"Times New Roman",serif}
.page-sections-track a>span{color:#071b386f;letter-spacing:.06em;font:800 7px/1 Arial,sans-serif}
.page-sections-track a:hover,.page-sections-track a[aria-current="location"]{color:#fff;background:var(--ink)}
.page-sections-track a[aria-current="location"]>span{color:var(--lime)}
.page-sections-track a:focus-visible{outline:3px solid var(--coral);outline-offset:-3px}
[data-experience-heading]{scroll-margin-top:150px}

.site-compass{color:var(--cream);background:#06162a;border-top:1px solid #d9b37c59;border-bottom:1px solid #ffffff17;margin:0;padding:0 4vw}
.site-compass-inner{max-width:1480px;min-height:132px;margin:0 auto;padding:22px 0;display:grid;grid-template-columns:minmax(130px,.36fr) minmax(420px,1.5fr) auto;align-items:center;gap:clamp(20px,3vw,42px)}
.site-compass figcaption{display:grid;gap:5px;min-width:0}
.site-compass figcaption>span{color:var(--lime);letter-spacing:.14em;text-transform:uppercase;font-size:8px;font-weight:800}
.site-compass figcaption>strong{overflow:hidden;text-overflow:ellipsis;font:400 20px/1.12 Georgia,"Times New Roman",serif}
.site-compass-nav{min-width:0}
.site-compass-graph{min-width:0;margin:0;padding:0;display:flex;align-items:center;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none;list-style:none}
.site-compass-graph::-webkit-scrollbar{display:none}
.site-compass-graph li{flex:1;min-width:108px;display:flex;align-items:center}
.site-compass-graph li:not(:last-child):after{content:"";background:#ffffff36;height:1px;min-width:14px;flex:1}
.site-compass-graph :is(a,li>span){border:1px solid #ffffff36;min-height:44px;width:100%;padding:8px 10px;display:flex;align-items:center;gap:7px;font-size:10px;line-height:1.2;transition:background .16s,border-color .16s,color .16s}
.site-compass-graph :is(a,li>span)>span{color:#d9b37c;letter-spacing:.08em;font-size:7px;font-weight:800}
.site-compass-graph a:hover,.site-compass-graph a:focus-visible,.site-compass-graph a.is-suggested{color:var(--ink);background:var(--lime);border-color:var(--lime)}
.site-compass-graph a:is(:hover,:focus-visible,.is-suggested)>span{color:var(--ink)}
.site-compass-graph .is-current>span{border-color:#d9b37c;color:#d9b37c}
.site-compass-graph .is-next a{border-style:dashed}
.site-compass-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.site-compass-actions :is(button,a){cursor:pointer;color:var(--cream);border:1px solid #ffffff3d;min-height:44px;padding:0 12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;letter-spacing:.08em;text-transform:uppercase;font-size:8px;font-weight:800}
.site-compass-actions :is(button,a):hover,.site-compass-actions button[aria-pressed="true"]{color:var(--ink);background:#d9b37c;border-color:#d9b37c}
.site-compass-actions :is(button,a):focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.site-compass-actions a{color:var(--ink);background:var(--lime);border-color:var(--lime)}
.site-compass-actions a:hover{background:#fff;border-color:#fff}

@media (max-width:1180px) and (min-width:1001px){.nav-search>span:last-child{display:none}.nav-search{padding:0}.site-compass-inner{grid-template-columns:120px minmax(360px,1fr)}.site-compass-actions{grid-column:1/-1;justify-content:flex-start}}
@media (max-width:1000px){
  .nav{grid-template-columns:minmax(0,1fr) auto auto auto auto!important;display:grid}
  .nav>.brand{grid-column:1;grid-row:1}.nav>.language-switcher{grid-column:2;grid-row:1}.nav>.nav-search{grid-column:3;grid-row:1}.nav>.nav-toggle{grid-column:4;grid-row:1}.nav>.donate-link{grid-column:5;grid-row:1}.nav>.nav-links{grid-column:1/-1;grid-row:2}
  .nav-top-row{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 44px}
  .nav-top{padding-left:0!important}.nav-panel-toggle{width:44px;margin:0;justify-self:end}
  .page-sections{top:72px;padding-inline:4vw}
  .site-compass-inner{grid-template-columns:1fr;gap:14px;padding:22px 0 24px}.site-compass figcaption{grid-template-columns:auto 1fr;align-items:baseline;gap:12px}.site-compass-graph li{min-width:122px}.site-compass-actions{justify-content:flex-start}
}
@media (max-width:560px){
  .nav{grid-template-columns:minmax(38px,1fr) 38px 38px 40px minmax(92px,auto)!important;gap:4px;padding:10px 3vw}
  .nav .brand-name{display:none}.language-switcher{width:38px}.language-option{display:none;min-width:38px;padding:0}.language-option:not([aria-current="true"]){display:inline-flex}.nav-search{width:38px;min-width:38px;padding:0}.nav-search>span:last-child{display:none}.nav .donate-link{padding:0 7px;font-size:8px}
  .page-sections{top:0;grid-template-columns:auto minmax(0,1fr);padding-inline:0}.page-sections-label{padding-left:4vw;padding-right:12px}.page-sections-count{display:none}.page-sections-track a{padding-inline:12px}
  [data-experience-heading]{scroll-margin-top:62px}
  .site-compass{padding-inline:5vw}.site-compass figcaption{display:grid;grid-template-columns:1fr}.site-compass figcaption>strong{font-size:18px}.site-compass-graph{margin-inline:-1vw}.site-compass-graph li{min-width:120px}.site-compass-actions{display:grid;grid-template-columns:1fr 1fr}.site-compass-actions a{grid-column:1/-1}.site-compass-actions :is(button,a){white-space:normal;text-align:center;padding:8px 10px}
  .site-search-shell{padding:20px}.site-search-head h2{font-size:28px}.site-search-head button{padding-inline:10px}.site-search-field input{font-size:16px}
}
@media (prefers-reduced-motion:reduce){.nav-caret,.site-compass-graph :is(a,li>span),.language-fallback-note{transition:none}}
@media (forced-colors:active){.site-compass-graph li:not(:last-child):after{background:CanvasText}.page-sections,.site-compass,.language-switcher{border:1px solid CanvasText}.site-search::backdrop{background:Canvas}}
@media print{.page-sections,.site-compass,.site-search,.nav-search,.language-switcher{display:none!important}}
/* Commercial service routes: compact enough to scan before the detailed packages. */
.commercial-service-directory{width:min(1180px,calc(100% - 40px));margin:40px auto 76px;padding:clamp(24px,4vw,48px);border:1px solid var(--line,#b8b2a6);display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr);gap:clamp(24px,5vw,64px);background:#f8f5ed;color:#071f41}.commercial-service-directory h2{font:clamp(2.2rem,4.5vw,4rem)/1 Georgia,serif;margin:.35rem 0 1rem}.commercial-service-directory>div>p:last-child{line-height:1.6;color:#536177}.commercial-service-directory nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid #071f41;border-left:1px solid #071f41}.commercial-service-directory nav a{display:flex;flex-direction:column;gap:.65rem;justify-content:space-between;padding:1.2rem;border-right:1px solid #071f41;border-bottom:1px solid #071f41;color:#071f41;text-decoration:none;min-height:130px}.commercial-service-directory nav a:hover,.commercial-service-directory nav a:focus-visible{background:#071f41;color:#fff}.commercial-service-directory nav strong{font:1.25rem/1.2 Georgia,serif}.commercial-service-directory nav span{font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;color:#d83b68}@media(max-width:760px){.commercial-service-directory{grid-template-columns:1fr;width:min(100% - 24px,1180px)}.commercial-service-directory nav{grid-template-columns:1fr}.commercial-service-directory nav a{min-height:104px}}
