/* =========================================================
   LANDING – Länderpills sauber
   ========================================================= */

.dv-country-page{
  max-width: 1280px !important;
  margin: 52px auto !important;
  padding: 0 24px !important;
}

.dv-country-page__head h2{
  margin: 0 0 14px !important;
  font-size: clamp(40px, 5vw, 64px) !important;
  line-height: 1.04 !important;
  color: #111827 !important;
}

.dv-country-page__head p{
  margin: 0 0 30px !important;
  color: #4b5563 !important;
  font-size: 18px !important;
}

.dv-country-grid.dv-country-grid--landing{
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 18px !important;
  align-items: center !important;
  justify-content: flex-start !important;
}

.dv-country-grid.dv-country-grid--landing .dv-country-btn{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  min-height: 46px !important;
  padding: 12px 22px !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 999px !important;
  background: #ffffff !important;
  color: #1f2937 !important;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.08) !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  cursor: pointer !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease !important;
}

.dv-country-grid.dv-country-grid--landing .dv-country-btn:hover,
.dv-country-grid.dv-country-grid--landing .dv-country-btn:focus{
  transform: translateY(-1px) !important;
  box-shadow: 0 12px 26px rgba(15, 23, 42, 0.12) !important;
  border-color: #d7dce2 !important;
  outline: none !important;
}

.dv-country-grid.dv-country-grid--landing .dv-country-btn:active{
  transform: translateY(0) !important;
}

.dv-country-grid.dv-country-grid--landing .dv-flag{
  width: 18px !important;
  height: 18px !important;
  flex: 0 0 18px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}

.dv-country-grid.dv-country-grid--landing .dv-flag img.emoji{
  display: block !important;
  width: 18px !important;
  height: 18px !important;
  max-width: none !important;
  margin: 0 !important;
}

.dv-country-grid.dv-country-grid--landing .dv-label{
  display: inline-block !important;
  font-weight: 500 !important;
  line-height: 1.2 !important;
  color: #1f2937 !important;
}

/* =========================================================
   Responsive
   ========================================================= */

@media (max-width: 980px){
  .dv-app__shell{
    grid-template-columns: 1fr !important;
  }

  .dv-app__sidebar{
    position: static !important;
  }

  .dv-app__summary{
    grid-template-columns: 1fr !important;
  }

  .dv-app .dv-vehicle-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px){
  .dv-app__shell{
    margin: 22px auto !important;
    padding: 14px !important;
    border-radius: 20px !important;
  }

  .dv-app__panel{
    padding: 16px !important;
    border-radius: 18px !important;
  }

  .dv-app__head h2{
    font-size: clamp(30px, 10vw, 42px) !important;
  }

  .dv-app .dv-vehicle-grid,
  .dv-app .dv-drive-grid{
    grid-template-columns: 1fr !important;
  }

  .dv-app .dv-duration-btn{
    flex-direction: column !important;
    align-items: flex-start !important;
  }

  .dv-app .dv-duration-pricewrap{
    width: 100% !important;
    min-width: 0 !important;
    align-items: flex-start !important;
    text-align: left !important;
  }

  .dv-country-page{
    margin: 28px auto !important;
  }

  .dv-country-page__head h2{
    font-size: clamp(30px, 10vw, 46px) !important;
  }

  .dv-country-page__head p{
    font-size: 16px !important;
  }

  .dv-country-grid.dv-country-grid--landing{
    gap: 10px !important;
  }

  .dv-country-grid.dv-country-grid--landing .dv-country-btn{
    min-height: 50px !important;
    padding: 12px 16px !important;
    gap: 10px !important;
    font-size: 15px !important;
  }

  .dv-country-grid.dv-country-grid--landing .dv-flag,
  .dv-country-grid.dv-country-grid--landing .dv-flag img.emoji{
    width: 16px !important;
    height: 16px !important;
    flex-basis: 16px !important;
  }
}





/* =========================================================
   DV WIZARD – MODERN TOOL STYLE (BEREINIGT)
   ========================================================= */

:root{
  --dv-bg: #f6f7f9;
  --dv-surface: #ffffff;
  --dv-surface-soft: #fafbfc;
  --dv-border: #e6e9ee;
  --dv-border-strong: #d7dde6;
  --dv-text: #142033;
  --dv-muted: #6f7d91;
  --dv-accent: #ff5a1f;
  --dv-accent-soft: rgba(255,90,31,.10);
  --dv-shadow: 0 10px 28px rgba(16,24,40,.06);
  --dv-radius: 22px;
  --dv-radius-sm: 14px;
}

/* =========================================================
   AUSSEN / LAYOUT
   ========================================================= */

