:root{color-scheme:dark;--bg:#141813;--panel:#1e251d;--line:#354032;--ink:#f2f2ec;--muted:#b6bcae;--accent:#d1ed92;--rail:350px;--gap:16px}*{box-sizing:border-box}html,body{margin:0;min-width:0}body{background:var(--bg);color:var(--ink);font:15px/1.5 Arial,sans-serif}a{color:inherit;text-decoration:none}button,textarea{font:inherit}a:focus-visible,button:focus-visible,summary:focus-visible,textarea:focus-visible,[tabindex="0"]:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button,summary{cursor:pointer}.header{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid var(--line)}.brand{font-size:17px;font-weight:700;letter-spacing:.12em}.brand b{color:var(--accent)}.languages{display:flex;gap:4px}.languages a{padding:6px 10px;font-size:12px;color:var(--muted);border:1px solid transparent;border-radius:20px}.languages a[aria-current]{color:var(--accent);border-color:var(--line)}main{padding:20px 24px 24px 32px;margin-right:calc(var(--rail) + 20px);min-width:0}main:focus{outline:none}.page-inner{min-width:0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 16px;min-width:0}.heading-main{display:flex;align-items:center;gap:16px;min-width:0}h1{font-size:clamp(24px,2.4vw,34px);font-weight:500;line-height:1.2;letter-spacing:-.025em;margin:0}h2{font-size:20px;line-height:1.25;letter-spacing:-.02em;margin:0;font-weight:500}p{color:var(--muted)}.back-button{display:inline-flex;align-items:center;gap:9px;padding:8px 13px;border:1px solid var(--line);border-radius:8px;color:var(--ink);font-size:13px;flex-shrink:0}.back-button>span{font-size:24px;line-height:18px;color:var(--accent)}.back-button:hover{border-color:var(--accent)}.collection-actions{display:flex;gap:8px;flex-shrink:0}.collection-chip{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:8px;overflow:hidden;font-size:12px;color:var(--accent);padding-right:12px;white-space:nowrap}.collection-chip img{width:58px;height:38px;object-fit:cover}.collection-chip:hover{border-color:var(--accent)}.category-grid,.vehicle-grid{display:grid;gap:var(--gap);min-width:0}.category-card,.vehicle-card-photo{display:flex;flex-direction:column;min-width:0;overflow:hidden;background:var(--panel);border:1px solid var(--line);border-radius:12px}.category-card:hover,.vehicle-card-photo:hover{border-color:var(--accent)}.category-image,.vehicle-image{display:block;width:100%;min-height:0;object-fit:cover;background:#1a2018}.category-caption,.vehicle-copy{display:flex;align-items:center;gap:12px;min-height:54px;padding:10px 16px;border-top:1px solid var(--line)}.category-caption{justify-content:space-between}.category-caption h2{font-size:21px}.vehicle-copy h2{font-size:18px;overflow-wrap:anywhere}.category-collection{font-size:10px;padding:4px 7px;border:1px solid #d1ed9255;border-radius:5px;color:var(--accent);white-space:nowrap}.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:20px;min-width:0}.vehicle-gallery{min-width:0}.gallery-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border:1px solid var(--line);border-radius:12px;background:#1b2119;min-width:0}.gallery-track::-webkit-scrollbar{display:none}.gallery-slide{flex:0 0 100%;min-width:0;margin:0;scroll-snap-align:start;scroll-snap-stop:always}.detail-image{display:block;width:100%;height:auto;object-fit:contain;min-height:0;background:#1b2119}.gallery-slide figcaption{display:flex;justify-content:space-between;gap:16px;padding:9px 14px;font-size:12px;color:var(--muted)}.detail-facts{padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:12px;align-self:start;font-size:13px}dt{font-size:12px;color:var(--muted)}dd{margin:4px 0 18px}.detail-facts dl{margin:0}.demo-enquiry{border-top:1px solid var(--line);padding-top:14px;margin-top:20px}.demo-enquiry summary{color:var(--accent);font-weight:600}.demo-enquiry p{font-size:12px}.consultant{position:fixed;right:20px;top:92px;width:var(--rail);background:#1b2119;border:1px solid var(--line);border-radius:12px;overflow:hidden}.consultant summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;height:60px;list-style:none;font-size:15px;font-weight:600}.consultant summary::-webkit-details-marker{display:none}.panel-action{font-size:12px;font-weight:400;color:var(--muted)}.consultant details:not([open]) .chat-body{display:none}.chat-body{display:flex;flex-direction:column;height:max(260px,calc(66.667dvh - 155px));padding:0 22px 18px}.chat-mode{font-size:11px;margin:0}.chat-context{font-size:11px;border-bottom:1px solid var(--line);padding-bottom:12px;margin:12px 0 8px}#messages{flex:1;min-height:0;overflow:auto;padding:10px 0;overscroll-behavior:contain}.message{border:1px solid var(--line);border-radius:12px 12px 12px 2px;padding:12px;font-size:13px;margin:0 12px 12px 0;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink)}.message.user{margin:0 0 12px 12px;background:#2c3823;border-radius:12px 12px 2px 12px}textarea{resize:none;width:100%;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:10px;font-size:13px}button{border:0;border-radius:8px;background:var(--accent);color:var(--bg);padding:9px 16px;font-size:12px;font-weight:bold}#chat-form button{width:100%;margin-top:7px}.chat-hint{font-size:10px;line-height:1.5;margin:10px 0 0}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 24px 0 32px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);min-width:0}.footer-brand{font-weight:700;letter-spacing:.1em;color:var(--ink);white-space:nowrap}.footer-slots{display:flex;gap:26px}.footer-slots span{white-space:nowrap}.footer-note{position:relative}.footer-note summary{white-space:nowrap;color:var(--accent)}.footer-note>p{position:absolute;bottom:calc(100% + 12px);right:0;width:430px;max-width:calc(100vw - 32px);max-height:calc(100dvh - 140px);overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:16px;line-height:1.6;box-shadow:0 12px 40px #0008;z-index:20}.sr-only,.skip:not(:focus){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip:focus{position:fixed;top:8px;left:8px;z-index:30;background:var(--accent);color:var(--bg);padding:10px}
@media(min-width:851px){html,body{height:100%;overflow:hidden}body{height:100dvh;display:grid;grid-template-rows:72px minmax(0,1fr) 56px}main{min-height:0;overflow:hidden}.page-inner{display:flex;flex-direction:column;height:100%;min-height:0}.page-heading{flex:0 0 58px}.catalog-pane{flex:1;min-height:0;overflow:hidden}.vehicle-grid{height:100%;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:calc((100% - var(--gap))/2);align-content:start;overflow:hidden;scrollbar-gutter:stable;scrollbar-width:thin}.vehicle-grid.has-overflow{overflow-y:auto;overscroll-behavior:contain;scroll-snap-type:y proximity;scrollbar-width:thin;scrollbar-color:var(--line) transparent;padding-right:0}.vehicle-image{flex:1;height:0}.vehicle-copy{height:56px;flex-shrink:0}.category-grid{height:100%;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:min(calc((100% - var(--gap))/2),280px);align-content:start;overflow:hidden}.category-image{flex:1;height:0;object-fit:contain}.category-caption{height:48px;min-height:48px;flex-shrink:0;padding:8px 12px}.category-caption h2{font-size:19px}.detail-layout{flex:1;min-height:0;overflow:hidden}.vehicle-gallery{display:flex;flex-direction:column;min-height:0}.gallery-track{flex:1;min-height:0}.gallery-slide{display:flex;flex-direction:column;height:100%}.detail-image{flex:1;height:0}.gallery-slide figcaption{flex-shrink:0}.detail-facts{max-height:100%;overflow:auto}.site-footer{grid-row:3}}
@media(min-width:851px) and (max-width:1199px){:root{--rail:300px}main{padding-left:22px}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:calc((100% - 2*var(--gap))/3)}.detail-layout{grid-template-columns:minmax(0,1fr) 190px;gap:14px}.detail-facts{padding:14px}.site-footer{padding-left:22px}.footer-slots{gap:14px}.category-caption h2{font-size:18px}}
@media(min-width:851px) and (max-height:760px){.category-image,.vehicle-image{object-fit:contain}.chat-body{height:min(max(230px,calc(100dvh - 250px)),calc(100dvh - 210px))}.category-caption,.vehicle-copy{padding:7px 12px}.vehicle-copy h2{font-size:16px}}
@media(max-width:850px){.header{padding:0 18px}.brand{font-size:15px}main{margin:0;padding:22px 18px 28px}.page-heading{align-items:flex-start;flex-wrap:wrap;gap:12px;margin-bottom:20px}.heading-main{gap:12px;align-items:flex-start}h1{font-size:28px}.back-button{padding:6px 10px}.category-grid,.vehicle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.category-image,.vehicle-image{height:auto;aspect-ratio:3/2;object-fit:cover}.category-caption,.vehicle-copy{padding:14px;min-height:54px}.category-caption h2,.vehicle-copy h2{font-size:20px}.detail-layout{grid-template-columns:1fr;gap:20px}.detail-image{height:auto}.consultant{top:auto;bottom:0;right:0;width:100%;border-radius:14px 14px 0 0;z-index:10}.consultant summary{height:58px;padding:16px 20px}.chat-body{height:min(65dvh,550px);padding:0 20px 18px}.site-footer{padding:18px;margin-bottom:58px;flex-wrap:wrap;gap:16px;min-height:80px}.footer-slots{gap:16px;flex-wrap:wrap}.footer-note>p{position:fixed;bottom:92px;left:16px;right:auto}}
@media(max-width:520px){.category-grid,.vehicle-grid{grid-template-columns:1fr}.category-caption h2,.vehicle-copy h2{font-size:21px}.languages a{padding:6px 8px}.heading-main{flex-wrap:wrap}.detail-facts{padding:18px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.vehicle-grid:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.vehicle-grid.has-overflow .vehicle-card-photo{scroll-snap-align:start}

/* The photo region and consultant share one measured desktop height. */
@media(min-width:851px){
.category-grid{grid-auto-rows:calc((100% - var(--gap))/2)}
.category-image{object-fit:cover}
.vehicle-image{object-fit:cover}
.consultant{top:var(--panel-top,166px)}
.consultant details[open]{height:calc(var(--panel-height,calc(100dvh - 246px)) - 2px);display:flex;flex-direction:column}
.consultant summary{flex-shrink:0}
.consultant .chat-body{height:calc(var(--panel-height,calc(100dvh - 246px)) - 62px);flex:none;min-height:0}
.vehicle-gallery{position:relative;align-self:start;width:100%;max-height:100%;aspect-ratio:3/2}
.gallery-track{height:100%;flex:none;aspect-ratio:3/2}
.gallery-slide{position:relative}
.gallery-slide figcaption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#0009);color:white;padding:24px 16px 12px}
.detail-layout{grid-template-columns:minmax(0,1fr) 260px}
.detail-image{object-fit:cover}
}
@media(min-width:851px) and (max-width:1199px){.category-grid{grid-auto-rows:calc((100% - 2*var(--gap))/3)}.detail-layout{grid-template-columns:minmax(0,1fr) 190px}}
.vehicle-gallery{position:relative}
.gallery-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:40px;height:48px;padding:0;border:1px solid #ffffff55;background:#141813b8;color:#fff;border-radius:8px;font-size:34px;line-height:1;display:grid;place-items:center;backdrop-filter:blur(8px)}
.gallery-arrow:hover{background:#141813e8;border-color:var(--accent)}
.gallery-prev{left:12px}.gallery-next{right:12px}
.detail-facts h2{font-size:18px;margin:0 0 12px}.vehicle-description{line-height:1.6;margin-bottom:20px}
@media(max-width:850px){.gallery-slide{position:relative}.gallery-slide figcaption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#0009);color:white;padding:24px 12px 10px}}

@media(min-width:851px){.consultant details[open]{container-type:size;container-name:consultant}}
@container consultant (max-height:400px){.chat-mode,.chat-hint{display:none}.chat-context{margin-top:0;padding-bottom:8px}.chat-body{padding-bottom:12px}.chat-body textarea{height:46px}.message{padding:8px;font-size:12px;margin-bottom:8px}}

/* Keep complete photographs at their native ratio, with no side bands. */
@media(min-width:851px){
.vehicle-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:max-content;align-content:start;height:auto;max-height:100%}
.category-image,.vehicle-image{flex:none;height:auto;aspect-ratio:3/2;object-fit:cover}
.category-card,.vehicle-card-photo{align-self:start}
.vehicle-copy{height:56px}.category-caption{height:48px}
.gallery-track{flex:none;max-height:100%}
}

@media(min-width:851px){.catalog-pane{container-type:size;container-name:catalogue}}
@container catalogue (min-aspect-ratio:2/1){.category-grid,.vehicle-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@container catalogue (min-aspect-ratio:5/2){.category-grid,.vehicle-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.category-caption,.vehicle-copy{padding:8px}.category-caption h2,.vehicle-copy h2{font-size:15px}}

@container consultant (max-height:240px){.consultant summary{height:44px;padding:10px 16px;font-size:13px}.consultant .chat-body{height:calc(var(--panel-height) - 46px);padding:0 14px 8px}.chat-context,.chat-mode,.chat-hint{display:none}.chat-body textarea{height:36px;padding:6px 8px}.chat-body #chat-form button{padding:6px;margin-top:4px}.chat-body #messages{padding:4px 0}.message{font-size:11px;padding:6px}}

/* Four vehicles fill the desktop catalogue area as two equal rows. */
@media (min-width:851px) {
  .vehicle-grid[data-vehicle-count="4"] {
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-template-rows:repeat(2,minmax(0,1fr));
    grid-auto-rows:auto;
    height:100%;
  }
  .vehicle-grid[data-vehicle-count="4"] .vehicle-card-photo {
    align-self:stretch;
    min-height:0;
  }
  .vehicle-grid[data-vehicle-count="4"] .vehicle-image {
    flex:1;
    height:0;
    aspect-ratio:auto;
  }
}


/* LeadFlow category descriptions */
.category-caption {
    height: 76px;
    min-height: 76px;
    gap: 10px;
    align-items: center;
}
.category-text {
    min-width: 0;
}
.category-text h2 {
    margin: 0;
    line-height: 1.2;
}
.category-description {
    margin: 5px 0 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.3;
}


/* Stable category card layout */
@media (min-width: 851px) {
    .category-grid > .category-card {
        display: grid;
        grid-template-rows: minmax(0, 1fr) 76px;
        height: 100%;
        min-height: 0;
        overflow: hidden;
    }

    .category-grid > .category-card > .category-image {
        display: block;
        width: 100%;
        height: 100%;
        min-width: 0;
        min-height: 0;
        object-fit: cover;
    }

    .category-grid > .category-card > .category-caption {
        height: auto;
        min-height: 0;
    }
}


/* LeadFlow top-right menu */
.header {
  position: relative;
  z-index: 40;
}
.site-menu {
  margin-left: auto;
  flex-shrink: 0;
}
.site-menu > details {
  position: relative;
}
.site-menu-toggle {
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 9px 13px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  user-select: none;
}
.site-menu-toggle::-webkit-details-marker {
  display: none;
}
.site-menu-toggle svg {
  color: var(--accent);
  flex-shrink: 0;
}
.site-menu-toggle:hover,
.site-menu details[open] > .site-menu-toggle {
  border-color: var(--accent);
}
.site-menu-panel {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  width: 255px;
  max-width: calc(100vw - 36px);
  background: var(--panel);
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 14px;
  box-shadow: 0 16px 45px #0008;
  z-index: 50;
}
.site-menu-links {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.site-menu-links a {
  padding: 10px 11px;
  border-radius: 7px;
  font-size: 13px;
}
.site-menu-links a:hover,
.site-menu-links a:focus-visible {
  background: #2b3728;
  color: var(--accent);
}
.site-menu-language {
  margin-top: 12px;
  padding: 14px 10px 4px;
  border-top: 1px solid var(--line);
}
.site-menu-language > span {
  display: block;
  margin-bottom: 10px;
  font-size: 11px;
  color: var(--muted);
}
.site-menu-languages {
  display: flex;
  gap: 8px;
}
.site-menu-languages a {
  padding: 6px 13px;
  border: 1px solid var(--line);
  border-radius: 7px;
  font-size: 12px;
  color: var(--ink);
}
.site-menu-languages a[aria-current="true"] {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--bg);
  font-weight: 700;
}
.site-menu-languages a:hover:not([aria-current="true"]) {
  border-color: var(--accent);
}
@media (max-width: 520px) {
  .site-menu-toggle {
    padding: 9px 11px;
  }
}

/* LEADFLOW TEXT V6 */
.page-heading h1,
.detail-facts h2,
.detail-facts h3 {
  font-family: "Avenir Next Condensed",
    "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
  font-weight: 600;
  color: #e1e6e5;
}
.detail-facts dd {
  color: #e1e6e5;
}
.detail-facts dt {
  color: #b1bdbd;
}


/* LF_LOCATION_CHAT_V1 */
#rental-wizard {
  display: none !important;
}

#messages .lf-location-buttons {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 13px;
}

#messages .lf-location-button {
  display: block;
  width: 100%;
  padding: 11px 12px;
  min-height: 39px;
  border: 1px solid #52634d;
  border-radius: 10px;
  background: #2a3728;
  color: #eef3e9;
  text-align: left;
  cursor: pointer;
  font: 500 13px/1.4 "Avenir Next", Arial, sans-serif;
}

#messages .lf-location-button:hover,
#messages .lf-location-button:focus-visible {
  background: #374932;
  border-color: #d0ed95;
  outline-offset: 2px;
}

#chat-form button:disabled,
#chat-form textarea:disabled {
  opacity: .55;
  cursor: not-allowed;
}

