/* ---------- Layout ---------- */
.rtd {
    padding: 16px 0 40px;
}
.rtd-wrap {
    margin: 0 auto;
    padding: 0;
}
.rtd-title {
    font: 700 40px/1.1 ui-sans-serif,system-ui,Segoe UI,Roboto;
    letter-spacing: .02em;
    margin: 0 0 10px;
}

/* ---------- Step Headers ---------- */
.rtd-stephead {
    width: 100%;
    text-align: left;
    display: grid;
    grid-template-columns: 70px 1fr 128px;
    gap: 16px;
    align-items: center;
    padding: 14px 16px;
    border: 1px solid #e5e7eb;
    border-bottom: 4px solid #252525;
    border-radius: 4px;
    background: #e2e2e2;
    color: #5a6470;
    margin-top: 10px;
    cursor: auto;
}
.rtd-stephead .rtd-stepno {
    position: relative;
    font:700 34px/1 monospace;
    color:#111827;
}
.rtd-stephead .rtd-steptext strong {
    display: block;
    color: #111827;
}
.rtd-stephead .rtd-steptext em {
    display: block;
    font-style: normal;
    color: #6b7280;
}
.rtd-stephead .rtd-stepno:after {
    content: "";
    display: inline-block;
    width: 1px;
    height: 34px;
    margin-left: 20px;
    background: #d2d2d2;
    margin-top: 2px;
}
.rtd-stephead .rtd-stepno:after {
    position: absolute;
    top: 0;
    bottom: 0;
    margin: auto;
    margin-left: 20px;
    background: #fff;
}
.rtd-stepbg {
    height: 54px;
    border-radius: 2px;
    opacity: .65;
}
.rtd-stephead.is-active {
    background: #0b1a24;
    color: #fff;
    border-color: #0b1a24;
    cursor: pointer;
}
.rtd-stephead.is-active .rtd-stepno {
    color: #fff;
}
.rtd-stephead.is-active .rtd-steptext strong, em {
    color: #d1d5db;
}
.rtd-stephead[disabled] {
    opacity:.55
}
.stepbar {
    border: 1px solid #d4d4d4;
    border-bottom: 4px solid #252525;
    background-color: #e2e2e2;
    background-position: 80% bottom;
    background-repeat: no-repeat;
}
.bar01 {
    background-image: url('../img/bg_quote_step01.png');
}
.bar02 {
    background-image: url('../img/bg_quote_step02.png');
}
.bar03 {
    background-image: url('../img/bg_quote_step03.png');
}

/* faint background glyph styles (optional) */
/* --- STEP 1 THUMB PREVIEW INSIDE HEADER --- */
/* --- Container für Step-Header Thumbnails --- */
.rtd-stepbg--car {
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
    gap: 6px;
    flex-wrap: nowrap;
}