.dv-app{
  padding: 40px 30px 20px !important;
  background: linear-gradient(180deg,#f8f9fb 0%, #f5f5f5 100%) !important;
}

.dv-app .dv-app__shell{
  max-width: 1360px !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: minmax(0,1fr) 360px !important;
  gap: 28px !important;
  align-items: start !important;
}

.dv-app .dv-app__panel{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
}








/* ====================================================================
   DV App – Konfiguration Summary überhalb Fahrezugkategorie ausblenden
   ==================================================================== */



/* DV App – linke Summary über Fahrzeugkategorie ausblenden */
.dv-app [data-dv-app-summary="country"],
.dv-app [data-dv-app-summary="vehicle"],
.dv-app [data-dv-app-summary="duration"]{
  display: none !important;
}

.dv-app .dv-app__summary{
  display: none !important;
}











/* =========================================================
   HEADER – normal, ohne Pill-Look
   ========================================================= */

.dv-app .dv-app__head{
  margin: 0 0 18px !important;
}

.dv-app .dv-app__eyebrow{
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 0 !important;
  margin: 0 0 6px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.dv-app .dv-app__eyebrow-flag{
  font-size: 30px !important;
  line-height: 1 !important;
}

.dv-app .dv-app__eyebrow-text{
  font-size: 28px !important;
  font-weight: 800 !important;
  color: #000 !important;
  line-height: 1.2 !important;
}

.dv-app .dv-app__head p{
  margin: 0 !important;
  font-size: 28px !important;
  line-height: 1.45 !important;
  font-weight: 500 !important;
  color: #000 !important;
  max-width: 760px !important;
  letter-spacing: 0 !important;
}









/* =========================================================
   Header-Intro als Hinweisbox mit orangem Balken
   ========================================================= */

.dv-app .dv-app__head p{
  display: block !important;
  margin: 16px 0 28px !important;
  padding: 18px 22px 18px 20px !important;
  max-width: 860px !important;

  background: #ffffff !important;
  border: 1px solid #e7ebf1 !important;
  border-left: 5px solid #ff5a1f !important;
  border-radius: 10px !important;
  box-shadow: 0 4px 14px rgba(15,23,42,.04) !important;

  font-size: 16px !important;
  line-height: 1.55 !important;
  font-weight: 500 !important;
  letter-spacing: -.01em !important;
  color: #5f6f85 !important;
}




@media (max-width: 768px){
  .dv-app .dv-app__head{
    margin-left: 0 !important;
    padding-left: 0 !important;
    margin-bottom: 14px !important;
  }


  .dv-app .dv-app__eyebrow{
    margin-left: 0 !important;
    padding-left: 0 !important;
    margin-bottom: 22px !important;
  }

  .dv-app .dv-app__eyebrow-flag{
    font-size: 20px !important;
    line-height: 1 !important;
  }

  .dv-app .dv-app__eyebrow-text{
    font-size: 22px !important;
    line-height: 1.1 !important;
    font-weight: 700 !important;
  }

  .dv-app .dv-app__head p{
    width: 100% !important;
    max-width: 100% !important;
    margin: 8px 0 22px 0 !important;
    padding: 16px 18px !important;
    box-sizing: border-box !important;
    font-size: 16px !important;
    line-height: 1.45 !important;
  }
}




/* =========================================================
   Eyebrow / Flagge sauber links ausrichten
   ========================================================= */

.dv-app .dv-app__eyebrow{
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 12px !important;
  margin: 0 0 18px !important;
  padding: 0 !important;
}

.dv-app .dv-app__eyebrow-flag{
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1 !important;
}

.dv-app .dv-app__eyebrow-flag img,
.dv-app .dv-app__eyebrow-flag .emoji{
  display: block !important;
  width: 28px !important;
  height: 28px !important;
  max-width: none !important;
  margin: 0 !important;
}

.dv-app .dv-app__eyebrow-text{
  display: inline-block !important;
  margin: 0 !important;
  line-height: 1.15 !important;
}



















/* =========================================================
   DV WIZARD – BEREINIGTER BLOCK
   ========================================================= */

/* =========================================================
   SECTION CARDS
   ========================================================= */
.dv-app .dv-app__section{
  background: #fff !important;
  border: 1px solid #e7ebf0 !important;
  border-radius: 22px !important;
  box-shadow: 0 12px 28px rgba(16,24,40,.05) !important;
  padding: 20px !important;
  margin: 0 0 30px !important;
  position: relative !important;
}

.dv-app .dv-app__section h3{
  margin: 0 0 32px !important;
  font-size: 26px !important;
  line-height: 1.1 !important;
  font-weight: 900 !important;
  letter-spacing: -.03em !important;
  color: var(--dv-text) !important;
}









/* =========================================================
   LEERZUSTAND kompakter machen
   ========================================================= */

/* Section allgemein etwas straffer */
.dv-app .dv-app__section{
  padding: 18px 20px !important;
  margin: 0 0 20px !important;
}

/* Überschrift etwas näher an den Inhalt */
.dv-app .dv-app__section h3{
  margin: 0 0 12px !important;
}

/* Leere Grids sollen keine künstliche Höhe haben */
.dv-app .dv-duration-grid:empty,
.dv-app .dv-app-form-wrap[style*="display:none"]{
  display: none !important;
}

/* Laufzeit-Section ohne Inhalt kleiner */
.dv-app .dv-app__section:has(.dv-duration-grid:empty){
  padding-bottom: 5px !important;
  min-height: auto !important;
}

/* Fahrzeugdaten-Section solange Formular verborgen ist kleiner */
.dv-app .dv-app__section:has(.dv-app-form-wrap[style*="display:none"]){
  padding-bottom: 5px !important;
  min-height: auto !important;
}











/* =========================================================
   FAHRZEUGKATEGORIE
   Grid beibehalten, alter Stil zurück
   ========================================================= */
.dv-app .dv-vehicle-grid{
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 14px !important;
}

.dv-app .dv-vehicle-btn{
  min-height: 138px !important;
  padding: 18px 16px 14px !important;
  border: 1px solid #dde3eb !important;
  border-radius: 18px !important;
  background: #fff !important;
  box-shadow: 0 4px 14px rgba(16,24,40,.03) !important;
  text-align: center !important;
  align-items: center !important;
  justify-content: flex-start !important;
}

.dv-app .dv-vehicle-btn:hover{
  transform: translateY(-1px) !important;
  border-color: #d3dbe5 !important;
  box-shadow: 0 10px 24px rgba(16,24,40,.06) !important;
}

.dv-app .dv-vehicle-btn.is-active{
  border-color: #ff5a1f !important;
  background: linear-gradient(180deg,#fffdfc 0%, #fff7f3 100%) !important;
  box-shadow: 0 0 0 3px rgba(255,90,31,.10) !important;
}

.dv-app .dv-vehicle-btn::before{
  width: 62px !important;
  height: 30px !important;
  margin: 0 auto 12px !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  background-size: contain !important;
  align-self: center !important;
}

.dv-app .dv-vehicle-label{
  width: 100% !important;
  text-align: center !important;
  font-size: 15px !important;
  line-height: 1 !important;
  font-weight: 800 !important;
  color: #142033 !important;
  letter-spacing: -.02em !important;
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
  margin: 0 !important;
}

.dv-app .dv-vehicle-btn .dv-info{
  margin: 8px auto 0 !important;
  align-self: center !important;
}

/* =========================================================
   LAUFZEIT
   ========================================================= */
.dv-app .dv-duration-grid{
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)) !important;
  gap: 12px !important;
}

.dv-app .dv-duration-btn{
  min-height: 78px !important;
  border: 1px solid #dde3eb !important;
  border-radius: 16px !important;
  background: #fff !important;
  padding: 14px 16px !important;
  display: grid !important;
  grid-template-columns: minmax(0,1fr) auto !important;
  align-items: center !important;
  gap: 14px !important;
  text-align: left !important;
  box-shadow: 0 4px 12px rgba(16,24,40,.03) !important;
}

.dv-app .dv-duration-btn:hover{
  border-color: #cfd7e3 !important;
  box-shadow: 0 8px 20px rgba(15,23,42,.05) !important;
}

.dv-app .dv-duration-btn.is-active{
  border-color: #ff5a1f !important;
  background: linear-gradient(180deg,#fffdfc 0%, #fff7f3 100%) !important;
  box-shadow: 0 0 0 3px rgba(255,90,31,.10) !important;
}

.dv-app .dv-duration-left{
  min-width: 0 !important;
}

.dv-app .dv-duration-title{
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}

.dv-app .dv-duration-label{
  font-size: 16px !important;
  line-height: 1.2 !important;
  font-weight: 800 !important;
  color: #142033 !important;
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
}

.dv-app .dv-duration-pricewrap{
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  justify-content: center !important;
  min-width: fit-content !important;
  gap: 3px !important;
}

.dv-app .dv-duration-fx{
  font-size: 12px !important;
  line-height: 1.2 !important;
  color: #6f7d91 !important;
  font-weight: 500 !important;
}

.dv-app .dv-duration-price{
  font-size: 18px !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  color: #142033 !important;
}










/* INFO ICON – reduziert */
.dv-app .dv-info{
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 10px !important;
  height: 10px !important;
  min-width: 10px !important;
  min-height: 10px !important;
  margin: 0 !important;
  border: 1px solid #000000 !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 1 !important;
  vertical-align: middle !important;
  flex: 0 0 auto !important;
}

.dv-app .dv-info::before{
  content: "i" !important;
  color: #111111 !important;
  font-size: 8px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}

.dv-app .dv-vehicle-title,
.dv-app .dv-duration-title{
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
}

.dv-app .dv-vehicle-btn .dv-info,
.dv-app .dv-duration-btn .dv-info{
  margin: 0 !important;
  position: relative !important;
}

/* Tooltip */
.dv-app .dv-info:hover::after,
.dv-app .dv-info:focus-visible::after{
  content: attr(data-tooltip) !important;
  position: absolute !important;
  left: 50% !important;
  bottom: calc(100% + 8px) !important;
  transform: translateX(-50%) !important;
  min-width: 180px !important;
  max-width: 260px !important;
  padding: 10px 12px !important;
  border-radius: 10px !important;
  background: #142033 !important;
  color: #fff !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
  text-align: left !important;
  white-space: normal !important;
  box-shadow: 0 10px 24px rgba(0,0,0,.16) !important;
  z-index: 30 !important;
}











/* =========================================================
   FORM
   ========================================================= */
.dv-app .dv-app-form-wrap{
  margin-top: 6px !important;
}

.dv-app .dv-form{
  display: grid !important;
  gap: 18px !important;
}

.dv-app .dv-form > label{
  display: block !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
  color: var(--dv-text) !important;
}

/* Nur normale Felder – Kennzeichen NICHT anfassen */
.dv-app .dv-form select,
.dv-app .dv-form #dv-valid-from,
.dv-app .dv-form #dv-ro-fin{
  width: 100% !important;
  margin-top: 8px !important;
  min-height: 54px !important;
  padding: 0 16px !important;
  border: 1px solid var(--dv-border-strong) !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7) !important;
  font-size: 16px !important;
  color: var(--dv-text) !important;
  box-sizing: border-box !important;
}

