/* Dresen Sportwagen – Theme-Styles
   Farben und Schriften kommen aus theme.json. Hier stehen Layout und die festen Bausteine. */

:root{
  --ink:#0D0E10; --ink-2:#141519; --ink-3:#1C1E23;
  --line:rgba(230,224,212,.13); --line-strong:rgba(230,224,212,.28);
  --text:#EDE8E0; --muted:#9EA2A9; --soft:#CFCAC2;
  --gold:#C9A35B; --gold-hi:#D9B776; --gold-ink:#1E1709;
  --stone:#DDD5C8; --stone-2:#CFC6B6; --stone-ink:#16140F; --stone-muted:#4A4640; --stone-line:rgba(22,20,15,.22);
  --bronze:#7B5A14; --err:#A8492F;
  --serif:'Bodoni Moda', Didot, 'Bodoni 72', 'Times New Roman', serif; --sans:'Hanken Grotesk', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --pad:clamp(20px,4vw,48px);
}
html{ scroll-behavior:smooth; scroll-padding-top:calc(var(--wp-admin--admin-bar--height, 0px) + 84px); }
body{ -webkit-font-smoothing:antialiased; overflow-x:hidden; }
img{ max-width:100%; height:auto; }
.ds-btn, .ds-inventory *, .ds-forms *, .ds-fin *, .rev-box *, .ds-map, .ds-modal *, .wp-block-button__link{ box-sizing:border-box; }
:focus-visible{ outline:2px solid var(--gold); outline-offset:3px; }
.sr{ position:absolute !important; width:1px !important; height:1px !important; padding:0 !important; border:0 !important; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
.ds-hp{ position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden; }
mark.has-inline-color{ background:transparent; }

/* Abschnitts-Texte bündig links in der Inhaltsbreite */
.ds-sec > h2, .ds-sec > .ds-intro{
  max-width:20ch; margin-left:max(0px, calc((100% - 1240px) / 2)) !important; margin-right:auto !important;
}
.ds-sec > .ds-intro{ max-width:58ch; color:var(--muted); margin-top:12px; margin-bottom:clamp(30px,4vw,48px); }
.ds-sec{ padding-block:clamp(72px,10vw,128px); margin-block:0 !important; }
/* Seitenabstand fest im Theme, unabhängig von WordPress-Version */
.ds-sec.alignfull, .ds-hero.alignfull{ box-sizing:border-box; padding-left:var(--pad) !important; padding-right:var(--pad) !important; }
.more-row .ds-btn{ white-space:normal; text-align:center; max-width:100%; }
.ds-sec--ink2{ background:var(--ink-2); }
.ds-sec--paper{ background:var(--stone); color:var(--stone-ink); }
.ds-sec--paper .ds-intro{ color:var(--stone-muted); }
.ds-main > .wp-block-post-content > * + *, .ds-main .wp-block-post-content > .alignfull{ margin-block-start:0; }

/* Buttons */
.wp-element-button.wp-block-button__link{ font-size:.76rem !important; font-weight:600; letter-spacing:.16em; text-transform:uppercase; border-radius:0 !important; padding:0 28px !important; }
.wp-block-button__link, .ds-btn{ display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:52px; line-height:1.2; border:1px solid transparent; transition:background .2s, border-color .2s, color .2s; text-decoration:none; }
.is-style-ds-line .wp-block-button__link{ background:transparent !important; border-color:var(--line-strong); color:var(--text) !important; }
.is-style-ds-line .wp-block-button__link:hover{ border-color:var(--gold); }
.ds-sec--paper .is-style-ds-line .wp-block-button__link{ border-color:var(--stone-line); color:var(--stone-ink) !important; }
.is-style-ds-dark .wp-block-button__link{ background:var(--stone-ink) !important; color:var(--stone) !important; }
.ds-btn{ padding:0 28px; border-radius:0; font:600 .76rem/1.2 var(--sans); letter-spacing:.16em; text-transform:uppercase; cursor:pointer; white-space:nowrap; }
.ds-btn--gold{ background:var(--gold); color:var(--gold-ink); } .ds-btn--gold:hover{ background:var(--gold-hi); }
.ds-btn--line{ background:transparent; border-color:var(--line-strong); color:var(--text); } .ds-btn--line:hover{ border-color:var(--gold); }
.ds-btn--ink{ background:var(--stone-ink); color:var(--stone); } .ds-btn--ink:hover{ background:#000; }
.ds-btn--ghost-ink{ background:transparent; border-color:var(--stone-line); color:var(--stone-ink); } .ds-btn--ghost-ink:hover{ border-color:var(--stone-ink); }
.ds-btn--sm{ min-height:40px; padding:0 16px; font-size:.88rem; }
.ds-link{ color:var(--muted); font-size:.92rem; }
.ds-gold-link a{ color:var(--gold); text-decoration:none; font-size:.92rem; }

/* Kopfbereich */
.ds-site-header{ position:sticky; top:var(--wp-admin--admin-bar--height, 0px); z-index:60; border-bottom:1px solid var(--line); }
/* Unschärfe auf eigener Ebene: backdrop-filter direkt am Header würde das Handy-Menü auf Header-Höhe einsperren */
.ds-site-header::before{ content:""; position:absolute; inset:0; z-index:-1; background:rgba(13,14,16,.86); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px); pointer-events:none; }
.ds-header{ width:min(1240px, 100% - 2*var(--pad)); margin-inline:auto; min-height:74px; gap:26px; }
.ds-logo img, .ds-site-header .wp-block-site-logo img{ height:46px; width:auto; }
.ds-nav{ flex:1; font-size:.93rem; font-weight:500; gap:24px; }
.ds-nav .wp-block-navigation-item__content{ color:var(--muted); text-decoration:none; transition:color .2s; }
.ds-nav .wp-block-navigation-item__content:hover{ color:var(--text); }
.ds-header__right{ gap:16px; }
.ds-tel{ margin:0; white-space:nowrap; font-size:.92rem; }
.ds-tel a{ text-decoration:none; }
.ds-header__cta .wp-block-button__link{ min-height:40px; padding:.55rem 1rem; font-size:.88rem; }
.wp-block-navigation__responsive-container.is-menu-open{ position:fixed !important; inset:0 !important; height:100dvh !important; overflow-y:auto !important; z-index:100000 !important; background:var(--ink) !important; color:var(--text) !important; padding:calc(var(--wp-admin--admin-bar--height, 0px) + 24px) 24px 24px !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{ font-family:var(--serif); font-size:1.9rem; color:var(--text) !important; }
.wp-block-navigation__responsive-container-open svg, .wp-block-navigation__responsive-container-close svg{ fill:var(--text); }
@media (max-width:1320px){ .ds-tel{ display:none; } }
@media (max-width:1120px){
  .ds-nav .wp-block-navigation__responsive-container-open{ display:flex !important; }
  .ds-nav .wp-block-navigation__responsive-container:not(.is-menu-open){ display:none !important; }
  .ds-nav{ flex:0 0 auto; order:3; }
}
@media (max-width:640px){ .ds-header__cta .wp-block-button__link{ min-height:36px; padding:.45rem .75rem; font-size:.8rem; } .ds-header{ min-height:64px; gap:12px; } .ds-site-header .wp-block-site-logo img{ height:38px; } }

/* Hero */
.ds-hero{ position:relative; isolation:isolate; overflow:hidden; min-height:min(92svh, 880px); display:flex; flex-direction:column; justify-content:flex-end; padding-top:140px; padding-bottom:clamp(34px,6vw,60px); margin-block:0 !important; }
.ds-hero::after{ content:""; position:absolute; inset:0; z-index:-1; pointer-events:none; background:linear-gradient(0deg, rgba(13,14,16,.97) 0%, rgba(13,14,16,.62) 40%, rgba(13,14,16,.18) 75%), linear-gradient(90deg, rgba(13,14,16,.72) 0%, rgba(13,14,16,0) 62%); }
.ds-hero .ds-hero__slides{ position:absolute !important; inset:0; z-index:-2; margin:0 !important; max-width:none !important; width:100% !important; display:block !important; gap:0 !important; }
.ds-hero .ds-hero__slides figure.wp-block-image{ position:absolute !important; inset:0; margin:0 !important; width:100% !important; height:100% !important; opacity:0; transform:scale(1.05); transition:opacity 1.4s ease, transform 8s ease-out; }
.ds-hero .ds-hero__slides figure.wp-block-image:first-child, .ds-hero .ds-hero__slides figure.on{ opacity:1; transform:scale(1); }
.ds-hero.js-slider .ds-hero__slides figure.wp-block-image:not(.on){ opacity:0; transform:scale(1.05); }
.ds-hero .ds-hero__slides img{ width:100% !important; height:100% !important; object-fit:cover; }
.ds-hero .ds-hero__slides figcaption{ display:none; }
.ds-hero > *:not(.ds-hero__slides){ width:100%; }
.ds-hero__title{ margin-top:0 !important; margin-bottom:22px !important; }
.ds-hero .ds-lead{ color:var(--soft); font-size:clamp(1.02rem,1.5vw,1.18rem); max-width:54ch; margin-top:0 !important; margin-bottom:32px !important; margin-left:max(0px, calc((100% - 1240px) / 2)) !important; margin-right:auto !important; }
.ds-hero__title, .ds-hero .ds-lead, .ds-hero__ctas{ animation:dsRise .9s cubic-bezier(.2,.7,.2,1) both; }
.ds-hero .ds-lead{ animation-delay:.2s; } .ds-hero__ctas{ animation-delay:.35s; }
@keyframes dsRise{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
.hero__meta{ margin-top:clamp(40px,7vw,72px); padding-top:20px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; gap:14px 28px; }
.sync{ display:inline-flex; align-items:center; gap:10px; font-size:.88rem; color:var(--soft); }
.sync i{ width:8px; height:8px; border-radius:50%; background:#6FBF8A; animation:dsPulse 2.4s infinite; }
@keyframes dsPulse{ 0%{box-shadow:0 0 0 0 rgba(111,191,138,.55)} 70%{box-shadow:0 0 0 10px rgba(111,191,138,0)} 100%{box-shadow:0 0 0 0 rgba(111,191,138,0)} }
.rate-pill{ display:inline-flex; align-items:center; gap:8px; font-size:.88rem; color:var(--soft); text-decoration:none; }
.rate-pill b{ color:var(--gold); letter-spacing:1px; font-weight:500; }

/* Bestand */
.ds-inventory .filters{ display:flex; flex-wrap:wrap; gap:12px 20px; align-items:center; justify-content:space-between; padding-bottom:22px; margin-bottom:28px; border-bottom:1px solid var(--line); }
.chips{ display:flex; gap:8px; overflow-x:auto; scrollbar-width:none; padding-bottom:2px; }
.chips::-webkit-scrollbar{ display:none; }
.chip{ border:1px solid var(--line); background:transparent; border-radius:999px; padding:8px 16px; font:inherit; font-size:.88rem; color:var(--muted); cursor:pointer; white-space:nowrap; }
.chip[aria-pressed="true"]{ background:var(--text); color:var(--ink); border-color:var(--text); }
.selects{ display:flex; gap:16px; align-items:center; flex-wrap:wrap; }
.sel{ position:relative; }
.sel select{ appearance:none; -webkit-appearance:none; background:var(--ink-2); color:var(--text); border:1px solid var(--line); border-radius:2px; padding:10px 38px 10px 14px; font:inherit; font-size:.9rem; cursor:pointer; min-width:180px; }
.sel::after{ content:""; position:absolute; right:14px; top:50%; width:7px; height:7px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:translateY(-70%) rotate(45deg); pointer-events:none; opacity:.7; }
.count{ font-size:.88rem; color:var(--muted); margin:-10px 0 22px; }
.grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 330px), 1fr)); gap:42px 26px; }
.car{ cursor:pointer; outline:none; }
.car[hidden]{ display:none; }
.car__img{ position:relative; aspect-ratio:4/3; overflow:hidden; border-radius:2px; background:var(--ink-3); }
.car__img img{ width:100%; height:100%; object-fit:cover; transition:filter .3s; }
.car:hover .car__img img, .car:focus-visible .car__img img{ filter:brightness(1.08); }
.car:focus-visible .car__img{ outline:2px solid var(--gold); outline-offset:3px; }
.badge{ position:absolute; left:12px; top:12px; background:rgba(13,14,16,.8); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); font-size:.76rem; padding:5px 9px; border-radius:2px; }
.car__body{ padding-top:16px; display:grid; grid-template-columns:1fr auto; gap:2px 16px; }
.car__brand{ font-size:.85rem; color:var(--muted); }
.car__model{ font-family:var(--serif); font-size:1.42rem; line-height:1.15; margin:0; font-weight:500; }
.car__price{ grid-column:2; grid-row:1/3; align-self:end; text-align:right; }
.car__price b{ display:block; font-weight:600; font-size:1.08rem; }
.car__price small{ color:var(--muted); font-size:.8rem; }
.car__specs{ grid-column:1/-1; display:flex; flex-wrap:wrap; gap:16px; margin-top:10px; padding-top:10px; border-top:1px solid var(--line); font-size:.88rem; color:#C3BEB6; font-variant-numeric:tabular-nums; }
.more-row{ margin-top:44px; display:flex; flex-wrap:wrap; gap:14px 24px; align-items:center; }

/* Fahrzeug-Detail */
dialog.ds-modal{ border:1px solid var(--line); background:var(--ink-2); color:var(--text); padding:0; width:min(1120px, 100% - 32px); max-height:calc(100dvh - 32px); border-radius:3px; overflow:auto; }
dialog.ds-modal::backdrop{ background:rgba(5,6,8,.8); -webkit-backdrop-filter:blur(4px); backdrop-filter:blur(4px); }
.modal__grid{ display:grid; grid-template-columns:1.25fr 1fr; }
.modal__media{ background:#000; }
.modal__media img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/3; display:block; }
.modal__info{ padding:clamp(22px,3vw,36px); position:relative; }
.close-x{ background:none; border:1px solid var(--line); width:44px; height:44px; border-radius:2px; cursor:pointer; font-size:1.2rem; line-height:1; color:var(--text); }
.modal__close{ position:absolute; right:16px; top:16px; }
.modal__info h3{ font-family:var(--serif); font-weight:500; font-size:clamp(1.7rem,3vw,2.3rem); line-height:1.08; margin:4px 48px 6px 0; }
.modal__variant{ color:var(--muted); font-size:.92rem; margin:0 0 18px; }
.price-big b{ font-family:var(--serif); font-weight:500; font-size:2.3rem; }
.tax{ font-size:.82rem; color:var(--muted); margin:0; }
.rate{ color:var(--gold); font-size:.92rem; margin:8px 0 20px; }
.specs{ display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); margin:0; }
.specs div{ padding:12px 0; border-bottom:1px solid var(--line); }
.specs dt{ font-size:.78rem; color:var(--muted); } .specs dd{ margin:2px 0 0; font-weight:500; }
.tags{ display:flex; flex-wrap:wrap; gap:8px; margin:18px 0 22px; }
.tags span{ border:1px solid var(--line); padding:5px 10px; font-size:.82rem; color:var(--soft); border-radius:2px; }
.modal__ctas{ display:grid; gap:10px; }
.modal__ctas .row{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.mlinks{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; font-size:.86rem; margin-top:6px; }
.mlinks a{ color:var(--muted); }
@media (max-width:820px){
  dialog.ds-modal{ width:100%; max-width:100%; height:100%; max-height:100%; margin:0; border:0; border-radius:0; }
  .modal__grid{ grid-template-columns:1fr; }
  .modal__close{ position:fixed; right:14px; top:14px; z-index:3; background:rgba(13,14,16,.75); }
}

/* Ankauf / Über uns */
.ds-split{ gap:clamp(32px,5vw,72px) !important; align-items:center !important; }
.ds-split .wp-block-image img{ width:100%; border-radius:2px; }
.ds-split h2{ margin-top:0; }
.ds-split .ds-intro{ color:var(--muted); }
.ds-steps{ list-style:none; padding:0; margin:28px 0 0; border-top:1px solid var(--line); counter-reset:dsstep; }
.ds-steps li{ counter-increment:dsstep; position:relative; padding:22px 0 22px 72px; line-height:1.7; border-bottom:1px solid var(--line); color:var(--muted); font-size:.95rem; }
.ds-steps li::before{ content:counter(dsstep, lower-roman) '.'; position:absolute; left:0; top:21px; font-family:var(--serif); font-size:1.15rem; line-height:1.4; color:var(--gold); letter-spacing:.04em; }
.ds-steps li strong{ color:var(--text); font-weight:600; font-size:1rem; }
.ds-perks{ list-style:none; padding:0; margin:24px 0 30px; display:flex; flex-wrap:wrap; gap:8px; }
.ds-perks li{ border:1px solid var(--line); border-radius:999px; padding:7px 14px; font-size:.86rem; color:var(--soft); }
.ds-motto{ font-size:clamp(2.2rem,4.6vw,3.6rem) !important; margin-top:0; }
.ds-about p{ color:var(--soft); }
.ds-facts{ list-style:none; padding:0; margin:28px 0 0; display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); }
.ds-facts li{ padding:16px 16px 16px 0; border-bottom:1px solid var(--line); font-size:.88rem; color:var(--muted); }
.ds-facts li strong{ color:var(--text); font-size:.95rem; }
@media (max-width:520px){ .ds-facts{ grid-template-columns:1fr; } }