/* --- Single thumbnail (image + text) --- */
.rtd-thumb {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    border-radius: 6px;
    background: #fff;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
.rtd-thumb:not(:last-child) {
    margin-right: 4px;
}

/* --- Vehicle image --- */
.rtd-thumb img {
    width: 70px;
    height: auto;
    transition: transform 0.25s ease;
}
.rtd-thumb img:hover {
    transform: scale(1.05);
}

/* --- Vehicle title under the picture --- */
.rtd-thumb__label {
    font-size: 1.3vh;
    line-height: 1.2;
    color: #222;
    margin-top: 4px;
    font-weight: 500;
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    max-width: 80px;
}

.rtd-stepbg--nav {
    background: linear-gradient(90deg,#0b1a241a,#0b1a240a);
}
.rtd-stepbg--gear {
    background: linear-gradient(90deg,#0b1a241a,#0b1a240a);
}

/* ---------- Panels ---------- */
.rtd-panel {
    display: none;
    background: #FFF;
    border: 1px solid #e5e7eb;
    border-top: 0;
    padding: 18px;
    border-radius:0 0 4px 4px;
}
.rtd-panel.is-open {
    display: block;
}

/* ---------- Filters (Step 1) ---------- */
.rtd-filters {
    display: flex;
    gap: 18px;
    align-items: center;
    flex-wrap: wrap;
    margin: 12px 0 14px;
}
.rtd-filter {
    display: block;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}
.rtd-filter input {
    appearance: none;
    width: 18px;
    height: 18px;
    border: 2px solid #0b1a24;
    border-radius: 50%;
    display: grid;
    place-items: center;
}
.rtd-filter input:checked {
    background: #0b1a24;
}
/* --- VEHICLE CATEGORY ICON SPRITE --- */
.rtd-fillicon {
    position: relative;
    width: 66px;
    height: 32px;
    display: block;
}

.rtd-fillicon::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url('../icons/spr_ico_cars_w.png');
    background-repeat: no-repeat;
    background-size: 132px auto;
    transition: filter .2s;
}

/* ===== Service Center – MAP VIEW (base) ===== */
.sc-map-wrap {
  display:flex;
  gap:20px;
  align-items:stretch;
  border:1px solid #e5e7eb;
  background:#fff;
  padding:16px;
  min-height:480px;
}

.sc-map-list {
  width:360px;
  max-width:40%;
  overflow:auto;
  border-right:1px solid #e5e7eb;
  padding:0 12px 0 0; /* fix: war "padding-right: 5px 12px;" */
}

.sc-map-card {
  display:grid;
  grid-template-columns:48px 1fr;
  gap:12px;
  padding:14px;
  border:1px solid #e5e7eb;
  background:#fafafa;
  margin-bottom:12px;
  cursor:pointer;
  transition:background .15s ease, box-shadow .15s ease;
}
.sc-map-card:hover { background:#fff; box-shadow:0 2px 10px rgba(0,0,0,.05); }

.sc-map-logo {
  width:48px; height:48px;
  border:1px solid #e5e7eb;
  display:grid; place-items:center;
  font-weight:700; color:#111; background:#fff;
}

.sc-map-title {
  font-size:2vh; font-weight:700; color:#111;
  margin:0 0 6px; line-height:1.2;
}
.sc-map-meta {
  font-size:1.6vh; color:#374151; line-height:1.35;
}

.sc-map-card.is-active { background:#000; }
.sc-map-card.is-active .sc-map-title,
.sc-map-card.is-active .sc-map-meta,
.sc-map-card.is-active .sc-map-tools { color:#fff; }

.sc-map { flex:1; min-height:480px; overflow:hidden; }

/* Leaflet default tweaks (optional) */
.leaflet-container { font:inherit; }

/* Features Page */
.features-links a p:hover { text-decoration:underline; }

/* ====== RESPONSIVE ====== */

/* ≤ 1024px: Liste etwas schmaler, Map etwas höher */
@media (max-width:1024px) {
  .sc-map-wrap{ gap:16px; padding:12px; min-height:420px; }
  .sc-map-list{ width:320px; max-width:44%; }
  .sc-map{ min-height:420px; }
  .sc-map-card{ padding:12px; }
  .sc-map-title{ font-size:18px; }   /* statt vh -> stabilere Größe */
  .sc-map-meta{ font-size:14px; }
  .sc-map-logo{ width:44px; height:44px; }
}

/* ≤ 768px: Stack untereinander (Liste oben, Map unten) */
@media (max-width:768px) {
  .sc-map-wrap{
    flex-direction:column;
    min-height:auto;
  }
  .sc-map-list{
    width:100%;
    max-width:100%;
    border-right:0;
    border-bottom:1px solid #e5e7eb;
    padding:0 0 12px 0;
    max-height:45vh;          /* Liste begrenzen, damit Map sichtbar bleibt */
    overflow:auto;
  }
  .sc-map{
    min-height:50vh;          /* Map bekommt eigene Höhe */
    border:0;
  }
  .sc-map-card{
    grid-template-columns:42px 1fr;
    gap:10px;
    padding:12px;
  }
  .sc-map-logo{ width:42px; height:42px; }
  .sc-map-title{ font-size:16px; }
  .sc-map-meta{ font-size:13px; }
}

/* ≤ 480px: größere Touch-Ziele, kompaktere Abstände */
@media (max-width:480px){
  .sc-map-wrap{ padding:10px; gap:12px; }
  .sc-map-list{ max-height:42vh; }
  .sc-map-card{
    grid-template-columns:40px 1fr;
    padding:10px;
    margin-bottom:10px;
  }
  .sc-map-logo{ width:40px; height:40px; }
  .sc-map-title{ font-size:15px; }
  .sc-map-meta{ font-size:12.5px; }
}

/* Optional: sehr große Screens */
@media (min-width:1440px){
  .sc-map-list{ width:420px; max-width:34%; }
  .sc-map{ min-height:560px; }
}


/* ---- Order in the sprite ----
   Left = inactive / Right = active
   (Change at :checked state)
*/

/* All */
#cat-all + .rtd-fillicon::before {
    background-position: 0 0;
}
#cat-all:checked + .rtd-fillicon::before {
    background-position: -66px 1px;
}

/* Sedan */
#cat-sedan + .rtd-fillicon::before {
    background-position: 0 -25px;
}
#cat-sedan:checked + .rtd-fillicon::before {
    background-position: -66px -25px;
}

/* SUV Cars */
#cat-suv-cars + .rtd-fillicon::before {
    background-position: 0 -55px;
}
#cat-suv-cars:checked + .rtd-fillicon::before {
    background-position: -66px -55px;
}

