/* Product UI, September 2026. Final semantic layer: 16px body / 14px utility.
   Keep responsive typography here; do not shrink text to solve layout problems. */
:root {
  --canvas: #f6f5f1;
  --ink: #232d32;
  --muted: #5d686e;
  --line: #d6d9d7;
  --surface: #fff;
  --surface-soft: #eaecea;
  --action: #b94022;
  --orange: #c74826;
  --orange-dark: #a9381b;
  --radius: 6px;
}
html[data-theme="dark"] {
  --canvas: #111619;
  --ink: #eef1ee;
  --muted: #acb6b7;
  --line: #354045;
  --surface: #1b2327;
  --surface-soft: #242e32;
  --action: #ef805b;
  --orange: #ef805b;
  --orange-dark: #f29878;
}
body { font-size: 16px; line-height: 1.6; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.btn:disabled { opacity: .55; cursor: default; transform: none; box-shadow: none; }
.container { width: calc(100% - 96px); max-width: 1320px; }
.section { padding-block: 80px; }
h1, h2, h3 { text-wrap: balance; }
h2 { font-size: clamp(34px, 3.3vw, 48px); line-height: 1.13; letter-spacing: -.05em; }
.eyebrow, .section-index, dialog .section-index, .receipt-header .eyebrow,
.principles-section article > span, .contact-section .eyebrow, .detail-content .eyebrow,
.contact-success .eyebrow {
  font-size: 14px; line-height: 1.5; letter-spacing: .035em; text-transform: none;
}
.section-index { margin-bottom: 18px; color: var(--muted); }
.btn, .text-button, .header-contact, .search-submit, .catalog-bottom .btn,
.price-copy .btn, .detail-content > .btn, #contact-form > .btn,
.contact-success > .btn { font-size: 16px; min-height: 48px; }
.btn { padding: 13px 20px; }
.btn-orange, .search-submit { background: var(--action); color: #fff; }
html[data-theme="dark"] .btn-orange, html[data-theme="dark"] .search-submit {
  background: var(--orange); color: #171d20;
}
.header-inner { height: 80px; gap: 20px; }
.brand-wordmark { font-size: 23px; letter-spacing: -.05em; }
.brand-mark { width: 37px; height: 34px; }
.desktop-nav { gap: 24px; margin-left: 0; }
.desktop-nav a, .location { font-size: 14px; }
.header-actions { gap: 14px; }
.header-contact { min-height: 44px; font-size: 14px; padding: 10px 16px; }
.theme-toggle { width: 44px; height: 44px; }

/* A contained editorial scene. The car and text have separate columns. */
.hero, html[data-theme="dark"] .hero {
  min-height: 0; height: auto; display: grid; grid-template-columns: 46% 54%;
  align-items: center; padding-block: 64px 80px; background: var(--surface-soft);
  isolation: isolate;
}
.hero .hero-content {
  grid-column: 1; grid-row: 1; width: auto; max-width: none;
  margin-left: max(48px, calc((100vw - 1320px) / 2)); margin-right: 0;
  padding: 0; position: relative; z-index: 2;
}
.hero h1 { font-size: clamp(44px, 4.35vw, 68px); line-height: 1.04; letter-spacing: -.065em; }
.hero-title-line { overflow: hidden; padding-bottom: .13em; }
.hero-description { margin-top: 26px; max-width: 420px; font-size: 18px; line-height: 1.65; color: var(--muted); }
.hero .hero-actions { margin-top: 30px; gap: 12px; align-items: flex-start; flex-direction: column; }
.hero-actions .text-button, .faq-section .text-button, .contact-actions .btn { font-size: 16px; color: var(--ink); }
.contact-actions .btn { color: #202d32; }
.faq-section .text-button, html[data-theme="dark"] .hero-actions .text-button { color: var(--ink); }
.faq-section > div > .text-button { font-size: 16px; }
.hero .hero-car-stage {
  grid-column: 2; grid-row: 1; position: relative; inset: auto;
  width: 100%; max-width: 880px; margin: 20px 0 0; z-index: 1;
}
.hero .hero-picture { aspect-ratio: 1672 / 941; }
.hero .hero-image { width: 100%; height: 100%; object-fit: contain; }
.hero-architecture, html[data-theme="dark"] .hero-architecture {
  z-index: 0; background: var(--surface-soft);
}
.hero-orbit { display: none; }
.hero-horizon { left: 49%; right: -5%; bottom: 84px; background: var(--line); transform: rotate(-9deg); }
.hero-wordmark { color: transparent; -webkit-text-stroke: 1px color-mix(in srgb, var(--ink) 13%, transparent); top: 34px; right: 4%; font-size: clamp(80px, 12vw, 170px); letter-spacing: -.07em; }
html[data-theme="dark"] .hero-wordmark { color: transparent; }
html[data-theme="dark"] .hero-image { filter: brightness(.92) saturate(.8); }
.hero-scene-footer { bottom: 24px; left: max(48px, calc((100vw - 1320px) / 2)); right: max(48px, calc((100vw - 1320px) / 2)); justify-content: space-between; z-index: 3; }
.hero-explore { display: inline-flex; align-items: center; gap: 14px; min-height: 44px; font-size: 14px; }
.hero-explore .icon { width: 18px; transform: rotate(90deg); }
.hero .hero-image-label { font-size: 16px; color: var(--ink); gap: 14px; }
.hero-image-label > span { font-size: 14px; color: var(--muted); letter-spacing: 0; }
.motion-ready.scene-ready .hero-picture { animation-duration: 1.15s; }
.motion-ready.scene-ready .hero-title-line > span { animation-duration: .7s; }
.motion-ready.scene-ready .hero-description, .motion-ready.scene-ready .hero-actions { animation-duration: .65s; }
.desktop-nav a { position: relative; padding-block: 12px; }
.desktop-nav a::after { content: ""; position: absolute; bottom: 5px; left: 0; right: 0; height: 1px; background: var(--action); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease-out); }
.desktop-nav a:hover::after, .desktop-nav a:focus-visible::after { transform: scaleX(1); }

/* Search and trust cues are useful controls, not small decorative captions. */
.search-section { padding-top: 30px; }
.search-heading { margin-bottom: 18px; }
.search-heading h2 { font-size: 22px; letter-spacing: -.03em; }
.quick-search, html[data-theme="dark"] .quick-search { background: var(--surface); border: 1px solid var(--line); border-radius: 8px; padding: 8px; box-shadow: none; }
.select-trigger, html[data-theme="dark"] .select-trigger { min-height: 78px; padding: 12px 16px; background: var(--surface-soft); border-color: var(--line); gap: 12px; }
.select-trigger:hover, .select-trigger[aria-expanded="true"] { border-color: color-mix(in srgb, var(--action) 58%, var(--line)); background: var(--surface); }
.select-caption { font-size: 14px; line-height: 1.5; color: var(--muted); }
.select-value, .select-option { font-size: 16px; line-height: 1.5; }
.select-leading, html[data-theme="dark"] .select-leading { background: var(--surface-soft); color: var(--ink); flex-basis: 36px; height: 36px; border-radius: 6px; }
.select-panel { border-radius: 6px; }
.select-option { min-height: 48px; }
.select-search { padding: 4px 4px 8px; }
.select-search-input {
  width: 100%;
  min-height: 46px;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--surface-soft);
  color: var(--ink);
  padding: 10px 12px;
  font: inherit;
  font-size: 16px;
}
.select-search-input::placeholder { color: var(--muted); }
.select-search-input:focus { border-color: var(--action); outline: 2px solid color-mix(in srgb, var(--action) 20%, transparent); }
.budget-field,
html[data-theme="dark"] .budget-field {
  min-height: 78px;
  padding: 12px 16px;
  background: var(--surface-soft);
  border: 1px solid var(--line);
  border-radius: 6px;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
}
.budget-field:hover,
.budget-field:focus-within { border-color: color-mix(in srgb, var(--action) 58%, var(--line)); background: var(--surface); }
.budget-field .select-text { flex: 1; }
.budget-field input {
  width: 100%;
  min-width: 0;
  border: 0;
  padding: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: 16px;
  line-height: 1.5;
  outline: 0;
}
.budget-field input::placeholder { color: var(--muted); opacity: .85; }
.search-submit { min-width: 210px; }
.service-line { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; padding: 22px 0 0; margin: 0; }
.service-line > a, .service-line > button { display: flex; align-items: center; text-align: left; gap: 12px; padding: 16px 20px; border-right: 1px solid var(--line); font-size: 16px; color: var(--ink); min-height: 58px; }
.service-line > :first-child { padding-left: 0; }
.service-line > :last-child { border-right: 0; padding-right: 0; }
.service-line .icon, html[data-theme="dark"] .service-line .icon { width: 22px; height: 22px; color: var(--action); }
.service-line .service-arrow { width: 16px; height: 16px; margin-left: auto; transition: transform .25s; }
.service-line > :hover .service-arrow { transform: translate(2px,-2px); }
.section-description, .body-muted, .route-copy .body-muted { font-size: 16px; line-height: 1.7; color: var(--muted); }

/* Catalog: clear prices, consistent controls, one useful featured layout. */
.country-tab, .saved-filter { font-size: 16px; min-height: 48px; }
.country-tab > span:not(.flag), #saved-count { font-size: 14px; }
.catalog-toolbar { gap: 16px; }
.catalog-status { display: flex; align-items: center; justify-content: space-between; gap: 16px; font-size: 14px; padding-bottom: 8px; color: var(--muted); }
.catalog-sort { display: flex; align-items: center; gap: 8px; }
.catalog-sort select { min-height: 44px; background: transparent; color: var(--ink); border: 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.catalog-sort option { background: var(--surface); }
.car-card { border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: var(--surface); }
.car-photo-wrap { border: 0; border-radius: 0; }
.car-info { padding: 22px; }
.car-title { font-size: 28px; }
.car-variant, .car-specs, .car-price-label, .car-badge { font-size: 14px; line-height: 1.6; }
.car-variant, .car-specs, .car-price-label { color: var(--muted); }
.car-specs { flex-wrap: wrap; gap: 8px 16px; }
.car-price { font-size: clamp(25px, 2.2vw, 32px); line-height: 1.3; letter-spacing: -.045em; }
.car-tools { display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--line); margin-top: 20px; padding-top: 8px; gap: 12px; }
.car-tools .text-button { font-size: 14px; }
.car-tools [aria-pressed="true"] { color: var(--action); }
.catalog-bottom p, .empty-state p { font-size: 16px; }
.car-grid:has(.car-card:only-child) { grid-template-columns: 1fr; }
.car-grid > .car-card:only-child { display: grid; grid-template-columns: 1.15fr 1fr; }
.car-grid > .car-card:only-child .car-info { display: flex; flex-direction: column; justify-content: center; padding: 32px; }
.car-grid > .car-card:only-child .car-photo-wrap { min-height: 320px; }
.car-grid > .car-card:only-child .car-photo-link { height: 100%; }

/* Intrinsic stacked copies reserve the tallest translated route at every width. */
.route-layout { gap: 56px; grid-template-columns: 1fr 1.35fr; align-items: center; }
.route-copy .body-muted { max-width: 410px; }
.route-tabs { display: inline-grid; grid-template-columns: repeat(3, 1fr); width: min(100%, 370px); border-radius: 6px; }
.route-tabs { position: relative; isolation: isolate; }
.route-tabs::before { content: ""; position: absolute; z-index: -1; top: 4px; bottom: 4px; left: 4px; width: calc((100% - 14px) / 3); background: var(--surface); border-radius: 3px; box-shadow: 0 2px 6px #0000000a; transition: transform .35s var(--ease-out); }
.route-tabs[data-selected="china"]::before { transform: translateX(calc(100% + 3px)); }
.route-tabs[data-selected="japan"]::before { transform: translateX(calc(200% + 6px)); }
.route-tabs button.active, html[data-theme="dark"] .route-tabs button.active { background: transparent; }
.route-tabs button { min-height: 48px; padding: 10px 16px; font-size: 16px; color: var(--muted); }
.route-fact { max-width: 100%; min-height: 0; margin: 24px 0 8px; gap: 10px; }
.route-fact-dot { margin-top: 11px; width: 6px; height: 6px; }
.route-description-stack { display: grid; flex: 1; min-width: 0; }
.route-description-stack > p { grid-area: 1 / 1; font-size: 16px; line-height: 1.6; color: var(--ink); }
.route-reserve { visibility: hidden; pointer-events: none; }
.route-disclaimer { font-size: 14px; line-height: 1.6; color: var(--muted); margin-bottom: 14px; }
.route-copy > .text-button { font-size: 16px; }
.map-title { font-size: 16px; }
.map-city { font-size: 17px; }
.map-land { fill: #dde7e2; stroke: #b7c9bf; stroke-width: 1.15; stroke-linejoin: round; }
html[data-theme="dark"] .map-land { fill: #243438; stroke: #415559; }
html[data-theme="dark"] .route-map { background: #172226; border-color: #35464b; }
html[data-theme="dark"] .map-route-network { stroke: #a2b8ad; }
.map-route-network { stroke: #6b857c; opacity: .95; }
.delivery-point:not(.hub-node) .node-dot { fill: #72887f; }
.route-map .map-route-active, .route-map .map-route-network { animation-play-state: paused; }
.route-map.map-is-visible .map-route-active, .route-map.map-is-visible .map-route-network { animation-play-state: running; }
.journey-heading { margin-top: 44px; }
.journey-steps .journey-card { border-radius: 6px; min-height: 318px; background: var(--surface); }
.journey-trigger { min-height: 205px; padding: 22px; }
.step-top { margin-bottom: 24px; }
.step-number { font-size: 48px; color: var(--muted); }
.step-title { font-size: 24px; }
.step-summary, .journey-steps .step-detail p { font-size: 16px; line-height: 1.6; color: var(--muted); }
.journey-card.is-active .step-summary { color: var(--muted); }
.journey-card.is-active .step-number { color: var(--action); }
.step-icon, .journey-card.is-active .step-icon { stroke: var(--muted); }
.step-detail { padding-inline: 22px; }

/* Reserve each description in the grid so switching steps never resizes the row. */
@media (min-width: 761px) {
  .journey-steps .step-detail[hidden] {
    display: block !important;
    visibility: hidden;
    animation: none;
  }
}

.price-copy .body-muted, .price-promises, .principles-section article p,
.faq-list details p { font-size: 16px; line-height: 1.7; }
.receipt-model p, .receipt-total > span, .receipt-total small, .receipt-note { font-size: 14px; line-height: 1.65; }
.cost-lines > div { font-size: 16px; gap: 24px; }
.cost-lines dd { white-space: nowrap; }
.price-receipt { padding: 30px; }
.receipt-total strong { font-size: clamp(26px, 2.5vw, 36px); white-space: nowrap; }
.faq-list summary { font-size: 18px; min-height: 64px; gap: 24px; }
.faq-list .faq-plus { flex-shrink: 0; }
.contact-section p:not(.eyebrow), .contact-location { font-size: 18px; }
.contact-actions > span, .contact-location small { font-size: 14px; }

.detail-library { margin: 0 34px 34px; border-top: 1px solid var(--line); }
.material-tabs { display: flex; gap: 0; overflow-x: auto; border-bottom: 1px solid var(--line); }
.material-tabs button { position: relative; min-height: 58px; padding: 14px 20px; white-space: nowrap; color: var(--muted); font-size: 14px; }
.material-tabs button::after { content: ""; position: absolute; inset: auto 20px -1px; height: 2px; background: var(--action); transform: scaleX(0); }
.material-tabs button.active { color: var(--ink); }
.material-tabs button.active::after { transform: scaleX(1); }
.material-panel { min-height: 170px; padding: 24px 20px; background: var(--surface-soft); }
.material-panel[hidden] { display: none; }
.material-photo { display: grid; grid-template-columns: 220px 1fr; align-items: center; gap: 26px; }
.material-photo img { width: 220px; height: 135px; object-fit: contain; background: #172125; border-radius: 5px; }
.material-panel strong { font-size: 18px; }
.material-panel p { margin: 8px 0 0; max-width: 650px; color: var(--muted); }
.material-placeholder { display: flex; align-items: center; gap: 22px; }
.material-placeholder > span { display: grid; place-items: center; flex: 0 0 64px; height: 64px; border: 1px solid var(--line); border-radius: 50%; color: var(--action); font-size: 24px; }
.material-documents ul { margin: 16px 0 0; padding: 0; list-style: none; }
.material-documents li { display: flex; justify-content: space-between; gap: 20px; padding: 12px 0; border-top: 1px solid var(--line); }
.material-documents li span { color: var(--muted); }

#contact-form > label, #contact-form legend, .channel-choice, .dialog-context,
.detail-variant, .detail-specs > div, .detail-content .detail-price > span,
.contact-success > p:not(.eyebrow) { font-size: 16px; }
#contact-form input { font-size: 16px; min-height: 52px; }
#contact-form fieldset { flex-wrap: wrap; }
.form-note, .detail-note, .photo-hint { font-size: 14px; line-height: 1.65; }
.toast { font-size: 16px; max-width: calc(100vw - 32px); }
.cookie-notice { width: min(590px, calc(100vw - 40px)); padding: 20px; gap: 18px; border: 1px solid var(--line); border-left: 3px solid var(--action); }
.cookie-notice strong { font-size: 18px; }
.cookie-notice p { font-size: 14px; line-height: 1.65; }
.cookie-notice button { min-height: 44px; padding-inline: 18px; font-size: 16px; }

/* One quiet entry to assistance. No auto-opening, fake online dot or timer. */
.support-widget { position: fixed; z-index: 25; right: 24px; bottom: 24px; }
.support-toggle { display: flex; align-items: center; gap: 16px; min-height: 56px; padding: 14px 18px; border: 1px solid var(--line); border-radius: 30px; background: var(--ink); color: var(--canvas); box-shadow: 0 6px 24px #0002; font-size: 16px; transition: transform .25s var(--ease-out), background .25s; }
.support-toggle:hover { transform: translateY(-3px); }
.support-toggle .icon { width: 25px; height: 25px; }
.support-toggle[aria-expanded="true"] { background: var(--action); color: var(--canvas); }
.support-panel { position: absolute; right: 0; bottom: 72px; width: min(350px, calc(100vw - 32px)); padding: 28px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface); color: var(--ink); box-shadow: 0 16px 50px #0003; animation: dialog-enter .3s var(--ease-out); }
.support-panel h2 { font-size: 28px; margin: 16px 0 12px; }
.support-panel p { font-size: 16px; line-height: 1.6; color: var(--muted); margin-bottom: 22px; }
.support-close { position: absolute; top: 8px; right: 8px; }
.support-icon { width: 32px; height: 32px; color: var(--action); }
.support-panel .btn { width: 100%; margin-top: 10px; }
.support-panel [aria-disabled="true"] { background: var(--surface-soft); color: var(--muted); cursor: default; box-shadow: none; }
body.modal-open .support-widget, body.modal-open .compare-tray { visibility: hidden; }
body:has(.cookie-notice:not([hidden])) .support-widget { bottom: 24px; }

.compare-tray { position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%); z-index: 24; display: flex; align-items: center; gap: 20px; padding: 10px 12px 10px 20px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface); box-shadow: 0 8px 30px #0002; max-width: calc(100vw - 32px); }
.compare-tray > span { font-size: 16px; white-space: nowrap; }
.compare-dialog { width: min(1080px, calc(100% - 24px)); padding: 38px 28px; }
.compare-intro { color: var(--muted); font-size: 14px; margin: 12px 0 24px; }
.compare-scroll { overflow-x: auto; overscroll-behavior-x: contain; }
#compare-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 16px; }
#compare-table th, #compare-table td { padding: 16px; border-bottom: 1px solid var(--line); min-width: 180px; vertical-align: top; }
#compare-table th[scope="row"] { font-weight: 400; color: var(--muted); min-width: 145px; }
#compare-table thead th { font-weight: 500; font-size: 22px; }
#compare-table img { width: 210px; aspect-ratio: 3 / 2; object-fit: contain; border-radius: 4px; margin-bottom: 12px; }
#compare-table button { font-size: 14px; }
@media (min-width: 1100px) { #compare-table th[scope="row"] { position: sticky; left: 0; background: var(--surface); } }
@media (hover: hover) {
  .car-card:hover { transform: translateY(-3px); }
  .car-photo-link:hover .car-photo { transform: scale(1.04); }
}
@media (max-width: 1180px) {
  .container { width: calc(100% - 64px); }
  .header-contact { display: none; }
  .hero .hero-content { margin-left: 32px; }
  .hero-scene-footer { left: 32px; right: 32px; }
  .hero h1 { font-size: clamp(40px, 4.5vw, 54px); }
  .hero-description { font-size: 16px; }
  .route-layout { gap: 32px; }
  .car-info { padding: 18px; }
  .car-title { font-size: 25px; }
  .car-specs { gap: 8px; }
}
@media (max-width: 960px) {
  .hero, html[data-theme="dark"] .hero { padding-block: 48px 76px; grid-template-columns: 48% 52%; }
  .hero h1 { font-size: 41px; }
  .hero .hero-image-label > span { display: none; }
  .quick-search { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .search-submit { grid-column: 1 / -1; }
  .service-line > a, .service-line > button { font-size: 16px; padding: 12px; gap: 8px; }
  .service-arrow { display: none; }
  .route-layout { grid-template-columns: 1fr; }
  .route-copy .body-muted { max-width: 620px; }
  .route-map { max-width: 760px; }
  .route-fact { max-width: 430px; }
  .journey-steps .journey-card { min-height: 305px; }
  .cost-lines > div { gap: 16px; }
  .compare-tray { left: 20px; transform: none; }
  .support-toggle > span { display: none; }
  .support-toggle { width: 56px; padding: 0; justify-content: center; }
}
@media (max-width: 760px) {
  .container { width: calc(100% - 40px); }
  .section { padding-block: 56px; }
  .header-inner { height: 70px; gap: 12px; }
  .header-actions { gap: 8px; }
  .menu-toggle { width: 44px; height: 44px; flex-shrink: 0; }
  .mobile-menu > a > span { font-size: 14px; }
  .header .location { display: none; }
  .brand-wordmark { font-size: 20px; }
  .brand-mark { width: 32px; height: 30px; }
  .hero, html[data-theme="dark"] .hero { display: flex; flex-direction: column; align-items: stretch; padding: 36px 0 54px; min-height: 0; }
  .hero .hero-content { margin: 0 20px; padding: 0; order: 1; }
  .hero h1 { font-size: clamp(36px, 8.8vw, 56px); line-height: 1.06; }
  .hero-description { font-size: 16px; line-height: 1.6; max-width: 390px; margin-top: 18px; }
  .hero .hero-actions { margin-top: 24px; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px 20px; }
  .hero-actions .btn { font-size: 16px; width: 100%; max-width: 390px; justify-content: space-between; }
  .hero-actions .text-button { font-size: 16px; }
  .hero .hero-car-stage { width: 100%; max-width: none; margin: 6px 0 0; order: 2; }
  .hero .hero-picture { aspect-ratio: 1672 / 941; }
  .hero-wordmark { top: auto; bottom: 140px; right: 4%; font-size: 20vw; }
  .hero-horizon { left: 0; bottom: 74px; }
  .hero-scene-footer { left: 20px; right: 20px; bottom: 12px; align-items: center; }
  .hero-explore { font-size: 14px; gap: 6px; }
  .hero .hero-image-label { font-size: 14px; }
  .search-section { padding-top: 24px; }
  .search-heading h2 { font-size: 22px; text-wrap: initial; }
  .quick-search { grid-template-columns: 1fr; gap: 0; padding: 6px; }
  .select-trigger { min-height: 78px; padding: 12px; }
  .budget-field { min-height: 78px; padding: 12px; }
  .select-caption { font-size: 14px; }
  .select-value, .select-option, .search-submit { font-size: 16px; }
  .search-submit { min-height: 52px; margin-top: 6px; }
  .service-line { grid-template-columns: 1fr; padding-top: 14px; }
  .service-line > a, .service-line > button { border-right: 0; border-bottom: 1px solid var(--line); padding: 14px 0; font-size: 16px; min-height: 58px; gap: 12px; }
  .service-line .service-arrow { display: block; }
  .detail-library { margin: 0 18px 24px; }
  .material-tabs button { padding-inline: 14px; }
  .material-photo { grid-template-columns: 1fr; }
  .material-photo img { width: 100%; height: 190px; }
  .material-placeholder { align-items: flex-start; }
  .material-documents li { flex-direction: column; gap: 2px; }
  .section-heading { margin-bottom: 24px; }
  .country-tabs { display: grid; grid-template-columns: 1.25fr repeat(3, 1fr); overflow-x: auto; max-width: 100%; gap: 0; padding-bottom: 4px; }
  .country-tab { padding: 10px 6px; font-size: 14px; justify-content: center; }
  .country-tabs .flag { display: none; }
  .country-tab > span:not(.flag) { display: none; }
  .country-tab:first-child { padding-left: 6px; }
  .catalog-toolbar { flex-wrap: wrap; align-items: center; gap: 6px; }
  .saved-filter { margin-left: auto; font-size: 16px; }
  .catalog-status { flex-wrap: wrap; gap: 4px 12px; }
  .catalog-sort { margin-left: auto; }
  .catalog-sort select { max-width: 185px; }
  .car-grid > .car-card:only-child { display: block; }
  .car-grid > .car-card:only-child .car-photo-wrap { min-height: 0; }
  .car-grid > .car-card:only-child .car-info, .car-info { padding: 20px; }
  .car-title { font-size: 28px; }
  .car-variant, .car-specs, .car-price-label, .car-badge { font-size: 14px; }
  .car-price { font-size: 30px; }
  .car-tools .text-button { font-size: 16px; }
  .catalog-bottom { align-items: flex-start; gap: 20px; }
  .catalog-bottom p, .catalog-bottom .btn { font-size: 16px; }
  .route-fact p { font-size: 16px; }
  .route-tabs button { font-size: 16px; min-height: 48px; }
  .map-title { font-size: 14px; top: 12px; left: 12px; }
  .map-city { font-size: 32px; }
  .journey-steps .journey-card { min-height: 0; }
  .journey-trigger { min-height: 0; padding: 20px; display: grid; grid-template-columns: 48px 1fr; column-gap: 18px; }
  .step-top { display: contents; }
  .step-number { font-size: 36px; grid-column: 1; grid-row: 1 / 3; }
  .step-icon { display: none; }
  .step-title { grid-column: 2; font-size: 23px; }
  .step-summary { grid-column: 2; font-size: 16px; margin-top: 6px; }
  .step-detail { padding: 0 20px 22px 86px; }
  .journey-steps .step-detail p { font-size: 16px; }
  .price-receipt { padding: 22px; }
  .cost-lines > div { font-size: 16px; gap: 16px; }
  .receipt-total { flex-wrap: wrap; gap: 14px; }
  .receipt-total strong { font-size: 30px; }
  .faq-list summary { font-size: 18px; }
  .faq-list details p, .principles-section article p { font-size: 16px; }
  .mobile-contact-bar > a, .mobile-contact-bar > button { font-size: 16px; min-height: 48px; }
  .support-widget { right: 16px; bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
  body:has(.cookie-notice:not([hidden])) .support-widget,
  body:has(.cookie-notice:not([hidden])) .compare-tray { visibility: hidden; }
  .support-panel { bottom: 68px; padding: 24px; max-height: calc(100dvh - 240px); overflow-y: auto; }
  .compare-tray { bottom: calc(88px + env(safe-area-inset-bottom, 0px)); left: 12px; gap: 6px; padding: 8px; max-width: calc(100vw - 88px); }
  .compare-tray > span { font-size: 14px; }
  .compare-tray .btn { font-size: 14px; padding: 10px; gap: 6px; }
  .compare-tray .btn .icon { display: none; }
  .compare-tray .icon-button { width: 32px; }
  .compare-dialog { padding: 40px 16px 24px; }
  #compare-table { --compare-cols: 2; display: block; width: max(100%, calc(var(--compare-cols) * 145px)); }
  #compare-table[data-count="3"] { --compare-cols: 3; }
  #compare-table thead, #compare-table tbody { display: block; }
  #compare-table tr { display: grid; grid-template-columns: repeat(var(--compare-cols), minmax(0, 1fr)); column-gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); }
  #compare-table th, #compare-table td { padding: 0; min-width: 0; border: 0; overflow-wrap: anywhere; }
  #compare-table thead th { font-size: 20px; }
  #compare-table thead th:first-child { display: none; }
  #compare-table th[scope="row"] { grid-column: 1 / -1; font-size: 14px; min-width: 0; padding-bottom: 6px; }
  #compare-table img { width: 100%; height: auto; }
  .cookie-notice { left: 12px; width: calc(100vw - 24px); padding: 18px; gap: 14px; }
  .cookie-notice button { width: 100%; }
}
#contact-form > .consent-field { display: flex; align-items: flex-start; gap: 12px; font-size: 16px; line-height: 1.5; }
.catalog-pagination { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 8px; padding-top: 32px; }
.catalog-pagination[hidden] { display: none; }
.catalog-page { display: inline-flex; align-items: center; justify-content: center; min-width: 48px; min-height: 48px; padding: 10px 16px; border: 1px solid var(--line); border-radius: 4px; color: var(--ink); background: var(--surface); font-size: 16px; font-weight: 600; transition: background .18s ease, border-color .18s ease; }
.catalog-page[aria-current="page"] { background: var(--ink); border-color: var(--ink); color: var(--surface); }
.catalog-page:disabled { opacity: .4; cursor: default; }
.catalog-page:focus-visible { outline: 2px solid var(--orange); outline-offset: 4px; }
.catalog-page-gap { color: var(--muted); padding: 0 4px; }
.catalog-page-direction { gap: 8px; }
.catalog-page-direction:first-child .icon { transform: rotate(180deg); }
@media (hover: hover) { .catalog-page:not(:disabled):not([aria-current]):hover { border-color: var(--ink); background: var(--surface-soft); } }
@media (max-width: 760px) { .catalog-pagination { gap: 6px; } .catalog-page { min-width: 44px; min-height: 44px; padding: 8px 12px; } }
.car-grid[aria-busy="true"] > .car-card { opacity: .35; }
.material-gallery { display: flex; align-items: flex-start; gap: 12px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; }
.gallery-thumb { flex: 0 0 180px; padding: 0; border: 2px solid transparent; scroll-snap-align: start; }
.gallery-thumb[aria-pressed="true"] { border-color: var(--orange); }
.gallery-thumb img { display: block; width: 180px; height: 120px; object-fit: contain; background: var(--surface-soft); }
#contact-form .consent-field input[type="checkbox"] { flex: 0 0 20px; width: 20px; height: 20px; min-height: 20px; padding: 0; margin: 3px 0 0; accent-color: var(--orange); }
#contact-form > .consent-field > span { font-size: inherit; }
.consent-field a, .cookie-notice p a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 760px) {
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .hero-car-stage, .car-card:hover, .journey-card:hover, .support-toggle:hover { transform: none !important; }
}
/* Compact footer with readable contacts and one consistent document column. */
.footer { padding-top: 32px; padding-bottom: 20px; }
.footer-main { display: grid; grid-template-columns: minmax(210px, 1fr) minmax(240px, 1fr) minmax(280px, 1.15fr); gap: 36px; padding-bottom: 24px; }
.footer-identity p { max-width: 260px; margin: 14px 0 8px; font-size: 16px; line-height: 1.55; }
.footer-shortcuts { display: flex; flex-wrap: wrap; gap: 4px 20px; }
.footer-shortcuts a { display: inline-flex; align-items: center; min-height: 44px; font-size: 15px; color: var(--muted); }
.footer-column { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; gap: 0; }
.footer-column strong { margin: 0 0 10px; font-size: 15px; line-height: 1.5; letter-spacing: 0; text-transform: none; }
.footer-column a { display: inline-flex; align-items: center; min-height: 44px; font-size: 16px; line-height: 1.4; overflow-wrap: anywhere; }
.footer-column .footer-phone { font-size: 21px; font-weight: 600; white-space: nowrap; }
.footer-socials { display: flex; flex-wrap: wrap; gap: 4px 24px; }
.footer-bottom { padding-top: 16px; gap: 12px 24px; flex-wrap: wrap; font-size: 14px; line-height: 1.5; }
.footer-bottom .text-button { min-height: 44px; font-size: 14px; }
.footer a:focus-visible { outline: 2px solid var(--orange); outline-offset: 4px; }
@media (max-width: 1024px) {
  .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 40px; }
  .footer-identity { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
  .footer-identity p { margin: 0; max-width: none; }
  .footer-shortcuts { flex-basis: 100%; }
}
@media (max-width: 600px) {
  .footer { padding-top: 26px; padding-bottom: 96px; }
  .footer-main { grid-template-columns: 1fr; gap: 22px; padding-bottom: 16px; }
  .footer-identity { display: block; }
  .footer-identity p { margin: 12px 0 4px; }
  .footer-column strong { margin-bottom: 6px; }
  .footer-documents a { font-size: 15px; min-height: 40px; }
  .footer-bottom { gap: 4px 16px; }
}