/* Anfrageformulare (heller Bereich) */
.ds-forms .tabs{ display:flex; border-bottom:1px solid var(--stone-line); overflow-x:auto; scrollbar-width:none; margin-bottom:clamp(28px,4vw,44px); }
.ds-forms .tabs::-webkit-scrollbar{ display:none; }
.ds-forms .tab{ background:none; border:0; border-bottom:2px solid transparent; padding:14px 0; margin-right:28px; font:600 1.02rem var(--sans); color:var(--stone-muted); cursor:pointer; white-space:nowrap; }
.ds-forms .tab[aria-selected="true"]{ color:var(--stone-ink); border-bottom-color:var(--stone-ink); }
.ds-forms .panel[hidden]{ display:none; }
.ds-forms .panel{ display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); gap:clamp(28px,5vw,72px); }
@media (max-width:900px){ .ds-forms .panel{ grid-template-columns:minmax(0,1fr); } }
/* Formulare dürfen nie breiter als der Bildschirm werden (lange Fahrzeugnamen in Auswahlfeldern) */
.ds-forms, .ds-forms .panel > *, .ds-forms form, .ds-forms .fs, .ds-forms .field{ min-width:0; max-width:100%; }
.ds-forms .field select, .ds-fin select{ max-width:100%; min-width:0; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; }
.ds-forms .seg button{ flex:1 1 0; min-width:max-content; }
.side{ align-self:start; }
.side img{ width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:2px; margin-bottom:20px; }
.side h3{ font-family:var(--serif); font-weight:500; font-size:1.7rem; line-height:1.15; margin:0 0 12px; }
.side p{ color:var(--stone-muted); margin:0 0 16px; }
.side ul{ list-style:none; padding:0; margin:0; border-top:1px solid var(--stone-line); }
.side li{ padding:12px 0; border-bottom:1px solid var(--stone-line); font-size:.95rem; display:flex; gap:12px; }
.side li::before{ content:""; flex:0 0 14px; height:1px; background:var(--bronze); margin-top:.8em; }
.side blockquote{ font-family:var(--serif); font-size:1.6rem; line-height:1.2; margin:0 0 14px; }
.fs{ border:0; padding:0; margin:0 0 30px; min-width:0; }
.fs legend{ font-weight:600; padding:0; margin-bottom:16px; display:flex; gap:10px; align-items:baseline; }
.fs legend .n{ font-family:var(--serif); color:var(--bronze); }
.fgrid{ display:grid; grid-template-columns:1fr 1fr; gap:18px 22px; }
.field.full, .fgrid .full{ grid-column:1/-1; }
@media (max-width:560px){ .fgrid{ grid-template-columns:1fr; } }
.field label, .flabel{ display:block; font-size:.82rem; color:var(--stone-muted); margin-bottom:4px; font-weight:500; }
.field input, .field select, .field textarea{ width:100%; background:transparent; border:0; border-bottom:1px solid rgba(22,20,15,.45); border-radius:0; padding:10px 0; font:inherit; font-size:1rem; color:var(--stone-ink); appearance:none; -webkit-appearance:none; }
.field select{ background:var(--stone-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2315171B' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 14px center; padding:11px 40px 11px 12px; }
.field textarea{ min-height:84px; resize:vertical; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-bottom-color:var(--stone-ink); box-shadow:0 1px 0 var(--stone-ink); }
.field input::placeholder, .field textarea::placeholder{ color:#7A746A; }
.field.invalid input, .field.invalid select{ border-bottom-color:var(--err); box-shadow:0 1px 0 var(--err); }
.ferr{ color:var(--err); font-size:.84rem; margin-top:6px; }
.days, .seg{ display:flex; gap:8px; overflow-x:auto; scrollbar-width:none; padding:2px 2px 6px; }
.days::-webkit-scrollbar, .seg::-webkit-scrollbar{ display:none; }
.day{ flex:0 0 76px; background:transparent; border:1px solid var(--stone-line); border-radius:2px; padding:10px 4px; cursor:pointer; text-align:center; color:var(--stone-ink); font:inherit; }
.day small{ display:block; font-size:.74rem; color:var(--stone-muted); }
.day b{ display:block; font-family:var(--serif); font-weight:500; font-size:1.6rem; line-height:1.2; }
.day[aria-pressed="true"]{ background:var(--stone-ink); color:var(--stone); border-color:var(--stone-ink); }
.day[aria-pressed="true"] small{ color:#B9B6AF; }
.seg button{ flex:1 0 auto; background:transparent; border:1px solid var(--stone-line); border-radius:2px; padding:10px 14px; cursor:pointer; color:var(--stone-ink); font:inherit; font-size:.93rem; }
.seg button[aria-pressed="true"]{ background:var(--stone-ink); color:var(--stone); border-color:var(--stone-ink); }
.hint{ font-size:.86rem; color:var(--stone-muted); margin:10px 0 0; }
.privacy{ font-size:.84rem; color:var(--stone-muted); margin:4px 0 20px; max-width:62ch; }
.privacy a{ color:var(--stone-ink); }
.drop{ display:block; border:1px dashed rgba(21,23,27,.4); border-radius:2px; padding:22px; text-align:center; cursor:pointer; color:var(--stone-muted); font-size:.92rem; }
.drop b{ display:block; color:var(--stone-ink); font-size:1rem; margin-bottom:2px; }
.drop:hover{ border-color:var(--stone-ink); }
.previews{ display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.previews img{ width:72px; height:54px; object-fit:cover; border-radius:2px; }
.progress{ display:flex; gap:6px; margin-bottom:26px; }
.progress span{ flex:1; height:3px; background:var(--stone-line); } .progress span.on{ background:var(--stone-ink); }
.wizard-step[hidden]{ display:none; }
.form-actions{ display:flex; gap:10px; flex-wrap:wrap; }
.form-actions [hidden]{ display:none; }
.listprice{ font-size:.92rem; color:var(--stone-muted); margin-top:8px; }
.offer-out{ font-family:var(--serif); font-size:2rem; margin:6px 0 2px; }
.offer-pct{ font-size:.88rem; color:var(--stone-muted); }
.ds-forms input[type=range]{ width:100%; accent-color:var(--stone-ink); }
.form-err{ color:var(--err); font-size:.9rem; margin:12px 0 0; }
.ds-form.is-sending button[type=submit]{ opacity:.6; pointer-events:none; }
.success{ border-top:2px solid var(--stone-ink); padding-top:26px; }
.success h3{ font-family:var(--serif); font-weight:500; font-size:2rem; margin:0 0 10px; }
.success p{ color:var(--stone-muted); max-width:54ch; }

/* Finanzierung */
.ds-fin{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:clamp(28px,5vw,72px); align-items:start; }
@media (max-width:900px){ .ds-fin{ grid-template-columns:minmax(0,1fr); } }
.ds-fin > *, .ds-fin .ctrl > *{ min-width:0; }
.ds-fin .ctrl{ display:grid; gap:28px; }
.lbl{ display:flex; justify-content:space-between; font-size:.88rem; color:var(--muted); margin-bottom:10px; }
.lbl b{ color:var(--text); font-weight:600; font-variant-numeric:tabular-nums; }
.ds-fin input[type=range]{ width:100%; accent-color:var(--gold); }
.ds-fin .sel select{ width:100%; }
.dseg{ display:flex; gap:8px; flex-wrap:wrap; }
.dseg button{ flex:1; min-width:64px; border:1px solid var(--line); background:transparent; padding:11px 10px; border-radius:2px; cursor:pointer; color:var(--muted); font:inherit; font-variant-numeric:tabular-nums; }
.dseg button[aria-pressed="true"]{ background:var(--text); color:var(--ink); border-color:var(--text); }
.fin-out{ border:1px solid var(--line); padding:clamp(22px,3vw,34px); background:var(--ink); }
.fin-out .big{ font-family:var(--serif); font-size:clamp(2.8rem,6vw,4.2rem); line-height:1; margin:6px 0 4px; font-weight:500; }
.fin-out .per{ color:var(--muted); }
.fin-out dl{ margin:24px 0 22px; border-top:1px solid var(--line); }
.fin-out dl div{ display:flex; justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--line); font-size:.93rem; }
.fin-out dt{ color:var(--muted); } .fin-out dd{ margin:0; font-variant-numeric:tabular-nums; }
.legal{ font-size:.78rem; color:var(--muted); margin:16px 0 0; line-height:1.55; }

/* Galerie */
.ds-gallery.wp-block-gallery{ gap:10px !important; }
.ds-gallery.wp-block-gallery figure.wp-block-image img{ border-radius:2px; }

html, body{ overflow-x:clip; }
/* Galerie: Leiste zum Wischen (Klassen setzt dresen.js, der Editor bleibt unverändert) */
.ds-hs-sec{ --hs-h:min(40vh, 400px); --hs-w:calc(var(--hs-h) * 4 / 3); }
.ds-hs-sec > .ds-intro{ margin-bottom:clamp(24px,3.5vh,40px); }
.ds-gallery.ds-hs{ display:flex !important; flex-wrap:nowrap !important; align-items:stretch; gap:clamp(12px,1.5vw,20px) !important; max-width:none !important; height:var(--hs-h); box-sizing:border-box; margin-right:0 !important; padding:0 var(--hs-pl,24px) !important; overflow-x:auto; overflow-y:hidden; overscroll-behavior-x:contain; scroll-snap-type:x proximity; scroll-padding-inline:var(--hs-pl,24px); scrollbar-width:none; cursor:grab; user-select:none; -webkit-user-select:none; }
.ds-gallery.ds-hs::-webkit-scrollbar{ display:none; }
.ds-gallery.ds-hs.is-dragging{ cursor:grabbing; scroll-snap-type:none; }
.ds-gallery.ds-hs.is-dragging > *{ pointer-events:none; }
.ds-hs > figure.wp-block-image{ position:relative; flex:0 0 var(--hs-w) !important; width:var(--hs-w) !important; min-width:var(--hs-w) !important; max-width:var(--hs-w) !important; height:var(--hs-h) !important; aspect-ratio:auto; margin:0 !important; overflow:hidden; background:var(--ink-2); border-radius:2px; scroll-snap-align:start; }
.ds-hs > figure.g-hidden{ display:none !important; }
.ds-hs > figure.wp-block-image img{ position:absolute; inset:0; display:block; width:100% !important; height:100% !important; max-width:none; object-fit:cover; border-radius:0; transition:scale .9s cubic-bezier(.2,.7,.1,1); -webkit-user-drag:none; }
.ds-hs > figure figcaption{ display:none; }
@media (hover:hover){ .ds-hs > figure:hover img{ scale:1.05; } }
.ds-hs > .hs-end{ flex:0 0 auto; box-sizing:border-box; height:var(--hs-h); width:calc(var(--hs-h) * .62); min-width:200px; display:flex; flex-direction:column; justify-content:flex-end; align-items:flex-start; gap:10px; padding:clamp(20px,2.4vw,32px); border:1px solid var(--line-strong); border-radius:2px; background:transparent; color:var(--text); text-decoration:none; text-align:left; font:inherit; cursor:pointer; scroll-snap-align:start; transition:border-color .3s ease, background .3s ease; }
.hs-end__k{ font:600 .72rem/1.2 var(--sans); letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.hs-end__t{ font-family:var(--serif); font-size:clamp(1.6rem,2.4vw,2.3rem); line-height:1.05; }
.hs-end__a{ color:var(--gold); font-size:1.6rem; line-height:1; transition:transform .3s ease; }
.hs-end:hover, .hs-end:focus-visible{ border-color:var(--gold); background:rgba(201,163,91,.05); }
.hs-end:hover .hs-end__a{ transform:translateX(6px); }
.hs-bar{ display:flex; align-items:center; gap:22px; width:100%; max-width:1240px; margin-top:clamp(18px,3vh,32px) !important; margin-left:auto !important; margin-right:auto !important; }
.hs-bar__n{ font-family:var(--serif); font-size:1.05rem; color:var(--muted); letter-spacing:.04em; white-space:nowrap; }
.hs-bar__n b{ color:var(--text); font-weight:500; }
.hs-bar__line{ position:relative; flex:1; height:1px; background:var(--line); overflow:hidden; }
.hs-bar__line i{ position:absolute; inset:0; background:var(--gold); transform-origin:left center; transform:scaleX(.04); transition:transform .15s linear; }
.hs-bar__nav{ display:flex; gap:8px; }
.hs-bar__nav button{ width:46px; height:46px; border:1px solid var(--line-strong); border-radius:50%; background:transparent; color:var(--text); font-size:1.1rem; line-height:1; cursor:pointer; transition:border-color .2s, color .2s, opacity .2s; }
.hs-bar__nav button:hover:not(:disabled){ border-color:var(--gold); color:var(--gold); }
.hs-bar__nav button:disabled{ opacity:.3; cursor:default; }
.hs-bar .ds-insta{ margin:0 !important; flex:0 0 auto; }
@media (max-width:700px){
	.ds-hs-sec{ --hs-h:min(34svh, 54vw); }
	.hs-bar{ gap:14px; }
	.hs-bar__nav{ display:none; }
	.hs-bar .ds-insta .wp-block-button__link{ padding-inline:18px; }
}
.ds-insta{ margin-top:28px !important; }

/* Bewertungen */
.rev-box{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px 40px; padding:clamp(26px,4vw,40px); border:1px solid var(--line); background:var(--ink); }
.rating{ display:flex; align-items:center; gap:18px; }
.rating b{ font-family:var(--serif); font-size:clamp(3.4rem,7vw,5rem); font-weight:500; line-height:1; }
.rating span{ color:var(--muted); font-size:.9rem; }
.rating .stars{ color:var(--gold); font-size:1.5rem; letter-spacing:4px; }
.rev-cert{ display:block; flex:0 0 auto; width:clamp(170px,17vw,220px); line-height:0; border-radius:3px; overflow:hidden; box-shadow:0 10px 30px rgba(0,0,0,.45); transition:transform .35s ease, box-shadow .35s ease; }
.rev-cert img{ display:block; width:100%; height:auto; }
.rev-cert:hover, .rev-cert:focus-visible{ transform:translateY(-4px); box-shadow:0 18px 44px rgba(0,0,0,.6); }
.rev-cert:focus-visible{ outline:2px solid var(--gold); outline-offset:4px; }
@media (max-width:640px){ .rev-box{ justify-content:center; text-align:center; } .rev-box .rating{ justify-content:center; } .rev-cert{ width:min(240px,70vw); } .rev-box .ds-btn{ width:100%; } }

/* Kontakt */
.ds-contact{ gap:32px !important; }
.ds-small-h{ font-family:var(--sans) !important; font-size:.98rem !important; font-weight:600 !important; letter-spacing:0 !important; margin:0 0 12px; }
.ds-contact p{ color:var(--soft); font-size:.95rem; margin:0 0 6px; }
.ds-contact a{ text-decoration:none; }
.ds-map{ min-height:240px; border:1px solid var(--line); border-radius:2px; display:grid; place-items:center; text-align:center; padding:22px; background:repeating-linear-gradient(115deg, transparent 0 46px, rgba(230,224,212,.05) 46px 47px), repeating-linear-gradient(25deg, transparent 0 64px, rgba(230,224,212,.06) 64px 65px), var(--ink-2); }
.ds-map p{ font-size:.84rem; color:var(--muted); max-width:34ch; margin:0 auto 12px; }
.ds-map.loaded{ padding:0; display:block; }
.ds-map iframe{ width:100%; height:100%; min-height:300px; border:0; display:block; filter:grayscale(.3) contrast(1.05); }

/* Fussbereich */
.ds-site-footer{ border-top:1px solid var(--line); }
.ds-footer{ width:min(1240px, 100% - 2*var(--pad)); margin-inline:auto; padding-block:44px; font-size:.88rem; color:var(--muted); gap:20px 40px; }
.ds-footer p{ margin:0; }
.ds-footer .wp-block-site-logo img{ height:40px; width:auto; margin-bottom:10px; }
.ds-footer a{ text-decoration:none; }
.ds-footer a:hover{ color:var(--text); }
.ds-legal-links a + a{ margin-left:20px; }

/* Unterseiten (Impressum, Datenschutz) */
.ds-page{ padding-block:clamp(56px,8vw,96px) !important; }
.ds-page-title{ font-size:clamp(2.2rem,4vw,3.2rem) !important; margin-bottom:32px !important; }
.ds-page h2{ font-size:1.5rem; margin-top:2em; }

/* WhatsApp */
.ds-fab{ position:fixed; right:18px; bottom:calc(env(safe-area-inset-bottom,0px) + 18px); z-index:55; width:56px; height:56px; border-radius:50%; background:#25D366; display:grid; place-items:center; box-shadow:0 8px 24px rgba(0,0,0,.35); }
.ds-fab svg{ width:28px; height:28px; }

/* Fahrzeugseite */
.ds-btn--block{ width:100%; }
.ds-vp{ width:min(1240px, 100% - 2*var(--pad)); margin-inline:auto; padding-block:28px clamp(64px,8vw,112px); }
.ds-vp__back{ margin-bottom:22px; font-size:.92rem; }
.ds-vp__back a{ color:var(--muted); text-decoration:none; } .ds-vp__back a:hover{ color:var(--text); }
.ds-vp__grid{ display:grid; grid-template-columns:minmax(0,1.45fr) minmax(0,1fr); gap:clamp(28px,4vw,56px); align-items:start; }
@media (max-width:960px){ .ds-vp__grid{ grid-template-columns:minmax(0,1fr); } }
.ds-vp__grid > *, .ds-vp__gallery, .ds-vp__thumbs{ min-width:0; max-width:100%; }
.ds-vp__main{ position:relative; aspect-ratio:4/3; background:#000; border-radius:2px; overflow:hidden; }
.ds-vp__main img{ width:100%; height:100%; object-fit:cover; display:block; }
.ds-vp__nav{ position:absolute; top:50%; transform:translateY(-50%); width:46px; height:46px; border:0; border-radius:50%; background:rgba(13,14,16,.65); color:var(--text); font-size:1.8rem; line-height:1; cursor:pointer; }
.ds-vp__nav.prev{ left:12px; } .ds-vp__nav.next{ right:12px; }
.ds-vp__count{ position:absolute; right:12px; bottom:12px; background:rgba(13,14,16,.7); padding:4px 10px; border-radius:2px; font-size:.82rem; }
.ds-vp__thumbs{ display:flex; gap:8px; margin-top:10px; overflow-x:auto; scrollbar-width:none; -ms-overflow-style:none; overscroll-behavior-x:contain; scroll-snap-type:x proximity; cursor:grab; user-select:none; -webkit-user-select:none; }
.ds-vp__thumbs::-webkit-scrollbar{ display:none; }
.ds-vp__thumbs.is-dragging{ cursor:grabbing; scroll-snap-type:none; scroll-behavior:auto; }
.ds-vp__thumbs.is-dragging button{ pointer-events:none; }
.ds-vp__thumbs.fade-r{ -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 64px),transparent); mask-image:linear-gradient(90deg,#000 calc(100% - 64px),transparent); }
.ds-vp__thumbs.fade-l{ -webkit-mask-image:linear-gradient(90deg,transparent,#000 64px); mask-image:linear-gradient(90deg,transparent,#000 64px); }
.ds-vp__thumbs.fade-l.fade-r{ -webkit-mask-image:linear-gradient(90deg,transparent,#000 64px,#000 calc(100% - 64px),transparent); mask-image:linear-gradient(90deg,transparent,#000 64px,#000 calc(100% - 64px),transparent); }
.ds-vp__thumbs img{ -webkit-user-drag:none; pointer-events:none; }
.ds-vp__main{ touch-action:pan-y; cursor:grab; user-select:none; -webkit-user-select:none; }
.ds-vp__main img{ -webkit-user-drag:none; }
.ds-vp__thumbs button{ scroll-snap-align:start; flex:0 0 96px; aspect-ratio:4/3; padding:0; border:2px solid transparent; background:var(--ink-3); cursor:pointer; border-radius:2px; overflow:hidden; opacity:.7; }
.ds-vp__thumbs button[aria-current]{ border-color:var(--gold); opacity:1; }
.ds-vp__thumbs img{ width:100%; height:100%; object-fit:cover; display:block; }
.ds-vp__title{ font-size:clamp(2rem,3.6vw,2.8rem) !important; margin:4px 0 6px !important; }
.ds-vp__info .specs{ margin-top:6px; }
.ds-vp__block{ margin-top:clamp(48px,6vw,80px); padding-top:28px; border-top:1px solid var(--line); max-width:900px; }
.ds-vp__block h2{ font-size:clamp(1.6rem,2.6vw,2.1rem); margin:0 0 18px; }
.ds-vp__features{ list-style:none; padding:0; margin:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(220px,1fr)); gap:10px 24px; }
.ds-vp__features li{ display:flex; gap:10px; color:var(--soft); font-size:.95rem; }
.ds-vp__features li::before{ content:""; flex:0 0 10px; height:6px; border-left:1.5px solid var(--gold); border-bottom:1.5px solid var(--gold); transform:rotate(-45deg); margin-top:.45em; }
.ds-vp__desc{ color:var(--soft); max-width:72ch; }
.ds-vp__desc p{ margin:0 0 1.1em; line-height:1.7; }
.ds-vp__desc hr{ border:0; border-top:1px solid var(--line); margin:1.4em 0; }
.ds-vp__desc p.lead{ font-family:var(--serif); font-size:1.35rem; line-height:1.3; color:var(--text); }
.ds-vp__desc p.lead strong{ font-weight:500; }
.ds-vp__desc strong{ color:var(--text); font-weight:600; }
.ds-vp__desc p.sub{ margin:1.6em 0 .6em; }
.ds-vp__desc p.sub strong{ font-family:var(--serif); font-size:1.2rem; font-weight:500; }
.ds-vp__desc ul{ list-style:none; padding:0; margin:0 0 1.1em; }
.ds-vp__desc li{ line-height:1.7; padding:0; }
.ds-vp__tech{ grid-template-columns:repeat(auto-fill, minmax(220px,1fr)); column-gap:32px; }
.ds-vp__cta p{ color:var(--muted); max-width:56ch; }
.empty{ color:var(--muted); padding:24px 0; }
.empty a{ color:var(--gold); }

@media (prefers-reduced-motion: reduce){ *{ animation:none !important; transition:none !important; scroll-behavior:auto !important; } }

/* Im Editor: Hero-Bilder sichtbar und austauschbar anzeigen */
.editor-styles-wrapper .ds-hero{ min-height:0; padding-top:24px; }
.editor-styles-wrapper .ds-hero .ds-hero__slides{ position:relative !important; display:flex !important; gap:8px !important; z-index:0; margin-bottom:24px !important; }
.editor-styles-wrapper .ds-hero .ds-hero__slides figure.wp-block-image{ position:relative !important; opacity:1 !important; transform:none !important; height:140px !important; width:calc(33.33% - 6px) !important; }
.editor-styles-wrapper .ds-hero::after{ display:none; }
.editor-styles-wrapper .ds-hero__title, .editor-styles-wrapper .ds-lead, .editor-styles-wrapper .ds-hero__ctas{ animation:none; }

@media (max-width:480px){ .ds-btn, .wp-block-button__link{ white-space:normal; text-align:center; max-width:100%; } }

/* Pfeil im goldenen Hauptbutton */
.ds-btn--gold::after, .wp-block-button:not(.is-style-ds-line):not(.is-style-ds-dark) > .wp-block-button__link::after{
  content:""; width:18px; height:10px; flex:0 0 18px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='10' viewBox='0 0 18 10'%3E%3Cpath d='M0 5h16M12 1l4 4-4 4' fill='none' stroke='%231E1709' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat center;
  transition:transform .2s;
}
.ds-btn--gold:hover::after, .wp-block-button:not(.is-style-ds-line) > .wp-block-button__link:hover::after{ transform:translateX(3px); }
.ds-header__cta .wp-block-button__link::after{ display:none; }

/* Fahrzeugkacheln als Link */
a.car{ display:block; color:inherit; text-decoration:none; }

/* Rückruf-Formular */
.cb-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:12px 14px; }
.cb-or{ font-size:.86rem; color:var(--stone-muted); }
@media (max-width:560px){ .cb-actions .ds-btn{ flex:1 1 auto; } .cb-or{ flex-basis:100%; } }

/* Bausteine immer auf Inhaltsbreite, unabhängig von der WordPress-Version */
.ds-sec > .rev-box, .ds-sec > .ds-inventory, .ds-sec > .ds-forms, .ds-sec > .ds-fin{ max-width:1240px; margin-left:auto !important; margin-right:auto !important; }
.rev-box{ box-sizing:border-box; }

/* Handy-Menü: feine goldene Trennlinien */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{ gap:0 !important; width:100%; align-items:stretch !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{ width:100%; border-bottom:1px solid rgba(201,163,91,.32); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item:first-child{ border-top:1px solid rgba(201,163,91,.32); }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{ display:block; width:100%; padding:16px 0 !important; }

/* Finanzierung als Registerkarte (hell, wie die übrigen Karten) */
.ds-forms .panel--fin{ display:block; color:var(--stone-ink); }
.ds-forms .panel--fin[hidden]{ display:none; }
.panel--fin .fin-head{ margin-bottom:clamp(22px,3vw,34px); }
.panel--fin .fin-head h3{ font-family:var(--serif); font-weight:500; font-size:clamp(1.6rem,3vw,2.2rem); margin:0 0 8px; color:var(--stone-ink); }
.panel--fin .fin-head p{ color:var(--stone-muted); margin:0; max-width:60ch; }
.panel--fin .lbl{ color:var(--stone-muted); }
.panel--fin .lbl b{ color:var(--stone-ink); }
.panel--fin .sel select{ background:var(--stone-2); color:var(--stone-ink); border:1px solid var(--stone-line); }
.panel--fin input[type=range]{ accent-color:var(--stone-ink); }
.panel--fin .dseg button{ color:var(--stone-muted); border-color:var(--stone-line); white-space:nowrap; }
.panel--fin .dseg button[aria-pressed="true"]{ background:var(--stone-ink); color:var(--stone); border-color:var(--stone-ink); }
.panel--fin .fin-out{ background:transparent; border:1px solid var(--stone-line); color:var(--stone-ink); }
.panel--fin .fin-out .per, .panel--fin .fin-out dt, .panel--fin .legal{ color:var(--stone-muted); }
.panel--fin .fin-out dl, .panel--fin .fin-out dl div{ border-color:var(--stone-line); }
.panel--fin .fin-out .ds-btn--gold{ background:var(--stone-ink); color:var(--stone); }
.panel--fin .fin-out .ds-btn--gold:hover{ background:#000; }
@media (max-width:480px){ .panel--fin .dseg{ gap:6px; } .panel--fin .dseg button{ min-width:0; padding:11px 4px; font-size:.88rem; } }