/* MPV Cars */
#cat-mpv-cars + .rtd-fillicon::before {
    background-position: 0 -85px;
}
#cat-mpv-cars:checked + .rtd-fillicon::before {
    background-position: -66px -85px;
}

/* Hybrid/Electric */
#cat-hybrid-electric + .rtd-fillicon::before {
    background-position: 0 -115px;
}
#cat-hybrid-electric:checked + .rtd-fillicon::before {
    background-position: -66px -115px;
}

/* Pick Up */
#cat-pick-up + .rtd-fillicon::before {
    background-position: 0 -147px;
}
#cat-pick-up:checked + .rtd-fillicon::before {
    background-position: -66px -147px;
}

.rtd-fillabel {
    font-size: 1.5vh;
    font-weight:normal;
}

/* ---------- Vehicle Grid ---------- */
.rtd-grid {
    display: grid;
    grid-template-columns: repeat(5,minmax(0,1fr));
    gap: 16px;
    max-height: 430px;
    overflow: auto;
    padding: 6px;
}
@media (max-width:920px) {
    .rtd-grid {
        grid-template-columns: repeat(3,1fr);
    }
}
.rtd-card {
    position: relative;
    border: 1px solid #e5e7eb;
    background: #fafafa;
    border-radius: 6px;
    padding: 12px;
    display: grid;
    gap: 10px;
    place-items: center;
    transition: .15s;
}
.rtd-card:hover {
    box-shadow: 0 6px 16px rgba(0,0,0,.08);
}
.rtd-card[hidden] {
    display: none;
}
.rtd-card-thumb {
    height: 90px;
    display: grid;
    place-items: end;
}
.rtd-card-thumb img {
    max-height: 90px;
    object-fit: contain;
}
.rtd-card-name {
    font-weight: 700;
}
.rtd-card-check {
    position: absolute;
    right: 10px;
    top: 10px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #0b1a24;
    color: #fff;
    display: none;
    align-items: center;
    justify-content: center;
    font-size: 14px;
}
.rtd-card.is-selected {
    outline: 3px solid #0b1a24;background:#fff;
}
.rtd-card.is-selected .rtd-card-check {
    display: flex;
}