.dv-app .dv-form #dv-valid-from{
  padding-right: 44px !important;
}

.dv-app .dv-plate-input,
.dv-app .dv-plate-input input,
.dv-app .dv-plate-band,
.dv-app .dv-plate-preview,
.dv-app .dv-plate-preview *{
  box-sizing: border-box !important;
}

.dv-app .dv-help{
  display: block !important;
  margin-top: 8px !important;
  font-size: 13px !important;
  color: var(--dv-muted) !important;
}

.dv-app .dv-plate-preview-wrap{
  border: 1px solid var(--dv-border) !important;
  border-radius: 16px !important;
  background: var(--dv-surface-soft) !important;
  padding: 16px !important;
}

.dv-app .dv-form-actions{
  margin-top: 8px !important;
}

/* =========================================================
   SIDEBAR
   ========================================================= */
.dv-app .dv-app__sidebar{
  position: sticky !important;
  top: 24px !important;
}

.dv-app .dv-app-cartcard{
  background: #fff !important;
  border: 1px solid var(--dv-border) !important;
  border-radius: 20px !important;
  box-shadow: 0 18px 40px rgba(16,24,40,.08) !important;
  overflow: hidden !important;
}

.dv-app .dv-app-cartcard__head{
  padding: 24px 24px 20px !important;
  border-bottom: 1px solid var(--dv-border) !important;
}

.dv-app .dv-app-cartcard__head h3{
  margin: 0 0 6px !important;
  font-size: 24px !important;
  font-weight: 800 !important;
}

.dv-app .dv-app-cartcard__head div{
  color: var(--dv-muted) !important;
  font-size: 14px !important;
}

.dv-app .dv-app-cartcard__body{
  padding: 18px 24px !important;
}

