:root {
  --avp-shadow: 0 18px 48px rgba(48, 51, 53, 0.10);
  --avp-shadow-soft: 0 8px 24px rgba(48, 51, 53, 0.07);
  --avp-radius-sm: 9px;
  --avp-radius: 14px;
  --avp-radius-lg: 22px;
  --avp-red: #861a22;
  --avp-red-dark: #6b151b;
  --avp-ink: #303335;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
.wp-site-blocks { min-height: 100vh; }

/* Header */
.avp-utility-bar {
  background: #23282b;
  border-bottom: 1px solid rgba(255,255,255,.08);
  color: #d9dddf;
  font-size: .82rem;
}
.avp-utility-inner,
.avp-header-inner,
.avp-footer-inner {
  padding-left: clamp(1rem, 3vw, 2.3rem);
  padding-right: clamp(1rem, 3vw, 2.3rem);
}
.avp-utility-inner { min-height: 36px; }
.avp-utility-bar a { color: #ffffff; text-decoration: none; }
.avp-utility-bar a:hover { color: #e2a8ad; }

.avp-site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: rgba(248,249,249,.98);
  border-bottom: 1px solid #d9dddf;
  backdrop-filter: blur(12px);
}
.admin-bar .avp-site-header { top: 32px; }
.avp-header-inner { min-height: 88px; }
.avp-brand-logo { margin: 0 !important; line-height: 1; }
.avp-brand-logo a {
  display: block;
  width: clamp(205px, 21vw, 300px);
  height: 52px;
  overflow: hidden;
  color: transparent !important;
  font-size: 0 !important;
  line-height: 0;
  text-decoration: none;
  background: url('../images/plechinger-logo.svg') no-repeat left center / contain;
}
.avp-site-header .wp-block-navigation-item__content { color: var(--avp-ink); text-decoration: none; }
.avp-site-header .wp-block-navigation-item__content:hover,
.avp-site-header .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content {
  color: var(--avp-red);
}
.avp-header-cta .wp-block-button__link { white-space: nowrap; }

/* General layout */
.avp-main { min-height: 55vh; }
.avp-page-head {
  padding: clamp(3rem, 7vw, 5.8rem) clamp(1rem, 3vw, 2.3rem) clamp(2rem, 5vw, 3.6rem);
  background: linear-gradient(180deg, #f7f8f8 0%, #f2f4f4 100%);
  border-bottom: 1px solid var(--wp--preset--color--line);
}
.avp-page-head h1 { margin-bottom: 0; max-width: 920px; }
.avp-content-wrap { padding: clamp(2.8rem, 6vw, 5.5rem) clamp(1rem, 3vw, 2.3rem); }
.avp-section {
  padding-top: clamp(4rem, 8vw, 7.2rem);
  padding-bottom: clamp(4rem, 8vw, 7.2rem);
  padding-left: clamp(1rem, 3vw, 2.3rem);
  padding-right: clamp(1rem, 3vw, 2.3rem);
}
.avp-section-tight {
  padding-top: clamp(2.8rem, 6vw, 4.5rem);
  padding-bottom: clamp(2.8rem, 6vw, 4.5rem);
  padding-left: clamp(1rem, 3vw, 2.3rem);
  padding-right: clamp(1rem, 3vw, 2.3rem);
}
.avp-section-heading { max-width: 760px; }
.avp-section-heading h2 { margin-top: .3rem; }
.avp-kicker {
  margin-bottom: .55rem;
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .76rem;
  font-weight: 800;
  color: var(--avp-red);
}
.avp-lead {
  max-width: 64ch;
  font-size: clamp(1.08rem, 1.7vw, 1.25rem);
  line-height: 1.62;
  color: var(--wp--preset--color--muted);
}
.avp-muted { color: var(--wp--preset--color--muted); }
.avp-eyebrow-line { width: 42px; height: 3px; background: var(--avp-red); border-radius: 3px; }

/* Hero */
.avp-hero {
  position: relative;
  overflow: hidden;
  background: #f3f5f5;
  border-bottom: 1px solid var(--wp--preset--color--line);
}
.avp-hero-inner {
  position: relative;
  z-index: 1;
  min-height: clamp(590px, 67vw, 760px);
  padding-top: clamp(4.5rem, 9vw, 8rem);
  padding-bottom: clamp(4.5rem, 9vw, 8rem);
}
.avp-hero-copy { max-width: 760px; }
.avp-hero h1 { max-width: 800px; margin-top: .35rem; margin-bottom: 1.25rem; }
.avp-hero-card {
  padding: clamp(1.4rem, 3vw, 2rem);
  background: rgba(255,255,255,.94);
  border: 1px solid rgba(48,51,53,.10);
  border-radius: var(--avp-radius-lg);
  box-shadow: var(--avp-shadow);
}
.avp-hero-card-label {
  display: inline-flex;
  padding: .36rem .68rem;
  border-radius: 999px;
  background: rgba(134,26,34,.08);
  color: var(--avp-red);
  font-size: .78rem;
  font-weight: 780;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.avp-mini-list { margin: .75rem 0 0; padding: 0; list-style: none; }
.avp-mini-list li { position: relative; padding: .46rem 0 .46rem 1.55rem; color: var(--wp--preset--color--muted); }
.avp-mini-list li::before {
  content: "";
  position: absolute;
  left: .15rem;
  top: .87rem;
  width: .5rem;
  height: .5rem;
  border-radius: 50%;
  background: var(--avp-red);
}

/* Buttons */
.wp-block-button__link { transition: background-color .2s ease, border-color .2s ease, transform .2s ease; }
.wp-block-button__link:hover { transform: translateY(-1px); background: var(--avp-red-dark); }
.avp-outline-button .wp-block-button__link {
  background: transparent !important;
  color: var(--avp-ink) !important;
  border: 1px solid #b8bec1;
}
.avp-outline-button .wp-block-button__link:hover { border-color: var(--avp-ink); background: rgba(255,255,255,.55) !important; }
.avp-text-button .wp-block-button__link {
  padding-left: 0;
  padding-right: 0;
  background: transparent !important;
  color: var(--avp-ink) !important;
}
.avp-text-button .wp-block-button__link::after { content: "  →"; color: var(--avp-red); }

/* Trust strip */
.avp-trust-strip {
  border-top: 1px solid var(--wp--preset--color--line);
  border-bottom: 1px solid var(--wp--preset--color--line);
  background: #fff;
  padding-left: clamp(1rem, 3vw, 2.3rem);
  padding-right: clamp(1rem, 3vw, 2.3rem);
}
.avp-stat { position: relative; padding: 1.45rem 1rem; }
.avp-stat:not(.avp-stat-last)::after {
  content: "";
  position: absolute;
  right: 0;
  top: 28%;
  bottom: 28%;
  width: 1px;
  background: var(--wp--preset--color--line);
}
.avp-stat strong { display: block; font-size: 1.05rem; color: var(--avp-ink); }
.avp-stat span { color: var(--wp--preset--color--muted); font-size: .88rem; }

/* Wide sections inside normal page content.
   This keeps patterns such as the vehicle grid at the theme wide width (1320px)
   even when the surrounding page uses the narrower reading width. */
.wp-block-post-content > .avp-vehicle-section,
.wp-block-post-content > .avp-section:has(.avp-vehicle-card) {
  width: min(1320px, calc(100vw - 2rem));
  max-width: none !important;
  margin-left: 50% !important;
  margin-right: 0 !important;
  transform: translateX(-50%);
}

/* Cards */
.avp-card {
  height: 100%;
  padding: clamp(1.35rem, 3vw, 2rem);
  background: var(--wp--preset--color--surface);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: var(--avp-radius);
  box-shadow: 0 1px 0 rgba(48,51,53,.02);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.avp-card:hover { transform: translateY(-3px); border-color: #c7cdcf; box-shadow: var(--avp-shadow-soft); }
.avp-card h2, .avp-card h3 { margin-top: 0; }
.avp-card-link { color: var(--avp-ink); font-weight: 720; text-decoration: none; }
.avp-card-link::after { content: "  →"; color: var(--avp-red); }

.avp-vehicle-card {
  position: relative;
  min-height: 285px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  padding: clamp(1.5rem, 3vw, 2.15rem);
  background: linear-gradient(145deg, #ffffff 0%, #f4f5f6 100%);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: var(--avp-radius-lg);
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.avp-vehicle-card:hover { transform: translateY(-4px); border-color: #c6ccce; box-shadow: var(--avp-shadow); }
.avp-card-number { margin: 0 0 3.3rem; color: var(--avp-red); font-size: .78rem; font-weight: 800; letter-spacing: .12em; }
.avp-vehicle-card > .wp-block-group,
.avp-vehicle-card-content { width: 100%; }
.avp-vehicle-card > .wp-block-group > *,
.avp-vehicle-card-content > *,
.avp-vehicle-card > p {
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.avp-vehicle-card .has-muted-color { max-width: 34ch; }
.avp-vehicle-card > p { width: 100%; text-align: left; }
/* Legacy label classes may remain on already inserted cards. Never render the old giant background abbreviations. */
.avp-label-pkw::after,
.avp-label-suv::after,
.avp-label-bus::after,
.avp-label-van::after { content: none !important; display: none !important; }

.avp-feature-card {
  height: 100%;
  padding: clamp(1.5rem, 3vw, 2.2rem);
  border-radius: var(--avp-radius-lg);
  background: #ffffff;
  border: 1px solid var(--wp--preset--color--line);
  box-shadow: 0 8px 24px rgba(48, 51, 53, 0.035);
}
.avp-feature-mark {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  margin-bottom: 1.4rem;
  border-radius: 12px;
  background: rgba(134,26,34,.09);
  color: var(--avp-red);
  font-weight: 850;
  font-size: .9rem;
}

/* Panels */
.avp-soft-panel {
  background: var(--wp--preset--color--canvas);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: var(--avp-radius-lg);
  padding: clamp(1.6rem, 4vw, 3.2rem);
}
.avp-dark-panel {
  position: relative;
  overflow: hidden;
  background: #303335;
  color: #fff;
  border-radius: var(--avp-radius-lg);
  padding: clamp(2rem, 5vw, 4rem);
}
.avp-dark-panel::after {
  content: "1963";
  position: absolute;
  right: -18px;
  bottom: -42px;
  color: rgba(255,255,255,.045);
  font-size: clamp(7rem, 16vw, 13rem);
  line-height: 1;
  font-weight: 850;
  letter-spacing: -.08em;
}
.avp-dark-panel h2, .avp-dark-panel h3 { color: #fff; }
.avp-dark-panel p { color: #d6dadd; }
.avp-dark-panel .avp-kicker { color: #e2a8ad; }

.avp-accent-panel {
  background: #303335;
  color: #fff;
  border-radius: var(--avp-radius-lg);
  padding: clamp(1.8rem, 5vw, 3.6rem);
}
.avp-accent-panel h2, .avp-accent-panel h3 { color: #fff; }
.avp-accent-panel p { color: #d4d9dc; }
.avp-accent-panel .wp-block-button__link { background: #fff; color: var(--avp-ink); }
.avp-accent-panel .wp-block-button__link:hover { background: #f3f4f4; color: var(--avp-red); }

.avp-hours-card { height: 100%; padding: clamp(1.5rem, 4vw, 2.5rem); background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: var(--avp-radius-lg); }
.avp-hours-row { padding: .78rem 0; border-bottom: 1px solid var(--wp--preset--color--line); }
.avp-hours-row:last-child { border-bottom: 0; }

/* FAQ and tables */
.wp-block-details { border-bottom: 1px solid var(--wp--preset--color--line); padding: 1.05rem 0; }
.wp-block-details:first-of-type { border-top: 1px solid var(--wp--preset--color--line); }
.wp-block-details summary { cursor: pointer; font-weight: 720; }
.wp-block-details > :not(summary) { margin-left: 0; color: var(--wp--preset--color--muted); }
.wp-block-table table { border-collapse: collapse; }
.wp-block-table th, .wp-block-table td { border-color: var(--wp--preset--color--line); padding: .82rem 1rem; }

/* Footer */
.avp-site-footer {
  margin-top: 0;
  padding-top: 4rem;
  padding-bottom: 2rem;
  background: #eef0f1;
  border-top: 1px solid var(--wp--preset--color--line);
}
.avp-site-footer a { text-decoration: none; }
.avp-site-footer a:hover { color: var(--avp-red); }
.avp-site-footer .wp-block-navigation { gap: .62rem 1rem; }
.avp-footer-brand .avp-brand-logo a { width: min(280px, 100%); }
.avp-footer-bottom { color: var(--wp--preset--color--muted); }

@media (max-width: 1080px) {
  .avp-header-cta { display: none; }
  .avp-header-inner { min-height: 78px; }
  .avp-brand-logo a { width: 230px; height: 48px; }
}

@media (max-width: 781px) {
  .admin-bar .avp-site-header { top: 46px; }
  .avp-utility-bar { display: none; }
  .avp-site-header .wp-block-navigation__responsive-container.is-menu-open { padding: 1.35rem; }
  .avp-header-inner { min-height: 72px; }
  .avp-brand-logo a { width: 205px; height: 44px; }
  .avp-hero-inner { min-height: auto; }
  .avp-stat::after { display: none; }
  .avp-stat { border-bottom: 1px solid var(--wp--preset--color--line); }
  .avp-trust-strip .wp-block-column:last-child .avp-stat { border-bottom: 0; }
}

@media (max-width: 520px) {
  .avp-brand-logo a { width: 184px; height: 42px; }
  .avp-section, .avp-section-tight { padding-left: 1rem; padding-right: 1rem; }
}

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

/* v0.2.2: Hide the legacy automatic page-title banner.
   WordPress can keep a customized page template in the database after a theme update.
   Older v0.2.0 templates used .avp-page-head for the automatic title. */
body.page .avp-page-head {
  display: none !important;
}

/* v0.2.6: keep normal page content aligned with the inner edge of wide section patterns.
   Wide/full blocks can still intentionally use the complete 1320px layout width. */
.wp-block-post-content > :not(.alignwide):not(.alignfull):not(.avp-section):not(.avp-vehicle-section) {
  width: calc(100% - clamp(2rem, 6vw, 4.6rem));
  max-width: 1246px;
}


/* --------------------------------------------------------------------------
   v0.3.0 – C-Rent ORM integration
   Functional markup and state stay with C-Rent; these rules only provide the
   Plechinger frame and deliberately target ordinary form controls broadly.
   -------------------------------------------------------------------------- */
.avp-hero-reservation {
  min-height: 0;
  padding-top: clamp(3.8rem, 7vw, 6.5rem);
  padding-bottom: clamp(3.8rem, 7vw, 6.5rem);
}
.avp-hero-reservation .avp-hero-copy { max-width: 980px; }
.avp-hero-reservation .avp-hero-copy h1 { max-width: 1050px; }

.avp-crent-search-card,
.avp-crent-process-card {
  width: 100%;
  margin-top: clamp(1.1rem, 2vw, 1.8rem);
  padding: clamp(1.25rem, 2.5vw, 2rem);
  background: rgba(255,255,255,.98);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: var(--avp-radius-lg);
  box-shadow: var(--avp-shadow-soft);
}
.avp-crent-search-card-hero {
  position: relative;
  z-index: 2;
  max-width: 1320px;
  box-shadow: var(--avp-shadow);
}
.avp-crent-search-intro { margin-bottom: .85rem; }
.avp-crent-search-intro h2 { margin-top: .15rem; margin-bottom: .35rem; }
.avp-crent-module-wrap,
#crentSearchBar,
#crentReservation,
#crentReservationHeader,
#crentCustomerWidget {
  width: 100%;
  max-width: none;
}

/* C-Rent can inject its own full-width wrapper. Constrain it to our card. */
.avp-crent-search-card #crentSearchBar > *,
.avp-crent-process-card #crentReservation > *,
.avp-crent-process-card #crentReservationHeader > *,
.avp-crent-process-card #crentCustomerWidget > * {
  max-width: 100% !important;
}

/* Inputs/buttons remain C-Rent controls; only the visual language changes. */
.avp-crent-search-card #crentSearchBar input,
.avp-crent-search-card #crentSearchBar select,
.avp-crent-process-card input,
.avp-crent-process-card select {
  min-height: 46px !important;
  border-color: #cfd4d6 !important;
  border-radius: 8px !important;
  background-color: #fff !important;
  color: var(--avp-ink) !important;
  box-shadow: none !important;
}
.avp-crent-search-card #crentSearchBar input:focus,
.avp-crent-search-card #crentSearchBar select:focus,
.avp-crent-process-card input:focus,
.avp-crent-process-card select:focus {
  border-color: var(--avp-red) !important;
  outline-color: rgba(134,26,34,.22) !important;
}
/* Only style the actual C-Rent search CTA. Generic C-Rent buttons (especially
   calendar navigation) must retain their native vendor appearance. */
.avp-crent-search-card #crentSearchBar .orm-btn--searchbar,
.avp-crent-search-card #crentSearchBar input[type="submit"] {
  min-height: 46px !important;
  border: 1px solid var(--avp-red) !important;
  border-radius: 8px !important;
  background: var(--avp-red) !important;
  color: #fff !important;
  font-weight: 700 !important;
  box-shadow: none !important;
}
.avp-crent-search-card #crentSearchBar .orm-btn--searchbar:hover,
.avp-crent-search-card #crentSearchBar input[type="submit"]:hover {
  background: var(--avp-red-dark) !important;
  border-color: var(--avp-red-dark) !important;
}

.avp-crent-app {
  min-height: 58vh;
  background: #f7f8f8;
}
.avp-crent-app-inner {
  width: min(1320px, calc(100% - 2rem));
  margin: 0 auto;
}
.avp-crent-app-inner > h1 { margin-top: .25rem; margin-bottom: 1.5rem; }
.avp-crent-process-card { background: #fff; }
.avp-crent-process-card #crentReservationHeader { margin-bottom: 1rem; }
.avp-crent-fallback-search {
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--wp--preset--color--line);
}

/* In the editor the external ORM is intentionally not executed. */
.editor-styles-wrapper .avp-crent-module-wrap #crentSearchBar:empty::before {
  content: "C-Rent Reservierungssuche – wird im Frontend geladen";
  display: block;
  padding: 1.1rem 1.25rem;
  border: 1px dashed #b9c0c3;
  border-radius: 8px;
  background: #f5f6f7;
  color: #697176;
  font-size: .9rem;
}

@media (max-width: 781px) {
  .avp-crent-search-card,
  .avp-crent-process-card { padding: 1rem; border-radius: 16px; }
}

/* --------------------------------------------------------------------------
   v0.3.1 – compact C-Rent Step-1 presentation
   The vendor search widget is designed to sit on a large photographic banner.
   Inside our own hero/card that creates a duplicated headline and a large empty
   area. We keep C-Rent's inputs/behaviour but neutralise only that presentation.
   -------------------------------------------------------------------------- */
.avp-crent-search-card #crentSearchBar {
  overflow: visible !important;
}

/* We already provide an accessible visible heading ("Mietwagen finden"). */
.avp-crent-search-card #crentSearchBar h1,
.avp-crent-search-card #crentSearchBar h2,
.avp-crent-search-card #crentSearchBar h3 {
  display: none !important;
}

/* C-Rent's Step-1 widget normally reserves a tall hero/background area.
   Flatten only the first wrapper levels; leave the actual form controls alone. */
.avp-crent-search-card #crentSearchBar > *,
.avp-crent-search-card #crentSearchBar > * > * {
  min-height: 0 !important;
  height: auto !important;
  max-height: none !important;
  background-image: none !important;
}

.avp-crent-search-card #crentSearchBar > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Remove oversized vertical spacing inherited from the vendor banner while
   keeping the compact reservation panel itself intact. */
.avp-crent-search-card #crentSearchBar > * > * {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.avp-crent-search-card .avp-crent-module-wrap {
  margin-top: .9rem;
}

.avp-crent-search-card-hero {
  padding-bottom: clamp(1.25rem, 2.5vw, 2rem);
}

/* The Core module is required by C-Rent on the start page, but its own visual
   output belongs to the reservation routes. Keep it available to orm.js without
   allowing it to add another visible application area inside the search card. */
.avp-crent-search-card .avp-crent-module-wrap > #crentReservation {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

@media (max-width: 781px) {
  .avp-crent-search-card #crentSearchBar > *,
  .avp-crent-search-card #crentSearchBar > * > * {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* --------------------------------------------------------------------------
   v0.3.7 – C-Rent search bar: direct vendor selector only
   The C-Rent stylesheet paints the booking strip on .orm-searchbar__padding.
   Keep C-Rent's layout intact and change only that real surface here.
   -------------------------------------------------------------------------- */
.avp-crent-search-card #crentSearchBar .orm-searchbar__padding {
  background-color: #ffffff !important;
}

/* --------------------------------------------------------------------------
   v0.3.9 – conservative C-Rent styling
   Keep C-Rent's native internal layout intact. Only target selectors we know
   are part of the vendor widget so dates/times cannot be squeezed or moved by
   our theme JavaScript.
   -------------------------------------------------------------------------- */
.avp-crent-search-card #crentSearchBar .orm-searchbar__padding {
  background-color: #ffffff !important;
  color: var(--avp-ink) !important;
}

/* The surrounding Plechinger card supplies the visual frame. */
.avp-crent-search-card .avp-crent-module-wrap {
  margin-top: .75rem;
}

/* Safe native controls only; no layout/grid overrides. */
.avp-crent-search-card #crentSearchBar input,
.avp-crent-search-card #crentSearchBar select {
  background-color: #ffffff !important;
  color: var(--avp-ink) !important;
  border-color: #cfd4d6 !important;
  border-radius: 8px !important;
}

.avp-crent-search-card #crentSearchBar .orm-btn--searchbar,
.avp-crent-search-card #crentSearchBar input[type="submit"] {
  background: var(--avp-red) !important;
  color: #ffffff !important;
  border-color: var(--avp-red) !important;
  border-radius: 8px !important;
}

/* --------------------------------------------------------------------------
   v0.4.7 – exact C-Rent Step-1 layout based on the rendered ORM markup.
   Do not resize generic vendor columns. Only the known searchbar wrappers are
   reassigned after the single station column has been hidden.
   -------------------------------------------------------------------------- */
.avp-crent-search-card .avp-crent-search-intro {
  display: none !important;
}

.avp-crent-search-card.avp-crent-search-card-hero {
  box-sizing: border-box;
  width: min(1100px, 100%) !important;
  max-width: 1100px !important;
  margin: 1.25rem 0 0 !important;
  padding: 1.5rem !important;
}

.avp-crent-search-card.avp-crent-search-card-hero .avp-crent-module-wrap,
.avp-crent-search-card.avp-crent-search-card-hero #crentSearchBar {
  box-sizing: border-box;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* C-Rent wraps the actual search in an 11/12 column. Use the complete card width. */
.avp-crent-search-card #crentSearchBar .orm-searchbar__datepicker.orm-col-xs-12.orm-col-sm-11.orm-col-md-11.orm-col-lg-11 {
  flex: 0 0 100% !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.avp-crent-search-card #crentSearchBar .orm-searchbar__padding {
  box-sizing: border-box;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #fff !important;
  color: var(--avp-ink) !important;
}

/* After the station column is hidden, explicitly redistribute the remaining
   two real columns: dates take the flexible width, CTA keeps its natural width. */
.avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 170px !important;
  column-gap: 1rem !important;
  align-items: end !important;
  justify-content: stretch !important;
  width: 100% !important;
  margin: 0 !important;
}

/* Hidden station: remove the Bootstrap column from layout completely. */
.avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg > .orm-col-lg-3 {
  display: none !important;
}

/* Exact C-Rent date wrapper (.orm-col-lg-7 in the supplied DOM). */
.avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg > .orm-col-xs-12.orm-col-lg-7 {
  grid-column: 1 !important;
  position: relative !important;
  flex: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Exact submit wrapper (.orm-col-lg-2 in the supplied DOM). */
.avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg > .text-right.orm-col-lg-2 {
  grid-column: 2 !important;
  flex: none !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: left !important;
}

/* C-Rent uses this blank headline solely to align its button with the inputs. */
.avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg > .text-right.orm-col-lg-2 > .orm-searchbar__headline {
  margin: 0 0 .35rem !important;
}

.avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg > .text-right.orm-col-lg-2 .orm-btn--searchbar {
  width: 170px !important;
  min-width: 170px !important;
  min-height: 48px !important;
  white-space: normal !important;
}

/* Abholung and Abgabe are the two .orm-datecol children of .orm-datepicker. */
.avp-crent-search-card #crentSearchBar .orm-datepicker {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 1rem !important;
  width: 100% !important;
}

.avp-crent-search-card #crentSearchBar .orm-datepicker > .orm-datecol {
  box-sizing: border-box;
  min-width: 0 !important;
  width: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Inside each date box, keep date and time exactly the same width so
   both fields have the same visual right-hand spacing. */
.avp-crent-search-card #crentSearchBar .orm-dateselect.orm-row.no-margin {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: .35rem !important;
  width: 100% !important;
  margin: 0 !important;
}

.avp-crent-search-card #crentSearchBar .orm-dateselect.orm-row.no-margin > .orm-col-xs-6 {
  flex: none !important;
  width: auto !important;
  max-width: none !important;
  min-width: 0 !important;
  padding-left: .5rem !important;
  padding-right: .5rem !important;
}

.avp-crent-search-card #crentSearchBar .orm-datepicker__input,
.avp-crent-search-card #crentSearchBar .orm-timepicker__input {
  white-space: nowrap !important;
}