/* ---------- Table (Step 2) ---------- */
.rtd-search {
    display: flex;
    gap: 8px;
    margin: 8px 0 14px;
}
.rtd-search input {
    flex: 1;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    padding: 10px;
    width: 100%;
}
.rtd-searchbtn {
    border: 1px solid #d1d5db;
    border-radius: 4px;
    background: #fff;
    padding: 0 12px;
}
.rtd-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}
.rtd-table th,.rtd-table td {
    border: 1px solid #e5e7eb;
    padding: 12px;
    vertical-align: top;
}
.rtd-table th {
    background: #f7f7f8;
    text-transform: capitalize;
    text-align: left;
}
.rtd-radio {
    display: flex;
    align-items: center;
    margin-right: 10px;
}
.rtd-radio input {
    appearance: none;
    width: 2vh;
    min-width: 18px;
    height: 2vh;
    border: 2px solid #0b1a24;
    border-radius: 50%;
    display: grid;
    place-items: center;
    margin-right: 6px;
}
.rtd-radio input:checked {
    background: #0b1a24;
}
.rtd-radio span {
    font-size: 1.8vh;
}
.rtd-cat {
    font-size: 18px;
}
.rtd-pager {
    display: flex;
    gap: 8px;
    justify-content: flex-start;
    margin-top: 10px;
}
.rtd-page {
    border: 1px solid #e5e7eb;
    border-radius: 4px;
    padding: 4px 10px;
    background: #fff;
}
.rtd-page.is-active {
    background: #0b1a24;
    color: #fff;
}

/* ---------- Form (Step 3) ---------- */
.rtd-form {
    display: grid;
    gap: 12px;
}
.rtd-row {
    font-size: 1.8vh;
    font-weight: normal;
}
.rtd-row2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.rtd-row1 {
    display: grid;
    grid-template-columns: 1fr;
}
.rtd-lbl {
    display: grid;
    gap: 6px;
    font-weight: 600;
}
.rtd-lbl input,.rtd-lbl select,.rtd-lbl textarea {
    border: 1px solid #d1d5db;
    border-radius: 4px;
    padding: 10px;
}
.rtd-lbl textarea {
    min-height: 140px;
    resize: vertical;
}
.rtd-check {
    display: flex;
    gap: 10px;
    align-items: flex-start;
}
.rtd-check input {
    margin-top: 3px;
}
.rtd-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 14px;
}
.rtd-btn {
    background: #0b1a24;
    color: #fff;
    border: 0;
    border-radius: 18px;
    padding: 8px 16px;
    font-weight: 700;
    cursor: pointer;
}
.rtd-btn[disabled] {
    opacity: .55;
    cursor: default;
}
.rtd-btn--secondary {
    background: #e5e7eb;
    color: #111827;
}
.rtd-legal {
    font-size: 12px;
    color: #6b7280;
    border-top: 1px solid #e5e7eb;
    margin-top: 16px;
    padding-top: 12px;
}

/* Misc */
.sr-only {
    display: block;
}

/* --- Mobile-First Tweaks --- */
@media (max-width: 676px) {
    .rtd {
        padding: 12px 0 28px;
    }

    .rtd-title {
        font-size: clamp(22px, 5.6vw, 28px);
        margin-bottom: 8px;
    }

    .rtd-stephead {
        grid-template-columns: 48px 1fr;
        gap: 10px;
        padding: 14px 12px;
    }
    .rtd-stephead .rtd-stepno {
        font: 700 clamp(20px, 7vw, 26px)/1 monospace;
    }
    .rtd-stepbg {
        grid-column: 1 / -1;
        height: auto;
        min-height: 48px;
        padding-top: 6px;
        opacity: .9;
    }

    .rtd-stepbg--car {
        justify-content: flex-start;
        gap: 8px;
        flex-wrap: wrap;
    }
    .rtd-thumb {
        padding: 6px;
    }
    .rtd-thumb img {
        width: 56px;
    }
    .rtd-thumb__label {
        max-width: 66px;
        font-size: 11px;
    }

    .rtd-filters {
        gap: 12px;
        margin: 10px 0 12px;
    }
    .rtd-filter input {
        width: 16px; height: 16px;
    }
    .rtd-fillabel {
        font-size: 1.5vh;
    }

    .rtd-grid {
        grid-template-columns: repeat(2, minmax(0,1fr));
        gap: 12px;
        max-height: 58vh;
    }
    .rtd-card {
        padding: 10px;
        gap: 8px;
    }
    .rtd-card-thumb {
        height: 76px;
    }
    .rtd-card-thumb img {
        max-height: 76px;
    }

    .rtd-table {
        font-size: 13px;
    }
    .rtd-table th, .rtd-table td {
        padding: 10px;
        min-width: 175px;
    }
    .rtd-table-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .rtd-radio input {
        width: 18px;
        height: 18px;
    }
    .rtd-radio span {
        font-size: 14px;
    }
    .rtd-row {
        font-size: clamp(14px, 1.9vh, 16px);
    }
    .rtd-row2 {
        grid-template-columns: 1fr;
    }
    .rtd-actions {
        flex-direction: column;
        align-items: stretch;
    }
    .rtd-btn {
        width: 100%;
        padding: 10px 16px;
    }
}