.dv-app .dv-app-ticket__card{
  border: 1px solid var(--dv-border) !important;
  border-radius: 18px !important;
  padding: 20px !important;
  background: linear-gradient(180deg,#fff 0%, #fcfcfd 100%) !important;
}

.dv-app .dv-app-ticket__title{
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  font-size: 18px !important;
  font-weight: 800 !important;
  padding-bottom: 14px !important;
  margin-bottom: 14px !important;
  border-bottom: 1px solid var(--dv-border) !important;
}

.dv-app .dv-app-ticket__rows{
  display: grid !important;
  gap: 10px !important;
}

.dv-app .dv-app-ticket__row{
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  gap: 10px !important;
  align-items: start !important;
  padding: 2px 0 !important;
}

.dv-app .dv-app-ticket__row span{
  font-size: 14px !important;
  color: var(--dv-muted) !important;
  font-weight: 600 !important;
}

.dv-app .dv-app-ticket__row strong{
  font-size: 14px !important;
  color: var(--dv-text) !important;
  text-align: right !important;
}

.dv-app .dv-app-ticket__price{
  margin-top: 16px !important;
  padding-top: 16px !important;
  border-top: 1px solid var(--dv-border) !important;
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  align-items: end !important;
}

.dv-app .dv-app-ticket__price span{
  color: var(--dv-muted) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
}

.dv-app .dv-app-ticket__price strong{
  font-size: 36px !important;
  line-height: 1 !important;
  font-weight: 900 !important;
  color: var(--dv-text) !important;
}

.dv-app .dv-app-cartcard__footer{
  padding: 0 24px 24px !important;
  display: grid !important;
  gap: 12px !important;
}

.dv-app .dv-sidecart__btn{
  min-height: 56px !important;
  border-radius: 14px !important;
  font-size: 18px !important;
  font-weight: 800 !important;
}




/* =========================================================
   MOBILE FIX – DV APP sauber untereinander
   ========================================================= */
@media (max-width: 900px){

  .dv-app{
    padding: 24px 14px 24px !important;
  }

  .dv-app .dv-app__shell{
    grid-template-columns: 1fr !important;
    gap: 18px !important;
  }

  .dv-app .dv-app__sidebar{
    position: static !important;
    top: auto !important;
    order: 2 !important;
    width: 100% !important;
  }

  .dv-app .dv-app__main{
    order: 1 !important;
    min-width: 0 !important;
  }

  .dv-app .dv-app-cartcard{
    width: 100% !important;
  }

  .dv-app .dv-app-cartcard__body,
  .dv-app .dv-app-cartcard__footer,
  .dv-app .dv-app-cartcard__head{
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .dv-app .dv-app-ticket__row{
    grid-template-columns: 1fr !important;
    gap: 2px !important;
  }

  .dv-app .dv-app-ticket__row strong{
    text-align: left !important;
  }

  .dv-app .dv-app-ticket__price{
    grid-template-columns: 1fr !important;
    gap: 6px !important;
  }

  .dv-app .dv-app-ticket__price strong{
    text-align: left !important;
    font-size: 30px !important;
  }

  .dv-app .dv-vehicle-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  .dv-app .dv-vehicle-btn{
    min-height: 112px !important;
    padding: 12px 10px !important;
    border-radius: 16px !important;
  }

  .dv-app .dv-vehicle-btn::before{
    width: 52px !important;
    height: 28px !important;
    margin: 0 auto 8px !important;
  }

  .dv-app .dv-vehicle-label{
    font-size: 14px !important;
    line-height: 1 !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
  }

  

  .dv-app .dv-duration-grid{
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .dv-app .dv-duration-btn{
    min-height: 74px !important;
    padding: 12px 12px !important;
    grid-template-columns: minmax(0,1fr) auto !important;
    gap: 10px !important;
  }

  .dv-app .dv-duration-label{
    font-size: 15px !important;
    line-height: 1.15 !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
  }

  .dv-app .dv-duration-price{
    font-size: 19px !important;
  }

  .dv-app .dv-duration-fx{
    font-size: 10px !important;
  }

  .dv-app .dv-app__section{
    padding: 16px !important;
    border-radius: 18px !important;
  }

  .dv-app .dv-app__section h3{
    font-size: 22px !important;
    margin-bottom: 14px !important;
  }
}

@media (max-width: 560px){

  .dv-app{
    padding: 24px 14px 24px !important;
  }

  .dv-app .dv-app__head{
    margin-bottom: 16px !important;
  }

  .dv-app .dv-vehicle-grid{
    grid-template-columns: 1fr !important;
  }

  .dv-app .dv-vehicle-btn{
    min-height: 98px !important;
    padding: 10px 12px !important;
  }

  .dv-app .dv-vehicle-btn::before{
    width: 46px !important;
    height: 24px !important;
    margin-bottom: 6px !important;
  }

  .dv-app .dv-vehicle-label{
    font-size: 13px !important;
  }

  .dv-app .dv-duration-btn{
    min-height: 68px !important;
    padding: 10px 10px !important;
  }

  .dv-app .dv-duration-label{
    font-size: 14px !important;
  }

  .dv-app .dv-duration-price{
    font-size: 18px !important;
  }

  .dv-app .dv-app-ticket__title{
    font-size: 16px !important;
  }

  .dv-app .dv-app-ticket__row span,
  .dv-app .dv-app-ticket__row strong{
    font-size: 13px !important;
  }

  .dv-app .dv-sidecart__btn{
    min-height: 50px !important;
    font-size: 16px !important;
  }
}













.dv-app .dv-app__section h3{
  margin: 0 0 28px !important;
  font-size: 18px !important;
  line-height: 1.1 !important;
  font-weight: 700 !important;
  letter-spacing: -.03em !important;
  color: var(--dv-text) !important;
}






/* =========================================================
   FORM – nur normale Felder, Kennzeichen komplett ausnehmen
   ========================================================= */

.dv-app .dv-app-form-wrap{
  margin-top: 6px !important;
}

.dv-app .dv-form{
  display: grid !important;
  gap: 18px !important;
}

.dv-app .dv-form > label{
  display: block !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
  color: var(--dv-text) !important;
}

/* Nur normale Felder stylen */
.dv-app .dv-form select,
.dv-app .dv-form #dv-valid-from,
.dv-app .dv-form #dv-ro-fin{
  width: 100% !important;
  margin-top: 8px !important;
  min-height: 54px !important;
  padding: 0 16px !important;
  border: 1px solid var(--dv-border-strong) !important;
  border-radius: 14px !important;
  background: #fff !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.7) !important;
  font-size: 16px !important;
  color: var(--dv-text) !important;
  box-sizing: border-box !important;
}

/* Kalenderfeld */
.dv-app .dv-form #dv-valid-from{
  padding-right: 44px !important;
}

/* Kennzeichenbereiche ausdrücklich NICHT stylen */
.dv-app .dv-plate-input,
.dv-app .dv-plate-input *,
.dv-app .dv-plate-preview,
.dv-app .dv-plate-preview *{
  box-sizing: border-box !important;
}

.dv-app .dv-help{
  display: block !important;
  margin-top: 8px !important;
  font-size: 13px !important;
  color: var(--dv-muted) !important;
}

.dv-app .dv-plate-preview-wrap{
  border: 1px solid var(--dv-border) !important;
  border-radius: 16px !important;
  background: var(--dv-surface-soft) !important;
  padding: 16px !important;
}

.dv-app .dv-form-actions{
  margin-top: 8px !important;
}






























/* =========================================================
   DV APP – Kennzeichenfelder + Vorschau
   Kompakt, mit EU-Sternen nur bei .dv-eu-stars
   ========================================================= */







/* Kennzeichen */
.dv-app{
  --dv-line: #d9dee7;
  --dv-text: #111827;
  --dv-blue: #0f3b78;
  --dv-stars: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cg fill='%23FFCC00'%3E%3Cpolygon points='24,5 23,8 20,8 22,10 21,13 24,11 27,13 26,10 28,8 25,8'/%3E%3Cpolygon points='36,9 35,12 32,12 34,14 33,17 36,15 39,17 38,14 40,12 37,12'/%3E%3Cpolygon points='42,21 41,24 38,24 40,26 39,29 42,27 45,29 44,26 46,24 43,24'/%3E%3Cpolygon points='39,33 38,36 35,36 37,38 36,41 39,39 42,41 41,38 43,36 40,36'/%3E%3Cpolygon points='27,39 26,42 23,42 25,44 24,47 27,45 30,47 29,44 31,42 28,42'/%3E%3Cpolygon points='15,36 14,39 11,39 13,41 12,44 15,42 18,44 17,41 19,39 16,39'/%3E%3Cpolygon points='9,24 8,27 5,27 7,29 6,32 9,30 12,32 11,29 13,27 10,27'/%3E%3Cpolygon points='12,12 11,15 8,15 10,17 9,20 12,18 15,20 14,17 16,15 13,15'/%3E%3C/g%3E%3C/svg%3E");
}





.dv-app{
  --plate-border: #7a7a7a;
  --plate-radius: 6px;
  --plate-blue: #003399;
  --plate-text: #1f2937;
  --plate-placeholder: #d6d6d6;
}

/* =========================
   Eingabefelder
   ========================= */

.dv-app .dv-plate-input{
  display: flex !important;
  align-items: stretch !important;
  width: 100% !important;
  max-width: 360px !important;
  max-height: 64px !important;
  background: #fff !important;
  border: 3px solid var(--plate-border) !important;
  border-radius: var(--plate-radius) !important;
  overflow: hidden !important;
  box-shadow: none !important;
}

.dv-app .dv-plate-band{
  width: 56px !important;
  min-width: 56px !important;
  background: var(--plate-blue) !important;
  color: #fff !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  padding-top: 7px !important;
  gap: 10px !important;
  border-radius: 0 !important;
}

.dv-app .dv-plate-band::before{
  content: "" !important;
  display: block !important;
  width: 22px !important;
  height: 22px !important;
  background-image: var(--dv-stars) !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
}

.dv-app .dv-plate-code{
  color: #fff !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: .2px !important;
}

.dv-app #dv-plate,
.dv-app #dv-plate-confirm{
  flex: 1 1 auto !important;
  height: 64px !important;
  max-height: 64px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #fff !important;
  color: var(--plate-text) !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 16px !important;
  font-size: 20px !important;
  font-weight: 400 !important;
  letter-spacing: .3px !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

.dv-app #dv-plate::placeholder,
.dv-app #dv-plate-confirm::placeholder{
  color: var(--plate-placeholder) !important;
  opacity: 1 !important;
  font-weight: 400 !important;
}

