[hidden] { display: none !important; }
.menu-toggle { display: none; border: 1px solid var(--line); background: transparent; min-height: 44px; padding: var(--space-2) var(--space-3); font-size: var(--text-xs); }
header nav a[aria-current="page"] { color: var(--orange); border-bottom: 2px solid var(--orange); }
.header-row nav { gap: var(--space-4); }
.route-breadcrumb { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-bottom: var(--space-8); color: var(--muted); font-size: var(--text-sm); }
.route-breadcrumb a { text-decoration: underline; }
.area-hero { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-12); align-items: center; margin-bottom: var(--space-12); }
.area-hero img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.area-map-hero { grid-template-columns: .85fr 1.15fr; align-items: start; }
.area-map-panel { min-width: 0; }
.map-heading { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); margin-bottom: var(--space-4); }
.map-heading .eyebrow { margin-bottom: var(--space-2); }
.map-heading h3 { font-size: var(--text-lg); }
.map-reset { min-height: 44px; padding: var(--space-2) var(--space-3); font-size: var(--text-sm); background: var(--bg); border: 1px solid var(--line); }
.map-reset:disabled { opacity: .5; cursor: wait; }
.area-map { height: 480px; width: 100%; background: var(--surface); border: 1px solid var(--line); }
.map-status { padding: var(--space-3); font-size: var(--text-sm); }
.map-caption { margin-top: var(--space-4); }
.map-caption p { font-size: var(--text-xs); color: var(--muted); margin-bottom: var(--space-3); }
.map-caption > a { font-size: var(--text-sm); text-decoration: underline; }
.maplibregl-ctrl { color: #142f43; }
.maplibregl-ctrl-attrib a { color: #142f43; }
.maplibregl-map { font-family: var(--font-body); }
.area-hero h2, .service-page > h2 { font-size: clamp(2.5rem, 1.7rem + 3vw, 4.8rem); margin-bottom: var(--space-6); }
.area-hero p:not(.eyebrow) { color: var(--muted); margin-bottom: var(--space-6); }
.area-route-tabs { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-bottom: var(--space-8); }
.area-route-tabs a { padding: var(--space-3) var(--space-4); border: 1px solid var(--line); font-size: var(--text-sm); }
.area-route-tabs a[aria-current="page"] { background: var(--button); color: white; border-color: var(--button); }
.area-options { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-8); margin-block: var(--space-8); }
.area-options article { padding: var(--space-8); background: var(--surface); }
.area-options h3 { margin-bottom: var(--space-4); }
.area-options p { color: var(--muted); margin-bottom: var(--space-6); font-size: var(--text-sm); }
.area-image-note { color: var(--muted); font-size: var(--text-xs); margin-block: var(--space-4); }
.route-faq { margin-top: var(--space-12); }
.route-faq h3 { margin-bottom: var(--space-6); }
.route-faq details { border-bottom: 1px solid var(--line); padding-block: var(--space-4); }
.route-faq summary { cursor: pointer; font-weight: 700; padding-block: var(--space-2); font-size: var(--text-sm); }
.route-faq details p { color: var(--muted); padding-block: var(--space-4); }
.region-open { display: flex; justify-content: space-between; align-items: center; padding-block: var(--space-4); font-weight: 700; font-size: var(--text-sm); min-height: 44px; border-top: 1px solid var(--line); }
.region-image > a { display: block; }
.region-image > a img { width: 100%; height: 340px; object-fit: cover; transition: transform 400ms; }
.brokerage-logo { width: 280px; max-width: 100%; height: auto; background: #fff; padding: var(--space-2); }
.broker-strip .brokerage-logo { width: 300px; }
.submission-status { margin-top: var(--space-4); }
.inquiry-consent a { text-decoration: underline; color: var(--orange); }
footer a { overflow-wrap: anywhere; }
.area-inquiry { font-weight: 500; font-size: var(--text-xs); border: 0; padding-top: var(--space-2); }
.about-portrait { width: 100%; max-height: 560px; object-fit: cover; object-position: center 30%; }
.about-grid h2 { margin-bottom: var(--space-6); }
.inquiry-box { grid-column: 1 / -1; background: var(--surface); padding: var(--space-8); border: 1px solid var(--line); }
.inquiry-box > div:first-child { margin-bottom: var(--space-8); }
.inquiry-box h3 { margin-bottom: var(--space-4); }
.inquiry-box p { color: var(--muted); font-size: var(--text-sm); margin-bottom: var(--space-4); }
.inquiry-fields { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-6); margin-bottom: var(--space-6); }
.inquiry-box label { display: block; font-size: var(--text-sm); margin-bottom: var(--space-2); }
.inquiry-box input:not([type="checkbox"]), .inquiry-box select, .inquiry-box textarea { display: block; width: 100%; padding: var(--space-3); background: var(--bg); color: var(--ink); border: 1px solid var(--line); font: inherit; }
.inquiry-box textarea { resize: vertical; margin-bottom: var(--space-6); }
.inquiry-box .inquiry-consent { display: flex; gap: var(--space-3); align-items: flex-start; margin-bottom: var(--space-6); color: var(--muted); }
.inquiry-consent input { width: 20px; height: 20px; flex-shrink: 0; margin-top: 3px; accent-color: var(--button); }
.service-page > p, .privacy-page > p { margin-block: var(--space-6); color: var(--muted); }
.service-steps { margin-block: var(--space-8); list-style: none; counter-reset: steps; }
.service-steps li { counter-increment: steps; display: grid; grid-template-columns: 44px 1fr; gap: var(--space-4); padding-block: var(--space-6); border-top: 1px solid var(--line); max-width: 850px; color: var(--muted); }
.service-steps li::before { content: "0" counter(steps); color: var(--orange); font-weight: 700; }
.service-steps strong { display: block; color: var(--ink); font-size: var(--text-base); }
.footer-navigation { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-6); font-size: var(--text-sm); }
main h1[tabindex="-1"]:focus, main h2[tabindex="-1"]:focus { outline: none; }
.header-row .nav-contact:not([aria-current="page"]) { border-bottom-color: transparent; }
.cma-hero { display: grid; grid-template-columns: 1.4fr .8fr; gap: var(--space-12); align-items: start; }
.cma-hero h2 { font-size: clamp(2.5rem, 1.5rem + 3vw, 4.8rem); margin-bottom: var(--space-6); }
.cma-intro { color: var(--muted); margin-bottom: var(--space-8); }
.cma-profile { padding: var(--space-6); background: var(--surface); border-top: 3px solid var(--orange); }
.cma-profile img { width: 92px; height: 108px; object-fit: cover; object-position: center 25%; margin-bottom: var(--space-4); }
.cma-profile h3 { margin-bottom: var(--space-3); }
.cma-profile p:not(.eyebrow) { margin-top: var(--space-3); font-size: var(--text-sm); }
.membership-line { border-left: 2px solid var(--orange); padding-left: var(--space-4); }
.cma-fine { color: var(--muted); font-size: var(--text-xs) !important; }
.cma-overview { display: grid; grid-template-columns: repeat(3,1fr); gap: var(--space-8); margin-block: var(--space-12); }
.cma-overview article { border-top: 1px solid var(--line); padding-top: var(--space-6); }
.cma-overview h3 { margin-bottom: var(--space-4); }
.cma-overview p, .cma-notice p { font-size: var(--text-sm); color: var(--muted); }
.cma-notice { border-left: 3px solid var(--orange); padding: var(--space-6); background: var(--surface); margin-bottom: var(--space-8); }
.cma-notice h3 { margin-bottom: var(--space-3); }
.cma-notice p { max-width: 85ch; }
.cma-notice a { text-decoration: underline; }
.cma-full { grid-column: 1 / -1; }
#cma-request { scroll-margin-top: 110px; }
@media(max-width:1000px) { .header-row nav { gap: var(--space-3); font-size: var(--text-xs); } }
@media(max-width:760px) {
  .header-row { flex-wrap: wrap; gap: var(--space-2); padding-block: var(--space-3); }
  .brand { gap: var(--space-2); flex: 1; }
  .brand svg { width: 34px; height: 34px; }
  .brand small { font-size: 12px; letter-spacing: 0; }
  .menu-toggle { display: block; }
  .theme { margin-left: 0; width: 40px; height: 40px; }
  header nav { display: none; order: 4; width: 100%; margin: 0; padding-block: var(--space-4); }
  header nav.menu-open { display: grid; grid-template-columns: 1fr 1fr; }
  header nav a { padding: var(--space-3); min-height: 44px; font-size: var(--text-sm); }
  .area-hero, .area-options { grid-template-columns: 1fr; gap: var(--space-8); }
  .cma-hero, .cma-overview { grid-template-columns: 1fr; gap: var(--space-8); }
  .area-map-hero { grid-template-columns: 1fr; }
  .area-map { height: 390px; }
  .area-hero h2 { font-size: clamp(2.5rem, 9vw, 3.5rem); }
  .inquiry-fields { grid-template-columns: 1fr; gap: var(--space-4); }
  .inquiry-box { padding: var(--space-6); }
  .region-image > a img { height: 300px; }
}