/* Vehicle-type switch: same C-Rent content width, directly above the real strip. */
.avp-rental-type-switch-mount {
  box-sizing: border-box;
  width: 100%;
  margin: 0 0 .85rem !important;
  padding: 0 !important;
}

.avp-rental-type-switch {
  display: inline-grid;
  grid-template-columns: repeat(3, minmax(72px, 1fr));
  gap: 3px;
  padding: 3px;
  border: 1px solid #d4d9dc;
  border-radius: 12px;
  background: #f1f3f4;
  box-shadow: 0 1px 2px rgba(48, 51, 53, .05);
}

.avp-rental-type-switch button {
  min-width: 72px;
  min-height: 40px;
  padding: .55rem .9rem;
  border: 0 !important;
  border-radius: 9px !important;
  background: transparent !important;
  color: var(--avp-ink) !important;
  font: inherit;
  font-size: .9rem;
  font-weight: 750 !important;
  line-height: 1;
  cursor: pointer;
  box-shadow: none !important;
}
.avp-rental-type-switch button:hover { background: #fff !important; }
.avp-rental-type-switch button.is-active {
  background: var(--avp-red) !important;
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(134, 26, 34, .18) !important;
}
.avp-rental-type-switch button:focus-visible {
  outline: 3px solid rgba(134, 26, 34, .2);
  outline-offset: 2px;
}

@media (max-width: 820px) {
  .avp-crent-search-card.avp-crent-search-card-hero {
    width: 100% !important;
    max-width: 100% !important;
    padding: 1rem !important;
  }

  .avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg {
    grid-template-columns: 1fr !important;
    row-gap: 1rem !important;
  }

  .avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg > .orm-col-xs-12.orm-col-lg-7,
  .avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg > .text-right.orm-col-lg-2 {
    grid-column: 1 !important;
  }

  .avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg > .text-right.orm-col-lg-2 .orm-btn--searchbar {
    width: 100% !important;
    min-width: 0 !important;
  }
}

@media (max-width: 620px) {
  .avp-crent-search-card #crentSearchBar .orm-datepicker {
    grid-template-columns: 1fr !important;
  }
}