@media (min-width: 480px) and (max-width: 767.98px) {
    .rtd-title {
        font-size: clamp(26px, 5vw, 34px);
    }
    .rtd-stephead {
        grid-template-columns: 56px 1fr;
        gap: 12px;
        padding: 16px 14px;
    }
    .rtd-stepbg {
        grid-column: 1 / -1;
        min-height: 56px;
        padding-top: 6px;
    }
    .rtd-thumb img {
        width: 64px;
    }
    .rtd-thumb__label {
        max-width: 72px;
    }
    .rtd-grid {
        grid-template-columns: repeat(2, minmax(0,1fr));
        gap: 14px;
    }
    .rtd-row2 {
        grid-template-columns: 1fr;
    }
    .rtd-actions {
        gap: 12px;
    }
}

@media (min-width: 768px) and (max-width: 1023.98px) {

  .rtd-title {
    font-size: clamp(30px, 3.2vw, 38px);
  }

  .rtd-stephead {
    grid-template-columns: 60px 1fr 120px;
    gap: 14px;
    padding: 12px 16px;
  }
  .rtd-stepbg { height: 54px; }

  .rtd-grid {
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 16px;
  }

  .rtd-row2 { grid-template-columns: 1fr 1fr; }
}

@media (min-width: 1024px) {
    .rtd-grid {
        grid-template-columns: repeat(5, minmax(0,1fr));
    }

    .rtd-stephead {
        grid-template-columns: 72px 1fr 128px;
    }
    .rtd-thumb img {
        width: 70px;
    }
    .rtd-thumb__label {
        max-width: 80px;
    }
}

@media (min-width: 1280px) {
    .rtd-wrap {
        max-width: 1200px;
    }
}

/* ===== Small UX Helpers ===== */

.rtd-stephead:not([disabled]) {
    cursor: pointer;
}

.rtd-card[hidden] {
    display: none !important;
}

.rtd-filter input,
.rtd-radio input {
    touch-action: manipulation;
}


/* ---------- Brochure: Category Title ---------- */
/* Wrapper for each category */
.bro-section {
    margin-bottom: 32px;
}

.bro-card {
    position: relative;
    border: 1px solid #ccc;
    padding: 12px;
    display: grid;
    gap: 10px;
    place-items: center;
    transition: .15s;
}
.bro-card:hover {
    box-shadow:0 6px 16px rgba(0,0,0,.08);
}

/* Heading of each category */
.bro-cat-title {
  font: 700 2vh/1.3 'KiaM';
  color: #0b1a24;
  letter-spacing: .02em;
  margin: 12px 0 18px;
  text-transform: uppercase;
  padding-bottom: 6px;
  display: flex;
  align-items: center;
}

.bro-cat-title::before {
  content: '';
  display: inline-block;
  width: 3vh;
  height: 3vh;
  margin-right: 2px;
  background: url('../icons/caret-right-solid-full.svg') no-repeat center;
  background-size: contain;
}

.bro-btn {
    display: inline-block;
    width: auto;
    min-width: 140px;
    padding: 0 40px;
    background: #05141f;
    color: #fff;
    font-size: 11px;
    line-height: 35px;
    text-align: center;
    border-radius: 18px;
    text-transform: initial;
}
.bro-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 18px rgba(0,0,0,.18);
    background: #0a1620;
}
.bro-btn span {
    color:  #fff;
}
.bro-arrow {
    font-size: 18px;
    line-height: 1;
    color:  #fff;
}

/* Grid bleibt unverändert */
#brochureGrid {
    padding: 2%;
}
#brochureGrid .bro-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 28px;
}
@media (max-width:1023.98px) {
    #brochureGrid .bro-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
        gap: 22px;
    }
}
@media (max-width:639.98px) {
    #brochureGrid .bro-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }
}