.dv-app .dv-plate-input:focus-within{
  border-color: #616161 !important;
  box-shadow: none !important;
}

/* =========================
   Vorschau-Box
   ========================= */

.dv-app .dv-plate-preview-wrap{
  margin-top: 18px !important;
  padding: 18px !important;
  border: 1px solid #e6ebf2 !important;
  border-radius: 18px !important;
  background: #fbfcfe !important;
}

.dv-app .dv-plate-preview-title{
  margin: 0 0 12px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  color: #111827 !important;
}

.dv-app .dv-plate-preview{
  display: inline-flex !important;
  align-items: stretch !important;
  height: 52px !important;
  min-height: 52px !important;
  border: 2px solid var(--plate-border) !important;
  border-radius: var(--plate-radius) !important;
  overflow: hidden !important;
  background: #fff !important;
  box-shadow: none !important;
  transform: none !important;
}

.dv-app .dv-plate-preview-band{
  width: 34px !important;
  min-width: 34px !important;
  background: var(--plate-blue) !important;
  color: #fff !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-start !important;
  padding-top: 6px !important;
  gap: 8px !important;
}

.dv-app .dv-plate-preview-band::before{
  content: "" !important;
  display: block !important;
  width: 16px !important;
  height: 16px !important;
  background-image: var(--dv-stars) !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
}

.dv-app .dv-plate-preview-code{
  color: #fff !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  letter-spacing: .2px !important;
}

.dv-app .dv-plate-preview-main{
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 145px !important;
  height: 52px !important;
  padding: 0 16px !important;
  background: #fff !important;
  color: var(--plate-text) !important;
  font-size: 18px !important;
  font-weight: 700 !important;
  letter-spacing: .4px !important;
  line-height: 1 !important;
}

.dv-app #dv-preview-text{
  font-size: 18px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: .4px !important;
}

/* =========================
   EU / Nicht-EU Logik
   ========================= */

/* Sterne nur bei EU */
.dv-app:not(.dv-eu-stars) .dv-plate-band::before,
.dv-app:not(.dv-eu-stars) .dv-plate-preview-band::before{
  content: none !important;
}

/* Leere Inhalte nicht anzeigen */
.dv-app .dv-plate-code:empty,
.dv-app .dv-plate-preview-code:empty,
.dv-app #dv-preview-text:empty{
  display: none !important;
}

/* Nicht-EU: Kürzel sicher nach unten setzen */
.dv-app:not(.dv-eu-stars) .dv-plate-band,
.dv-app:not(.dv-eu-stars) .dv-plate-preview-band{
  position: relative !important;
  justify-content: flex-start !important;
  padding-top: 0 !important;
  gap: 0 !important;
}

.dv-app:not(.dv-eu-stars) .dv-plate-code{
  position: absolute !important;
  left: 50% !important;
  top: 31px !important;
  transform: translateX(-50%) !important;
  margin: 0 !important;
}

.dv-app:not(.dv-eu-stars) .dv-plate-preview-code{
  position: absolute !important;
  left: 50% !important;
  top: 28px !important;
  transform: translateX(-50%) !important;
  margin: 0 !important;
}

/* =========================
   Mobile
   ========================= */

@media (max-width: 768px){
  .dv-app .dv-plate-input{
    max-width: 100% !important;
    min-height: 66px !important;
  }

  .dv-app .dv-plate-band{
    width: 44px !important;
    min-width: 44px !important;
    padding-top: 8px !important;
  }

  .dv-app #dv-plate,
  .dv-app #dv-plate-confirm{
    min-height: 66px !important;
    height: 66px !important;
    font-size: 18px !important;
    padding: 0 14px !important;
  }

  .dv-app .dv-plate-preview{
    height: 48px !important;
    min-height: 48px !important;
  }

  .dv-app .dv-plate-preview-band{
    width: 40px !important;
    min-width: 40px !important;
    padding-top: 6px !important;
  }

  .dv-app .dv-plate-preview-main{
    min-width: 125px !important;
    height: 48px !important;
    font-size: 16px !important;
  }
}







/* =============================================
  Butten "Zum Warenkorb hinzufügen ausblenden"
   ============================================= */



.dv-app #dv-submit{
  display: none !important;
}



































/* Sidebar rechts */
.dv-app__sidebar{
  position: sticky;
  top: 24px;
}

.dv-app-cartcard{
  background: #fcfdff;
  border: 1px solid var(--dv-border);
  border-radius: 24px;
  overflow: hidden;
}

.dv-app-cartcard__head{
  padding: 18px 18px 16px;
  border-bottom: 1px solid var(--dv-border);
}

.dv-app-cartcard__head h3{
  margin: 0 0 6px;
  font-size: 28px;
  line-height: 1.05;
}

.dv-app-cartcard__head div{
  color: var(--dv-muted);
  font-size: 14px;
}

.dv-app-cartcard__body{
  padding: 16px;
}

.dv-app-ticket__card{
  background: #fff;
  border: 1px solid var(--dv-border);
  border-radius: 18px;
  padding: 16px;
}

.dv-app-ticket__title{
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  font-weight: 800;
  color: var(--dv-text);
  padding-bottom: 12px;
  margin-bottom: 12px;
  border-bottom: 1px solid #eef2f6;
}

.dv-app-ticket__rows{
  display: grid;
  gap: 10px;
}

.dv-app-ticket__row{
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: start;
  font-size: 14px;
}

.dv-app-ticket__row span{
  color: var(--dv-muted);
  font-weight: 700;
}

.dv-app-ticket__row strong{
  color: var(--dv-text);
  text-align: right;
}

.dv-app-ticket__price{
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #eef2f6;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
}

.dv-app-ticket__price span{
  color: var(--dv-muted);
  font-weight: 700;
}

.dv-app-ticket__price strong{
  font-size: 18px;
  font-weight: 900;
  color: var(--dv-text);
}