/* --------------------------------------------------------------------------
   v0.4.8 – rental type switch states + Plechinger-red field focus
   -------------------------------------------------------------------------- */
.avp-crent-search-card #crentSearchBar .avp-rental-type-switch button[data-avp-vehicle-type] {
  background: #e7eaec !important;
  color: var(--avp-ink) !important;
  border-color: transparent !important;
}
.avp-crent-search-card #crentSearchBar .avp-rental-type-switch button[data-avp-vehicle-type]:hover {
  background: #dde1e3 !important;
  color: var(--avp-ink) !important;
}
.avp-crent-search-card #crentSearchBar .avp-rental-type-switch button[data-avp-vehicle-type].is-active,
.avp-crent-search-card #crentSearchBar .avp-rental-type-switch button[data-avp-vehicle-type].is-active:hover {
  background: var(--avp-red) !important;
  color: #fff !important;
  box-shadow: 0 2px 8px rgba(134, 26, 34, .18) !important;
}

/* C-Rent uses green focus/active states by default. Keep the vendor behaviour,
   but use the Plechinger brand red for the visible focus ring. */
.avp-crent-search-card #crentSearchBar .orm-datepicker__input:focus,
.avp-crent-search-card #crentSearchBar .orm-datepicker__input:focus-visible,
.avp-crent-search-card #crentSearchBar .orm-datepicker__input:active,
.avp-crent-search-card #crentSearchBar .orm-timepicker__input:focus,
.avp-crent-search-card #crentSearchBar .orm-timepicker__input:focus-visible,
.avp-crent-search-card #crentSearchBar .orm-timepicker__input:active,
.avp-crent-search-card #crentSearchBar .orm-timepicker__input[aria-expanded="true"] {
  outline: 2px solid var(--avp-red) !important;
  outline-offset: -2px !important;
  border-color: var(--avp-red) !important;
  box-shadow: 0 0 0 2px rgba(134, 26, 34, .14) !important;
}

/* --------------------------------------------------------------------------
   v0.5.0 – white labels/icons on Plechinger-red C-Rent controls
   -------------------------------------------------------------------------- */
/* Vehicle selection and other C-Rent action buttons on the reservation pages. */
/* Only confirmed red action controls receive white foregrounds. Calendar and
   datepicker controls are explicitly left to the original C-Rent stylesheet. */
.orm-html .avp-orm-red-action,
.orm-html .avp-orm-red-action * {
  color: #fff !important;
  fill: #fff !important;
  stroke: #fff !important;
}

.orm-html .avp-orm-red-action::before,
.orm-html .avp-orm-red-action::after,
.orm-html .avp-orm-red-action i::before,
.orm-html .avp-orm-red-action i::after {
  color: #fff !important;
  border-color: #fff !important;
}

/* Keep the three-way vehicle selector independent from the general ORM action rule. */
.avp-crent-search-card #crentSearchBar .avp-rental-type-switch button[data-avp-vehicle-type]:not(.is-active),
.avp-crent-search-card #crentSearchBar .avp-rental-type-switch button[data-avp-vehicle-type]:not(.is-active) * {
  color: var(--avp-ink) !important;
  fill: currentColor !important;
  stroke: currentColor !important;
}

/* --------------------------------------------------------------------------
   v0.5.2 – flat vehicle switch; calendar restored to native C-Rent styling
   -------------------------------------------------------------------------- */
/* One rounded light-grey shell. The three segments themselves are flush and
   square; only the selected segment receives the Plechinger red fill. */
.avp-crent-search-card #crentSearchBar .avp-rental-type-switch {
  gap: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 1px solid #d4d9dc !important;
  border-radius: 12px !important;
  background: #eef1f2 !important;
  box-shadow: none !important;
}

.avp-crent-search-card #crentSearchBar .avp-rental-type-switch button[data-avp-vehicle-type] {
  min-height: 44px !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--avp-ink) !important;
  box-shadow: none !important;
}

.avp-crent-search-card #crentSearchBar .avp-rental-type-switch button[data-avp-vehicle-type]:hover:not(.is-active) {
  background: rgba(48, 51, 53, .055) !important;
  color: var(--avp-ink) !important;
}

.avp-crent-search-card #crentSearchBar .avp-rental-type-switch button[data-avp-vehicle-type].is-active,
.avp-crent-search-card #crentSearchBar .avp-rental-type-switch button[data-avp-vehicle-type].is-active:hover {
  background: var(--avp-red) !important;
  color: #fff !important;
  box-shadow: none !important;
}

/* v0.5.3 – keep C-Rent calendar navigation completely native. */
.orm-html [class*="calendar"] button,
.orm-html [class*="calendar"] [role="button"],
.orm-html [class*="datepicker"] button:not(.orm-btn--searchbar),
.orm-html [class*="datepicker"] [role="button"]:not(.orm-datepicker__input) {
  /* Deliberately no theme colors/backgrounds here. */
}


/* --------------------------------------------------------------------------
   v0.5.5 – center the reservation card as a whole only.
   Do not alter alignment of any C-Rent controls inside the card.
   -------------------------------------------------------------------------- */