@media (max-width: 850px) {
  #messages .lf-location-button {
    min-height: 42px;
    font-size: 14px;
  }
}


/* LF_COMPACT_CHAT_V2 */
#rental-wizard{display:none!important}

#messages{
  scrollbar-width:none!important;
}
#messages::-webkit-scrollbar{
  display:none!important;
}

#messages .message{
  font:12px/1.48 "Avenir Next","Helvetica Neue",Arial,sans-serif;
  padding:8px 10px;
  margin-bottom:7px;
  border-radius:11px 11px 11px 3px;
}
#messages .message.user{
  margin-left:28px;
  border-radius:11px 11px 3px 11px;
}

#messages .lf-location-buttons{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:6px!important;
  margin-top:9px!important;
  width:100%;
}
#messages .lf-location-button{
  width:100%;
  min-width:0;
  min-height:32px!important;
  padding:7px!important;
  font:500 11.5px/1.35 "Avenir Next",Arial,sans-serif!important;
  text-align:center!important;
  border:1px solid #51624b;
  border-radius:8px!important;
  background:#2a3728;
  color:#edf3e8;
  cursor:pointer;
}
#messages .lf-location-button:hover{
  border-color:#d1ed92;
  background:#354631;
}

#messages .lf-date-grid{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
#messages .lf-date-field{
  display:grid;
  gap:5px;
  min-width:0;
  color:#c1cdbc;
  font-size:11px;
}
#messages .lf-date-field input{
  width:100%;
  min-width:0;
  padding:6px 3px;
  border:1px solid #52634c;
  border-radius:7px;
  background:#151c15;
  color:#eef3e8;
  color-scheme:dark;
  font:11px "Avenir Next",Arial,sans-serif;
}
#messages .lf-date-submit{
  grid-column:1/-1;
  background:#d1ed92;
  color:#141813;
  font-weight:700;
}