.dv-app-cartcard__footer{
  padding: 0 16px 16px;
  display: grid;
  gap: 12px;
}

.dv-app .dv-sidecart__btn--ghost{
  background: #fff;
  color: var(--dv-accent);
  border: 1px solid rgba(255,90,31,.22);
  border-radius: 14px;
}

.dv-app .dv-sidecart__btn--primary{
  background: rgba(255,90,31,.35);
  border: 1px solid rgba(255,90,31,.12);
  color: #fff;
  border-radius: 14px;
}

.dv-app .dv-sidecart__btn--primary:not(:disabled){
  background: var(--dv-accent);
}









































/* =========================================================
   DV SIDECART – STEP 1 BASIS
   ========================================================= */

html.dv-sidecart-open,
body.dv-sidecart-open{
  overflow: hidden !important;
}

.dv-sidecart{
  position: fixed;
  inset: 0;
  z-index: 999999;
  pointer-events: none;
}

.dv-sidecart__backdrop{
  position: absolute;
  inset: 0;
  background: rgba(17, 24, 39, 0.48);
  opacity: 0;
  transition: opacity .28s ease;
}

.dv-sidecart__panel{
  position: absolute;
  top: 0;
  right: 0;
  width: min(460px, 100vw);
  height: 100%;
  background: #ffffff;
  box-shadow: -12px 0 40px rgba(0,0,0,.16);
  transform: translateX(100%);
  transition: transform .32s ease;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.dv-sidecart.is-open{
  pointer-events: auto;
}

.dv-sidecart.is-open .dv-sidecart__backdrop{
  opacity: 1;
}

.dv-sidecart.is-open .dv-sidecart__panel{
  transform: translateX(0);
}

.dv-sidecart__close{
  position: absolute;
  top: 18px;
  right: 18px;
  width: 42px;
  height: 42px;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  background: #fff;
  color: #111827;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
  z-index: 2;
}

.dv-sidecart__head{
  padding: 28px 28px 20px;
  border-bottom: 1px solid #eef1f4;
}

.dv-sidecart__head h3{
  margin: 0;
  font-size: 30px;
  line-height: 1.1;
  font-weight: 800;
  color: #111827;
}

.dv-sidecart__sub{
  margin-top: 8px;
  font-size: 14px;
  color: #6b7280;
}

.dv-sidecart__body{
  flex: 1 1 auto;
  overflow: auto;
  padding: 24px 28px;
  background: #f8fafc;
}

.dv-sidecart__placeholder{
  background: #fff;
  border: 1px solid #eceef2;
  border-radius: 20px;
  padding: 28px 22px;
  text-align: center;
  box-shadow: 0 8px 24px rgba(17,24,39,.05);
}

.dv-sidecart__placeholder-icon{
  font-size: 34px;
  line-height: 1;
  margin-bottom: 14px;
}

.dv-sidecart__placeholder-title{
  font-size: 20px;
  font-weight: 800;
  color: #111827;
  margin-bottom: 8px;
}

.dv-sidecart__placeholder-text{
  font-size: 15px;
  line-height: 1.5;
  color: #6b7280;
}

.dv-sidecart__footer{
  flex: 0 0 auto;
  padding: 20px 28px 28px;
  border-top: 1px solid #eef1f4;
  background: #fff;
  display: grid;
  gap: 12px;
}

.dv-sidecart__btn{
  min-height: 54px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  padding: 0 18px;
  text-decoration: none !important;
  font-size: 15px;
  font-weight: 800;
  transition: .2s ease;
  box-sizing: border-box;
}

.dv-sidecart__btn--primary{
  background: #ff5a1f;
  color: #fff !important;
  border: 1px solid #ff5a1f;
}

.dv-sidecart__btn--primary:hover{
  transform: translateY(-1px);
}

.dv-sidecart__btn--ghost{
  background: #fff;
  color: #ff5a1f;
  border: 1px solid #ffd1c1;
  cursor: pointer;
}

@media (max-width: 640px){
  .dv-sidecart__panel{
    width: 100vw;
  }

  .dv-sidecart__head{
    padding: 22px 18px 16px;
  }

  .dv-sidecart__body{
    padding: 18px;
  }

  .dv-sidecart__footer{
    padding: 16px 18px 18px;
  }

  .dv-sidecart__head h3{
    font-size: 24px;
  }
}



.dv-primary.is-loading{
  opacity: .7;
  pointer-events: none;
}




.dv-sidecart-items{
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.dv-sidecart-item{
  background: #fff;
  border: 1px solid #eceef2;
  border-radius: 18px;
  padding: 18px;
  box-shadow: 0 6px 20px rgba(17,24,39,.04);
}

.dv-sidecart-item__title{
  font-size: 18px;
  line-height: 1.25;
  font-weight: 800;
  color: #111827;
  margin-bottom: 12px;
}

.dv-sidecart-item__plate{
  margin-bottom: 12px;
}

.dv-sidecart-item__meta{
  font-size: 14px;
  line-height: 1.45;
  color: #374151;
  margin-bottom: 8px;
}

.dv-sidecart-item__prices{
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #f1f3f6;
  display: grid;
  gap: 8px;
}

.dv-sidecart-item__price-row{
  display: flex;
  justify-content: space-between;
  gap: 16px;
  font-size: 14px;
  color: #374151;
}

.dv-sidecart-item__price-row strong{
  color: #111827;
}

.dv-sidecart-item__price-row.is-total{
  font-weight: 800;
}

.dv-sidecart-summary{
  margin-top: 18px;
  background: #fff7f2;
  border: 1px solid #ffd8c9;
  border-radius: 18px;
  padding: 18px;
}

.dv-sidecart-summary__row{
  display: flex;
  justify-content: space-between;
  gap: 16px;
  font-size: 16px;
  font-weight: 800;
  color: #111827;
}

.dv-sidecart-empty{
  background: #fff;
  border: 1px solid #eceef2;
  border-radius: 18px;
  padding: 24px;
  text-align: center;
}

.dv-sidecart-empty__title{
  font-size: 20px;
  font-weight: 800;
  color: #111827;
  margin-bottom: 8px;
}

.dv-sidecart-empty__text{
  font-size: 14px;
  color: #6b7280;
}



.dv-sidecart-item__top{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 12px;
}

.dv-sidecart-item__titlewrap{
  min-width: 0;
  flex: 1 1 auto;
}

.dv-sidecart-item__eyebrow{
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  font-size: 12px;
  font-weight: 700;
  color: #6b7280;
  text-transform: uppercase;
  letter-spacing: .03em;
}

.dv-sidecart-item__flag{
  font-size: 16px;
  line-height: 1;
}

.dv-sidecart-item__product{
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dv-sidecart-item__title{
  font-size: 18px;
  line-height: 1.25;
  font-weight: 800;
  color: #111827;
}

.dv-sidecart-item__remove{
  flex: 0 0 auto;
  font-size: 13px;
  font-weight: 700;
  color: #ff5a1f;
  text-decoration: none !important;
  border: 1px solid #ffd1c1;
  border-radius: 10px;
  padding: 8px 10px;
  background: #fff;
}

.dv-sidecart-item__remove:hover{
  background: #fff7f2;
}

.dv-sidecart__footer{
  flex: 0 0 auto;
  width: 100%;
  box-sizing: border-box;
  padding: 20px 18px 18px;
  border-top: 1px solid #eef1f4;
  background: #fff;
  display: grid;
  gap: 10px;
}

.dv-sidecart__btn{
  width: 100%;
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  padding: 0 18px;
  text-decoration: none !important;
  font-size: 15px;
  font-weight: 800;
  transition: .2s ease;
  box-sizing: border-box;
}

.dv-sidecart__btn--ghost{
  background: #fff;
  color: #ff5a1f;
  border: 1px solid #ffd1c1;
  cursor: pointer;
}

.dv-sidecart__btn--primary{
  background: #ff5a1f;
  color: #fff !important;
  border: 1px solid #ff5a1f;
}



#dv-sidecart-body.is-loading{
  opacity: .6;
  pointer-events: none;
}






















/* =========================================================
   DV APP SIDEBAR = Auswahl-Zusammenfassung statt Warenkorb
   ========================================================= */

[data-dv-app="1"] .dv-app-ticket__card{
  border: 1px solid #ececec;
  border-radius: 22px;
  background: #fff;
  padding: 18px;
}

[data-dv-app="1"] .dv-app-ticket__title{
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 22px;
  font-weight: 800;
  color: #111827;
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid #efefef;
}

[data-dv-app="1"] .dv-app-ticket__flag{
  font-size: 22px;
  line-height: 1;
}

[data-dv-app="1"] .dv-app-ticket__rows{
  display: grid;
  gap: 10px;
}

[data-dv-app="1"] .dv-app-ticket__row{
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 14px;
  font-size: 15px;
  line-height: 1.45;
}

[data-dv-app="1"] .dv-app-ticket__row span{
  color: #6b7280;
  font-weight: 700;
}

[data-dv-app="1"] .dv-app-ticket__row strong{
  color: #111827;
  font-weight: 800;
  text-align: right;
}

[data-dv-app="1"] .dv-app-ticket__price{
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid #efefef;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 14px;
}

[data-dv-app="1"] .dv-app-ticket__price span{
  font-size: 16px;
  color: #6b7280;
  font-weight: 700;
}

[data-dv-app="1"] .dv-app-ticket__price strong{
  font-size: 32px;
  line-height: 1;
  color: #111827;
  font-weight: 800;
}

[data-dv-app="1"] #dv-app-addtocart[disabled]{
  opacity: .45;
  cursor: not-allowed;
  box-shadow: none;
  transform: none;
}












/* =========================================
   DV Sidecart – oben nicht abschneiden
   ========================================= */

/* WP Adminbar Höhe */
body.admin-bar{
  --dv-adminbar-h: 32px;
}

@media (max-width: 782px){
  body.admin-bar{
    --dv-adminbar-h: 46px;
  }
}

body:not(.admin-bar){
  --dv-adminbar-h: 0px;
}

/* Drawer insgesamt unter Adminbar starten */
.dv-sidecart{
  top: var(--dv-adminbar-h) !important;
  height: calc(100vh - var(--dv-adminbar-h)) !important;
}

/* Panel volle verfügbare Höhe */
.dv-sidecart__panel{
  height: calc(100vh - var(--dv-adminbar-h)) !important;
  max-height: calc(100vh - var(--dv-adminbar-h)) !important;
  overflow: hidden !important;
}

/* Scrollbereich innen */
.dv-sidecart__body{
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
}

/* Sicherheit: Header oben mehr Luft */
.dv-sidecart__head{
  padding-top: 18px !important;
}











































/* =========================================================
   DV WIZARD APP – Fahrzeugicons im Konfigurator
   Seite 970 / Daten
   ========================================================= */

/* gemeinsame Basis: pseudo icon */
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn::before{
  content:"";
  display:block;
  width:72px;
  height:72px;
  margin:0 auto 0;
  background-repeat:no-repeat;
  background-position:center;
  background-size:contain;
}

/* ---------------------------------------------------------
   DEFAULT / FALLBACKS
   --------------------------------------------------------- */

/* PKW / Auto */
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle*="pkw"]::before,
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle*="auto"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/pkw.png");
}