.avp-crent-search-card.avp-crent-search-card-hero {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* --------------------------------------------------------------------------
   v0.5.6 – cleaner home hero spacing and remove the old trust strip.
   -------------------------------------------------------------------------- */
/* The trust strip is no longer part of the homepage. Hide an already-saved
   instance when it follows the hero so older page content updates cleanly too. */
.avp-hero + .avp-trust-strip,
.avp-main > .avp-trust-strip {
  display: none !important;
}

/* Give the hero copy more breathing room without changing alignment inside
   the C-Rent reservation card. */
.avp-hero-reservation .avp-hero-copy h1 {
  margin-bottom: clamp(1.65rem, 2.4vw, 2.15rem);
}

.avp-hero-reservation .avp-hero-copy .avp-lead {
  margin-top: 0;
  margin-bottom: clamp(2rem, 3vw, 2.8rem);
}

.avp-hero-reservation .avp-crent-search-card-hero {
  margin-top: clamp(1.8rem, 3vw, 2.6rem);
}

/* --------------------------------------------------------------------------
   v0.5.7 – corrected clean homepage hero.
   Keep the reservation card centered as one block; do not center its controls.
   -------------------------------------------------------------------------- */
/* Remove legacy hero elements from already-saved copies of the old pattern. */
.avp-hero-reservation .avp-hero-copy > .avp-kicker,
.avp-hero-reservation .avp-hero-copy > .wp-block-buttons {
  display: none !important;
}

/* The copy remains left-aligned; only the reservation card itself is centered. */
.avp-hero-reservation .avp-hero-copy {
  text-align: left !important;
}

.avp-crent-search-card.avp-crent-search-card-hero {
  margin-left: auto !important;
  margin-right: auto !important;
}

/* One deliberate vertical rhythm: heading -> lead -> reservation box. */
.avp-hero-reservation .avp-hero-copy h1 {
  margin-bottom: clamp(1.6rem, 2.2vw, 2.05rem) !important;
}

.avp-hero-reservation .avp-hero-copy .avp-lead {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.avp-hero-reservation .avp-crent-search-card-hero {
  margin-top: clamp(2.4rem, 3.4vw, 3.4rem) !important;
}


/* --------------------------------------------------------------------------
   v0.5.8 – center only the homepage hero copy.
   The reservation card remains centered as a whole; its internal C-Rent
   controls keep their own alignment and layout.
   -------------------------------------------------------------------------- */
.avp-hero-reservation .avp-hero-copy {
  max-width: 980px;
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center !important;
}

.avp-hero-reservation .avp-hero-copy h1,
.avp-hero-reservation .avp-hero-copy .avp-lead {
  margin-left: auto !important;
  margin-right: auto !important;
}

.avp-hero-reservation .avp-hero-copy .avp-lead {
  max-width: 760px;
}

/* --------------------------------------------------------------------------
   v0.5.9 – remove the WordPress root block gap between header and main only.
   Keep all spacing inside the hero unchanged.
   -------------------------------------------------------------------------- */
.wp-site-blocks > .avp-main,
.wp-site-blocks > main.avp-main {
  margin-block-start: 0 !important;
  margin-top: 0 !important;
}

.wp-site-blocks > header.wp-block-template-part + .avp-main,
.wp-site-blocks > .wp-block-template-part + .avp-main {
  margin-block-start: 0 !important;
  margin-top: 0 !important;
}

/* --------------------------------------------------------------------------
   v0.6.0 – vehicle category cards with full-height editable image
   -------------------------------------------------------------------------- */
.avp-vehicle-card.avp-vehicle-card--media {
  min-height: 320px;
  display: grid;
  grid-template-columns: minmax(0, 40%) minmax(0, 60%);
  grid-template-rows: 1fr;
  padding: 0;
  background: #f4f5f6;
  isolation: isolate;
}

.avp-vehicle-card--media .avp-vehicle-card-media {
  position: relative;
  z-index: 0;
  width: 100%;
  height: 100%;
  min-height: 320px;
  margin: 0;
  overflow: hidden;
  align-self: stretch;
}

.avp-vehicle-card--media .avp-vehicle-card-media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 320px;
  object-fit: cover;
  object-position: left center;
}

.avp-vehicle-card--media .avp-vehicle-card-media::after {
  content: "";
  position: absolute;
  z-index: 1;
  top: 0;
  right: -1px;
  bottom: 0;
  width: 48%;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(244,245,246,0) 0%, rgba(244,245,246,.72) 58%, #f4f5f6 100%);
}

.avp-vehicle-card--media .avp-vehicle-card-body {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  min-width: 0;
  width: 100%;
  padding: clamp(1.75rem, 3vw, 2.5rem) clamp(1.65rem, 3vw, 2.6rem);
  text-align: left;
}

.avp-vehicle-card--media .avp-card-number {
  margin: 0 0 1rem;
}

.avp-vehicle-card--media h3 {
  margin: 0 0 .85rem;
}

.avp-vehicle-card--media .has-muted-color {
  max-width: 34ch;
  margin: 0 0 1.35rem;
}

.avp-vehicle-card--media .avp-vehicle-card-body > p:last-child {
  margin: 0;
}

@media (max-width: 781px) {
  .avp-vehicle-card.avp-vehicle-card--media {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(190px, 42vw) auto;
    min-height: 0;
  }

  .avp-vehicle-card--media .avp-vehicle-card-media,
  .avp-vehicle-card--media .avp-vehicle-card-media img {
    min-height: 190px;
    height: 100%;
  }

  .avp-vehicle-card--media .avp-vehicle-card-media::after {
    top: auto;
    right: 0;
    bottom: -1px;
    left: 0;
    width: auto;
    height: 46%;
    background: linear-gradient(180deg, rgba(244,245,246,0) 0%, rgba(244,245,246,.72) 58%, #f4f5f6 100%);
  }

  .avp-vehicle-card--media .avp-vehicle-card-body {
    padding: 1.5rem;
  }
}

/* --------------------------------------------------------------------------
   v0.6.2 – product-style vehicle images on white backgrounds.
   Keep the source image uncropped, use its white background intentionally,
   and fade the image panel softly into the light-grey card body.
   -------------------------------------------------------------------------- */
.avp-vehicle-card--media .avp-vehicle-card-media {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  background: #ffffff;
}

.avp-vehicle-card--media .avp-vehicle-card-media img {
  width: 90%;
  height: 88%;
  min-height: 0;
  margin: 0 auto 0 0;
  object-fit: contain;
  object-position: left center;
  background: #ffffff;
}

.avp-vehicle-card--media .avp-vehicle-card-media::after {
  width: 46%;
  background: linear-gradient(
    90deg,
    rgba(255,255,255,0) 0%,
    rgba(255,255,255,.18) 22%,
    rgba(244,245,246,.68) 64%,
    #f4f5f6 100%
  );
}

@media (max-width: 781px) {
  .avp-vehicle-card--media .avp-vehicle-card-media img {
    width: 92%;
    height: 88%;
    margin: 0 auto;
    object-position: center center;
  }

  .avp-vehicle-card--media .avp-vehicle-card-media::after {
    width: auto;
    height: 44%;
    background: linear-gradient(
      180deg,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,.18) 22%,
      rgba(244,245,246,.68) 64%,
      #f4f5f6 100%
    );
  }
}


/* --------------------------------------------------------------------------
   v0.6.4 – equal-height vehicle cards
   Give every desktop card a little more vertical room and make each card fill
   the complete height of its WordPress column so wrapped titles do not create
   uneven rows.
   -------------------------------------------------------------------------- */
@media (min-width: 782px) {
  .avp-vehicle-section .wp-block-columns > .wp-block-column {
    display: flex;
  }

  .avp-vehicle-card.avp-vehicle-card--media {
    width: 100%;
    height: 100%;
    min-height: 360px;
  }

  .avp-vehicle-card--media .avp-vehicle-card-media {
    min-height: 360px;
  }
}


/* v0.6.5 – consistent typography for red kicker/label text */
.avp-kicker,
.avp-card-number,
.avp-hero-card-label {
  font-family: var(--wp--preset--font-family--system) !important;
}


/* --------------------------------------------------------------------------
   v0.6.7 – editable hero background image and overlay.
   The hero is a native Cover block. The theme no longer forces a decorative
   circle or a fixed overlay gradient, so WordPress' Cover controls can manage
   the background image, overlay colour/gradient and opacity directly.
   -------------------------------------------------------------------------- */
.avp-hero-cover {
  position: relative;
}

.avp-hero-cover > .wp-block-cover__image-background {
  object-fit: cover;
  object-position: 70% center;
}

.avp-hero-cover > .wp-block-cover__inner-container {
  width: 100%;
  position: relative;
  z-index: 1;
}

@media (max-width: 782px) {
  .avp-hero-cover > .wp-block-cover__image-background {
    object-position: center center;
  }
}



/* --------------------------------------------------------------------------
   v0.8.7 – editable Hero image + native WordPress overlay controls.
   The Cover block owns the background image, gradient and overlay opacity.
   Keep only a neutral fallback surface here; do not force or hide media/overlay.
   -------------------------------------------------------------------------- */
.avp-hero-cover {
  background-color: #f5f6f7;
}

.avp-hero-cover > .wp-block-cover__image-background {
  display: block;
}

/* WordPress applies the selected overlay colour/gradient and dim ratio to this
   element. Intentionally no !important background/opacity overrides here. */
.avp-hero-cover > .wp-block-cover__background {
  pointer-events: none;
}

/* --------------------------------------------------------------------------
   v0.8.8 – Hero text colours are controlled by Gutenberg.
   Do not force a colour here: the heading/paragraph block colour settings
   must be able to override the initial pattern defaults in editor + frontend.
   -------------------------------------------------------------------------- */


/* v0.7.1 – corrected Plechinger fleet group labels (S9, H, L, M, M+, N). */

/* v0.7.2 – dedicated service pages */
.avp-service-page .wp-block-columns > .wp-block-column > .avp-feature-card {
  height: 100%;
}
.avp-service-page h1 {
  color: var(--avp-ink);
}
.avp-service-page .wp-block-details summary {
  color: var(--avp-ink);
}

/* --------------------------------------------------------------------------
   v0.7.3 – Standortkarte & Firmenhistorie
   -------------------------------------------------------------------------- */
.avp-map-embed {
  margin-top: 1.5rem;
  overflow: hidden;
  border: 1px solid var(--wp--preset--color--line);
  border-radius: var(--avp-radius);
  background: #e9ecee;
  min-height: 300px;
}
.avp-map-embed iframe {
  display: block;
  width: 100%;
  height: 320px;
  border: 0;
}

.avp-timeline {
  position: relative;
  margin-top: clamp(3rem, 6vw, 5rem);
  padding-left: clamp(1.4rem, 4vw, 3.5rem);
}
.avp-timeline::before {
  content: "";
  position: absolute;
  left: 12px;
  top: .75rem;
  bottom: .75rem;
  width: 2px;
  background: linear-gradient(180deg, var(--avp-red) 0%, #d9dddf 100%);
}
.avp-timeline-item {
  position: relative;
  display: grid;
  grid-template-columns: minmax(150px, 220px) minmax(0, 1fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: start;
  padding: 0 0 clamp(2rem, 5vw, 3.5rem);
}
.avp-timeline-item::before {
  content: "";
  position: absolute;
  left: calc(-1 * clamp(1.4rem, 4vw, 3.5rem) + 5px);
  top: .45rem;
  width: 16px;
  height: 16px;
  border: 4px solid #fff;
  border-radius: 50%;
  background: var(--avp-red);
  box-shadow: 0 0 0 1px rgba(134,26,34,.24);
}
.avp-timeline-year {
  margin: 0;
  color: var(--avp-red);
  font-size: .82rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.avp-timeline-card {
  padding: clamp(1.5rem, 3vw, 2.25rem);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: var(--avp-radius-lg);
  background: #f7f8f8;
}
.avp-timeline-card > *:first-child { margin-top: 0; }
.avp-timeline-card > *:last-child { margin-bottom: 0; }
.avp-about-note { margin-top: 1rem; }

@media (max-width: 781px) {
  .avp-timeline-item {
    grid-template-columns: 1fr;
    gap: .65rem;
  }
  .avp-map-embed iframe { height: 280px; }
}

/* v0.7.4 – full-width map below location/hours */
.avp-map-wide {
  width: 100%;
  max-width: var(--wp--style--global--wide-size, 1320px);
  margin-top: 1.5rem !important;
}
.avp-map-wide .avp-map-embed {
  width: 100%;
  margin: 0;
}
.avp-map-wide .avp-map-embed iframe {
  width: 100%;
  min-height: 420px;
  display: block;
}
@media (max-width: 782px) {
  .avp-map-wide .avp-map-embed iframe { min-height: 320px; }
}

/* v0.7.6 – integrated closing CTA below location/map */
.avp-closing-cta-wrap {
  padding: 1.5rem clamp(1rem, 3vw, 2.3rem) clamp(3.2rem, 6vw, 5.2rem);
}
.avp-closing-cta {
  width: 100%;
  gap: 1.5rem 2rem;
  padding: clamp(1.35rem, 2.5vw, 1.9rem) clamp(1.4rem, 3vw, 2.2rem);
  background: linear-gradient(135deg, #f4f5f5 0%, #f8f8f8 100%);
  border: 1px solid var(--wp--preset--color--line);
  border-radius: var(--avp-radius-lg);
}
.avp-closing-cta-copy {
  margin: 0 !important;
}
.avp-closing-cta-copy h2 {
  margin: 0 0 .3rem;
  color: var(--avp-ink);
}
.avp-closing-cta-copy p {
  margin: 0;
}
.avp-closing-cta .wp-block-buttons {
  margin: 0;
  flex: 0 0 auto;
}
.avp-closing-cta .wp-block-button__link {
  white-space: nowrap;
}
@media (max-width: 700px) {
  .avp-closing-cta {
    align-items: flex-start !important;
  }
  .avp-closing-cta .wp-block-buttons,
  .avp-closing-cta .wp-block-button,
  .avp-closing-cta .wp-block-button__link {
    width: 100%;
  }
  .avp-closing-cta .wp-block-button__link {
    text-align: center;
  }
}


/* v0.7.7 — two-tier header: dark utility bar + light logo/navigation bar */
.avp-utility-bar p { margin-top: 0; margin-bottom: 0; }
.avp-site-header .avp-header-cta .wp-block-button__link {
  background: var(--avp-red);
  color: #fff;
}
.avp-site-header .avp-header-cta .wp-block-button__link:hover {
  background: var(--avp-red-dark);
  color: #fff;
}

/* v0.7.8 — logo-only header + always-visible hamburger navigation */
.avp-site-header .wp-block-site-title {
  display: none !important;
}

.avp-site-header .avp-site-logo,
.avp-site-header .wp-block-site-logo {
  margin: 0 !important;
  flex: 0 0 auto;
}

.avp-site-header .avp-site-logo img,
.avp-site-header .wp-block-site-logo img {
  display: block;
  width: auto !important;
  height: auto !important;
  max-width: min(330px, 44vw) !important;
  max-height: 72px !important;
  object-fit: contain;
}

.avp-header-inner {
  min-height: 104px;
}

/* Keep only the three-line menu trigger visible in the header. */
.avp-site-header .wp-block-navigation__responsive-container-open {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  padding: 10px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--avp-ink);
  cursor: pointer;
}
.avp-site-header .wp-block-navigation__responsive-container-open:hover {
  background: #eef0f0;
  color: var(--avp-red);
}
.avp-site-header .wp-block-navigation__responsive-container-open svg {
  width: 28px;
  height: 28px;
}
.avp-site-header .wp-block-navigation__responsive-container:not(.is-menu-open) {
  display: none !important;
}

/* Turn the core overlay into a compact drawer from the right. */
.avp-site-header .wp-block-navigation__responsive-container.is-menu-open {
  display: flex !important;
  position: fixed !important;
  inset: 0 0 0 auto !important;
  width: min(390px, 92vw) !important;
  height: 100vh !important;
  padding: 1.5rem !important;
  background: #ffffff !important;
  color: var(--avp-ink) !important;
  box-shadow: -18px 0 48px rgba(48, 51, 53, .16);
  z-index: 100000;
}
.avp-site-header .wp-block-navigation__responsive-container-content {
  width: 100%;
  padding-top: 3.25rem !important;
}
.avp-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  width: 100%;
  gap: 0 !important;
  align-items: stretch !important;
}
.avp-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
  width: 100%;
  border-bottom: 1px solid #e2e5e6;
}
.avp-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  display: block;
  width: 100%;
  padding: 1rem .15rem;
  color: var(--avp-ink) !important;
  font-size: 1.05rem;
  font-weight: 700;
}
.avp-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover,
.avp-site-header .wp-block-navigation__responsive-container.is-menu-open .current-menu-item > .wp-block-navigation-item__content {
  color: var(--avp-red) !important;
}
.avp-site-header .wp-block-navigation__responsive-container-close {
  top: 1.2rem !important;
  right: 1.2rem !important;
  color: var(--avp-ink) !important;
}

/* Compatibility with an already-customized header: hide stray title beside the uploaded logo. */
.avp-site-header .wp-block-site-logo + .wp-block-site-title,
.avp-site-header .wp-block-image + .wp-block-site-title {
  display: none !important;
}

@media (max-width: 782px) {
  .avp-header-inner { min-height: 84px; }
  .avp-site-header .avp-site-logo img,
  .avp-site-header .wp-block-site-logo img {
    max-width: min(260px, 62vw) !important;
    max-height: 58px !important;
  }
}

@media (max-width: 480px) {
  .avp-site-header .avp-site-logo img,
  .avp-site-header .wp-block-site-logo img {
    max-width: min(220px, 60vw) !important;
    max-height: 52px !important;
  }
  .avp-site-header .wp-block-navigation__responsive-container-open {
    width: 44px;
    height: 44px;
  }
}

/* v0.7.9 — dynamic server-rendered page drawer + reliable logo sizing */
.avp-site-header .avp-header-inner > .wp-block-site-logo,
.avp-site-header .avp-header-inner > .avp-site-logo {
  width: min(360px, 46vw) !important;
  max-width: none !important;
  flex: 0 0 auto !important;
}
.avp-site-header .avp-header-inner > .wp-block-site-logo img,
.avp-site-header .avp-header-inner > .avp-site-logo img {
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  max-height: none !important;
  display: block;
}

.avp-dynamic-menu { margin-left: auto; }
.avp-menu-toggle {
  display: inline-flex;
  width: 48px;
  height: 48px;
  padding: 11px 9px;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--avp-ink);
  cursor: pointer;
}
.avp-menu-toggle:hover { background: #eef0f0; }
.avp-menu-toggle span {
  display: block;
  width: 27px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
}
.avp-menu-backdrop {
  position: fixed;
  inset: 0;
  z-index: 99998;
  background: rgba(26, 29, 31, .26);
}
.avp-menu-drawer {
  position: fixed;
  z-index: 99999;
  top: 0;
  right: 0;
  width: min(390px, 92vw);
  height: 100vh;
  padding: 5.25rem 1.5rem 2rem;
  overflow-y: auto;
  background: #fff;
  box-shadow: -18px 0 48px rgba(48, 51, 53, .16);
  transform: none;
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition: opacity .22s ease, visibility .22s step-end;
}
.avp-dynamic-menu.is-open .avp-menu-drawer {
  transform: none;
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
  transition: opacity .22s ease, visibility 0s;
}
.avp-menu-close {
  position: absolute;
  top: 1.25rem;
  right: 1.25rem;
  width: 44px;
  height: 44px;
  border: 0;
  background: transparent;
  color: var(--avp-ink);
  font: inherit;
  font-size: 2rem;
  line-height: 1;
  cursor: pointer;
}
.avp-page-menu-list,
.avp-page-menu-list ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
.avp-page-menu-list > li { border-bottom: 1px solid #e2e5e6; }
.avp-page-menu-list a {
  display: block;
  padding: 1rem .15rem;
  color: var(--avp-ink);
  font-size: 1.05rem;
  font-weight: 700;
  text-decoration: none;
}
.avp-page-menu-list a:hover,
.avp-page-menu-list .current_page_item > a,
.avp-page-menu-list .current_page_ancestor > a { color: var(--avp-red); }
.avp-page-menu-list .children {
  padding: 0 0 .7rem 1rem;
}
.avp-page-menu-list .children a {
  padding: .55rem .15rem;
  font-size: .96rem;
  font-weight: 600;
}

@media (max-width: 782px) {
  .avp-site-header .avp-header-inner > .wp-block-site-logo,
  .avp-site-header .avp-header-inner > .avp-site-logo {
    width: min(290px, 64vw) !important;
  }
}
@media (max-width: 480px) {
  .avp-site-header .avp-header-inner > .wp-block-site-logo,
  .avp-site-header .avp-header-inner > .avp-site-logo {
    width: min(235px, 62vw) !important;
  }
  .avp-menu-toggle { width: 44px; height: 44px; }
}

/* v0.8.0 — runtime-safe header fixes for Site Editor-saved template parts */
.avp-runtime-header .wp-block-site-title,
.avp-runtime-header .site-title,
.avp-runtime-header .wp-block-navigation {
  display: none !important;
}

.avp-runtime-header .avp-runtime-header-inner {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  flex-wrap: nowrap !important;
  gap: 1.5rem !important;
  width: min(1320px, calc(100% - 3rem)) !important;
  max-width: 1320px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  min-height: 96px;
}

.avp-runtime-header .avp-runtime-logo {
  width: min(380px, 48vw) !important;
  max-width: none !important;
  flex: 0 0 auto !important;
  margin: 0 !important;
}

.avp-runtime-header .avp-runtime-logo img,
.avp-runtime-header .avp-runtime-logo a,
.avp-runtime-header .avp-runtime-logo a img {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
}

.avp-runtime-header .avp-dynamic-menu {
  display: block !important;
  flex: 0 0 auto;
  margin-left: auto !important;
}

#avp-runtime-menu-source { display: none !important; }

@media (max-width: 782px) {
  .avp-runtime-header .avp-runtime-header-inner {
    width: min(100% - 2rem, 1320px) !important;
    min-height: 80px;
    gap: .75rem !important;
  }
  .avp-runtime-header .avp-runtime-logo {
    width: min(290px, 68vw) !important;
  }
}

@media (max-width: 480px) {
  .avp-runtime-header .avp-runtime-logo {
    width: min(235px, 65vw) !important;
  }
}

/* v0.8.1 — crisp theme logo, header edge alignment, and stable drawer opening */
.avp-runtime-header .avp-runtime-header-inner,
.avp-site-header .avp-header-inner {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.avp-runtime-header .avp-runtime-header-inner {
  width: min(1320px, calc(100% - 2rem)) !important;
  max-width: 1320px !important;
}

.avp-runtime-header .avp-runtime-logo img,
.avp-runtime-header .avp-runtime-logo a img {
  image-rendering: auto !important;
}

.avp-menu-drawer {
  will-change: transform;
  overscroll-behavior: contain;
  transition: transform .22s cubic-bezier(.22,.61,.36,1), visibility .22s step-end;
}
.avp-dynamic-menu.is-open .avp-menu-drawer {
  transition: transform .22s cubic-bezier(.22,.61,.36,1), visibility 0s;
}

@media (max-width: 782px) {
  .avp-runtime-header .avp-runtime-header-inner {
    width: min(100% - 2rem, 1320px) !important;
  }
}

/* --------------------------------------------------------------------------
   v0.8.4 – compact desktop C-Rent date fields
   -------------------------------------------------------------------------- */
@media (min-width: 821px) {
  /* Keep the booking controls compact instead of stretching over the whole card. */
  .avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg {
    grid-template-columns: 560px 170px !important;
    justify-content: start !important;
    width: auto !important;
    max-width: 746px !important;
  }

  /* Abholung and Abgabe share the 560px date area equally. */
  .avp-crent-search-card #crentSearchBar .orm-datepicker {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 1rem !important;
    width: 560px !important;
    max-width: 560px !important;
  }

  /* Date/time stay 50/50 inside each compact field. */
  .avp-crent-search-card #crentSearchBar .orm-dateselect.orm-row.no-margin {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}


/* --------------------------------------------------------------------------
   v0.8.5 – compact one-line booking bar with four-way vehicle filter
   -------------------------------------------------------------------------- */
.avp-crent-search-card.avp-crent-search-card-hero {
  width: min(1030px, 100%) !important;
  max-width: 1030px !important;
}

/* The switch is now a real sibling in C-Rent's booking row. */
.avp-crent-search-card #crentSearchBar .avp-rental-type-switch-mount {
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  align-self: end !important;
}

.avp-crent-search-card #crentSearchBar .avp-rental-type-switch {
  grid-template-columns: repeat(4, 55px) !important;
  width: 220px !important;
}

.avp-crent-search-card #crentSearchBar .avp-rental-type-switch button[data-avp-vehicle-type] {
  min-width: 55px !important;
  padding-left: .45rem !important;
  padding-right: .45rem !important;
}