#messages .lf-quote-card{
  display:block;
  margin-top:10px;
  padding:12px;
  border:1px solid #526348;
  border-radius:13px;
  background:linear-gradient(155deg,#273626,#192219);
  white-space:normal;
}
#messages .lf-quote-label,
#messages .lf-quote-location,
#messages .lf-quote-extra,
#messages .lf-quote-note{
  display:block;
}
#messages .lf-quote-label{
  color:#d1ed92;
  font-size:9px;
  letter-spacing:.09em;
}
#messages .lf-quote-name{
  display:block;
  color:#eef3e9;
  font-size:18px;
  margin-top:7px;
}
#messages .lf-quote-location{
  font-size:11px;
  margin:4px 0 12px;
  color:#b8c8b0;
}
#messages .lf-quote-row{
  display:flex;
  justify-content:space-between;
  gap:8px;
  padding:6px 0;
  border-bottom:1px solid #40503d;
  font-size:11px;
}
#messages .lf-quote-row b{
  white-space:nowrap;
  color:#eef3e9;
}
#messages .lf-quote-total{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-top:14px;
}
#messages .lf-quote-total strong{
  color:#d1ed92;
  font-size:22px;
}
#messages .lf-quote-extra{
  margin-top:6px;
  font-size:11px;
}
#messages .lf-quote-note{
  border-top:1px solid #40503d;
  margin-top:12px;
  padding-top:8px;
  color:#b8c8b0;
  font-size:10px;
}

