/* Lato is served locally, using the same weights as the MotoCMS theme. */
@font-face {
  font-family: Lato; font-style: normal; font-weight: 400; font-display: swap;
  src: url('fonts/lato-regular.ttf') format('truetype');
}
@font-face {
  font-family: Lato; font-style: normal; font-weight: 700; font-display: swap;
  src: url('fonts/lato-bold.ttf') format('truetype');
}
@font-face {
  font-family: Lato; font-style: italic; font-weight: 400; font-display: swap;
  src: url('fonts/lato-italic.ttf') format('truetype');
}
body { font-family: Lato, sans-serif; }
h1,h2,h3 { font-family: Lato, sans-serif; font-weight: 700; }
.address { font-size: 21px; font-weight: 700; line-height: 1.6; }
.address a { font-size: 37px; line-height: 1.1; margin-top: 0; }
.brand-inner { min-height: 186px; }

/* CMS-style blocks, separators and dropdowns. Sticky outside the brand header. */
html { scroll-padding-top: 104px; }
.navigation { position: sticky; top: 0; background: #2e2e2e; z-index: 30; }
.menu { gap: 0; min-height: 80px; }
.menu > li { gap: 0; background: #2e2e2e; border-right: 1px solid #212121; }
.menu > li:last-child { border-right: 0; }
.menu > li > a, .menu > li > details > summary {
  font-family: Lato, sans-serif; font-size: 21px; font-weight: 400;
  line-height: 30px; padding: 25px 30px; color: #fff; white-space: nowrap;
}
.menu > li > a { display: block; }
.menu > li > a:hover { text-decoration: none; }
.menu > li:hover, .menu > li:has(> details[open]) { background: #f93; }
.menu details[open] > summary { color: #fff; }
.menu > li > details > summary > span[aria-hidden] { display: none; }
.menu > li > a + details > summary {
  position: absolute; right: 0; top: 0; width: 24px; height: 80px;
  padding: 0; opacity: 0;
}
.menu > li > a + details > summary:focus-visible { opacity: 1; outline-offset: -4px; }
.submenu {
  width: max-content; min-width: 230px; max-width: min(350px, 90vw);
  padding: 25px 0; background: #2e2e2e; border: 0; box-shadow: none;
}
.submenu a { padding: 0 25px; font: 400 15px/41px Lato, sans-serif; color: #fff; }
.submenu a:hover, .submenu a:focus-visible { background: #f93; color: #fff; }
.submenu li > details > summary { padding: 0 25px; font: 400 15px/41px Lato, sans-serif; }
.submenu li > a + details > summary { padding: 0 8px; position: absolute; right: 0; top: 0; }

/* Explicit foreground fixes inherited white text inside the dark dialog. */
#lightbox button, .gallery-controls button {
  color: #212121; background: #fff; border: 1px solid #b9bdc0;
  min-width: 44px; min-height: 44px; font: 700 24px/1 Lato, sans-serif;
}
#lightbox button:hover, .gallery-controls button:hover { background: #f93; color: #212121; }
#lightbox button:focus-visible { outline: 3px solid #f93; outline-offset: 3px; }
#close-lightbox { box-shadow: 0 2px 10px #0005; }

@media (min-width: 768px) and (max-width: 1039px) {
  .menu > li > a, .menu > li > details > summary { font-size: 18px; padding: 25px 16px; }
  .menu > li > a + details > summary { padding: 0; }
  .address { font-size: 18px; }
  .address a { font-size: 30px; }
}
@media (max-width: 767px) {
  html { scroll-padding-top: 75px; }
  .brand-inner { min-height: 124px; }
  .address { font-size: 10px; }
  .address a { font-size: 14px; margin-top: 4px; }
  .menu { display: block; min-height: 0; padding: 0 0 10px; }
  .menu > li { display: flex; flex-wrap: wrap; border-right: 0; border-bottom: 1px solid #212121; }
  .menu > li > a { flex: 1; }
  .menu > li > details { width: 100%; }
  .menu > li > a, .menu > li > details > summary { font-size: 17px; line-height: 25px; padding: 12px 18px; }
  .menu > li > a + details { width: 0; flex: 0 0 0; }
  .menu > li > a + details[open] { width: 100%; flex: 0 0 100%; }
  .menu > li > a + details > summary {
    opacity: 1; width: 48px; height: 49px; padding: 12px; justify-content: center;
  }
  .menu > li > details > summary > span[aria-hidden] { display: inline; }
  .menu > li > details > summary { justify-content: space-between; }
  .submenu, .menu > li > a + details .submenu {
    position: static; width: 100%; min-width: 0; max-width: none;
    background: #212121; padding: 10px 0;
  }
  .submenu a { background: #212121; font-size: 15px; line-height: 38px; }
  .mobile-toggle { background: #212121; padding: 10px 14px; margin: 6px 0; font-size: 18px; }
  .js .mobile-toggle { display: block; }
  .js #navigation-items { display: none; }
  .js #navigation-items.is-open { display: block; }
}

@media (min-width:1040px) {
  .menu { padding-left: 60px; }
  .brand-inner { display:grid; grid-template-columns:433px 1fr; gap:130px; }
  .address { transform:translateY(14px); }
}

/* Fixed viewport frame: neither image dimensions nor the counter move controls. */
#lightbox {
  position: fixed; inset: 0; margin: auto; padding: 0;
  width: min(1100px, calc(100vw - 24px)); max-width: none;
  height: 92vh; height: 92dvh; max-height: none; overflow: hidden;
}
#lightbox > img {
  position: absolute; top: 72px; left: 20px;
  width: calc(100% - 40px); height: calc(100% - 152px);
  max-height: none; object-fit: contain;
}
#lightbox > div {
  position: absolute; bottom: 16px; left: 0; right: 0; height: 48px;
  display: grid; grid-template-columns: 48px 80px 48px;
  justify-content: center; align-items: center; gap: 16px; margin: 0;
}
#lightbox-counter { text-align: center; font-variant-numeric: tabular-nums; }
#lightbox button, .gallery-controls button {
  display: inline-flex; align-items: center; justify-content: center;
  width: 48px; height: 48px; min-width: 48px; min-height: 48px;
  padding: 0; border-radius: 6px; flex-shrink: 0;
}
#lightbox #close-lightbox { top: 12px; right: 12px; }
#lightbox button svg, .gallery-controls button svg {
  width: 26px; height: 26px; display: block; fill: none;
  stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round;
}
#lightbox #close-lightbox svg { width: 24px; height: 24px; stroke-width: 2.5; }

.back-link {
  display: inline-flex; align-items: center; gap: 9px; min-height: 44px;
  font-size: 14px; font-weight: 700; color: var(--ink);
}
.back-link svg {
  width: 22px; height: 22px; flex-shrink: 0; fill: none;
  stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round;
}
.bottom-back { padding: 8px 0 26px; }
.description strong { font-weight: 700; }

/* Compact fact groups retain two visible rows and native keyboard disclosures. */
.fact-group { margin-top: 24px; border: 1px solid var(--line); border-radius: 5px; overflow: hidden; }
.fact-group h3 { font-size: 17px; margin: 0; padding: 15px 14px; background: #fff; }
.fact-group .specs { margin: 0; }
.fact-more summary { padding: 10px 14px; font-size: 13px; font-weight: 700; color: #874300; }
.fact-more .when-open, .fact-more[open] .when-closed { display: none; }
.fact-more[open] .when-open { display: inline; }
.equipment-group ul { grid-template-columns: minmax(0, 1fr); }
.contact-card { position: sticky; top: 104px; max-height: calc(100vh - 196px); max-height: calc(100dvh - 196px); overflow-y: auto; }
.sticky-back { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex: 0 0 44px; border: 1px solid var(--line); border-radius: 5px; }
.sticky-back:hover { background: var(--orange); }
.sticky-back svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
@media(max-width:700px) {
  .contact-card { position: static; max-height: none; overflow: visible; }
  .sticky-contact > .wrap { gap: 8px; padding: 10px; }
  .sticky-contact .button { padding: 11px 8px; font-size: 11px; }
  .sticky-contact span { font-size: 14px; }
}

/* Vehicle facts: calm icon tiles, two columns per topic. */
.fact-group { background:#fff; }
.fact-group h3 { padding:20px 18px 8px; }
.fact-group .fact-tiles { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0; padding:0 8px; }
.fact-tiles > div, .fact-tiles > div:nth-child(odd) { display:block; background:transparent; padding:18px 10px; min-width:0; border-bottom:1px solid var(--line); }
.fact-tiles dt { display:flex; align-items:center; gap:10px; font-size:12px; color:var(--muted); line-height:1.4; }
.fact-tiles dt svg { width:26px; height:26px; flex:0 0 26px; fill:none; stroke:#9b501b; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.fact-tiles dd { margin:8px 0 0 36px; font-size:16px; font-weight:700; overflow-wrap:anywhere; }
.fact-more summary { padding:14px 18px; }
.contact-phone { width:100%; margin:0 0 18px; }
.leasing-entry { border:1px solid #e4c8a9; border-radius:5px; background:#fff8ef; padding:16px 18px; margin-bottom:20px; }
.leasing-entry .eyebrow, .leasing-entry strong { display:block; }
.leasing-entry .eyebrow { margin-bottom:6px; }
.leasing-entry strong { font-size:20px; }
.leasing-open { display:inline-block; border:0; border-bottom:2px solid var(--orange); background:none; padding:6px 0; text-align:left; white-space:normal; }
.request-dialog { position:fixed; inset:0; width:min(620px,calc(100vw - 28px)); max-width:none; max-height:calc(100dvh - 32px); margin:auto; padding:32px; border:0; border-radius:8px; background:#fff; color:var(--ink); overflow-y:auto; box-shadow:0 20px 80px #0004; }
.request-dialog::backdrop { background:#111a; }
.request-dialog h2 { padding-right:30px; }
.dialog-close { position:absolute; top:12px; right:12px; width:38px; height:38px; display:grid; place-items:center; background:#f1f1ef; color:#252628; border:1px solid var(--line); border-radius:5px; }
.dialog-close svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2.5; stroke-linecap:round; }
.inquiry-vehicle { border-bottom:1px solid var(--line); padding-bottom:16px; }
.form-fields { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
.request-dialog label { display:block; font-size:13px; font-weight:700; }
.request-dialog textarea { display:block; width:100%; resize:vertical; font:inherit; font-weight:400; padding:12px; border:1px solid #c6c9c8; border-radius:4px; margin:6px 0 14px; }
.request-dialog .text-link { font-size:inherit; }
.request-dialog .small { font-size:12px; }
.form-preview { padding:10px; background:#fff3df; font-size:13px; }
.form-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
#inquiry-status:not(:empty) { padding:12px; border-left:3px solid var(--orange); background:#f5f5f3; }
.request-dialog button:disabled { opacity:.6; cursor:wait; }
@media(max-width:480px) {
 .request-dialog { padding:26px 18px; }
 .form-fields { grid-template-columns:1fr; }
 .fact-tiles dd { font-size:14px; margin-left:0; }
 .fact-tiles dt { align-items:flex-start; gap:7px; }
 .fact-tiles dt svg { width:22px; height:22px; flex-basis:22px; }
}

.gallery > .quick-facts { margin-top:20px; font-size:14px; gap:10px 15px; border-bottom:1px solid var(--line); padding:18px 0; }

/* Keep the detail navigation below the CMS menu, including after resizing. */
:root { --main-nav-height:80px; --section-nav-height:60px; }
html:has(.section-nav) { scroll-padding-top:calc(var(--main-nav-height) + var(--section-nav-height) + 16px); }
.section-nav { position:sticky; top:var(--main-nav-height); z-index:25; background:var(--paper); }
.contact-card { top:calc(var(--main-nav-height) + var(--section-nav-height) + 24px); max-height:calc(100dvh - var(--main-nav-height) - var(--section-nav-height) - 116px); }
.gallery > .quick-facts > span { display:flex; align-items:center; gap:9px; }
.gallery > .quick-facts > span::before { content:none; }
.gallery > .quick-facts svg { width:21px; height:21px; flex:0 0 21px; fill:none; stroke:#9b501b; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
@media(max-width:767px) { :root { --main-nav-height:54px; } }
@media(max-width:700px) { .contact-card { position:static; max-height:none; } }

#section-footer { background:#212121; color:#888; font:14px/20px Lato,sans-serif; padding:0; margin:0; }
#section-footer h2,#section-footer h3,#section-footer h4,#section-footer h5,#section-footer p { margin:0; letter-spacing:normal; }
#section-footer a { display:inline; margin:0; }
.related-offers { padding:24px 0 48px; }
.related-offers h2 { max-width:760px; margin-bottom:24px; }
.related-offers .cards { grid-template-columns:repeat(3,minmax(0,1fr)); }
.related-reason { font-size:12px; color:#85501b; margin:0 0 12px; }
@media(max-width:1000px) { .related-offers .cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) { .related-offers .cards { grid-template-columns:1fr; } }

.detail-main { min-width:0; }
@media(min-width:701px) { .contact-card { top:calc(var(--main-nav-height) + 24px); max-height:calc(100dvh - var(--main-nav-height) - 116px); } }

/* Compact inquiry layout; keep full-size controls for touch input. */
#anfrage { width:min(700px,calc(100vw - 24px)); padding:22px 26px; }
#anfrage h2 { font-size:26px; margin-bottom:10px; }
#anfrage .inquiry-vehicle { font-size:14px; line-height:1.4; padding-bottom:10px; margin-bottom:12px; }
#anfrage .form-fields { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 14px; margin-bottom:10px; }
#anfrage .interest-field { grid-column:1/-1; }
#anfrage input, #anfrage select { height:42px; margin-top:3px; padding:8px 10px; }
#anfrage textarea { margin:3px 0 8px; padding:9px 10px; line-height:1.4; }
#anfrage .small { line-height:1.4; margin-bottom:10px; }
#anfrage .form-preview { padding:7px 10px; margin-bottom:10px; }
#anfrage #inquiry-status:empty { display:none; }
#anfrage #leasing-edit { margin-bottom:8px; }
#anfrage label { min-width:0; }
@media(max-width:480px) {
 #anfrage { padding:18px 16px; }
 #anfrage h2 { font-size:24px; }
 #anfrage .form-fields { gap:8px 10px; }
 #anfrage input, #anfrage select, #anfrage textarea { font-size:16px; }
}
@media(max-width:360px) {
 #inquiry-form > .form-fields > label:has([name="email"]),
 #inquiry-form > .form-fields > label:has([name="phone"]) { grid-column:1/-1; }
}

/* Stronger detail navigation and one accessible leasing action. */
.section-nav { background:var(--orange); border:0; border-top:3px solid var(--orange); border-radius:5px; padding:5px; gap:4px; box-shadow:0 3px 10px #00000014; }
.section-nav a { color:#212121; display:flex; align-items:center; justify-content:center; flex:1; min-height:44px; padding:9px 12px; border-radius:3px; text-decoration:none; }
.section-nav a:hover, .section-nav a:focus-visible { color:#fff; background:#2e2e2e; }
.section-nav a:focus-visible { outline:2px solid #fff; outline-offset:-2px; }
.leasing-entry.leasing-open { display:block; width:100%; text-align:left; border:1px solid #e4c8a9; border-radius:5px; background:#fff8ef; padding:16px 18px; margin-bottom:20px; cursor:pointer; }
.leasing-entry.leasing-open:hover { background:#ffeed8; border-color:var(--orange); }
.leasing-entry.leasing-open:focus-visible { outline:3px solid #a44e00; outline-offset:3px; }
.leasing-entry .text-link { display:inline-block; white-space:normal; }
@media(max-width:480px) { .section-nav a { padding:9px 6px; } }

.leasing-monthly { padding:18px; margin:16px 0; border-left:4px solid var(--orange); background:#fff1df; }
.leasing-monthly strong { display:block; font-size:clamp(24px,5vw,34px); line-height:1.3; margin-top:6px; }
#leasing-residual-hint { display:block; color:#944600; margin-top:5px; }

#leasing-result .leasing-payment-count { font-size:0.55em; font-weight:400; white-space:nowrap; }

.leasing-vehicle-heading { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 20px; justify-content:space-between; }
.leasing-vehicle-heading > span:last-child { white-space:nowrap; }

.card .teaser { color:#292929; background:#fff3e5; padding:12px; border-radius:4px; }
.card-leasing { color:#9b4900; font-weight:700; margin:0 0 12px; }
.card-leasing small { display:block; color:#555; font-size:11px; font-weight:400; margin-top:4px; }
.card-link svg { width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round; }

.card .quick-facts > span:has(svg) { display:flex; align-items:center; gap:7px; min-width:0; }
.card .quick-facts > span:has(svg)::before { content:none; }
.card .quick-facts svg { width:18px; height:18px; flex:0 0 18px; fill:none; stroke:#9b501b; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }

.card .price:has(+ .card-leasing) { margin-bottom:4px; }
.card .card-leasing { margin-top:0; }
.card .card-link { font-size:16px; }

.card h3 { margin-bottom:8px; }
.card .card-link { padding:12px 8px; border-radius:4px; transition:background-color .15s ease; }
.card .card-link:hover, .card .card-link:focus, .card .card-link:active { background:var(--orange); color:#212121; border-top-color:var(--orange); }
.card .card-link:focus-visible { outline:2px solid #944600; outline-offset:2px; }

.card { position:relative; }
.card .card-link, .card .card-link:hover, .card .card-link:focus, .card .card-link:active { text-decoration:none; }
.card .card-link::after { content:""; position:absolute; inset:0; z-index:1; cursor:pointer; }
.card .card-image, .card h3 a { position:relative; z-index:2; }
.card h3 { min-height:0; margin-bottom:2px; }
.card h3 + .price { margin-top:2px; }

.card h3 a, .card h3 a:hover, .card h3 a:focus, .card h3 a:active { text-decoration:none; }

.card:has(h3 a:hover) .card-link, .card:has(h3 a:focus) .card-link, .card:has(h3 a:active) .card-link { background:var(--orange); color:#212121; border-top-color:var(--orange); text-decoration:none; }

.card:has(.card-image:hover) .card-link, .card:has(.card-image:focus) .card-link, .card:has(.card-image:active) .card-link { background:var(--orange); color:#212121; border-top-color:var(--orange); text-decoration:none; }

.filters { padding:14px 16px; gap:10px; }
.filters input, .filters select { height:40px; margin-top:4px; }
.filters > .button { min-height:40px; padding:8px 12px; }
.filter-bottom { padding-top:6px; }
@media(min-width:760px) {
 .filters { grid-template-columns:1fr 1.4fr .85fr 1.2fr; }
 .filters > .button { grid-column:1; }
 .filters .filter-bottom { grid-column:2/-1; border-top:0; padding-top:0; align-items:center; gap:12px; }
 .filters .filter-bottom select { margin-top:0; }
}

.card .eyebrow, .offer-panel > .eyebrow { text-transform:uppercase; }
.card .price:has(+ .card-leasing) { margin-bottom:0; line-height:1.15; }
.card .card-leasing { margin-top:0; }
.cards[data-card-style] .card { transition:border-color .18s ease,box-shadow .18s ease; }
.cards[data-card-style="rahmen"] .card:hover, .cards[data-card-style="rahmen"] .card:focus-within { border-color:var(--orange); box-shadow:0 0 0 2px var(--orange); }
@media(prefers-reduced-motion:reduce) { .cards[data-card-style] .card { transition:none; } }

.card .eyebrow, .offer-panel > .eyebrow { color:var(--orange); }

.filters input:focus, .filters select:focus { border-color:var(--orange); outline:2px solid var(--orange); outline-offset:1px; box-shadow:none; }

#leasing input:focus, #leasing select:focus, #leasing button:focus { border-color:var(--orange); outline:2px solid var(--orange); outline-offset:1px; box-shadow:none; }

#anfrage input:focus, #anfrage select:focus, #anfrage textarea:focus, #anfrage button:focus { border-color:var(--orange); outline:2px solid var(--orange); outline-offset:1px; box-shadow:none; }

#sticky-leasing { font-size:14px; font-weight:400; display:inline; }
.equipment-disclaimer { margin-top:22px; }
@media(max-width:600px) { #sticky-leasing { display:block; font-size:12px; } }

#sticky-leasing { display:inline-block; font-size:16px; font-weight:700; color:#984500; background:#fff1df; border:1px solid #ffc080; border-radius:4px; padding:5px 9px; margin-left:8px; cursor:pointer; }
#sticky-leasing:hover { background:var(--orange); color:#212121; border-color:var(--orange); }
#sticky-leasing:focus-visible { background:var(--orange); color:#212121; outline:2px solid var(--orange); outline-offset:2px; }
.sale-disclaimer { font-size:15px; line-height:1.5; }
@media(max-width:600px) { #sticky-leasing { margin:4px 0 0; font-size:14px; } }

.offer-actions { display:flex; justify-content:flex-end; margin:0 0 16px; }
.print-summary { display:none; }
#back-to-top { position:fixed; right:18px; bottom:115px; z-index:30; width:44px; height:44px; padding:10px; border:1px solid #c77520; border-radius:5px; background:var(--orange); color:#212121; cursor:pointer; box-shadow:0 2px 8px #0002; }
#back-to-top svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
#back-to-top:focus-visible { outline:2px solid #944600; outline-offset:3px; }
@media print {
 @page { margin:15mm; }
 body:has(#print-offer) { background:white; color:black; padding:0; }
 body:has(#print-offer) header, body:has(#print-offer) footer, body:has(#print-offer) #section-footer,
 body:has(#print-offer) .navigation, .offer-actions, #back-to-top, .sticky-contact, .section-nav, .breadcrumb,
 .related-offers, .contact-card, .thumbnails, .gallery-controls, .expand, .equipment-search, #equipment-count, dialog,
 .offer-panel .button, .offer-panel .leasing-entry { display:none !important; }
 body:has(#print-offer) main, body:has(#print-offer) .wrap { width:100%; max-width:none; margin:0; padding:0; }
 .detail-top { display:block; }
 .gallery { float:right; width:45%; margin:0 0 12px 18px; }
 #main-photo { width:100%; height:auto; max-height:65mm; object-fit:contain; }
 .gallery .quick-facts { display:none; }
 .offer-panel { width:auto; }
 .print-summary { display:block; clear:both; border:1px solid #aaa; padding:12px; margin:18px 0; break-inside:avoid; }
 .print-summary p { font-size:10pt; margin:6px 0; }
 #print-lease-rate { font-size:16pt; font-weight:bold; }
 .detail-content, .detail-main { display:block; width:100%; }
 .detail-section { padding:12px 0; }
 .detail-section h2, .fact-group h3, .equipment-group summary { break-after:avoid; }
 .fact-group { break-inside:avoid; }
 .equipment-group li[hidden] { display:list-item !important; }
 .equipment-group[hidden] { display:block !important; }
 body:has(#print-offer) a { color:inherit; text-decoration:none; }
}

.sticky-contact { z-index:40; }
.offer-actions { flex-wrap:wrap; }
#print-status { flex-basis:100%; background:#fff1df; padding:12px; font-size:14px; color:#292929; margin:8px 0 0; }

.offer-price-row { display:flex; align-items:center; justify-content:space-between; gap:14px; margin:24px 0; }
.offer-price-row .price { margin:0; }
#print-offer { width:44px; height:44px; padding:10px; flex:0 0 44px; display:inline-flex; align-items:center; justify-content:center; }
#print-offer svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
#offer-print-document { position:absolute; left:-10000px; top:0; width:190mm; color:#222; background:white; font:10pt/1.3 Lato,sans-serif; }
#offer-print-document * { box-sizing:border-box; }
#offer-print-document .print-sheet { width:190mm; height:275mm; position:relative; break-after:page; }
#offer-print-document .print-sheet:last-child { break-after:auto; }
#offer-print-document .print-sheet-content { display:flow-root; }
#offer-print-document .print-letterhead { border-bottom:2px solid #ed8a22; padding-bottom:5px; margin-bottom:12px; font-weight:bold; letter-spacing:1px; }
#offer-print-document .print-page-footer { position:absolute; bottom:0; width:100%; border-top:1px solid #aaa; padding-top:5px; font-size:8pt; }
#offer-print-document h1 { font:700 18pt/1.15 Lato,sans-serif; margin:0 0 10px; }
#offer-print-document h2 { font:700 12pt/1.2 Lato,sans-serif; margin:8px 0 5px; }
#offer-print-document h3 { font:700 10pt/1.2 Lato,sans-serif; margin:4px 0; }
#offer-print-document p { margin:4px 0; font-size:10pt; }
#offer-print-document .price { font-size:20pt; font-weight:bold; }
#offer-print-document .eyebrow { font-size:9pt; }
#offer-print-document .print-hero { display:grid; grid-template-columns:1fr 75mm; gap:12px; align-items:start; margin-bottom:10px; }
#offer-print-document .print-hero img { width:75mm; height:54mm; object-fit:contain; }
#offer-print-document .print-summary { display:block; border:1px solid #aaa; padding:8px; margin:8px 0; }
#offer-print-document .print-summary p { font-size:9pt; }
#offer-print-document .print-summary p:first-of-type { font-size:15pt; font-weight:bold; }
#offer-print-document .detail-section { border:0; padding:0; margin:8px 0; }
#offer-print-document .description, #offer-print-document .description * { font-size:10pt; line-height:1.3; margin-top:3px; margin-bottom:3px; }
#offer-print-document .fact-group { padding:3px 0; margin:0; border:0; background:none; }
#offer-print-document .fact-tiles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3px 12px; margin:0; }
#offer-print-document .fact-tiles > div { display:block; padding:0; border:0; min-height:0; }
#offer-print-document dt { font-size:8pt; margin:0; color:#555; display:block; }
#offer-print-document dd { font-size:9pt; margin:0; padding:0; }
#offer-print-document details { border:0; padding:0; margin:0; }
#offer-print-document summary { font-size:10pt; font-weight:bold; padding:3px 0; list-style:none; }
#offer-print-document summary::marker { content:''; }
#offer-print-document .equipment-group ul { columns:3; display:block; padding:0 0 0 12px; margin:2px 0 5px; }
#offer-print-document .equipment-group li { font-size:9pt; line-height:1.25; padding:0; margin:0 0 2px; break-inside:avoid; }
#offer-print-document .equipment-group li::before { display:none; }
#offer-print-document .small { font-size:8pt; }
#offer-print-document .draft-note { background:none; padding:4px 0; }
@media print {
 @page { size:A4 portrait; margin:10mm; }
 body:has(#offer-print-document) > :not(#offer-print-document) { display:none !important; }
 #offer-print-document { position:static; width:190mm; display:block !important; }
 body:has(#offer-print-document) { margin:0 !important; padding:0 !important; }
}
#offer-print-document .description { columns:2; column-gap:6mm; }
#offer-print-document .fact-tiles dt, #offer-print-document .fact-tiles dd { padding:0; margin:0; min-height:0; }
#offer-print-document .fact-tiles dt span { font-size:8pt; }
#offer-print-document .equipment-group summary span { display:none; }
#offer-print-document .detail-section:has(.fact-group) { display:grid; grid-template-columns:1fr 1fr; gap:4px 12px; }
#offer-print-document .detail-section:has(.fact-group) > h2 { grid-column:1 / -1; }
#offer-print-document .fact-group .fact-tiles { grid-template-columns:1fr 1fr; }
#offer-print-document .equipment-group summary { display:block; text-align:left; }
#offer-print-document .equipment-group summary::before, #offer-print-document .equipment-group summary::after { display:none; }

@media screen {
 body.offer-print-preview { background:#e5e5e5; margin:0; padding:64px 0 24px; }
 body.offer-print-preview > :not(#offer-print-document):not(.print-preview-bar) { display:none !important; }
 body.offer-print-preview #offer-print-document { position:static; width:210mm; margin:0 auto; background:transparent; }
 body.offer-print-preview #offer-print-document .print-sheet { box-sizing:content-box; padding:10mm; background:white; margin:0 0 24px; box-shadow:0 2px 12px #0003; }
 .print-preview-bar { position:fixed; inset:0 0 auto; z-index:100; display:flex; justify-content:space-between; gap:16px; padding:12px 20px; background:#fff; border-bottom:1px solid #ccc; font:14px/1.5 Lato,sans-serif; }
 .print-preview-bar a { color:#9a4a00; }
 body.offer-print-preview #offer-print-document .print-page-footer { bottom:10mm; width:190mm; }
}

/* Printed offers share the site's typography, brand and compact fact icons. */
#offer-print-document .print-letterhead { display:flex; align-items:center; justify-content:space-between; gap:8mm; padding-bottom:4mm; margin-bottom:4mm; letter-spacing:0; }
#offer-print-document .print-brand-logo { width:46mm; height:auto; max-height:18mm; object-fit:contain; }
#offer-print-document .print-brand-address { white-space:pre-line; text-align:right; font-size:9pt; line-height:1.4; font-weight:400; }
#offer-print-document .print-hero { grid-template-columns:minmax(0,1fr) 75mm; align-items:start; }
#offer-print-document .print-hero .print-summary { margin:3mm 0 0; border:1px solid #efb47b; border-left:3px solid #ff9928; background:#fff5e8; padding:2.5mm; }
#offer-print-document .print-summary h2 { margin-top:0; }
#offer-print-document .print-summary p { font-size:8pt; line-height:1.3; }
#offer-print-document .print-summary p:first-of-type { font-size:13pt; }
#offer-print-document .detail-section:has(.fact-group) { grid-template-columns:repeat(3,minmax(0,1fr)); gap:3mm; }
#offer-print-document .fact-group { border:1px solid #ddd; border-top:2px solid #ff9928; border-radius:3px; padding:2mm; background:#fafafa; break-inside:avoid; }
#offer-print-document .fact-group h3 { margin:0 0 2mm; }
#offer-print-document .fact-group .fact-tiles { grid-template-columns:1fr; gap:1mm; }
#offer-print-document .fact-tiles > div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; gap:1mm; }
#offer-print-document .fact-tiles dt { display:flex; align-items:flex-start; gap:1mm; }
#offer-print-document .fact-tiles dd { text-align:right; font-weight:700; overflow-wrap:anywhere; }
#offer-print-document .fact-tiles svg { width:12px; height:12px; flex:0 0 12px; fill:none; stroke:#b45709; stroke-width:1.6; }
#offer-print-document { print-color-adjust:exact; -webkit-print-color-adjust:exact; }

#offer-print-document .print-image-column .fact-group { margin-top:3mm; }
#offer-print-document .print-disclaimers { border-top:1px solid #bbb; margin-top:4mm; padding-top:2mm; break-inside:avoid; }
#offer-print-document .print-disclaimers p { font-size:8pt; line-height:1.3; margin:0 0 1.5mm; color:#444; padding:0; }

#offer-print-document .print-key-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3mm; margin:3mm 0 4mm; }
#offer-print-document .print-disclaimers p { font-size:11pt; line-height:1.4; color:#222; margin:0; }

#offer-print-document .print-key-facts > .print-summary { margin:0; padding:2mm; border:1px solid #efb47b; border-top:2px solid #ff9928; border-radius:3px; background:#fff5e8; }
#offer-print-document .print-key-facts > .print-summary p:first-of-type { font-size:12pt; margin:0 0 2mm; }

#offer-print-document .print-key-facts > .print-lease-facts { background:#fafafa; border:1px solid #ddd; border-top:2px solid #ff9928; }
#offer-print-document .print-lease-facts h3 { font-size:10pt; }

#offer-print-document .print-sheet:nth-child(2) .detail-section:has(.fact-group) { grid-template-columns:repeat(4,minmax(0,1fr)); }

#offer-print-document .print-hero .print-teaser { margin-top:3mm; padding:2mm 3mm; border-left:2px solid #ff9928; background:#fff5e8; font-size:10pt; line-height:1.35; color:#333; }
#offer-print-document .print-key-facts > .fact-group { padding:3mm; border:1px solid #dcdedb; border-top:2px solid #d47a25; border-radius:6px; background:#fbfbfa; }
#offer-print-document .print-key-facts > .fact-group h3 { background:none; padding:0 0 2mm; margin:0 0 2mm; border-bottom:1px solid #dcdfdc; color:#28312d; font-weight:700; }
#offer-print-document .print-key-facts .fact-tiles { gap:0; }
#offer-print-document .print-key-facts .fact-tiles > div { padding:1mm 0; border-bottom:1px solid #e7e8e4; }
#offer-print-document .print-key-facts .fact-tiles > div:last-child { border-bottom:0; }
#offer-print-document .print-key-facts > .print-lease-facts { background:#fff2df; border-color:#ecc89b; border-top:3px solid #f38b22; }
#offer-print-document .print-key-facts > .print-lease-facts h3 { color:#8b4309; border-bottom-color:#e8c7a3; font-size:11pt; }
#offer-print-document .print-key-facts > .print-lease-facts .fact-tiles > div { border-bottom-color:#efddc5; }
#offer-print-document .fact-group > h3,
#offer-print-document .print-key-facts > .fact-group > h3,
#offer-print-document .print-key-facts > .print-lease-facts > h3 {
 background:#ff9928; color:#222; border:0; border-radius:3px 3px 0 0;
 padding:2mm; margin:-2mm -2mm 2mm; line-height:1.25;
}
#offer-print-document .print-key-facts > .fact-group > h3 {
 margin:-3mm -3mm 2mm; padding:2mm 3mm; border-radius:4px 4px 0 0;
}
/* Readable typography in the four compact data boxes on page two. */
#offer-print-document .print-sheet:nth-child(2) .fact-group > h3 { font-size:11pt; line-height:1.25; }
#offer-print-document .print-sheet:nth-child(2) .fact-tiles dt,
#offer-print-document .print-sheet:nth-child(2) .fact-tiles dt span { font-size:9.5pt; line-height:1.3; color:#383838; }
#offer-print-document .print-sheet:nth-child(2) .fact-tiles dd { font-size:10pt; line-height:1.3; }
#offer-print-document .print-sheet:nth-child(2) .fact-tiles > div { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); padding:0.6mm 0; }
#offer-print-document .print-sheet:nth-child(2) .fact-tiles svg { width:13px; height:13px; flex-basis:13px; }

/* Warranty uses the full card width below its label in both print modes. */
#offer-print-document .fact-tiles > .fact-warranty dt,
#offer-print-document .fact-tiles > .fact-warranty dd { grid-column:1 / -1; text-align:left; }

/* Vehicle publication status and active section. */
.vehicle-badge{display:inline-block;background:#ff9826;color:#111;padding:5px 10px;border-radius:4px;font-weight:700;letter-spacing:0;text-transform:none}
.section-nav a.is-active{background:#2d2d2d;color:white;box-shadow:inset 0 -3px #ff9826}
#share-offer{margin:8px 0}#share-status:empty{display:none}
@media(max-width:600px){#sticky-leasing{white-space:nowrap;padding:4px 6px;font-size:12px}}
@media print{#share-offer,#share-status{display:none!important}}

.card-body .eyebrow.vehicle-badge,.offer-panel .eyebrow.vehicle-badge{color:#111;background:#ff9826;text-transform:none;letter-spacing:0}

/* Inventory and detail refinements. */
.card-body .vehicle-badge{align-self:flex-start;width:fit-content}
.offer-panel{padding-top:0}.offer-panel>.eyebrow.vehicle-badge{font-size:14px;padding:5px 12px;line-height:1.5;margin-top:0}
.leasing-entry .small,.leasing-entry .text-link{display:block}.leasing-entry .text-link{width:fit-content;margin-top:8px}
#back-to-top{right:max(18px,calc((100vw - 1240px)/2 + 28px))}
#share-offer{margin:0;width:44px;height:44px;min-width:44px;padding:10px;flex-shrink:0}
#share-offer svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8}
.offer-price-row .price{margin-right:auto}.offer-price-row{gap:10px}
.share-choices{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.share-choices .button{flex:1 1 150px}
#share-link{width:100%;font-size:13px;margin:10px 0}#share-email-form label{display:block;margin:12px 0}
.check-row{display:flex!important;align-items:flex-start;gap:10px}.check-row input[type=checkbox]{width:20px;min-width:20px;margin-top:4px}
.appointment-notice{padding:12px 14px;border-left:3px solid var(--orange);background:#fff0dc;font-size:14px;font-weight:700;line-height:1.5}
.appointment-description{margin-top:18px}.equipment-disclaimer.small{font-size:15px;line-height:1.55;color:#343434}
.equipment-unlabelled{border-top:0;padding-top:0}
@media print{#share-dialog{display:none!important}}

.model-news-choice{font-size:14px;line-height:1.5;background:#fff6e9;padding:12px;border-radius:4px}.request-dialog .model-news-choice input{flex-shrink:0}

.offer-panel .leasing-entry .small{text-align:left}
@media(min-width:1400px){#back-to-top{right:calc((100vw - 1240px)/2 - 60px)}}

#share-dialog [hidden]{display:none!important}
#share-dialog .share-choices .button[aria-pressed="true"]{background:#ff9826;border-color:#ff9826;color:#222}

/* Independent columns keep description aligned with the gallery. */
@media screen{
 .detail-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:28px;margin:26px 0 30px;align-items:stretch}
 .detail-left,.detail-right{min-width:0}
 .detail-left .detail-main{margin-top:26px}
 .detail-right .contact-card{margin-top:26px}
 .detail-right .offer-panel{padding-top:0}
}
@media screen and (max-width:700px){
 .detail-layout{display:flex;flex-direction:column;gap:22px;margin-top:18px}
 .detail-left,.detail-right{display:contents}
 .detail-layout .gallery{order:1}
 .detail-layout .offer-panel{order:2}
 .detail-layout .detail-main{order:3;margin-top:0}
 .detail-layout .contact-card{order:4;margin-top:0}
}

.contact-card .appointment-notice{color:var(--ink);margin-top:14px;border-radius:0 4px 4px 0}