@media (min-width: 1040px) {
  .avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg {
    grid-template-columns: 220px 560px 170px !important;
    column-gap: 1rem !important;
    width: 982px !important;
    max-width: 982px !important;
    margin: 0 auto !important;
  }

  .avp-crent-search-card #crentSearchBar .avp-rental-type-switch-mount {
    grid-column: 1 !important;
  }

  .avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg > .orm-col-xs-12.orm-col-lg-7 {
    grid-column: 2 !important;
  }

  .avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg > .text-right.orm-col-lg-2 {
    grid-column: 3 !important;
  }

  .avp-crent-search-card #crentSearchBar .orm-datepicker {
    width: 560px !important;
    max-width: 560px !important;
  }
}

/* Below desktop width, keep the switch above the C-Rent controls rather than
   squeezing date/time values. */
@media (min-width: 821px) and (max-width: 1039px) {
  .avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg {
    grid-template-columns: 1fr !important;
    row-gap: .85rem !important;
    width: 100% !important;
    max-width: 746px !important;
    margin: 0 auto !important;
  }

  .avp-crent-search-card #crentSearchBar .avp-rental-type-switch-mount,
  .avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg > .orm-col-xs-12.orm-col-lg-7,
  .avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg > .text-right.orm-col-lg-2 {
    grid-column: 1 !important;
  }
}

/* --------------------------------------------------------------------------
   v0.8.6 – unified booking radii + a little more header/calendar breathing room
   -------------------------------------------------------------------------- */
:root {
  --avp-booking-radius: 12px;
}

/* Use the same radius as the ALL / PKW / BUS / LKW selector everywhere in the
   compact booking bar. */
.avp-crent-search-card.avp-crent-search-card-hero,
.avp-crent-search-card #crentSearchBar .orm-dateselect.orm-row.no-margin,
.avp-crent-search-card #crentSearchBar .orm-btn--searchbar,
.avp-crent-search-card #crentSearchBar input[type="submit"] {
  border-radius: var(--avp-booking-radius) !important;
}

/* C-Rent draws the date and time as two halves of one visual field. Keep their
   inner corners square so the combined outline has one clean 12px radius. */
.avp-crent-search-card #crentSearchBar .orm-datepicker__input,
.avp-crent-search-card #crentSearchBar .orm-timepicker__input {
  border-radius: 0 !important;
}
.avp-crent-search-card #crentSearchBar .orm-dateselect.orm-row.no-margin {
  overflow: hidden !important;
}

/* The vehicle switch already defines the reference radius. */
.avp-crent-search-card #crentSearchBar .avp-rental-type-switch {
  border-radius: var(--avp-booking-radius) !important;
}

/* Give the public header a little more vertical room. This also shifts the
   booking widget down slightly, which gives the upward-opening calendar more
   breathing space. */
.avp-runtime-header .avp-runtime-header-inner,
.avp-site-header .avp-header-inner {
  min-height: 120px !important;
}

/* Do not let the hero itself clip the C-Rent datepicker overlay. */
.avp-hero.avp-hero-cover {
  overflow: visible !important;
}

@media (max-width: 782px) {
  .avp-runtime-header .avp-runtime-header-inner,
  .avp-site-header .avp-header-inner {
    min-height: 96px !important;
  }
}


/* --------------------------------------------------------------------------
   v0.8.9 – compact vehicle overview: show four classes first
   -------------------------------------------------------------------------- */
.avp-vehicle-toggle-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  width: min(1320px, calc(100% - 2rem));
  margin: 2rem auto 0;
}

.avp-vehicle-toggle {
  appearance: none;
  -webkit-appearance: none;
  min-height: 48px;
  padding: .8rem 1.45rem;
  border: 1px solid #cfd4d6;
  border-radius: 12px;
  background: #fff;
  color: #303335;
  font: inherit;
  font-weight: 700;
  line-height: 1.2;
  cursor: pointer;
  transition: border-color .16s ease, color .16s ease, background-color .16s ease;
}

.avp-vehicle-toggle:hover,
.avp-vehicle-toggle:focus-visible {
  border-color: #861A22;
  color: #861A22;
  background: #fafafa;
}

.avp-vehicle-toggle:focus-visible {
  outline: 2px solid rgba(134, 26, 34, .28);
  outline-offset: 3px;
}

@media (max-width: 782px) {
  .avp-vehicle-toggle-wrap {
    width: min(100% - 2rem, 1320px);
    margin-top: 1.5rem;
  }
}


/* v0.9.0 – ensure collapsed vehicle rows stay hidden despite Gutenberg flex styles */
.avp-vehicle-section .wp-block-columns[hidden] {
  display: none !important;
}


/* v0.9.1 – keep the two company-history panels equal height */
@media (min-width: 782px) {
  .avp-section .wp-block-columns.are-vertically-aligned-stretch > .wp-block-column {
    display: flex;
  }

  .avp-section .wp-block-columns.are-vertically-aligned-stretch > .wp-block-column > .avp-dark-panel,
  .avp-section .wp-block-columns.are-vertically-aligned-stretch > .wp-block-column > .avp-soft-panel {
    width: 100%;
    height: 100%;
    box-sizing: border-box;
  }
}


/* v0.9.2 – move the spare opening-hours card space between title and rows */
@media (min-width: 782px) {
  .avp-hours-card {
    display: flex;
    flex-direction: column;
  }

  .avp-hours-card > .avp-hours-row:first-of-type {
    margin-top: auto !important;
  }

  .avp-hours-card > .avp-hours-row {
    margin-block-start: 0 !important;
  }
}

/* v0.9.3 – keep opening-hours card at full column width */
@media (min-width: 782px) {
  .avp-hours-card {
    width: 100% !important;
    max-width: none !important;
    align-self: stretch !important;
    box-sizing: border-box;
  }

  .wp-block-column:has(> .avp-hours-card) {
    min-width: 0;
  }
}


/* FAQ home section — balanced columns and full-width question list */
.avp-faq-section .wp-block-columns,
.home .avp-section:has(.wp-block-details) .wp-block-columns {
  width: 100%;
  align-items: stretch;
  column-gap: clamp(2.25rem, 4vw, 4rem);
}

.avp-faq-section .wp-block-columns > .wp-block-column:first-child,
.home .avp-section:has(.wp-block-details) .wp-block-columns > .wp-block-column:first-child {
  flex-basis: 34% !important;
  display: flex;
  flex-direction: column;
  align-self: stretch;
  min-width: 0;
}

.avp-faq-section .wp-block-columns > .wp-block-column:last-child,
.home .avp-section:has(.wp-block-details) .wp-block-columns > .wp-block-column:last-child {
  flex-basis: 66% !important;
  display: flex;
  flex-direction: column;
  align-self: stretch;
  min-width: 0;
  width: 100%;
}

.avp-faq-section .wp-block-columns > .wp-block-column:first-child > p:last-child,
.home .avp-section:has(.wp-block-details) .wp-block-columns > .wp-block-column:first-child > p:last-child {
  margin-top: auto;
  padding-top: 2.25rem;
}

.avp-faq-section .wp-block-details,
.home .avp-section:has(.wp-block-details) .wp-block-details {
  width: 100%;
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin-block-start: 0;
  min-height: 4.8rem;
}

.avp-faq-section .wp-block-details[open],
.home .avp-section:has(.wp-block-details) .wp-block-details[open] {
  flex: 1 0 auto;
  justify-content: flex-start;
}

@media (max-width: 781px) {
  .avp-faq-section .wp-block-columns > .wp-block-column:first-child,
  .avp-faq-section .wp-block-columns > .wp-block-column:last-child,
  .home .avp-section:has(.wp-block-details) .wp-block-columns > .wp-block-column:first-child,
  .home .avp-section:has(.wp-block-details) .wp-block-columns > .wp-block-column:last-child {
    flex-basis: 100% !important;
  }

  .avp-faq-section .wp-block-columns > .wp-block-column:first-child > p:last-child,
  .home .avp-section:has(.wp-block-details) .wp-block-columns > .wp-block-column:first-child > p:last-child {
    margin-top: 0;
    padding-top: 1rem;
  }

  .avp-faq-section .wp-block-details,
  .home .avp-section:has(.wp-block-details) .wp-block-details {
    min-height: auto;
    flex: none;
  }
}