#chat-form button:disabled{
  opacity:.5;
  cursor:not-allowed;
}

/* BMW M4 reference consultant and catalogue only. */
.consultant.lf-v3{font-family:"Avenir Next","Helvetica Neue",Arial,sans-serif}
.lf-v3 .chat-mode{display:block!important;font-size:11px;line-height:1.4;color:var(--accent);margin:0 0 5px}
.lf-v3 .chat-body{padding-left:12px;padding-right:12px}
.lf-v3 #messages .message{font:14px/1.48 "Avenir Next","Helvetica Neue",Arial,sans-serif;padding:8px 9px;margin-right:0;margin-bottom:8px;border-color:#354032;border-radius:9px}
.lf-v3 #messages .lf-location-button{font:500 14px/1.35 "Avenir Next",Arial,sans-serif!important;min-height:40px!important;padding:8px!important}
.lf-v3 #messages .lf-wide{grid-column:1/-1}
.lf-v3 #messages .lf-control-message{background:transparent;border:0;padding:2px 0}
.lf-v3 #messages .lf-step-title,.lf-v3 #messages .lf-review-summary{display:block;white-space:pre-line;margin:4px 0 8px}
.lf-v3 #messages .lf-date-field{font-size:14px}
.lf-v3 #messages .lf-date-field input{font:14px "Avenir Next",Arial,sans-serif;padding:8px 3px;max-width:100%}
.lf-v3 #messages .lf-quote-message{padding:0;border:0;background:none}
.lf-v3 #messages .lf-quote-card{margin-top:0;padding:11px;border-radius:10px}
.lf-v3 #messages .lf-quote-row,.lf-v3 #messages .lf-quote-extra,.lf-v3 #messages .lf-quote-location{font-size:14px}
.lf-v3 #messages .lf-quote-note{font-size:12px}
.lf-v3 #messages .lf-quote-label{font-size:11px}
.lf-v3 #messages .lf-stale{opacity:.6}
.lf-v3 #messages button:disabled{opacity:.5;cursor:not-allowed}
.lf-v3 #messages input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.lf-v3 textarea{font:14px/1.4 "Avenir Next",Arial,sans-serif}
@media(max-width:850px){.consultant.lf-v3 .chat-body{height:70dvh;max-height:720px}.lf-v3 #messages .lf-location-button{min-height:44px!important}}
@media(min-width:851px){
  .consultant.lf-v3{--lf-chat-height:min(max(var(--panel-height,490px),760px),calc(100dvh - var(--panel-top,150px) - 70px))}
  .consultant.lf-v3 details[open]{height:var(--lf-chat-height)}
  .consultant.lf-v3 .chat-body{flex:none;height:calc(var(--lf-chat-height) - 62px);min-height:0}
}
.lf-v3 #messages .lf-quote-row{padding:4px 0}

/* Explicit rental choices; only the BMW M4 reference flow renders these. */
.lf-v3 #messages .lf-option-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;grid-column:1/-1;white-space:normal;margin:2px 0 5px}
.lf-v3 #messages .lf-option-caption{grid-column:1/-1;font-weight:600;color:var(--ink);font-size:14px;margin-bottom:1px}
.lf-v3 #messages .lf-option-group button{min-height:38px!important;padding:6px!important;background:#222c21;border-color:#3c4938;font-weight:400!important}
.lf-v3 #messages .lf-option-group button[aria-pressed="true"]{background:#36472b;border-color:#c0db8b;box-shadow:inset 0 0 0 1px #c0db8b;color:#edfacf}
.lf-v3 #messages .lf-option-group button[aria-pressed="true"]::before{content:'✓ ';color:var(--accent)}
.lf-v3 #messages .lf-selected-return{grid-column:1/-1;font-size:14px;color:var(--accent)}
.lf-v3 #messages .lf-validation{display:block;color:#f3d6a0;font-size:14px}
.lf-v3 #messages .lf-review-summary{font-size:14px;line-height:1.4;margin-bottom:7px}
.lf-v3 #messages .lf-quote-card{padding:9px;line-height:1.35}
.lf-v3 #messages .lf-quote-name{font-size:17px;margin-top:3px}
.lf-v3 #messages .lf-quote-location{margin:3px 0 6px;line-height:1.35}
.lf-v3 #messages .lf-quote-row{padding:3px 0;line-height:1.35}
.lf-v3 #messages .lf-quote-total{margin-top:7px;font-size:14px}
.lf-v3 #messages .lf-quote-total strong{font-size:20px}
.lf-v3 #messages .lf-quote-note{margin-top:6px;padding-top:5px;line-height:1.35}
.lf-v3 #messages{scrollbar-width:none}
.lf-v3 #messages::-webkit-scrollbar{display:none}
.lf-v3 #messages .message[hidden]{display:none}
@media(max-width:850px){.lf-v3 #messages .lf-option-group button{min-height:44px!important}}

.lf-v3 #chat-form textarea{height:44px;min-height:44px;padding:8px;font-size:14px}
.lf-v3 .chat-hint{font-size:11px;line-height:1.2;margin-top:6px}

.lf-rental-navigation[hidden]{display:none}
.lf-v3 .lf-rental-navigation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:6px 0;background:#1b2119;flex-shrink:0}
.lf-v3 .lf-rental-navigation button{font:500 14px/1.3 "Avenir Next",Arial,sans-serif;min-height:40px;padding:7px 5px;background:#283322;color:var(--ink);border:1px solid #45553e}
@media(max-width:850px){.consultant.lf-v3 .chat-body{height:78dvh;max-height:720px}.lf-v3 .lf-rental-navigation button{min-height:44px}}

/* Keep the composer outside the only scrollable region at every message count. */
.consultant.lf-v3 details[open]{position:relative;overflow:hidden}
.consultant.lf-v3 details[open]>summary{flex:0 0 60px}
.consultant.lf-v3 details[open]>.chat-body{position:absolute;inset:60px 0 0;display:flex;flex:none;height:auto;max-height:none;min-height:0;overflow:hidden}
.consultant.lf-v3 .chat-mode,.consultant.lf-v3 .chat-context{flex:0 0 auto}
.consultant.lf-v3 #messages{flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden}
.consultant.lf-v3 #chat-form{flex:0 0 auto;margin:0}
.consultant.lf-v3 .chat-hint{display:block;flex:0 0 auto;margin:6px 0 0}
@media(max-width:850px){
  .consultant.lf-v3{bottom:var(--lf-keyboard-inset,0px)}
  .consultant.lf-v3 details[open]{height:min(78dvh,720px,calc(var(--lf-viewport-height,100dvh) - 12px))}
  .consultant.lf-v3 details[open]>.chat-body{height:auto;max-height:none;padding-bottom:max(12px,env(safe-area-inset-bottom))}
  .consultant.lf-v3 #chat-form textarea{font-size:16px}
}
@media(max-width:850px) and (max-height:480px){
  .consultant.lf-v3 details[open]{height:calc(var(--lf-viewport-height,100dvh) - 12px)}
}
@media(max-width:850px) and (max-height:360px){
  .consultant.lf-v3 .chat-mode,.consultant.lf-v3 .chat-context{display:none!important}
}

/* Compact search results reuse the existing consultant palette and spacing. */
.lf-v3 #messages .lf-result-list{display:grid;gap:6px;grid-column:1/-1}
.lf-v3 #messages .lf-result-card{display:grid;gap:4px;padding:8px;border:1px solid var(--line);border-radius:8px;font-size:14px;white-space:normal}
.lf-v3 #messages .lf-result-card a{color:var(--accent);text-decoration:underline}
.lf-v3 #messages .lf-results-count{grid-column:1/-1;font-size:12px;color:var(--muted)}

/* Catalogue footer follows content in the document flow. */
html:has(#fleet-preview),body:has(#fleet-preview){height:auto;overflow:visible}
body:has(#fleet-preview){min-height:100dvh;display:flex;flex-direction:column}
body:has(#fleet-preview) main{flex:1;overflow:visible!important;min-height:calc(100dvh - 128px)}
body:has(#fleet-preview) .site-footer{flex-shrink:0;min-height:56px;margin-bottom:0}
@media(max-width:850px){body:has(#fleet-preview) .site-footer{min-height:80px}body:has(#fleet-preview) main{min-height:calc(100dvh - 152px)}}

.site-menu-panel {
  max-height: calc(100dvh - 82px);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.site-menu-group-label {
  display: block;
  padding: 5px 11px;
  color: var(--muted);
  font-size: 11px;
}
.site-menu-group-divider {
  margin-top: 6px;
  padding-top: 10px;
  border-top: 1px solid var(--line);
}
.site-menu-links a[aria-current="page"] { color: var(--accent); }

body:has(#fleet-preview) {
  --bg: #141820;
  --panel: #202631;
  --line: #3b4655;
  --accent: #d3e1f5;
  --muted: #b6c0ce;
}
body:has(#fleet-preview) .consultant { background: var(--panel); }

body:has(#fleet-preview, .category-grid, .vehicle-grid, .vehicle-gallery) {
  --bg: #0c1019;
  --panel: #151e2e;
  --line: #2c3b55;
  --accent: #abc9f7;
  --muted: #b4c1d5;
}
body:has(#fleet-preview, .category-grid, .vehicle-grid, .vehicle-gallery) .consultant { background: var(--panel); }

html:has(#fleet-preview) { scrollbar-width: none; }
body:has(#fleet-preview, .category-grid, .vehicle-grid, .vehicle-gallery) #messages .lf-location-button,
body:has(#fleet-preview) #fleet-preview .preview-arrow {
  background: #1d2b41;
  border-color: #3a506f;
  color: #e5eefb;
}
body:has(#fleet-preview, .category-grid, .vehicle-grid, .vehicle-gallery) #messages .lf-location-button:is(:hover, :focus-visible),
body:has(#fleet-preview) #fleet-preview .preview-arrow:is(:hover, :focus-visible) {
  background: #2c405d;
  border-color: var(--accent);
}

/* Mobile catalogue consultant fix */
@media (max-width: 850px) {

  body:not(.information-page) > aside.consultant {
    position: fixed;
    top: auto !important;
    bottom: var(--lf-keyboard-inset, 0px);
    left: 0;
    right: 0;
    width: 100%;
    height: auto;
    max-height: calc(
      var(--lf-viewport-height, 100dvh) - 88px
    );
    border-radius: 18px 18px 0 0;
    z-index: 30;
  }

  body:not(.information-page)
  > aside.consultant details[open] {
    height: min(
      68dvh,
      560px,
      calc(var(--lf-viewport-height, 100dvh) - 88px)
    );
    max-height: calc(
      var(--lf-viewport-height, 100dvh) - 88px
    );
  }

  body:not(.information-page)
  > aside.consultant summary {
    height: 60px;
    min-height: 60px;
    padding: 10px 16px;
    cursor: pointer;
  }

  body:not(.information-page)
  > aside.consultant .panel-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 14px;
    border: 1px solid rgba(255,255,255,.3);
    border-radius: 10px;
    background: rgba(255,255,255,.1);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
  }

  body:not(.information-page)
  > aside.consultant.lf-v3
  details[open] > .chat-body {
    inset: 60px 0 0;
  }
}

/* Prevent the server-rendered open consultant from briefly covering mobile pages before JS closes it. */
@media (max-width:850px){.consultant:not([data-frontend-ready]) details[open] .chat-body{display:none}}
