:root {
  color-scheme: light;
  --ink: #152a40;
  --sub: #485b6e;
  --navy: #071323;
  --navy-soft: #10243a;
  --paper: #f7f6f0;
  --gold: #d6ba7b;
  --line: #d9d8ce;
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: Manrope, Arial, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
body { margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.65 var(--sans); -webkit-font-smoothing: antialiased; }
h1, h2, h3, p, figure { margin: 0; }
h1, h2, h3 { font-family: var(--serif); font-weight: 500; line-height: 1.08; }
h1, h2 { text-wrap: balance; }
h1 em, h2 em { font-weight: 400; color: #d8c393; }
a { color: inherit; text-decoration: none; }
a:hover { text-decoration: underline; text-underline-offset: 4px; }
a:focus-visible, summary:focus-visible, input:focus-visible, select:focus-visible, button:focus-visible { outline: 3px solid #498ade; outline-offset: 4px; }
button, input, select { font: inherit; }
button, summary { cursor: pointer; }
img { max-width: 100%; display: block; }
[hidden] { display: none !important; }
.wrap { width: min(1250px, calc(100% - 104px)); margin-inline: auto; }
.skip { position: fixed; top: -70px; left: 20px; padding: 10px 18px; background: white; color: var(--ink); z-index: 100; }
.skip:focus { top: 4px; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 21px; min-height: 48px; padding: 12px 20px; border-radius: 3px; font: 700 13px/1.45 var(--sans); text-align: center; }
.button:hover { text-decoration: none; }
.gold { background: linear-gradient(112deg,#c7a564,#e7d198); color: #112135; border: 1px solid #d9bd7f; }
.gold:hover { background: #e9d5a6; }
.kicker, .section-number, .band-label { font: 700 10px/1.65 var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--gold); }
.kicker.ink, .section-number { color: #755f31; }
.kicker span { margin-inline: 8px; opacity: .7; }
.masthead { position: sticky; top: 0; z-index: 20; background: #061020f5; border-bottom: 1px solid #c7af752d; color: #eef2f5; backdrop-filter: blur(16px); }
.mast-inner { min-height: 80px; display: flex; align-items: center; gap: 23px; }
.brand { flex-shrink: 0; }
.brand img { width: 157px; height: auto; }
.mast-divider { height: 30px; width: 1px; background: #bfaa754b; }
.edition { font: 500 21px/1.1 var(--serif); }
.edition em { color: #d4bb82; }
.masthead nav { display: flex; align-items: center; gap: 25px; margin-left: auto; }
.masthead nav > a:not(.button) { color: #d0d9e5; font-size: 12px; }
.header-wa { min-height: 41px; font-size: 12px; }
.crumbs { display: flex; gap: 9px; align-items: center; flex-wrap: wrap; color: #b8c5d4; font-size: 11px; padding-top: 25px; position: relative; }
.crumbs b { font-weight: 400; color: #b69e68; }
.crumbs [aria-current] { color: #e2d3ae; }
.index-hero, .article-hero { color: #f4f6f8; background: linear-gradient(120deg,#050e1b,#102238); border-bottom: 1px solid #cbb47744; }
.hero-layout { display: grid; grid-template-columns: 1fr 1.04fr; align-items: center; gap: 70px; padding: 52px 0 57px; }
.hero-copy h1 { font-size: clamp(60px,6.6vw,96px); letter-spacing: -.045em; line-height: .94; margin: 22px 0 26px; }
.hero-intro { max-width: 56ch; color: #c5d0df; font-size: 16px; line-height: 1.75; }
.hero-copy .button { margin-top: 29px; }
.cover-photo, .article-photo { position: relative; overflow: hidden; border-radius: 3px; border: 1px solid #d4b78280; }
.cover-photo img { width: 100%; height: clamp(290px,30vw,425px); object-fit: cover; object-position: 63% 50%; }
.cover-photo figcaption, .article-photo figcaption { position: absolute; inset: auto 0 0; display: flex; justify-content: space-between; align-items: center; gap: 8px; color: #eaddbd; background: linear-gradient(transparent,#030d1ee8); padding: 48px 21px 15px; font-size: 9px; letter-spacing: .15em; }
.region-band { background: #102238; color: #fff; border-bottom: 1px solid #c3a76750; }
.region-band > .wrap { display: flex; align-items: center; gap: 32px; padding-block: 18px; }
.band-label { font-size: 9px; white-space: nowrap; }
.city-nav { display: flex; flex-wrap: wrap; gap: 10px 23px; }
.city-nav a { display: inline-flex; gap: 8px; align-items: center; font-size: 13px; color: #e6ebf2; }
.city-nav a span { border: 1px solid #c5af792f; color: #d8be84; padding: 1px 6px; font-size: 10px; }
.city-nav a[aria-current] { text-decoration: underline; text-underline-offset: 4px; color: #e7d19f; }
.catalog, .related { padding: 76px 0 70px; }
.catalog-intro { display: flex; align-items: end; gap: 34px; justify-content: space-between; }
.catalog-intro h2, .related h2 { font-size: clamp(39px,4.5vw,59px); letter-spacing: -.035em; margin-top: 10px; }
.catalog-intro > p { max-width: 37ch; font-size: 14px; color: var(--sub); }
.filters { display: flex; align-items: end; gap: 17px; padding: 24px; background: #eceee9; border: 1px solid var(--line); border-radius: 3px; margin-top: 33px; }
.filters label { font-weight: 700; font-size: 12px; display: grid; gap: 6px; }
.filters label:first-child { flex: 1; }
.filters input, .filters select { border: 1px solid #aab4bb; background: #fffefa; color: var(--ink); padding: 10px 13px; border-radius: 2px; min-height: 44px; width: 100%; font-size: 14px; }
.clear-filters { background: transparent; border: 0; font-size: 12px; text-decoration: underline; text-underline-offset: 4px; min-height: 44px; color: var(--ink); }
.result-count { color: #536474; font-size: 12px; margin-top: 14px; }
.city-group { margin: 40px 0 50px; }
.group-title { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; border-top: 1px solid #a48c58; padding-top: 18px; margin-bottom: 18px; }
.group-title h2 { font-size: 37px; }
.group-title a, .more-link { color: #69542f; font-weight: 700; font-size: 12px; text-decoration: underline; text-underline-offset: 4px; }
.guide-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.guide-card { display: flex; flex-direction: column; padding: 22px 23px; background: #fffef9; border: 1px solid #d3d4c9; border-radius: 3px; transition: border-color .2s, box-shadow .2s; }
.guide-card:hover { text-decoration: none; border-color: #aa9160; box-shadow: 0 5px 18px #12263c12; }
.card-edition { color: #6b572e; font-size: 9px; letter-spacing: .07em; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); padding-bottom: 11px; }
.card-edition > span:first-child { font-weight: 700; letter-spacing: .13em; }
.card-location { margin-top: 18px; color: #4c6275; font-size: 11px; font-weight: 700; }
.guide-card h3 { font-size: 28px; letter-spacing: -.018em; margin: 9px 0 13px; }
.guide-card > p { font-size: 13px; color: var(--sub); flex-grow: 1; line-height: 1.7; }
.card-link { display: flex; align-items: center; justify-content: space-between; color: #6c542c; font-size: 12px; font-weight: 700; margin-top: 21px; }
.card-link span { font-size: 16px; }
.empty-state { padding: 35px 20px; text-align: center; }
.empty-state h3 { font-size: 30px; margin-bottom: 10px; }
.ask-band, .closing { background: var(--navy-soft); color: #eef2f6; padding: 55px 0; }
.ask-band > .wrap { display: flex; align-items: center; gap: 40px; justify-content: space-between; }
.ask-band h2, .closing h2 { margin: 12px 0; font-size: clamp(36px,4vw,58px); letter-spacing: -.025em; }
.ask-band p:not(.kicker), .closing p:not(.kicker) { color: #c1ccda; font-size: 15px; max-width: 58ch; }
.article-head-layout { display: grid; grid-template-columns: 1.25fr .75fr; gap: 58px; align-items: center; padding: 49px 0 60px; }
.location-mark { font-size: 14px; color: #e1d4b5; margin: 19px 0 10px; }
.article-head-layout h1 { font-size: clamp(44px,4.45vw,70px); letter-spacing: -.035em; margin-bottom: 22px; }
.article-head-layout .button { margin-top: 24px; }
.byline { color: #b6c5d7; font-size: 11px; margin-top: 22px; }
.byline span { margin-inline: 4px; color: var(--gold); }
.byline a { text-decoration: underline; text-underline-offset: 2px; }
.article-photo img { width: 100%; height: clamp(290px,24vw,385px); object-fit: cover; }
.article-photo figcaption { letter-spacing: .08em; font-size: 10px; }
.article-photo figcaption small { font-size: 9px; letter-spacing: 0; color: #d1d9e1; }
.reading-shell { display: grid; grid-template-columns: minmax(190px,252px) minmax(0,760px); gap: clamp(44px,7vw,120px); justify-content: center; padding-block: 61px 74px; }
.rail-inner { position: sticky; top: 102px; max-height: calc(100vh - 124px); overflow-y: auto; padding-right: 8px; }
.toc { border-top: 2px solid #a18957; }
.toc summary { font: 500 26px var(--serif); color: var(--ink); padding: 15px 0; }
.toc nav { display: grid; }
.toc nav a { border-top: 1px solid var(--line); font-size: 12px; line-height: 1.6; padding: 8px 4px 8px 0; color: var(--sub); }
.rail-local { color: #6c5c38; font-size: 11px; margin-top: 18px; }
.rail-local span { margin: 0 4px; }
.rail-cta { display: inline-block; margin-top: 6px; font-size: 12px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.prose { min-width: 0; }
.prose h2 { font-size: clamp(29px,3.1vw,43px); line-height: 1.13; letter-spacing: -.02em; margin: 10px 0 17px; text-wrap: pretty; }
.prose p:not(.section-number) { font-size: 17px; line-height: 1.87; margin: 0 0 16px; color: #32485c; }
.answer-box { padding: 28px 30px 20px; background: #e9ece6; border-left: 3px solid #a48b55; margin-bottom: 40px; }
.answer-box h2 { font-size: 31px; }
.answer-box p:last-child { margin-bottom: 4px; }
.chapter { margin-bottom: 35px; padding-top: 21px; border-top: 1px solid var(--line); }
.chapter .section-number { font-size: 9px; }
.faqs { border-top: 1px solid var(--line); padding-top: 24px; margin-top: 39px; }
.faqs details { border-bottom: 1px solid var(--line); }
.faqs summary { padding: 16px 23px 16px 0; font-size: 16px; line-height: 1.5; font-weight: 700; list-style: none; position: relative; }
.faqs summary::-webkit-details-marker { display: none; }
.faqs summary::after { content: "+"; color: #927943; position: absolute; right: 2px; top: 13px; font-size: 21px; }
.faqs details[open] summary::after { content: "−"; }
.faqs details p { font-size: 16px !important; }
.sources { margin-top: 37px; }
.sources h2 { font-size: 31px; }
.sources ul { margin: 12px 0 0; padding-left: 20px; }
.sources li { margin-bottom: 10px; font-size: 13px; line-height: 1.65; }
.sources a { text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.closing-layout { display: grid; grid-template-columns: 1.2fr 1fr; gap: 68px; align-items: center; }
.closing .button { margin-top: 23px; }
.service-menu { border: 1px solid #c3ab754d; padding: 22px 26px; background: #07142477; }
.service-menu h3 { font-size: 27px; margin-bottom: 18px; }
.service-menu a { display: grid; grid-template-columns: 26px 1fr 14px; gap: 8px; align-items: center; border-top: 1px solid #bba97633; padding: 12px 0; font-size: 13px; }
.service-menu a span, .service-menu a b { color: var(--gold); font-weight: 400; }
.related .guide-grid { margin: 26px 0 22px; }
footer { background: var(--navy); color: #c3cdd6; padding-top: 46px; }
.foot-main { display: grid; grid-template-columns: 1.4fr 1fr .9fr; gap: 45px; padding-bottom: 35px; }
.foot-main img { width: 177px; height: auto; margin-bottom: 17px; }
.foot-main p, .foot-main address, .foot-main a:not(:has(img)) { font-size: 13px; line-height: 1.8; font-style: normal; }
.foot-main a, .foot-main strong { display: block; }
.foot-main strong { color: #e1c78c; margin: 6px 0 13px; font-size: 13px; }
.foot-main address { margin-bottom: 8px; }
.foot-end { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid #c3ab7538; gap: 20px; padding: 19px 0; font-size: 11px; }
.foot-end b { color: #e1c686; margin-left: 5px; }
.mobile-actions { display: none; }
@media(max-width:1050px) {
  .wrap { width: calc(100% - 60px); }
  .hero-layout, .article-head-layout { gap: 35px; }
  .region-band > .wrap { align-items: flex-start; flex-direction: column; gap: 10px; }
  .article-head-layout { grid-template-columns: 1.2fr .8fr; }
  .guide-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .reading-shell { grid-template-columns: minmax(160px,195px) minmax(0,1fr); gap: 35px; }
}
@media(max-width:760px) {
  html { scroll-padding-top: 84px; }
  .wrap { width: calc(100% - 38px); }
  .mast-inner { min-height: 68px; gap: 13px; }
  .brand img { width: 130px; }
  .mast-divider, .edition, .nav-home { display: none; }
  .masthead nav { gap: 12px; }
  .masthead nav > a:not(.button) { font-size: 12px; }
  .header-wa { min-height: 38px; padding: 8px 12px; font-size: 11px; gap: 7px; }
  .crumbs { font-size: 10px; gap: 7px; padding-top: 18px; }
  .hero-layout, .article-head-layout { grid-template-columns: 1fr; padding: 30px 0; gap: 24px; }
  .hero-copy h1 { font-size: clamp(61px,11vw,77px); margin: 17px 0 19px; }
  .hero-intro { font-size: 15px; }
  .hero-copy .button { margin-top: 22px; }
  .cover-photo img { height: clamp(205px,54vw,295px); object-position: 65% center; }
  .city-nav { gap: 10px 18px; }
  .city-nav a { font-size: 12px; }
  .catalog, .related { padding-block: 46px; }
  .catalog-intro { display: block; }
  .catalog-intro > p { margin-top: 12px; }
  .filters { display: grid; gap: 13px; margin-top: 22px; padding: 17px; }
  .filters input, .filters select { font-size: 16px; }
  .clear-filters { justify-self: start; min-height: 35px; }
  .city-group { margin: 29px 0 38px; }
  .group-title h2 { font-size: 31px; }
  .guide-grid { gap: 12px; }
  .guide-card { padding: 18px; }
  .guide-card h3 { font-size: 26px; }
  .ask-band > .wrap { display: grid; gap: 22px; justify-content: start; }
  .ask-band .button { justify-self: start; }
  .article-head-layout h1 { font-size: clamp(38px,7.7vw,54px); margin-bottom: 15px; }
  .article-head-layout .button { margin-top: 19px; }
  .byline { margin-top: 17px; }
  .article-photo img { height: 210px; }
  .reading-shell { display: flex; flex-direction: column; padding-block: 28px 43px; gap: 24px; }
  .rail-inner { position: static; max-height: none; padding: 0; overflow: visible; }
  .rail-cta, .rail-local { display: none; }
  .toc { border-bottom: 1px solid var(--line); }
  .toc summary { font-size: 24px; }
  .toc nav { padding-bottom: 10px; }
  .toc nav a { font-size: 13px; }
  .answer-box { padding: 20px; margin-bottom: 28px; }
  .prose p:not(.section-number) { font-size: 16px; line-height: 1.82; }
  .prose h2 { font-size: 31px; }
  .chapter { margin-bottom: 25px; }
  .closing-layout { grid-template-columns: 1fr; gap: 28px; }
  .closing, .ask-band { padding-block: 40px; }
  .service-menu { padding: 19px; }
  .foot-main { grid-template-columns: 1fr 1fr; gap: 23px; }
  .foot-main > div:first-child { grid-column: 1/-1; }
  .foot-end { align-items: flex-start; flex-direction: column; gap: 12px; }
  footer { padding-bottom: 66px; }
  .mobile-actions { display: flex; position: fixed; bottom: 0; left: 0; right: 0; z-index: 25; background: #0b1c30; border-top: 1px solid #c6ae7666; padding-bottom: env(safe-area-inset-bottom); }
  .mobile-actions a { width: 45%; min-height: 53px; display: grid; place-items: center; color: white; font-size: 12px; font-weight: 700; }
  .mobile-actions a+a { width: 55%; background: #197b51; }
}
@media(max-width:535px) {
  .guide-grid { grid-template-columns: 1fr; }
  .nav-index { max-width: 45px; line-height: 1.25; }
  .masthead nav { gap: 9px; }
  .related h2, .catalog-intro h2 { font-size: 37px; }
}
@media(max-width:355px) {
  .mast-inner { gap: 6px; }
  .brand img { width: 111px; }
  .header-wa { padding: 7px; font-size: 10px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}
.article-head-layout .location-mark { display: block; font: 600 14px/1.6 var(--sans); letter-spacing: 0; margin: 18px 0 11px; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 21px; margin-top: 23px; }
.hero-actions .button { margin: 0; }
.copy-guide { background: none; border: 0; border-bottom: 1px solid #aa9364; padding: 8px 0; color: #e4d3ac; font: 600 12px var(--sans); }
.copy-status:not(:empty) { margin-top: 10px; font-size: 12px; color: #dfd4b9; }
.copy-status input { background: #eef0ec; color: var(--ink); width: min(380px,100%); font: inherit; padding: 7px; }

.blog-cookie { position: fixed; z-index: 30; left: 20px; bottom: 20px; width: min(380px, calc(100% - 40px)); padding: 17px 18px; background: #fbfaf4; color: var(--ink); border: 1px solid #c1ad7d; box-shadow: 0 8px 30px #0002; border-radius: 4px; }
.blog-cookie strong { font-size: 14px; }
.blog-cookie p { font-size: 12px; margin: 6px 0 12px; line-height: 1.65; }
.blog-cookie div { display: flex; gap: 8px; flex-wrap: wrap; }
.blog-cookie button { font: 600 12px var(--sans); padding: 9px 12px; background: transparent; color: var(--ink); border: 1px solid #a9afa8; border-radius: 2px; }
.blog-cookie #cookie-accept { background: var(--navy-soft); color: white; }
.blog-cookie-settings { padding: 0; background: none; border: 0; color: inherit; font: inherit; font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width:760px) { .blog-cookie { bottom: calc(65px + env(safe-area-inset-bottom)); left: 12px; width: calc(100% - 24px); } }

.solutions-grid { margin-top: 28px; }
.service-page .closing .wrap > p:not(.kicker) { max-width: 65ch; margin: 14px 0 20px; }
.service-page .answer-box li { margin: 8px 0; color: var(--sub); }
.service-page .answer-box ul { padding-left: 1.3rem; }