/* FAQ home section — keep dividers full width, inset question copy */
.avp-faq-section .wp-block-details > summary,
.home .avp-section:has(.wp-block-details) .wp-block-details > summary,
.avp-faq-section .wp-block-details > :not(summary),
.home .avp-section:has(.wp-block-details) .wp-block-details > :not(summary) {
  padding-left: clamp(1.25rem, 1.8vw, 1.75rem);
  padding-right: clamp(0.5rem, 1vw, 0.9rem);
}

@media (max-width: 781px) {
  .avp-faq-section .wp-block-details > summary,
  .home .avp-section:has(.wp-block-details) .wp-block-details > summary,
  .avp-faq-section .wp-block-details > :not(summary),
  .home .avp-section:has(.wp-block-details) .wp-block-details > :not(summary) {
    padding-left: 0;
    padding-right: 0;
  }
}

/* v0.9.6 – FAQ question copy visibly farther right; divider lines remain full width */
@media (min-width: 782px) {
  .avp-faq-section .wp-block-details > summary,
  .home .avp-section:has(.wp-block-details) .wp-block-details > summary,
  .avp-faq-section .wp-block-details > :not(summary),
  .home .avp-section:has(.wp-block-details) .wp-block-details > :not(summary) {
    padding-left: clamp(2.75rem, 4vw, 4rem) !important;
    padding-right: 0.75rem !important;
  }
}

/* v0.9.7 – push FAQ question copy farther toward the outer content edge */
@media (min-width: 782px) {
  .avp-faq-section .wp-block-details > summary,
  .home .avp-section:has(.wp-block-details) .wp-block-details > summary,
  .avp-faq-section .wp-block-details > :not(summary),
  .home .avp-section:has(.wp-block-details) .wp-block-details > :not(summary) {
    padding-left: clamp(5rem, 7vw, 7rem) !important;
    padding-right: 0.5rem !important;
  }
}


/* v0.9.8 – FAQ as a true right-aligned column instead of artificial text indentation */
@media (min-width: 782px) {
  .avp-faq-section .wp-block-columns > .wp-block-column:last-child,
  .home .avp-section:has(.wp-block-details) .wp-block-columns > .wp-block-column:last-child {
    flex: 0 1 720px !important;
    flex-basis: 720px !important;
    width: min(100%, 720px) !important;
    max-width: 720px !important;
    margin-left: auto !important;
    align-self: stretch !important;
  }

  /* The block itself owns the alignment; question copy no longer needs huge fake padding. */
  .avp-faq-section .wp-block-details > summary,
  .home .avp-section:has(.wp-block-details) .wp-block-details > summary,
  .avp-faq-section .wp-block-details > :not(summary),
  .home .avp-section:has(.wp-block-details) .wp-block-details > :not(summary) {
    padding-left: 1.25rem !important;
    padding-right: 1.25rem !important;
  }
}


/* v0.9.9 – Standort-Aktionen: klare Icons und mobile Direktaktionen */
.avp-location-actions .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
}
.avp-location-actions .wp-block-button__link::before {
  content: "";
  display: inline-block;
  width: 1.15em;
  height: 1.15em;
  flex: 0 0 1.15em;
  background-color: currentColor;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.avp-directions-button .wp-block-button__link::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.92 6.01A1.5 1.5 0 0 0 17.5 5h-11a1.5 1.5 0 0 0-1.42 1.01L3 12v8a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1h12v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-8l-2.08-5.99ZM6.5 16A1.5 1.5 0 1 1 6.5 13a1.5 1.5 0 0 1 0 3Zm11 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3ZM5 11l1.5-4.5h11L19 11H5Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.92 6.01A1.5 1.5 0 0 0 17.5 5h-11a1.5 1.5 0 0 0-1.42 1.01L3 12v8a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-1h12v1a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-8l-2.08-5.99ZM6.5 16A1.5 1.5 0 1 1 6.5 13a1.5 1.5 0 0 1 0 3Zm11 0a1.5 1.5 0 1 1 0-3 1.5 1.5 0 0 1 0 3ZM5 11l1.5-4.5h11L19 11H5Z'/%3E%3C/svg%3E");
}
.avp-call-button .wp-block-button__link::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62 10.79a15.46 15.46 0 0 0 6.59 6.59l2.2-2.2a1 1 0 0 1 1.02-.24c1.12.37 2.33.57 3.57.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1C10.61 21 3 13.39 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1.02l-2.2 2.2Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62 10.79a15.46 15.46 0 0 0 6.59 6.59l2.2-2.2a1 1 0 0 1 1.02-.24c1.12.37 2.33.57 3.57.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1C10.61 21 3 13.39 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1.02l-2.2 2.2Z'/%3E%3C/svg%3E");
}


/* --------------------------------------------------------------------------
   v0.10.0 – mobile hero gutters match the rest of the page
   Keep the Cover itself full-width, but give hero copy + booking card the same
   1rem edge distance used by the content sections below on phones/tablets.
   -------------------------------------------------------------------------- */