/* Motorrad */
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle*="motorrad"]::before,
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle*="moto"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/motorrad.png");
}

/* Anhänger / Trailer */
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle*="anh"]::before,
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle*="trailer"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/anhaenger.png");
}


/* =========================================================
   ROMÄNIEN (ro) – exakte Slugs
   ========================================================= */
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="a-pkw"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/a-pkw.png");
}
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="b-guetertransport"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/b-guetertransport.png");
}
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="c-guetertransport-35-t"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/c-guetertransport-35-t.png");
}
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="d-guetertransport-75-t"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/d-guetertransport-75-t.png");
}
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="e-guetertransport-3-achsen"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/e-guetertransport-3-achsen.png");
  width:86px;
  height:72px;
}
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="f-guetertransport-4-achsen"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/f-guetertransport-4-achsen.png");
  width:106px;
  height:72px;
}
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="g-personenbefoerderung-9-23-sitze"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/g-personenbefoerderung-9-23-sitze.png");
}
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="h-personenbefoerderung-23-sitze"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/h-personenbefoerderung-23-sitze.png");
  width:86px;
  height:72px;
}

/* optional */
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="guetertransport-3-achsen-bus"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/guetertransport-3-achsen-bus.png");
}
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="guetertransport-4-achsen"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/guetertransport-4-achsen.png");
}
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="guetertransport-minibus"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/guetertransport-minibus.png");
}
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="pkw-guetertransport"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/pkw-guetertransport.png");
}


/* =========================================================
   UNGARN (hu) – exakte Slugs
   ========================================================= */
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="d1-pkw"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/d1-pkw.png");
  width:128px;
  height:72px;
}
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="d1m-motorrad"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/motorrad.png");
}
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="d2-transporter-vans"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/d2-transporter-vans.png");
}
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="u-anhaenger"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/u-anhaenger.png");
}


/* =========================================================
   SLOWENIEN (si) – exakte Slugs
   ========================================================= */
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="1-motorraeder"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/1-motorraeder.png");
}
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="2a-pkw-und-wohnwagen"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/2a-pkw-und-wohnwagen.png");
}
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="2b-transporter"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/2b-transporter.png");
}


/* =========================================================
   SLOWAKEI (sk)
   ========================================================= */
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="fahrzeuge"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/fahrzeuge.png");
}
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="anhaenger"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/anhaenger.png");
}