@media (max-width: 782px) {
  .avp-hero-cover .avp-hero-inner,
  .avp-hero-cover .avp-hero-reservation {
    box-sizing: border-box;
    width: calc(100% - 2rem) !important;
    max-width: none !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .avp-hero-reservation .avp-hero-copy,
  .avp-hero-reservation .avp-crent-search-card-hero {
    box-sizing: border-box;
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* --------------------------------------------------------------------------
   v0.10.1 – mobile hero: prioritize booking module above the fold
   Hide the descriptive lead on phones/tablets and tighten the gap between the
   H1 and C-Rent card. Desktop keeps the full explanatory copy.
   -------------------------------------------------------------------------- */
@media (max-width: 782px) {
  .avp-hero-reservation .avp-hero-copy .avp-lead {
    display: none !important;
  }

  .avp-hero-reservation .avp-hero-copy h1 {
    margin-bottom: .85rem !important;
  }

  .avp-hero-reservation .avp-crent-search-card-hero {
    margin-top: 1rem !important;
  }
}

/* --------------------------------------------------------------------------
   v0.10.2 – opening hours in the hamburger drawer
   -------------------------------------------------------------------------- */
.avp-menu-hours {
  margin-top: 2.4rem;
  padding-top: 1.5rem;
  border-top: 1px solid #e2e5e6;
}
.avp-menu-hours-head {
  display: flex;
  flex-direction: column;
  gap: .65rem;
  margin-bottom: 1rem;
}
.avp-menu-hours-head > strong {
  color: var(--avp-ink);
  font-size: 1.05rem;
}
.avp-menu-hours-status {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  gap: .5rem;
  padding: .5rem .7rem;
  border-radius: 999px;
  background: #f1f3f3;
  color: #596064;
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.2;
}
.avp-hours-dot {
  width: .55rem;
  height: .55rem;
  border-radius: 50%;
  background: #8b9396;
  flex: 0 0 auto;
}
.avp-menu-hours-status.is-open {
  background: #edf6ef;
  color: #2e6940;
}
.avp-menu-hours-status.is-open .avp-hours-dot { background: #3c8b53; }
.avp-menu-hours-status.is-closed {
  background: #f6eeee;
  color: #7b3439;
}
.avp-menu-hours-status.is-closed .avp-hours-dot { background: var(--avp-red); }
.avp-menu-hours-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding: .72rem 0;
  border-bottom: 1px solid #eceeef;
  color: #50575b;
  font-size: .92rem;
}
.avp-menu-hours-row strong {
  color: var(--avp-ink);
  white-space: nowrap;
}
.avp-menu-hours-row:last-child { border-bottom: 0; }


/* --------------------------------------------------------------------------
   v0.10.3 – keep opening hours inside drawer only + robust hamburger trigger
   -------------------------------------------------------------------------- */
/* The former utility bar is no longer part of the public header. Hide it as a
   compatibility fallback for Header template parts saved in the Site Editor. */
.avp-utility-bar {
  display: none !important;
}

/* Ensure the main header starts at the top once the utility bar is gone. */
.avp-site-header,
.avp-runtime-header {
  top: 0 !important;
}
.admin-bar .avp-site-header,
.admin-bar .avp-runtime-header {
  top: 32px !important;
}

/* Keep the runtime menu visible even when an older saved header has conflicting
   Navigation/Button styles. */
.avp-site-header .avp-dynamic-menu,
.avp-runtime-header .avp-dynamic-menu {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  flex: 0 0 auto !important;
  margin-left: auto !important;
  position: relative !important;
  z-index: 20 !important;
}

.avp-site-header .avp-menu-toggle,
.avp-runtime-header .avp-menu-toggle {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  padding: 11px 9px !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 5px !important;
  border: 0 !important;
  background: transparent !important;
  color: #303335 !important;
  cursor: pointer !important;
}

.avp-site-header .avp-menu-toggle span,
.avp-runtime-header .avp-menu-toggle span {
  display: block !important;
  width: 28px !important;
  height: 2px !important;
  min-height: 2px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #303335 !important;
  opacity: 1 !important;
}

@media (max-width: 782px) {
  .admin-bar .avp-site-header,
  .admin-bar .avp-runtime-header {
    top: 46px !important;
  }
}

/* --------------------------------------------------------------------------
   v0.10.4 – remove duplicate divider before drawer opening hours
   -------------------------------------------------------------------------- */
.avp-menu-hours {
  border-top: 0 !important;
  padding-top: 0 !important;
  margin-top: 2.4rem;
}

/* --------------------------------------------------------------------------
   v0.10.5 – live opening status inside the main opening-hours card
   Uses the exact same status component/state as the hamburger drawer.
   -------------------------------------------------------------------------- */
.avp-hours-card-live {
  width: 100%;
  margin-top: 1.4rem !important;
  margin-block-start: 1.4rem !important;
}

.avp-hours-card-live .avp-menu-hours-status {
  margin: 0;
}

/* Once the live status is present, do not use the old oversized automatic
   spacer before the first opening-hours row. Keep the rows together near the
   bottom of the equally tall card while the status occupies the former void. */
@media (min-width: 782px) {
  .avp-hours-card:has(.avp-hours-card-live) > .avp-hours-row:first-of-type {
    margin-top: auto !important;
  }

  .avp-hours-card:has(.avp-hours-card-live) .avp-hours-card-live {
    margin-bottom: 1.1rem !important;
  }
}

@media (max-width: 781px) {
  .avp-hours-card-live {
    margin-top: 1rem !important;
    margin-bottom: 1rem !important;
  }
}


/* --------------------------------------------------------------------------
   v0.10.6 – balance live opening status and hours inside the card
   Keep equal outer padding while using the spare vertical space as small,
   consistent gaps between heading, live status and the three hour rows.
   -------------------------------------------------------------------------- */
@media (min-width: 782px) {
  .avp-hours-card:has(.avp-hours-card-live) {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }

  .avp-hours-card:has(.avp-hours-card-live) > h3,
  .avp-hours-card:has(.avp-hours-card-live) > .avp-hours-card-live,
  .avp-hours-card:has(.avp-hours-card-live) > .avp-hours-row {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    margin-block-start: 0 !important;
    margin-block-end: 0 !important;
  }

  .avp-hours-card:has(.avp-hours-card-live) > .avp-hours-row:first-of-type {
    margin-top: 0 !important;
  }
}


/* --------------------------------------------------------------------------
   v0.10.7 – compact opening-hours rows with a deliberate status gap
   Keep the live status near the heading, add one clear gap before the first
   day, and return the day rows to their original compact rhythm.
   -------------------------------------------------------------------------- */
@media (min-width: 782px) {
  .avp-hours-card:has(.avp-hours-card-live) {
    display: block;
  }

  .avp-hours-card:has(.avp-hours-card-live) > h3 {
    margin-bottom: 0 !important;
  }

  .avp-hours-card:has(.avp-hours-card-live) > .avp-hours-card-live {
    margin-top: 1.15rem !important;
    margin-bottom: 1.9rem !important;
    margin-block-start: 1.15rem !important;
    margin-block-end: 1.9rem !important;
  }

  .avp-hours-card:has(.avp-hours-card-live) > .avp-hours-row,
  .avp-hours-card:has(.avp-hours-card-live) > .avp-hours-row:first-of-type {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    margin-block-start: 0 !important;
    margin-block-end: 0 !important;
  }
}

/* --------------------------------------------------------------------------
   v0.10.8 – center opening-hours content + restore symmetric booking padding
   -------------------------------------------------------------------------- */
@media (min-width: 782px) {
  /* Keep the compact rows/status rhythm, but center the whole stack vertically
     inside the equally tall hours card so top and bottom breathing room match. */
  .avp-hours-card:has(.avp-hours-card-live) {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
  }

  .avp-hours-card:has(.avp-hours-card-live) > h3 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  .avp-hours-card:has(.avp-hours-card-live) > .avp-hours-card-live {
    margin-top: 1.15rem !important;
    margin-bottom: 1.9rem !important;
    margin-block-start: 1.15rem !important;
    margin-block-end: 1.9rem !important;
  }

  .avp-hours-card:has(.avp-hours-card-live) > .avp-hours-row,
  .avp-hours-card:has(.avp-hours-card-live) > .avp-hours-row:first-of-type {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    margin-block-start: 0 !important;
    margin-block-end: 0 !important;
  }
}

@media (min-width: 1040px) {
  /* The compact row is 982px wide. Give it the same deliberate gutter on both
     sides of the white reservation card, rather than letting the CTA feel
     tighter against the right edge. */
  .avp-crent-search-card.avp-crent-search-card-hero {
    width: min(1046px, 100%) !important;
    max-width: 1046px !important;
    padding-left: 2rem !important;
    padding-right: 2rem !important;
  }

  .avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg {
    width: 982px !important;
    max-width: 982px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}


/* --------------------------------------------------------------------------
   v0.10.9 – deterministic hours centering + truly symmetric booking gutters
   -------------------------------------------------------------------------- */
@media (min-width: 782px) {
  /* The script wraps the heading, live badge and compact day rows in one real
     stack. Center that stack as a unit instead of depending on :has() or
     Gutenberg's block-gap cascade. */
  .avp-hours-card {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: 100% !important;
    box-sizing: border-box !important;
  }

  .avp-hours-card > .avp-hours-card-stack {
    width: 100% !important;
    margin-top: auto !important;
    margin-bottom: auto !important;
  }

  .avp-hours-card-stack > h1,
  .avp-hours-card-stack > h2,
  .avp-hours-card-stack > h3,
  .avp-hours-card-stack > h4,
  .avp-hours-card-stack > h5,
  .avp-hours-card-stack > h6 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }

  .avp-hours-card-stack > .avp-hours-card-live {
    margin-top: 1.15rem !important;
    margin-bottom: 1.9rem !important;
  }

  .avp-hours-card-stack > .avp-hours-row {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    margin-block-start: 0 !important;
    margin-block-end: 0 !important;
  }
}

@media (min-width: 1040px) {
  /* 982px controls + 32px gutter on each side = 1046px total. Explicit
     border-box sizing prevents padding from altering that geometry. */
  .avp-crent-search-card.avp-crent-search-card-hero {
    box-sizing: border-box !important;
    width: 1046px !important;
    max-width: min(1046px, 100%) !important;
    padding-left: 32px !important;
    padding-right: 32px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .avp-crent-search-card.avp-crent-search-card-hero .avp-crent-module-wrap,
  .avp-crent-search-card.avp-crent-search-card-hero #crentSearchBar,
  .avp-crent-search-card.avp-crent-search-card-hero #crentSearchBar > *,
  .avp-crent-search-card.avp-crent-search-card-hero #crentSearchBar .orm-searchbar__datepicker {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg {
    box-sizing: border-box !important;
    width: 982px !important;
    max-width: 982px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}


/* --------------------------------------------------------------------------
   v0.11.0 – restore reservation geometry to the last stable v0.8.6 state
   -------------------------------------------------------------------------- */
@media (min-width: 1040px) {
  /* v0.8.6 used a 1030px border-box card with 1.5rem gutters. The internal
     booking row is 982px, so 24px + 982px + 24px = 1030px exactly. */
  .avp-crent-search-card.avp-crent-search-card-hero {
    box-sizing: border-box !important;
    width: min(1030px, 100%) !important;
    max-width: 1030px !important;
    padding: 1.5rem !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .avp-crent-search-card.avp-crent-search-card-hero .avp-crent-module-wrap,
  .avp-crent-search-card.avp-crent-search-card-hero #crentSearchBar {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg {
    box-sizing: border-box !important;
    width: 982px !important;
    max-width: 982px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}


/* --------------------------------------------------------------------------
   v0.11.1 – clean, deterministic reservation geometry
   Keep the compact one-line controls but remove inherited C-Rent container
   gutters so the white card has exactly the same left/right breathing room.
   -------------------------------------------------------------------------- */
@media (min-width: 1040px) {
  .avp-crent-search-card.avp-crent-search-card-hero {
    box-sizing: border-box !important;
    width: 1030px !important;
    max-width: min(1030px, 100%) !important;
    padding: 24px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  /* Neutralise the vendor grid gutters between our card and the actual row. */
  .avp-crent-search-card.avp-crent-search-card-hero #crentSearchBar > *,
  .avp-crent-search-card.avp-crent-search-card-hero #crentSearchBar > * > .orm-container,
  .avp-crent-search-card.avp-crent-search-card-hero #crentSearchBar .orm-container,
  .avp-crent-search-card.avp-crent-search-card-hero #crentSearchBar .orm-container > .orm-row.center-xs,
  .avp-crent-search-card.avp-crent-search-card-hero #crentSearchBar .orm-searchbar__datepicker,
  .avp-crent-search-card.avp-crent-search-card-hero #crentSearchBar .orm-searchbar__padding {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .avp-crent-search-card.avp-crent-search-card-hero #crentSearchBar .orm-container > .orm-row.center-xs {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* 220 + 560 + 170 + 2 × 16 gap = 982px = 1030 - 2 × 24px. */
  .avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg {
    box-sizing: border-box !important;
    display: grid !important;
    grid-template-columns: 220px 560px 170px !important;
    column-gap: 16px !important;
    width: 982px !important;
    max-width: 982px !important;
    margin: 0 !important;
    padding: 0 !important;
    justify-content: start !important;
    align-items: end !important;
  }

  .avp-crent-search-card #crentSearchBar .avp-rental-type-switch-mount,
  .avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg > .orm-col-xs-12.orm-col-lg-7,
  .avp-crent-search-card #crentSearchBar .orm-searchbar__padding > .orm-row.center-lg > .text-right.orm-col-lg-2 {
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
}

/* --------------------------------------------------------------------------
   v0.11.3 – service cards use the same hover motion as vehicle cards
   -------------------------------------------------------------------------- */
.avp-feature-card {
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
  will-change: transform;
}

@media (hover: hover) and (pointer: fine) {
  .avp-feature-card:hover {
    transform: translateY(-4px);
    border-color: #c6ccce;
    box-shadow: var(--avp-shadow);
  }
}

/* --------------------------------------------------------------------------
   v0.11.6 – C-Rent reservation pages use the full width of our outer card
   C-Rent adds its own Bootstrap-like .orm-container inside the WordPress card.
   Remove only that duplicate horizontal container geometry; keep the internal
   spacing of the actual reservation components intact.
   -------------------------------------------------------------------------- */
.avp-crent-app .avp-crent-process-card {
  padding-left: 0 !important;
  padding-right: 0 !important;
  overflow: hidden;
}

.avp-crent-process-card > #crentReservationHeader,
.avp-crent-process-card > #crentReservation,
.avp-crent-process-card > #crentCustomerWidget,
.avp-crent-process-card > #crentReservationHeader > *,
.avp-crent-process-card > #crentReservation > *,
.avp-crent-process-card > #crentCustomerWidget > * {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

/* Only flatten C-Rent's outermost layout containers. Nested grids/columns keep
   their own padding so the form and vehicle cards do not get cramped. */
.avp-crent-process-card > .orm-html > .orm-container,
.avp-crent-process-card > .orm-html > .orm-container-fluid,
.avp-crent-process-card > .orm-html > .orm-container-fluid > .orm-container {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Some C-Rent routes insert one wrapper before the container. Cover that
   structure without touching deeper component containers. */
.avp-crent-process-card > .orm-html > * > .orm-container,
.avp-crent-process-card > .orm-html > * > .orm-container-fluid {
  width: 100% !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

@media (max-width: 781px) {
  /* Restore a small page-safe gutter on phones. */
  .avp-crent-app .avp-crent-process-card {
    padding-left: .75rem !important;
    padding-right: .75rem !important;
    overflow: visible;
  }
}


/* --------------------------------------------------------------------------
   v0.11.7 – align only the controls above the C-Rent vehicle tiles
   The vehicle-card grid itself keeps the full-width alignment from v0.11.6.
   -------------------------------------------------------------------------- */
.avp-crent-process-card .avp-reservation-steps-row,
.avp-crent-process-card .avp-reservation-search-row,
.avp-crent-process-card .avp-reservation-category-row {
  box-sizing: border-box !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
}

@media (max-width: 781px) {
  .avp-crent-process-card .avp-reservation-steps-row,
  .avp-crent-process-card .avp-reservation-search-row,
  .avp-crent-process-card .avp-reservation-category-row {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

/* --------------------------------------------------------------------------
   v0.11.8 – align the rental-station control + remove WordPress header gap
   -------------------------------------------------------------------------- */
/* C-Rent's nested row cancels the outer gutter for the first station control.
   Restore the same 24px inset used by the step and category rows without
   moving the vehicle tiles below. */
.avp-crent-process-card .orm-reservationInfobar .orm-stationselect {
  box-sizing: border-box !important;
  width: calc(100% - 24px) !important;
  margin-left: 24px !important;
}

/* WordPress adds the global blockGap between the header template part and the
   following main element. Remove only that top-level header -> main gap on all
   templates/routes; internal block spacing remains untouched. */
.wp-site-blocks > header.wp-block-template-part + main,
.wp-site-blocks > .wp-block-template-part:first-child + main,
.wp-site-blocks > header + main {
  margin-block-start: 0 !important;
  margin-top: 0 !important;
}

@media (max-width: 781px) {
  .avp-crent-process-card .orm-reservationInfobar .orm-stationselect {
    width: calc(100% - 16px) !important;
    margin-left: 16px !important;
  }
}


/* --------------------------------------------------------------------------
   v0.11.9 – correct C-Rent station selector alignment
   C-Rent uses .orm-stationselect (singular); keep the station field aligned
   with the 24px inset of the controls above/below without moving vehicle tiles.
   -------------------------------------------------------------------------- */
@media (min-width: 782px) {
  .avp-crent-process-card .orm-reservationInfobar .orm-stationselect {
    box-sizing: border-box !important;
    width: calc(100% - 24px) !important;
    margin-left: 24px !important;
  }
}
@media (max-width: 781px) {
  .avp-crent-process-card .orm-reservationInfobar .orm-stationselect {
    box-sizing: border-box !important;
    width: calc(100% - 16px) !important;
    margin-left: 16px !important;
  }
}

/* --------------------------------------------------------------------------
   v0.12.0 – mobile C-Rent width matches the rest of the site
   .avp-crent-app already inherits the standard 1rem mobile page gutter from
   .avp-section-tight. Do not subtract another 2rem on .avp-crent-app-inner.
   This removes the doubled mobile inset while keeping desktop untouched.
   -------------------------------------------------------------------------- */
@media (max-width: 781px) {
  .avp-crent-app .avp-crent-app-inner {
    box-sizing: border-box !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}


/* --------------------------------------------------------------------------
   v0.12.1 – mobile-only C-Rent step-label baseline
   C-Rent places the active "Fahrzeugwahl" label slightly higher than the
   labels for steps 2 and 3 on narrow screens. Move only that text down; the
   circles/checkmark and all desktop styling remain untouched.
   -------------------------------------------------------------------------- */
@media (max-width: 781px) {
  .avp-crent-process-card .avp-reservation-active-step-label {
    display: inline-block !important;
    transform: translateY(4px) !important;
  }
}

/* --------------------------------------------------------------------------
   v0.12.2 – mobile C-Rent edge fill + step baseline refinement
   -------------------------------------------------------------------------- */
@media (max-width: 781px) {
  /* Let the vendor sections span the full width of the white process card,
     matching the desktop treatment. Keep the existing vertical padding. */
  .avp-crent-app .avp-crent-process-card {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* Keep the top navigation/category content readable while their surrounding
     rows can now reach the card edges. */
  .avp-crent-process-card .avp-reservation-steps-row,
  .avp-crent-process-card .avp-reservation-category-row {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* The dark search strip itself should run edge-to-edge; its own controls
     retain their internal insets from the existing C-Rent alignment rules. */
  .avp-crent-process-card .avp-reservation-search-row {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* v0.12.1 over-corrected the active label slightly. A 1px optical nudge
     aligns it with the labels for steps 2 and 3 on phones. */
  .avp-crent-process-card .avp-reservation-active-step-label {
    transform: translateY(1px) !important;
  }
}


/* --------------------------------------------------------------------------
   v0.12.5 – desktop right gutter from C-Rent step 2 onward
   JS marks the right-most non-image content/form column from step 2 onward.
   Step 1 is excluded completely so its vehicle-card grid cannot be shifted.
   -------------------------------------------------------------------------- */
@media (min-width: 782px) {
  .avp-crent-process-card .avp-reservation-right-edge-panel,
  .avp-crent-process-card .avp-reservation-summary-panel {
    box-sizing: border-box !important;
    padding-right: 24px !important;
  }
}

/* --------------------------------------------------------------------------
   v0.12.7 – semantic icons for the four service entry cards
   -------------------------------------------------------------------------- */
.avp-feature-icon {
  padding: 0;
}
.avp-feature-icon svg {
  display: block;
  width: 23px;
  height: 23px;
}

/* --------------------------------------------------------------------------
   v0.12.9 – Transporter-Finder
   -------------------------------------------------------------------------- */
.avp-transporter-finder {
  background: #f3f5f5;
  border-top: 1px solid var(--wp--preset--color--line);
  border-bottom: 1px solid var(--wp--preset--color--line);
}
.avp-transporter-finder__inner {
  width: min(1320px, 100%);
  margin: 0 auto;
}
.avp-finder-heading {
  max-width: 780px;
  margin-bottom: clamp(1.8rem, 4vw, 2.8rem);
}
.avp-finder-heading h2 {
  margin: .3rem 0 .8rem;
}
.avp-finder-card {
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--wp--preset--color--line);
  border-radius: var(--avp-radius-lg);
  box-shadow: var(--avp-shadow-soft);
}
.avp-finder-progress {
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: 1.15rem clamp(1.25rem, 3vw, 2rem);
  border-bottom: 1px solid var(--wp--preset--color--line);
  background: #fafafa;
}
.avp-finder-progress__item {
  display: inline-flex;
  align-items: center;
  gap: .55rem;
  color: #70787c;
  font-weight: 680;
  white-space: nowrap;
}
.avp-finder-progress__number {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 1.5px solid #aeb5b8;
  border-radius: 50%;
  background: #fff;
  color: var(--avp-ink);
  font-size: .9rem;
  line-height: 1;
}
.avp-finder-progress__item.is-current { color: var(--avp-ink); }
.avp-finder-progress__item.is-current .avp-finder-progress__number {
  border-color: var(--avp-red);
  background: var(--avp-red);
  color: #fff;
}
.avp-finder-progress__item.is-complete .avp-finder-progress__number {
  border-color: var(--avp-ink);
  background: var(--avp-ink);
  color: #fff;
}
.avp-finder-progress__line {
  flex: 1 1 80px;
  max-width: 150px;
  height: 1px;
  background: #cfd4d6;
}
.avp-finder-form,
.avp-finder-result {
  padding: clamp(1.5rem, 4vw, 2.6rem);
}
.avp-finder-step h3,
.avp-finder-result h3 {
  margin: 0 0 .4rem;
  font-size: clamp(1.45rem, 2.4vw, 2rem);
  line-height: 1.18;
}
.avp-finder-muted {
  margin: 0 0 1.55rem;
  color: var(--wp--preset--color--muted);
}
.avp-finder-dimensions {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1rem;
  max-width: 900px;
}
.avp-finder-dimensions label {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: .2rem .5rem;
  color: var(--avp-ink);
  font-weight: 720;
}
.avp-finder-dimensions label > span {
  color: #7a8286;
  font-size: .8rem;
  font-weight: 600;
}
.avp-finder-dimensions input {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 58px;
  padding: .8rem 1rem;
  border: 1px solid #aeb5b8;
  border-radius: 12px;
  background: #fff;
  color: var(--avp-ink);
  font: inherit;
  font-size: 1.08rem;
  outline: 0;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.avp-finder-dimensions input:focus {
  border-color: var(--avp-red);
  box-shadow: 0 0 0 3px rgba(134, 26, 34, .10);
}
.avp-finder-note,
.avp-finder-footnote,
.avp-finder-result__small {
  color: #697175;
  font-size: .86rem;
  line-height: 1.55;
}
.avp-finder-note { margin: 1rem 0 0; }
.avp-finder-footnote {
  padding: 1rem clamp(1.5rem, 4vw, 2.6rem) 1.25rem;
  border-top: 1px solid var(--wp--preset--color--line);
  background: #fafafa;
}
.avp-finder-choices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 210px));
  gap: .8rem;
}
.avp-finder-choice { position: relative; display: block; cursor: pointer; }
.avp-finder-choice input {
  position: absolute;
  inline-size: 1px;
  block-size: 1px;
  opacity: 0;
}
.avp-finder-choice span {
  display: grid;
  place-items: center;
  min-height: 62px;
  padding: .8rem 1.3rem;
  border: 1px solid #adb4b7;
  border-radius: 12px;
  background: #fff;
  color: var(--avp-ink);
  font-weight: 760;
  transition: border-color .18s ease, background .18s ease, color .18s ease, box-shadow .18s ease;
}
.avp-finder-choice input:checked + span {
  border-color: var(--avp-red);
  background: rgba(134, 26, 34, .06);
  color: var(--avp-red);
  box-shadow: inset 0 0 0 1px var(--avp-red);
}
.avp-finder-choice input:focus-visible + span {
  outline: 3px solid rgba(134, 26, 34, .18);
  outline-offset: 2px;
}
.avp-finder-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .8rem;
  margin-top: 1.7rem;
}
.avp-finder-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: .78rem 1.25rem;
  border: 1px solid transparent;
  border-radius: 10px;
  font: inherit;
  font-weight: 760;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.avp-finder-button:hover { transform: translateY(-1px); }
.avp-finder-button--primary {
  border-color: var(--avp-red);
  background: var(--avp-red);
  color: #fff !important;
}
.avp-finder-button--primary:hover { background: var(--avp-red-dark); border-color: var(--avp-red-dark); }
.avp-finder-button--plain {
  border-color: #b8bec1;
  background: #fff;
  color: var(--avp-ink);
}
.avp-finder-result__eyebrow {
  margin: 0 0 .5rem;
  color: var(--avp-red);
  font-size: .76rem;
  font-weight: 820;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.avp-finder-result__intro {
  max-width: 760px;
  margin: .65rem 0 1.5rem;
  color: #555e62;
  line-height: 1.6;
}
.avp-finder-result__layout {
  display: grid;
  grid-template-columns: minmax(260px, .9fr) minmax(280px, 1.1fr);
  gap: clamp(1.4rem, 4vw, 3rem);
  align-items: center;
  max-width: 980px;
}
.avp-finder-result__figure {
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--wp--preset--color--line);
  border-radius: 14px;
  background: #f7f8f8;
}
.avp-finder-result__figure img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: contain;
}
.avp-finder-result__figure figcaption {
  padding: .65rem .9rem;
  border-top: 1px solid var(--wp--preset--color--line);
  color: #6d7579;
  font-size: .78rem;
}
.avp-finder-result__details > strong {
  display: block;
  margin-bottom: .3rem;
}
.avp-finder-result__size {
  margin: 0 0 .8rem;
  color: var(--avp-ink);
  font-size: clamp(1.45rem, 3vw, 2.2rem);
  font-weight: 820;
  letter-spacing: -.02em;
}
.avp-finder-result[hidden],
.avp-finder-step[hidden],
.avp-finder-form[hidden] { display: none !important; }

@media (max-width: 781px) {
  .avp-transporter-finder { padding-left: 1rem; padding-right: 1rem; }
  .avp-finder-progress { gap: .55rem; padding: 1rem; }
  .avp-finder-progress__line { min-width: 20px; }
  .avp-finder-progress__item { gap: .4rem; font-size: .9rem; }
  .avp-finder-progress__number { width: 29px; height: 29px; }
  .avp-finder-form,
  .avp-finder-result { padding: 1.25rem; }
  .avp-finder-dimensions { grid-template-columns: 1fr; gap: .8rem; }
  .avp-finder-choices { grid-template-columns: 1fr 1fr; }
  .avp-finder-result__layout { grid-template-columns: 1fr; }
  .avp-finder-footnote { padding: .9rem 1.25rem 1.1rem; }
}

@media (max-width: 480px) {
  .avp-finder-progress__item { font-size: .82rem; }
  .avp-finder-progress__line { flex-basis: 22px; }
  .avp-finder-choices { grid-template-columns: 1fr; }
  .avp-finder-button { width: 100%; }
}

/* v0.12.10: single-step finder and paired example photos. */
.avp-finder-dimensions label { display: flex; flex-wrap: wrap; min-width: 0; align-items: baseline; }
.avp-finder-dimensions label > span { margin-left: auto; }
.avp-finder-dimensions input { flex: 0 0 100%; min-width: 0; max-width: 100%; box-sizing: border-box; }
.avp-finder-result__layout { grid-template-columns: minmax(0, 1fr); max-width: none; }
.avp-finder-result__images { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.avp-finder-result__figure { min-width: 0; background: #fff; }
.avp-finder-result__figure img { height: auto; aspect-ratio: 3 / 2; object-fit: contain; }
.avp-finder-result__details { min-width: 0; }
.avp-finder-result__size { overflow-wrap: anywhere; }
@media (max-width: 600px) { .avp-finder-result__images { grid-template-columns: 1fr; } }

/* Compact long-term rental teaser directly after the transporter finder. */
.avp-longterm-teaser { padding: 1.5rem 1rem 2.5rem; background: #fff; }
.avp-longterm-teaser__inner { box-sizing: border-box; max-width: 1320px; margin: 0 auto; padding: 1.5rem 2rem; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; border: 1px solid var(--wp--preset--color--line); border-radius: 16px; background: var(--wp--preset--color--canvas); }
.avp-longterm-teaser__inner > div { min-width: 0; }
.avp-longterm-teaser h2 { margin: 0 0 .35rem; color: var(--avp-ink); font-size: clamp(1.3rem, 2vw, 1.7rem); line-height: 1.25; }
.avp-longterm-teaser p { margin: 0; color: #6d7579; }
.avp-longterm-teaser a { flex-shrink: 0; }
@media (max-width: 700px) { .avp-longterm-teaser__inner { flex-direction: column; align-items: flex-start; padding: 1.25rem; gap: 1rem; } .avp-longterm-teaser a { box-sizing: border-box; max-width: 100%; white-space: normal; } }

/* v0.12.13: section backgrounds meet without Gutenberg block-gap strips.
   Content spacing remains inside each section through its own padding. */
.avp-main > :is(.avp-section, .avp-section-tight, .avp-hero-reservation, .avp-vehicle-section, .avp-transporter-finder, .avp-longterm-teaser),
.wp-block-post-content > :is(.avp-section, .avp-section-tight, .avp-hero-reservation, .avp-vehicle-section, .avp-transporter-finder, .avp-longterm-teaser) {
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}
.avp-main > :is(.avp-section, .avp-section-tight, .avp-longterm-teaser) + *,
.wp-block-post-content > :is(.avp-section, .avp-section-tight, .avp-longterm-teaser) + * {
  margin-block-start: 0 !important;
}

/* v0.12.14: more room for the long-term rental description. */
.avp-longterm-teaser { box-sizing: border-box; min-height: 310px; padding: 3rem clamp(1rem, 3vw, 2.3rem); display: flex; align-items: center; }
.avp-longterm-teaser__inner { width: 100%; min-height: 190px; padding: 2rem 2.5rem; align-items: center; }
.avp-longterm-teaser__inner > div { max-width: 720px; }
.avp-longterm-teaser h2 { margin-bottom: .7rem; }
.avp-longterm-teaser p { line-height: 1.65; }
@media (max-width: 700px) {
  .avp-longterm-teaser { min-height: 330px; padding: 2rem 1rem; }
  .avp-longterm-teaser__inner { min-height: 250px; padding: 1.5rem; justify-content: center; align-items: flex-start; }
}

/* v0.12.16: one consistent outer height for booking controls. */
.avp-crent-search-card #crentSearchBar .avp-rental-type-switch,
.avp-crent-search-card #crentSearchBar .orm-dateselect.orm-row.no-margin,
.avp-crent-search-card #crentSearchBar .orm-btn--searchbar {
  box-sizing: border-box !important;
  height: 48px !important;
  min-height: 48px !important;
}
.avp-crent-search-card #crentSearchBar .avp-rental-type-switch button[data-avp-vehicle-type] {
  box-sizing: border-box !important;
  height: 46px !important;
  min-height: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* v0.12.17: match the booking field inset and filter presentation. */
.avp-finder-dimensions label > .avp-finder-field-label { margin-left: 8px; color: var(--avp-ink); font-size: inherit; font-weight: inherit; }
.avp-finder-dimensions label > .avp-finder-field-unit { margin-right: 8px; }
.avp-finder-dimensions input { padding-left: 8px; padding-right: 8px; }
.avp-crent-search-card #crentSearchBar .avp-rental-type-switch { border: 1px solid #303335 !important; background: #fff !important; }
.avp-crent-search-card #crentSearchBar .avp-rental-type-switch button:not(.is-active) { background: #fff !important; }
.avp-crent-search-card #crentSearchBar .avp-filter-headline { text-align: left !important; }

/* v0.12.18: separate opening hours from navigation, tighten its heading. */
.avp-menu-drawer .avp-menu-hours { margin-top: 5rem !important; }
.avp-menu-drawer .avp-menu-hours-head { gap: .4rem; margin-bottom: .65rem; }
.avp-menu-drawer .avp-menu-hours-head > strong { margin: 0 !important; padding: 0 !important; line-height: 1.3; }
.avp-menu-drawer .avp-menu-hours-head > .avp-menu-hours-status { margin-top: 0 !important; margin-bottom: 0 !important; }

/* v0.12.20: wpautop inserts a BR between the flex items in shortcode output. */
.avp-menu-drawer .avp-menu-hours-head > br { display: none !important; }

/* v0.12.21: optimized road photograph behind the homepage reservation. */
.avp-hero.avp-hero-cover {
  background-image: url('../images/hero-road.webp');
  background-size: cover;
  background-position: center 60%;
  background-repeat: no-repeat;
}
.avp-hero.avp-hero-cover > .wp-block-cover__image-background {
  display: none !important;
}
@media (max-width: 782px) {
  .avp-hero.avp-hero-cover {
    background-image: url('../images/hero-road-mobile.webp');
    background-position: center center;
  }
}

/* v0.12.24: white default only when no Gutenberg text colour is selected. */
:where(.avp-hero.avp-hero-cover .avp-hero-copy h1, .avp-hero.avp-hero-cover .avp-hero-copy .avp-lead):not(.has-text-color) { color: #fff; }

/* v0.12.25: wpautop line breaks must not occupy dimension grid cells. */
.avp-finder-dimensions > br { display: none !important; }