/* =========================================================
   SCHWEIZ (ch)
   ========================================================= */
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="motorrad"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/motorrad.png");
}

/* fahrzeuge / anhaenger sind absichtlich NICHT global auf CH beschränkt,
   weil gleiche Slugs auch bei anderen Ländern vorkommen können.
   Wenn falsche Icons erscheinen, unten JS-Fix nutzen. */


/* =========================================================
   BULGARIEN (bg)
   ========================================================= */
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="fahrzeuge"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/fahrzeuge.png");
}
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="anhaenger"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/anhaenger.png");
}


/* =========================================================
   TSCHECHIEN (cz)
   ========================================================= */
body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn[data-vehicle="fahrzeuge-35t"]::before{
  background-image:url("/wp-content/themes/Avada-Child-Theme/assets/icons/pkw.png");
}


/* =========================================================
   Mobile
   ========================================================= */
@media (max-width: 720px){
  body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn{
    width:100%;
  }

  body.page-id-970 .dv-app .dv-app-vehicle-grid .dv-vehicle-btn::before{
    width:64px;
    height:64px;
  }
}



















/* ==================================================================
   Emoji-Flag im Zulassungsland-Select (links als Icon) Fahrzeugdaten
   ================================================================== */
body.page-id-970 .dv-country-flag-wrap{
  position: relative;
  display: block;
}

body.page-id-970 .dv-country-flag{
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 20px;     /* Flaggen-Größe */
  line-height: 1;
  pointer-events: none;
}

/* Platz links schaffen */
body.page-id-970 #dv-plate-country{
  padding-left: 52px !important;
}


/* Fix: Native select dropdown übernimmt padding -> beim Öffnen Flagge ausblenden & padding reset */
body.page-id-970 .dv-country-flag-wrap.is-open #dv-plate-country{
  padding-left: 14px !important; /* normal, damit die Liste nicht eingerückt ist */
}

body.page-id-970 .dv-country-flag-wrap.is-open .dv-country-flag{
  display: none !important;
}


/* Select wieder volle Breite (Wrapper hat die alte Regel ausgehebelt) */
body.page-id-970 .dv-country-flag-wrap{
  width: 100% !important;
}

body.page-id-970 .dv-country-flag-wrap #dv-plate-country{
  width: 100% !important;
  max-width: 100% !important;
  display: block !important;
  box-sizing: border-box;
}


/* Versteckt das echte Select */
.dv-hidden-select { display: none !important; }

.dv-custom-select-container {
    position: relative;
    width: 100%;
    margin-top: 5px;
}

.dv-custom-select-selected {
    padding: 12px 15px 12px 50px; /* Platz links für die Flagge */
    border: 1px solid #ccc;
    border-radius: 8px;
    background: #fff;
    cursor: pointer;
    position: relative;
    min-height: 48px;
    display: flex;
    align-items: center;
}

.dv-custom-select-options {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border: 1px solid #ccc;
    border-top: none;
    border-radius: 0 0 8px 8px;
    z-index: 1000;
    max-height: 250px;
    overflow-y: auto;
    display: none;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.dv-custom-select-options.is-open { display: block; }

.dv-custom-option {
    padding: 10px 15px;
    display: flex;
    align-items: center;
    gap: 12px;
    cursor: pointer;
}

.dv-custom-option:hover { background: #f0f0f0; }

.dv-flag-icon {
    width: 24px;
    height: 18px;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    display: inline-block;
}

.dv-selected-flag {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
}


#dv-plate-country {
  font-family: system-ui, -apple-system, "Segoe UI", "Segoe UI Emoji", "Apple Color Emoji", "Noto Color Emoji", sans-serif;
}


/* Einheitliche Flaggen (Bilder) */
.dv-flag-icon{
  width: 26px;        /* einheitliche Breite */
  height: 18px;       /* einheitliche Höhe */
  background-size: cover;      /* WICHTIG: statt contain */
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 3px;          /* optional: sieht sauberer aus */
}

/* Selected-Flag NICHT absolut positionieren (sonst “zappelt” es) */
.dv-custom-select-selected{
  padding: 12px 15px;          /* kein 50px-left mehr nötig */
  gap: 10px;
}

.dv-selected-flag{
  position: static;            /* nimmt am Flex-Layout teil */
  transform: none;
}


/* Altes Emoji-Flag-System deaktivieren (wir nutzen Custom Select) */
body.page-id-970 .dv-country-flag-wrap .dv-country-flag{ display:none !important; }
body.page-id-970 .dv-country-flag-wrap #dv-plate-country{ padding-left: 14px !important; }



/* "Bitte wählen…" links sauber ausrichten */
.dv-custom-select-selected{
  padding-left: 15px !important;   /* normaler Rand */
}

/* Wenn eine Flagge drin ist: wieder Platz links geben */
.dv-custom-select-selected .dv-selected-flag{
  margin-right: 3px;
}


.dv-custom-select-selected { padding: 12px 15px 12px 50px; }


.dv-custom-select-selected{
  padding: 12px 15px !important;
  gap: 10px;
}

/* Placeholder-Flagge (dein is-placeholder) soll keinen Platz blockieren */
.dv-custom-select-selected .dv-selected-flag.is-placeholder{
  display: none !important;
}








































/* =========================================================
   Gültig ab – Kalender
   ========================================================= */




.dv-date-wrap { position: relative; }
.dv-date-wrap .dv-date-icon { opacity: .7; }
.dv-date-wrap:hover .dv-date-icon { opacity: 1; }



/* Date field: Platz für Icon rechts */
.dv-date-wrap input#dv-valid-from{
  padding-right: 44px !important;
}

/* Icon Button Styling */
.dv-date-icon{
  color: #0B2A4A;            /* dunkelblau */
  transition: color .15s ease, transform .15s ease, opacity .15s ease;
  opacity: .9;
}

/* Hover/Fokus -> Gold */
.dv-date-wrap:hover .dv-date-icon,
.dv-date-wrap:focus-within .dv-date-icon{
  color: #0B2A4A;            /* gold */
  opacity: 1;
  transform: scale(1.03);
}

/* Optional: wenn du willst, dass IMMER das ganze Feld klickt (Icon nur Deko):
   Dann bleibt dein Wrapper-Klick aktiv, Icon "frisst" nix.
   ACHTUNG: Dann klickt das Icon nicht mehr separat – aber das Feld öffnet trotzdem. */
.dv-date-icon{
  pointer-events: none;
}




/* Datumfeld: Pfeil statt Text-Cursor */
.dv-date-wrap,
.dv-date-wrap input,
.dv-date-wrap .dv-date-icon {
  cursor: pointer !important;
}

/* Optional: damit man nicht denkt man kann tippen */
.dv-date-wrap input {
  caret-color: transparent;
}
































































