/* ═══════════════════════════════════════════════════════
   Wavio Theme — Global Stylesheet
   Lightweight, performance-oriented base styles.
   Design tokens via CSS custom properties (custom-properties.php).
   ═══════════════════════════════════════════════════════ */

/* ─── Fonts (lokal, DSGVO) ───────────────────────────── */

@font-face {
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 400 800;
    font-stretch: 100%;
    font-display: swap;
    src: url('../fonts/roboto-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Roboto';
    font-style: normal;
    font-weight: 400 800;
    font-stretch: 100%;
    font-display: swap;
    src: url('../fonts/roboto-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/montserrat-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
    font-family: 'Montserrat';
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
    src: url('../fonts/montserrat-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}


/* ─── Glass Utility ──────────────────────────────────── */

:root {
    --wavio-glass-bg: rgba(255,255,255,0.85);
    --wavio-glass-blur: blur(20px) saturate(1.8);
}

.wavio-glass {
    background: var(--wavio-glass-bg);
    backdrop-filter: var(--wavio-glass-blur);
    -webkit-backdrop-filter: var(--wavio-glass-blur);
}

/* ─── Reset ───────────────────────────────────────────── */

*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family: var(--wavio-font-body, 'Roboto', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
    font-size: var(--wavio-body, 1rem);
    line-height: 1.6;
    color: var(--wavio-text, #2a2a2a);
    background: var(--wavio-site-bg, var(--wavio-bg-light, #fafaf8));
    padding: 0 !important;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    color: var(--wavio-primary, #c8102e);
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}

/* Card-Anchors haben eigene Hover-Effekte — kein Underline */
a.tour-card:hover,
a.kat-card:hover,
a.kat-quick-btn:hover,
a.showcase-card:hover,
a.prefooter-card:hover,
a.standort-imgcard:hover,
a.jobcard:hover,
a.service-card:hover,
a.job-widget:hover,
a.event-widget:hover,
a.kat-card:hover h2,
a.showcase-card:hover .showcase-card__title,
a.prefooter-card:hover .prefooter-card__title,
a.tour-card:hover .tour-card__name,
a.jobcard:hover .jobcard__title,
a.jobcard:hover .jobcard__excerpt,
a.service-card:hover .service-card__title,
a.service-card:hover .service-card__text,
.kat-quick-btn:hover .kat-quick-btn__name {
    text-decoration: none;
}

/* ─── Typography ──────────────────────────────────────── */

h1, h2, h3 {
    font-family: var(--wavio-font-heading, var(--wavio-font-body));
    color: var(--wavio-heading, var(--wavio-text, #2a2a2a));
    letter-spacing: -0.02em;
}
h1 { font-size: var(--wavio-h1, 2rem); line-height: 1.15; font-weight: 800; letter-spacing: -0.045em; }
h2 { font-size: var(--wavio-h2, 1.625rem); line-height: 1.2; font-weight: 700; letter-spacing: -0.035em; }
h3 { font-size: var(--wavio-h3, 1.25rem); line-height: 1.3; font-weight: 700; letter-spacing: -0.025em; }
h4, h5, h6 { font-weight: 600; line-height: 1.4; }

h1, h2, h3, h4, h5, h6 {
    color: var(--wavio-secondary, #1c1c1c);
}

/* White-on-Image Cards: Headings müssen die Parent-Color (white) erben */
.hero__h1,
.kat-card__name,
.standort-imgcard__name,
.showcase-card__title,
.prefooter-card__title,
.kat-hero__title {
    color: inherit;
}

/* ─── Screen Reader ───────────────────────────────────── */

.screen-reader-text {
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    width: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
}

/* ─── Layout ──────────────────────────────────────────── */

.wavio-container {
    width: 100%;
    max-width: var(--wavio-container, 1400px);
    margin: 0 auto;
    padding: 0 20px;
}

@media (min-width: 768px) {
    .wavio-container {
        padding: 0 40px;
    }
}

/* Section wraps */
.wavio-section-wrap {
    padding: var(--wavio-section-py, 80px) 0;
    background: transparent;
}

/* Sections die ihre eigene Demo-Padding haben: section-wrap padding=0 */
.wavio-section-wrap:has(.wavio-hero-scroll),
.wavio-section-wrap:has(.wavio-feature-text),
.wavio-section-wrap:has(.hero),
.wavio-section-wrap:has(.page-hero--image),
.wavio-section-wrap:has(.kat-hero),
.wavio-section-wrap:has(.page-section),
.wavio-section-wrap:has(.prefooter),
.wavio-section-wrap:has(.kat-cards),
.wavio-section-wrap:has(.intro),
.wavio-section-wrap:has(.tour-section),
.wavio-section-wrap:has(.showcase-cards),
.wavio-section-wrap:has(.kat-quick-section) {
    padding: 0;
    background: none;
}

.wavio-layout--full {
    width: 100%;
}

.wavio-layout--container {
    width: 100%;
}

.wavio-section {
    padding: var(--wavio-section-py, 80px) 0;
}

/* ─── Buttons ─────────────────────────────────────────── */

.wavio-btn {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    padding: 14px 32px;
    border: none;
    border-radius: var(--wavio-radius, 12px);
    font-size: var(--wavio-btn-size, 16px);
    font-weight: var(--wavio-btn-weight, 700);
    text-decoration: none;
    cursor: pointer;
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.wavio-btn:hover {
    opacity: 0.9;
    transform: translateY(-1px);
    text-decoration: none;
}

.wavio-btn--cta {
    background: var(--wavio-primary, #c8102e);
    color: #fff;
    border-radius: 30px;
}

.wavio-btn--outline {
    background: transparent;
    color: var(--wavio-text, #2a2a2a);
    border: 1.5px solid var(--wavio-text, #2a2a2a);
    border-radius: 30px;
}

.wavio-btn--outline:hover {
    background: var(--wavio-text, #2a2a2a);
    color: #fff;
}

.wavio-btn__sub {
    font-size: 0.8em;
    font-weight: 400;
    opacity: 0.85;
}

/* ─── Badge ───────────────────────────────────────────── */

.wavio-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 600;
    background: var(--wavio-accent, #00843e);
    color: #fff;
}

/* ─── Topbar ──────────────────────────────────────────── */

/* Topbar: im Flow (static), Nav wird sticky — Demo-Pattern */
.wavio-topbar {
    background: var(--wavio-topbar-bg, #b8d9b8);
    color: var(--wavio-topbar-text, #1d1d1b);
    padding: 9px 0;
    text-align: center;
    font-family: var(--font-mono, var(--wavio-font-body));
    font-size: 12px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: 0.02em;
}
.wavio-topbar .wavio-container,
.wavio-topbar .container {
    display: flex;
    justify-content: center;
    align-items: center;
    max-width: none;
    padding: 0 20px;
}
.wavio-topbar--link { display: block; text-decoration: none; }
.wavio-topbar--link:hover { background: color-mix(in srgb, var(--wavio-accent) 34%, #ffffff); }

/* ─── Header (Demo-Pattern: sticky, weiss, leichte shadow) ──── */
.wavio-header {
    position: sticky;
    top: 0;
    z-index: 100;
    background: #fff;
    height: var(--wavio-nav-h, 54px);
    box-shadow: 0 2px 8px rgba(0,0,0,0.04);
    transition: box-shadow 0.3s;
}

.wavio-header__inner {
    display: flex;
    align-items: center;
    height: 100%;
    gap: 40px;
    max-width: none;
    padding: 0 20px;
    background: transparent;
    transition: background 0.3s;
}

.wavio-header__logo {
    flex-shrink: 0;
}

.wavio-header__logo img {
    height: var(--wavio-logo-h, 32px);
    width: auto;
    transition: filter 0.3s;
}

/* Logo immer farbig (Demo-Original) */

.wavio-header__site-name {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--wavio-secondary, #1c1c1c);
}

/* ─── NAV ──────────────────────────────────────────────── */

.wavio-nav { flex: 1; display: none; }
.wavio-header__right { display: none; }
@media (min-width: 1024px) {
    .wavio-nav,
    .wavio-header__right { display: flex; }
    .wavio-header__right { align-items: center; gap: 12px; }
}

.wavio-nav__list {
    display: flex;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.wavio-nav__list a {
    font-family: 'Montserrat', system-ui, -apple-system, sans-serif;
    font-size: 0.82rem;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.005em;
    color: var(--wavio-text, #2a2a2a);
    padding: 6px 12px;
    border-radius: var(--wavio-radius-pill, 999px);
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 0.2s ease, color 0.2s ease;
    display: inline-block;
}

.wavio-nav__list > li > a:hover,
.wavio-nav__list > .current-menu-item > a,
.wavio-nav__list > .current-menu-parent > a,
.wavio-nav__list > .current-menu-ancestor > a,
.wavio-nav__list > .current_page_item > a,
.wavio-nav__list > .current_page_parent > a,
.wavio-nav__list > .current_page_ancestor > a,
.wavio-nav__list > .wavio-nav__item--active > a {
    background-color: var(--wavio-gray-100) !important;
    color: var(--wavio-black, #2a2a2a) !important;
}


/* ─── Dropdown ─────────────────────────────────────────── */

.wavio-nav__item--has-dropdown { position: relative; }

.wavio-nav__dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 50;
    min-width: 220px;
    margin: 0;
    padding: 12px 8px;
    list-style: none;
    background: var(--wavio-glass-bg);
    backdrop-filter: var(--wavio-glass-blur);
    -webkit-backdrop-filter: var(--wavio-glass-blur);
    border-radius: var(--wavio-radius, 10px);
    box-shadow: 0 12px 40px rgba(0,0,0,0.10);
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: opacity 0.28s cubic-bezier(0.16,1,0.3,1),
                transform 0.28s cubic-bezier(0.16,1,0.3,1),
                visibility 0.28s;
}

.wavio-nav__list--right .wavio-nav__dropdown { left: auto; right: 0; }

.wavio-nav__item--has-dropdown:hover > .wavio-nav__dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.wavio-nav__dropdown li { display: flex; }
.wavio-nav__dropdown li a {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    padding: 8px 14px;
    border-radius: var(--wavio-radius-pill, 999px);
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: 600;
    color: var(--wavio-text, #2a2a2a);
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 0.15s ease, color 0.15s ease;
}
.wavio-nav__dropdown li a:hover {
    background: color-mix(in srgb, var(--wavio-accent) 9%, transparent);
    color: var(--wavio-accent);
}
.wavio-nav__dropdown li.current-menu-item > a,
.wavio-nav__dropdown li.current_page_item > a,
.wavio-nav__dropdown li.wavio-nav__item--active > a {
    background: var(--wavio-gray-100);
    color: var(--wavio-black, #2a2a2a);
}

.wavio-nav__icon {
    display: inline-flex;
    vertical-align: middle;
    margin-right: 6px;
    opacity: 0.5;
}


/* ─── Mega ─────────────────────────────────────────────── */

.wavio-nav__item--has-mega { position: relative; }

.wavio-nav__mega {
    position: absolute;
    left: 0;
    top: 100%;
    z-index: 50;
    width: min(800px, calc(100vw - 40px));
    padding: 40px 48px;
    background: rgba(248,248,246,0.97);
    backdrop-filter: blur(20px) saturate(1.4);
    -webkit-backdrop-filter: blur(20px) saturate(1.4);
    border-radius: var(--wavio-radius, 14px);
    box-shadow: 0 24px 64px rgba(0,0,0,0.15), 0 4px 12px rgba(0,0,0,0.05);
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: opacity 0.28s cubic-bezier(0.16,1,0.3,1),
                transform 0.28s cubic-bezier(0.16,1,0.3,1),
                visibility 0.28s;
}
.wavio-nav__item--has-mega:hover > .wavio-nav__mega {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.wavio-nav__mega-inner { width: 100%; }

.wavio-nav__mega-grid {
    display: flex;
    align-items: flex-start;
    gap: 24px 40px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.wavio-nav__mega-grid > .wavio-nav__mega-col--special:first-child { grid-column: 1; grid-row: 1; }
.wavio-nav__mega-grid > .wavio-nav__mega-col--stack             { grid-column: 1; grid-row: 2; }
.wavio-nav__mega-grid > .wavio-nav__mega-col:not(.wavio-nav__mega-col--special):not(.wavio-nav__mega-col--wide):not(.wavio-nav__mega-col--stack) {
    grid-column: 2;
    grid-row: 1 / span 2;
}
.wavio-nav__mega-col--wide {
    grid-column: 3;
    grid-row: 1 / span 2;
}

.wavio-nav__mega-col { display: flex; flex-direction: column; gap: 4px; flex: 1 1 0; min-width: 0; }
.wavio-nav__mega-col--2col { flex: 2 1 0; }
.wavio-nav__mega-col--2col .wavio-nav__mega-list { display: block; column-count: 2; column-gap: 36px; }
.wavio-nav__mega-col--2col .wavio-nav__mega-item { break-inside: avoid; }
.wavio-nav__mega-col-title {
    font-family: 'Montserrat', var(--font-display);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--wavio-gray-600, #6b6b6b);
    margin-bottom: 14px;
    padding-left: 14px;
}

.wavio-nav__mega-list {
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin: 0;
    padding: 0;
    list-style: none;
}
.wavio-nav__mega-col--wide .wavio-nav__mega-list {
    display: block;
    column-count: 2;
    column-gap: 24px;
}
.wavio-nav__mega-col--wide .wavio-nav__mega-item {
    display: block;
    break-inside: avoid;
}

.wavio-nav__list .wavio-nav__mega-link {
    display: inline-flex;
    width: max-content;
    align-items: center;
    gap: 14px;
    padding: 8px 12px;
    border-radius: var(--wavio-radius-pill, 999px);
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.3;
    color: var(--wavio-black, #2a2a2a);
    background-color: transparent;
    text-decoration: none;
    transition: background-color 0.15s ease, color 0.15s ease;
}
.wavio-nav__mega-link:hover {
    background-color: color-mix(in srgb, var(--wavio-accent) 9%, transparent) !important;
    color: var(--wavio-accent);
}
.wavio-nav__mega-list .current-menu-item > .wavio-nav__mega-link,
.wavio-nav__mega-list .current_page_item > .wavio-nav__mega-link {
    background-color: var(--wavio-gray-100);
}

.wavio-nav__mega-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    align-self: center;
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    line-height: 0;
    color: var(--wavio-gray-600, #6b6b6b);
    transform: translateY(3px);
}
.wavio-nav__mega-icon svg {
    display: block;
    width: 18px;
    height: 18px;
    vertical-align: middle;
    overflow: visible;
}

.wavio-nav__mega-text { flex: 0 1 auto; }

.wavio-nav__mega-col--special .wavio-nav__mega-link {
    font-weight: 700;
    font-size: 15px;
}
.wavio-nav__mega-col--special .wavio-nav__mega-icon { display: none; }

.wavio-nav__mega-tag {
    margin-left: auto;
    padding: 2px 7px;
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 500;
    line-height: 1;
    border-radius: 999px;
    background: var(--wavio-mint, #b8d9b8);
    color: var(--wavio-black, #2a2a2a);
}


/* ─── Highlight, CTA, Badge ────────────────────────────── */

.wavio-nav__item--highlight > a {
    background: var(--wavio-mint, #b8d9b8);
}

.wavio-nav__item--cta > a {
    padding: 10px 20px;
    font-weight: 600;
    color: var(--wavio-white, #fff);
    background: var(--wavio-black, #2a2a2a);
}
.wavio-nav__item--cta > a:hover {
    background: var(--wavio-mint, #b8d9b8);
    color: var(--wavio-black, #2a2a2a);
}

.wavio-nav__badge {
    background: var(--wavio-mint, #b8d9b8);
    color: var(--wavio-black, #2a2a2a);
    font-family: var(--font-mono);
    font-size: 10px;
    font-weight: 500;
    padding: 1px 5px;
    border-radius: var(--wavio-radius-pill, 999px);
    margin-left: 3px;
    vertical-align: super;
    line-height: 1;
}

@media (min-width: 1024px) {
    .wavio-header__right {
        display: flex;
    }
}

.wavio-nav-right__list {
    display: flex;
    gap: 16px;
    list-style: none;
}

/* ─── Hamburger ───────────────────────────────────────── */

.wavio-hamburger {
    display: flex;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 8px;
    margin-left: auto;
}

@media (min-width: 1024px) {
    .wavio-hamburger {
        display: none;
    }
}

.wavio-hamburger span {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--wavio-text, #2a2a2a);
    transition: transform 0.3s ease, opacity 0.3s ease, background 0.3s;
}

/* Hamburger-Linien immer dunkel (Demo-Original auf weissem Header) */

.wavio-hamburger[aria-expanded="true"] span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.wavio-hamburger[aria-expanded="true"] span:nth-child(2) {
    opacity: 0;
}

.wavio-hamburger[aria-expanded="true"] span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* ─── Mobile Panel ────────────────────────────────────── */

.wavio-panel {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    background: #fff;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-12px);
    transition: opacity 0.28s ease, transform 0.28s ease, visibility 0s linear 0.28s;
    overflow: hidden;
}

.wavio-panel[aria-hidden="false"] {
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: opacity 0.28s ease, transform 0.28s ease;
}

@media (min-width: 1024px) {
    .wavio-panel { display: none; }
}

/* Scroll-Lock solange das Panel offen ist */
.wavio-nav-open { overflow: hidden; }

.wavio-panel__bar {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: var(--wavio-nav-h-mobile, 56px);
    padding: 0 14px 0 20px;
    border-bottom: 1px solid rgba(0,0,0,0.08);
}

.wavio-panel__logo img {
    display: block;
    height: 32px;
    width: auto;
}

.wavio-panel__close {
    position: relative;
    width: 44px;
    height: 44px;
    background: none;
    border: none;
    cursor: pointer;
}

.wavio-panel__close span {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 22px;
    height: 2px;
    background: var(--wavio-text, #1d1d1b);
}

.wavio-panel__close span:nth-child(1) { transform: translate(-50%, -50%) rotate(45deg); }
.wavio-panel__close span:nth-child(2) { transform: translate(-50%, -50%) rotate(-45deg); }

.wavio-panel__inner {
    flex: 1;
    padding: 8px 20px 48px;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.wavio-panel__list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.wavio-panel__item {
    border-bottom: 1px solid rgba(0,0,0,0.07);
}

.wavio-panel__row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.wavio-panel__row a {
    flex: 1;
    padding: 15px 0;
    color: var(--wavio-text, #1d1d1b);
    font-family: var(--wavio-font-heading, inherit);
    font-size: 19px;
    font-weight: 500;
    text-decoration: none;
}

.wavio-panel__item--active > .wavio-panel__row > a {
    color: var(--wavio-accent, #38571a);
}

.wavio-panel__toggle {
    position: relative;
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    background: none;
    border: none;
    cursor: pointer;
}

.wavio-panel__toggle::before,
.wavio-panel__toggle::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    background: var(--wavio-text, #1d1d1b);
    transition: transform 0.25s ease, opacity 0.2s ease;
}

.wavio-panel__toggle::before { width: 14px; height: 2px; transform: translate(-50%, -50%); }
.wavio-panel__toggle::after  { width: 2px; height: 14px; transform: translate(-50%, -50%); }

.wavio-panel__toggle[aria-expanded="true"]::after {
    transform: translate(-50%, -50%) scaleY(0);
    opacity: 0;
}

.wavio-panel__sub {
    list-style: none;
    margin: 0;
    padding: 0 0 10px 14px;
    display: none;
}

.wavio-panel__sub.open { display: block; }

.wavio-panel__sub a {
    flex: 1;
    display: block;
    padding: 10px 0;
    color: var(--wavio-text-muted, #555);
    font-family: var(--wavio-font-body, inherit);
    font-size: 16px;
    font-weight: 400;
    text-decoration: none;
}

/* Kategorie-Schnellzugriff */
.wavio-panel__cats {
    margin-top: 30px;
}

.wavio-panel__cats-label {
    display: block;
    margin-bottom: 12px;
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--wavio-text-muted, #777);
}

.wavio-panel__cats-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

.wavio-panel__cat {
    position: relative;
    display: flex;
    align-items: flex-end;
    aspect-ratio: 16 / 10;
    border-radius: 12px;
    overflow: hidden;
    text-decoration: none;
    background: var(--wavio-accent-soft, #e8efe2);
}

.wavio-panel__cat img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wavio-panel__cat::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.62), rgba(0,0,0,0) 62%);
}

.wavio-panel__cat-name {
    position: relative;
    z-index: 1;
    padding: 10px 12px;
    color: #fff;
    font-family: var(--wavio-font-heading, inherit);
    font-weight: 600;
    font-size: 15px;
    line-height: 1.2;
}

/* Header beim Scrollen: bleibt weiss (Demo-Pattern), nur leicht st\u00e4rkere Shadow */
.wavio-header--scrolled {
    box-shadow: 0 4px 12px rgba(0,0,0,0.06);
}

/* ─── Hero ────────────────────────────────────────────── */

.wavio-hero {
    position: relative;
    min-height: 60vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background-size: cover;
    background-position: center;
    color: #fff;
    text-align: center;
    padding: 60px 20px;
}

.wavio-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.45);
}

.wavio-hero__content {
    position: relative;
    z-index: 1;
    max-width: 800px;
}

.wavio-hero h1 {
    color: #fff;
    margin-bottom: 16px;
}

.wavio-hero__subline {
    font-size: 1.15rem;
    opacity: 0.9;
    margin-bottom: 24px;
}

.wavio-hero__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    margin-bottom: 20px;
}

/* ─── Hero Scroll (busreise-hero-v7 Demo) ────────────── */

.wavio-hero-scroll {
    position: relative;
    min-height: 300vh;
    margin-top: calc(-1 * var(--wavio-nav-h, 58px));
}

.wavio-hero-scroll__sticky {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
}

.wavio-hero-scroll__bg {
    position: absolute;
    inset: 0;
    background: var(--wavio-bg-light, #fafaf8);
    z-index: 0;
}

.wavio-hero-scroll__media {
    position: absolute;
    top: 8px;
    left: 8px;
    right: 8px;
    bottom: 8px;
    z-index: 2;
    border-radius: 6px;
    overflow: hidden;
}

.wavio-hero-scroll__media img,
.wavio-hero-scroll__media video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.wavio-hero-scroll__media::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.04) 0%, rgba(0,0,0,0) 30%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.4) 100%);
    pointer-events: none;
    z-index: 1;
}

.wavio-hero-scroll__text {
    position: absolute;
    bottom: 10px;
    left: 10px;
    right: 10px;
    z-index: 5;
    pointer-events: none;
    padding: 0 1rem 1.8rem;
    overflow: hidden;
}

.wavio-hero-scroll__h1 {
    font-weight: 800;
    font-size: clamp(3rem, 11.5vw, 12rem);
    line-height: 1;
    letter-spacing: -0.045em;
    color: #fff;
    white-space: nowrap;
    opacity: 0;
    transform: translateY(60px);
    animation: wavio-revealUp 1s cubic-bezier(0.16, 1, 0.3, 1) 0.3s forwards;
}

.wavio-hero-scroll__cta {
    position: absolute;
    bottom: 2.8rem;
    right: 3.5rem;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    pointer-events: none;
    opacity: 0;
    animation: wavio-fadeIn 0.8s ease 1.2s forwards;
}

.wavio-hero-scroll__cta span {
    font-size: 0.68rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: rgba(255,255,255,0.45);
    font-weight: 500;
}

.wavio-hero-scroll__arrow {
    width: 16px;
    height: 16px;
    border-right: 1.5px solid rgba(255,255,255,0.5);
    border-bottom: 1.5px solid rgba(255,255,255,0.5);
    transform: rotate(45deg);
    animation: wavio-arrowFloat 2s ease-in-out infinite;
}

/* Hero Cards */
.wavio-hero-card {
    position: absolute;
    z-index: 3;
    border-radius: var(--wavio-radius, 10px);
    overflow: hidden;
    opacity: 0;
    background: #d5d0c7;
    box-shadow: 0 12px 45px rgba(0,0,0,0.10);
    cursor: pointer;
    transition: box-shadow 0.4s ease;
    text-decoration: none;
}

.wavio-hero-card:hover {
    box-shadow: 0 20px 60px rgba(0,0,0,0.20);
}

.wavio-hero-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.wavio-hero-card:hover img {
    transform: scale(1.04);
}

.wavio-hero-card__overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 1.4rem 1.2rem 1.1rem;
    background: linear-gradient(0deg, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0) 100%);
}

.wavio-hero-card__tag {
    display: block;
    font-size: 0.55rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--wavio-accent, #c8a24d);
    margin-bottom: 0.2rem;
}

.wavio-hero-card__title {
    display: block;
    font-size: 1.2rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.2;
}

/* Masonry Layout — Lightship Style
   Hauptbild: 30% Breite zentriert (left: 35%, right: 65%)
   Links: rechtsbündig zur Hauptbild-Kante (right-edge bei 33%)
   Rechts: linksbündig zur Hauptbild-Kante (left-edge bei 67%)
   Gleicher Abstand (2%) zum Hauptbild auf beiden Seiten */

/* Hauptbild 26% breit zentriert: links 37%, rechts 63%
   Cards: 2% Gap → links rechte Kante bei 35%, rechts linke Kante bei 65% */

/* Cards: 0.5vh Padding zum Hauptbild (24% breit, zentriert 38%-62%)
   Linke Cards: rechtsbündig zur Hauptbild-Kante
   Rechte Cards: linksbündig zur Hauptbild-Kante */

/* Linke Seite: Anker OBEN */
/* Goldener Schnitt: groß = 25%, klein = 25% / 1.618 ≈ 15.5%
   Links: Anker oben, groß oben + klein unten
   Rechts: Anker unten, groß unten + klein oben */

/* Links oben — groß (3:2) */
.wavio-hero-card--jobs {
    width: 25%;
    aspect-ratio: 3/2;
    height: auto;
    right: calc(63% + 1vh);
    top: 6%;
}

/* Links unten — klein (4:3), goldener Schnitt schmaler */
.wavio-hero-card--laender {
    width: 15.5%;
    aspect-ratio: 4/3;
    height: auto;
    right: calc(63% + 1vh);
    top: calc(6% + 16vw + 1.5vh);
}

/* Rechts oben — klein (4:3), goldener Schnitt */
.wavio-hero-card--kategorien {
    width: 15.5%;
    aspect-ratio: 4/3;
    height: auto;
    left: calc(63% + 1vh);
    top: auto;
    bottom: calc(6% + 16vw + 1.5vh);
}

/* Rechts unten — groß (3:2) */
.wavio-hero-card--angebote {
    width: 25%;
    aspect-ratio: 3/2;
    height: auto;
    left: calc(63% + 1vh);
    top: auto;
    bottom: 6%;
}

@keyframes wavio-revealUp { to { opacity: 1; transform: translateY(0); } }
@keyframes wavio-fadeIn { to { opacity: 1; } }
@keyframes wavio-arrowFloat {
    0%, 100% { transform: rotate(45deg) translate(0, 0); }
    50%      { transform: rotate(45deg) translate(3px, 3px); }
}

/* Statement */
.wavio-feature-text {
    background: var(--wavio-bg-light, #fafaf8);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: clamp(6rem, 14vh, 12rem) 2rem;
}

.wavio-feature-text__text {
    font-weight: 500;
    font-size: clamp(2.2rem, 5vw, 4.5rem);
    line-height: 1.2;
    letter-spacing: -0.03em;
    color: var(--wavio-text, #2a2a2a);
    max-width: 800px;
    text-align: center;
    margin: 0;
}

/* ─── Card Grid Section ──────────────────────────────── */

.wavio-card-grid {
    padding: clamp(2rem, 4vh, 4rem) 0;
    background: var(--wavio-bg-light, #fafaf8);
}

.wavio-card-grid__row {
    display: grid;
    gap: 20px;
}

.wavio-card-grid__row--3 {
    grid-template-columns: repeat(3, 1fr);
}

.wavio-card-grid__row--2 {
    grid-template-columns: repeat(2, 1fr);
}

@media (max-width: 768px) {
    .wavio-card-grid__row--3,
    .wavio-card-grid__row--2 {
        grid-template-columns: 1fr;
    }
}

.wavio-card-grid__card {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 340px;
    border-radius: var(--wavio-radius, 10px);
    overflow: hidden;
    background-size: cover;
    background-position: center;
    background-color: #d4d4d4;
    text-decoration: none;
    color: #fff;
    transition: transform 0.3s ease;
}

.wavio-card-grid__row--2 .wavio-card-grid__card {
    min-height: 400px;
}

.wavio-card-grid__card:hover {
    transform: scale(1.015);
}

.wavio-card-grid__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0) 60%);
    transition: background 0.3s ease;
}

.wavio-card-grid__card:hover .wavio-card-grid__overlay {
    background: linear-gradient(to top, rgba(0,0,0,0.65) 0%, rgba(0,0,0,0.05) 70%);
}

.wavio-card-grid__content {
    position: relative;
    z-index: 1;
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.wavio-card-grid__sub {
    position: absolute;
    top: 24px;
    left: 28px;
    z-index: 2;
    font-size: 0.88rem;
    font-weight: 400;
    color: #fff;
    opacity: 0.85;
}

.wavio-card-grid__title {
    font-size: clamp(1.2rem, 2vw, 1.5rem);
    font-weight: 700;
    line-height: 1.2;
}

.wavio-card-grid__cta {
    display: inline-flex;
    align-items: center;
    margin-top: 10px;
    padding: 10px 24px;
    background: #fff;
    color: var(--wavio-text, #2a2a2a);
    border-radius: 30px;
    font-size: 0.9rem;
    font-weight: 600;
    width: fit-content;
    transition: background 0.2s, transform 0.2s;
}

.wavio-card-grid__card:hover .wavio-card-grid__cta {
    background: #f0f0f0;
    transform: translateX(3px);
}

/* ─── Tour Teaser Section ────────────────────────────── */

.wavio-tour-teaser {
    padding: clamp(4rem, 8vh, 8rem) 0;
}

.wavio-tour-teaser__header {
    text-align: center;
    margin-bottom: clamp(2rem, 4vh, 3.5rem);
}

.wavio-tour-teaser__title {
    font-size: clamp(1.8rem, 3.5vw, 2.8rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--wavio-heading, var(--wavio-text, #2a2a2a));
    margin: 0 0 0.5rem;
}

.wavio-tour-teaser__text {
    font-size: 1.05rem;
    line-height: 1.6;
    color: #555;
    max-width: 600px;
    margin: 0 auto;
}


.wavio-tour-teaser__card-price strong {
    font-size: 1.15rem;
    color: var(--wavio-primary, #c8102e);
}

.wavio-tour-teaser__cta {
    text-align: center;
    margin-top: clamp(2rem, 4vh, 3rem);
}

/* Mobile Hero */
.wavio-hero-mobile-cards {
    display: none;
}

@media (max-width: 768px) {
    .wavio-hero-scroll {
        min-height: 100vh;
    }

    .wavio-hero-scroll__h1 {
        font-size: 12vw;
    }

    .wavio-hero-card {
        display: none;
    }

    .wavio-hero-scroll__cta {
        bottom: 1.5rem;
        right: 1.5rem;
    }

    .wavio-hero-scroll {
        min-height: 75vh;
    }

    .wavio-hero-mobile-cards {
        display: block;
        padding: 8px;
    }

    .wavio-hero-mobile-cards__grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 12px;
    }

    .wavio-m-card {
        position: relative;
        border-radius: var(--wavio-radius, 10px);
        overflow: hidden;
        aspect-ratio: 4/3;
        background: var(--wavio-bg-alt, #f2f1ed);
        text-decoration: none;
        opacity: 0;
        transform: translateY(20px);
        transition: opacity 0.5s ease, transform 0.5s ease;
    }

    .wavio-m-card img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    .wavio-m-card.visible {
        opacity: 1;
        transform: translateY(0);
    }

    .wavio-m-card:nth-child(2) { transition-delay: 0.05s; }
    .wavio-m-card:nth-child(3) { transition-delay: 0.10s; }
    .wavio-m-card:nth-child(4) { transition-delay: 0.15s; }
}

/* ─── Section Sublines ────────────────────────────────── */

.wavio-section__subline {
    font-size: 1.1rem;
    color: #666;
    margin-top: 8px;
    margin-bottom: 32px;
}

/* ─── Grids ───────────────────────────────────────────── */

.wavio-kaufberatung__grid,
.wavio-prozess__steps {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    margin-top: 32px;
}

@media (min-width: 768px) {
    .wavio-kaufberatung__grid,
    .wavio-prozess__steps {
        grid-template-columns: repeat(2, 1fr);
    }
}

.wavio-kaufberatung__card,
.wavio-prozess__step {
    padding: 24px;
    background: #fff;
    border-radius: var(--wavio-radius, 12px);
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.wavio-kaufberatung__num,
.wavio-prozess__num {
    display: inline-block;
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--wavio-primary, #c8102e);
    margin-bottom: 8px;
}

/* ─── PAS Grid ────────────────────────────────────────── */

.wavio-pas__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    align-items: start;
}

@media (min-width: 768px) {
    .wavio-pas__grid {
        grid-template-columns: 1fr 1fr;
    }
}

.wavio-pas__image img {
    border-radius: var(--wavio-radius, 12px);
}

.wavio-pas__conclusion {
    margin-top: 16px;
}

.wavio-pas__quote {
    margin-top: 40px;
    padding: 24px;
    background: var(--wavio-bg-alt, #f2f1ed);
    border-radius: var(--wavio-radius, 12px);
    border-left: 4px solid var(--wavio-primary, #c8102e);
}

.wavio-pas__quote cite {
    display: block;
    margin-top: 12px;
    font-style: normal;
}

.wavio-pas__quote cite span {
    display: block;
    font-size: 0.9rem;
    color: #666;
}

/* ─── About Grid ──────────────────────────────────────── */

.wavio-about__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
    align-items: center;
}

@media (min-width: 768px) {
    .wavio-about__grid {
        grid-template-columns: 1fr 1fr;
    }
}

.wavio-about__image img {
    border-radius: var(--wavio-radius, 12px);
}

.wavio-about__statement {
    margin-top: 16px;
}

/* ─── Möglichkeiten ───────────────────────────────────── */

.wavio-moeglichkeiten__rows {
    margin-top: 32px;
}

.wavio-moeglichkeiten__row {
    padding: 20px 0;
    border-bottom: 1px solid rgba(0,0,0,0.08);
}

.wavio-moeglichkeiten__row:last-child {
    border-bottom: none;
}

.wavio-moeglichkeiten__swatches {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 12px 0;
}

.wavio-swatch {
    display: inline-block;
    padding: 6px 14px;
    border: 1px solid rgba(0,0,0,0.12);
    border-radius: var(--wavio-radius, 12px);
    font-size: 0.85rem;
    font-weight: 500;
}

/* ─── FAQ ─────────────────────────────────────────────── */

.wavio-faq__list {
    margin-top: 24px;
}

.wavio-faq__item {
    border-bottom: 1px solid rgba(0,0,0,0.08);
}

.wavio-faq__question {
    padding: 16px 0;
    font-weight: 600;
    cursor: pointer;
    list-style: none;
}

.wavio-faq__question::-webkit-details-marker {
    display: none;
}

.wavio-faq__question::after {
    content: '+';
    float: right;
    font-size: 1.4em;
    line-height: 1;
    transition: transform 0.2s ease;
}

.wavio-faq__item[open] .wavio-faq__question::after {
    content: '−';
}

.wavio-faq__answer {
    padding: 0 0 16px;
    color: #555;
}

/* ─── CTA Section ─────────────────────────────────────── */

.wavio-cta {
    text-align: center;
}

.wavio-cta__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    margin-bottom: 24px;
}

.wavio-cta__form {
    max-width: 600px;
    margin: 24px auto 0;
    text-align: left;
}

.wavio-cta__checks {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    justify-content: center;
    list-style: none;
    margin-top: 24px;
    font-size: 0.9rem;
    color: #666;
}

.wavio-cta__checks li::before {
    content: '✓ ';
    color: var(--wavio-primary, #c8102e);
    font-weight: 700;
}

/* ─── SEO / Rechtstext / Impressum ────────────────────── */

.wavio-seo__links {
    margin-top: 24px;
}

.wavio-rechtstext__content,
.wavio-impressum__content {
    max-width: 800px;
}

/* ─── Footer ──────────────────────────────────────────── */

.wavio-footer {
    background: var(--wavio-footer-bg, #111);
    color: var(--wavio-text-light, #fff);
    padding: 40px 0 28px;
}

.wavio-footer a {
    color: var(--wavio-text-light, #fff);
    text-decoration: none;
    opacity: 0.7;
    transition: opacity 0.2s;
}

.wavio-footer a:hover {
    opacity: 1;
}

.wavio-footer__top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 20px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
}

.wavio-footer__logo img {
    height: 28px;
    width: auto;
    filter: brightness(0) invert(1);
    opacity: 0.9;
}

.wavio-footer__sitename {
    font-family: var(--wavio-font-heading, var(--wavio-font-body));
    font-size: 1.1rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    opacity: 1;
}

.wavio-footer__contact {
    font-size: 0.88rem;
    opacity: 0.6;
}

.wavio-footer__bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-top: 20px;
}

.wavio-footer {
    background: #fff;
    color: var(--wavio-text, #2a2a2a);
    padding: 80px 0 0;
    border-top: 1px solid rgba(0,0,0,0.06);
}

.wavio-footer a {
    color: var(--wavio-text-muted, #8a8578);
    text-decoration: none;
    transition: color 0.3s ease;
}

.wavio-footer a:hover {
    color: var(--wavio-text, #2a2a2a);
}

.wavio-footer__inner {
    max-width: none;
    padding: 0 2.5rem;
}

.wavio-footer__top {
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr 1fr;
    gap: 3rem;
    margin-bottom: 3rem;
    align-items: start;
}

.wavio-footer__brand-name {
    font-family: var(--wavio-font-heading, var(--wavio-font-body));
    font-weight: 800;
    font-size: 1.15rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    color: var(--wavio-text, #2a2a2a);
    margin-bottom: 1rem;
}

.wavio-footer__brand-desc {
    font-size: var(--wavio-body, 1rem);
    line-height: 1.65;
    color: var(--wavio-text-muted, #8a8578);
    max-width: 320px;
}

.wavio-footer__col-title {
    font-size: var(--wavio-body, 1rem);
    font-weight: 700;
    line-height: 1.65;
    color: var(--wavio-text-muted, #8a8578);
    margin-bottom: 0.65rem;
}

.wavio-footer__links {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.wavio-footer__links a {
    font-size: var(--wavio-body, 1rem);
    color: var(--wavio-text-muted, #8a8578);
}

.wavio-footer__links li {
    font-size: var(--wavio-body, 1rem);
    color: var(--wavio-text-muted, #8a8578);
}

.wavio-footer__bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 2rem 0;
    border-top: 1px solid rgba(0,0,0,0.06);
}

.wavio-footer__copy,
.wavio-footer__credit {
    font-size: var(--wavio-body, 1rem);
    color: var(--wavio-text-muted, #8a8578);
}

@media (max-width: 768px) {
    .wavio-footer__top {
        grid-template-columns: 1fr 1fr;
        gap: 2rem;
    }

    .wavio-footer__bottom {
        flex-direction: column;
        gap: 0.75rem;
        align-items: flex-start;
    }
}

@media (max-width: 480px) {
    .wavio-footer__top {
        grid-template-columns: 1fr;
    }
}

/* ─── Taxonomy Landing (Kategorien / Länder) ─────────── */

.wavio-taxonomy__hero {
    position: relative;
    min-height: 40vh;
    display: flex;
    align-items: flex-end;
    background-size: cover;
    background-position: center;
    color: #fff;
    padding: 60px 0 48px;
    margin: 8px;
    border-radius: var(--wavio-radius, 10px);
    overflow: hidden;
    margin-top: calc(-1 * var(--wavio-nav-h, 58px) + 8px);
}

.wavio-taxonomy__hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,0.6) 0%, rgba(0,0,0,0) 60%);
}

.wavio-taxonomy__hero .wavio-container {
    position: relative;
    z-index: 1;
}

.wavio-taxonomy__title {
    color: #fff;
    margin-bottom: 8px;
}

.wavio-taxonomy__subtitle {
    font-size: 1.15rem;
    opacity: 0.9;
    margin-bottom: 12px;
    max-width: 680px;
}

.wavio-taxonomy__count {
    display: inline-block;
    font-size: 0.85rem;
    font-weight: 500;
    background: rgba(0,0,0,0.35);
    backdrop-filter: blur(60px);
    -webkit-backdrop-filter: blur(60px);
    color: #fff;
    padding: 5px 14px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.12);
}

/* ── Archiv (alle Reisen) ────────────────────── */
.wavio-archive__header {
    padding: 40px 0 32px;
}

.wavio-archive__title {
    font-family: var(--wavio-font-heading, var(--wavio-font-body));
    color: var(--wavio-heading, var(--wavio-text, #2a2a2a));
    letter-spacing: -0.02em;
    margin-bottom: 4px;
}

.wavio-archive__count {
    font-size: var(--wavio-body, 1rem);
    color: var(--wavio-text-muted, #6b6b6b);
}

.wavio-archive__tours {
    padding: 32px 0 64px;
}

.wavio-archive__month {
    font-family: var(--wavio-font-heading, var(--wavio-font-body));
    font-size: var(--wavio-h3, 1.25rem);
    color: var(--wavio-primary, #c8102e);
    letter-spacing: -0.02em;
    margin: 32px 0 12px;
}

.wavio-archive__month:first-child {
    margin-top: 0;
}

.wavio-archive__list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.wavio-archive__row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 8px 14px 8px 8px;
    text-decoration: none;
    color: var(--wavio-text, #2a2a2a);
    background: #fff;
    border-radius: var(--wavio-radius, 12px);
    transition: box-shadow 0.2s;
}

.wavio-archive__row:hover {
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
    text-decoration: none;
}

.wavio-archive__row-img {
    flex: 0 0 56px;
    width: 56px;
    height: 56px;
    border-radius: 6px;
    overflow: hidden;
    background: var(--wavio-bg-alt, #f2f1ed);
}

.wavio-archive__row-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.wavio-archive__row-title {
    flex: 1;
    min-width: 0;
    font-size: var(--wavio-body, 1rem);
    line-height: 1.4;
}

.wavio-archive__row-title strong {
    color: var(--wavio-primary, #c8102e);
}

.wavio-archive__row-sub {
    font-weight: 400;
    color: var(--wavio-text-muted, #6b6b6b);
}

.wavio-archive__row-meta {
    display: flex;
    gap: 6px;
    flex-shrink: 0;
}

.wavio-archive__row-badge {
    font-size: 0.8rem;
    font-weight: 400;
    letter-spacing: -0.02em;
    padding: 5px 12px;
    background: var(--wavio-badge-bg, #1c1c1c);
    color: var(--wavio-badge-text, #fff);
    border-radius: 999px;
    white-space: nowrap;
}

.wavio-archive__row-price {
    flex-shrink: 0;
    font-size: var(--wavio-body, 1rem);
    text-align: right;
    white-space: nowrap;
}

.wavio-archive__row-price strong {
    font-weight: 700;
    color: var(--wavio-text, #2a2a2a);
}

@media (max-width: 768px) {
    .wavio-archive__row {
        display: grid;
        grid-template-columns: 56px 1fr auto;
        grid-template-rows: auto auto;
        gap: 4px 10px;
        padding: 10px;
    }

    .wavio-archive__row-img {
        grid-row: 1 / 3;
        width: 56px;
        height: 56px;
    }

    .wavio-archive__row-title {
        grid-column: 2 / 4;
        grid-row: 1;
        font-size: 0.9rem;
    }

    .wavio-archive__row-meta {
        grid-column: 2;
        grid-row: 2;
    }

    .wavio-archive__row-price {
        grid-column: 3;
        grid-row: 1;
        align-self: start;
    }
}

.wavio-taxonomy__hero--simple {
    min-height: auto;
    background: var(--wavio-bg-alt, #f2f1ed);
    padding: 48px 0 40px;
}

.wavio-taxonomy__hero--simple::before {
    display: none;
}

.wavio-taxonomy__hero--simple .wavio-taxonomy__title {
    color: var(--wavio-heading, var(--wavio-text, #2a2a2a));
}

.wavio-taxonomy__intro {
    padding: 0;
}

.wavio-taxonomy__intro .wavio-container {
    max-width: var(--wavio-container, 1400px);
    font-size: 1.05rem;
    line-height: 1.75;
    color: #444;
}

.wavio-taxonomy__tours {
    padding: var(--wavio-section-py, 80px) 0;
}

.wavio-taxonomy__section-title {
    margin-bottom: 32px;
}

.wavio-taxonomy__seo {
    padding: var(--wavio-section-py, 80px) 0;
    background: var(--wavio-bg-alt, #f2f1ed);
}

.wavio-taxonomy__seo .wavio-container {
    max-width: var(--wavio-container, 1400px);
}

.wavio-taxonomy__seo h2 {
    margin: 32px 0 12px;
}

.wavio-taxonomy__seo h2:first-child {
    margin-top: 0;
}

.wavio-taxonomy__seo-text {
    line-height: 1.75;
    color: #444;
}

.wavio-taxonomy__seo-footer {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid rgba(0,0,0,0.08);
    color: #666;
    font-size: 0.95rem;
}

/* ── Kategorie-Buttons (Demo-Style) ─────────── */
.wavio-kat-section {
    background: #fff;
    padding: var(--wavio-section-py, 80px) 0;
}

.wavio-kat-grid + h2 {
    margin-top: 48px;
}

.wavio-kat-section__title {
    font-family: var(--wavio-font-heading, var(--wavio-font-body));
    font-weight: 700;
    font-size: var(--wavio-h2, 1.625rem);
    letter-spacing: -0.02em;
    color: var(--wavio-heading, var(--wavio-text, #2a2a2a));
    margin-bottom: 2rem;
}

.wavio-kat-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
    align-items: center;
}

.wavio-kat-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    text-decoration: none;
    color: var(--wavio-text, #2a2a2a);
    cursor: pointer;
    transition: opacity 0.3s ease;
    padding: 0.3rem 0;
}

.wavio-kat-btn:hover {
    opacity: 0.5;
    text-decoration: none;
}

.wavio-kat-icon {
    display: inline-flex;
    opacity: 0.4;
}

.wavio-kat-name {
    font-family: var(--wavio-font-heading, var(--wavio-font-body));
    font-size: clamp(1.6rem, 3vw, 2.8rem);
    font-weight: 600;
    letter-spacing: -0.03em;
    white-space: nowrap;
    line-height: 1.2;
}

.wavio-kat-img {
    width: clamp(34px, 3.5vw, 48px);
    height: clamp(34px, 3.5vw, 48px);
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
}

.wavio-kat-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.wavio-kat-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    border-radius: 100px;
    border: 1.5px solid rgba(0,0,0,0.15);
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--wavio-text-muted, #8a8578);
    padding: 0 0.4rem;
    position: relative;
    top: -0.6em;
}

@media (max-width: 768px) {
    .wavio-kat-grid {
        gap: 0.2rem 1rem;
    }

    .wavio-kat-name {
        font-size: 1.5rem;
    }

    .wavio-kat-img {
        width: 30px;
        height: 30px;
        border-radius: 6px;
    }

    .wavio-kat-count {
        min-width: 18px;
        height: 18px;
        font-size: 0.55rem;
    }
}

/* Pagination im Taxonomy-Kontext */
.wavio-taxonomy__tours .nav-links {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-top: 40px;
}

.wavio-taxonomy__tours .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 12px;
    border-radius: var(--wavio-radius, 12px);
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--wavio-text, #2a2a2a);
    background: var(--wavio-bg-alt, #f2f1ed);
    text-decoration: none;
    transition: background 0.15s ease;
}

.wavio-taxonomy__tours .page-numbers:hover {
    background: var(--wavio-primary, #c8102e);
    color: #fff;
    text-decoration: none;
}

.wavio-taxonomy__tours .page-numbers.current {
    background: var(--wavio-primary, #c8102e);
    color: #fff;
}

/* ─── Tour PDP ────────────────────────────────────────── */

.wavio-pdp {
    padding-bottom: 0;
}

/* Breadcrumb */
.wavio-pdp__breadcrumb {
    padding: 14px 0 0;
}

.wavio-pdp__breadcrumb ol {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 0.78rem;
    color: var(--wavio-text-muted, #6b6b6b);
}

.wavio-pdp__breadcrumb li + li::before {
    content: '›';
    margin: 0 6px;
    color: var(--wavio-text-muted, #6b6b6b);
}

.wavio-pdp__breadcrumb a {
    color: var(--wavio-text-muted, #6b6b6b);
    text-decoration: none;
}

.wavio-pdp__breadcrumb a:hover {
    color: var(--wavio-primary, #c8102e);
}

.wavio-pdp__breadcrumb li:last-child {
    color: var(--wavio-text, #2a2a2a);
    font-weight: 500;
}

/* Category badges in facts row */
.wavio-pdp__facts a.wavio-pdp__fact--cat {
    text-decoration: none;
    font-weight: 400;
}

.wavio-pdp__facts a.wavio-pdp__fact--cat:hover {
    opacity: 0.8;
}

/* Above the fold: 2-Spalten Grid */
.wavio-pdp__top {
    padding-top: 28px;
    padding-bottom: 40px;
}

.wavio-pdp__top-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 24px;
    align-items: start;
}

@media (min-width: 1024px) {
    .wavio-pdp__top-grid {
        grid-template-columns: 1.1fr 1fr;
        gap: 40px;
    }
}

/* ── Galerie (links) ─────────────────────────── */
.wavio-pdp__gallery {
    position: relative;
}

.wavio-pdp__gallery-main {
    border-radius: var(--wavio-radius, 12px);
    overflow: hidden;
    background: var(--wavio-bg-alt, #f2f1ed);
}

.wavio-pdp__gallery-main {
    position: relative;
}

.wavio-pdp__gallery-main img {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    display: block;
}

.wavio-pdp__gallery--dots .wavio-pdp__gallery-main img {
    aspect-ratio: 3/2.4;
}

/* Pfeile auf dem Bild */
.wavio-pdp__gallery-prev,
.wavio-pdp__gallery-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: none;
    background: rgba(255,255,255,0.9);
    color: var(--wavio-text, #2a2a2a);
    font-size: 1.2rem;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s, transform 0.15s;
    box-shadow: 0 1px 4px rgba(0,0,0,0.15);
}

.wavio-pdp__gallery-prev { left: 12px; }
.wavio-pdp__gallery-next { right: 12px; }

.wavio-pdp__gallery-prev:hover,
.wavio-pdp__gallery-next:hover {
    background: #fff;
    transform: translateY(-50%) scale(1.05);
}

/* Dots — im Bild unten links, Frosted-Glass Badge */
.wavio-pdp__gallery-dots {
    position: absolute;
    bottom: 14px;
    left: 16px;
    z-index: 3;
    display: flex;
    gap: 6px;
    background: rgba(0,0,0,0.25);
    backdrop-filter: blur(20px) saturate(1.8);
    -webkit-backdrop-filter: blur(20px) saturate(1.8);
    padding: 6px 10px;
    border-radius: 999px;
}

.wavio-pdp__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    border: none;
    padding: 0;
    background: rgba(255,255,255,0.5);
    cursor: pointer;
    transition: background 0.15s, transform 0.15s;
}

.wavio-pdp__dot.is-active {
    background: #fff;
    transform: scale(1.25);
}

.wavio-pdp__dot:hover:not(.is-active) {
    background: rgba(255,255,255,0.8);
}

/* Thumbs (Weiermair-Style) */
.wavio-pdp__gallery-thumbs {
    display: flex;
    gap: 8px;
    margin-top: 10px;
    overflow-x: auto;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
}

.wavio-pdp__thumb {
    flex-shrink: 0;
    width: 72px;
    height: 54px;
    border-radius: 6px;
    overflow: hidden;
    border: 2px solid transparent;
    cursor: pointer;
    padding: 0;
    background: none;
    opacity: 0.6;
    transition: opacity 0.15s, border-color 0.15s;
}

.wavio-pdp__thumb:hover,
.wavio-pdp__thumb.is-active {
    opacity: 1;
    border-color: var(--wavio-primary, #c8102e);
}

.wavio-pdp__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Frühbucher-Badge auf dem Bild */
.wavio-pdp__gallery-badge {
    position: absolute;
    top: 12px;
    left: 12px;
    z-index: 2;
    background: var(--wavio-primary, #c8102e);
    color: #fff;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 5px 12px;
    border-radius: 6px;
}

/* +X Thumb Button */
.wavio-pdp__thumb--more {
    background: rgba(0,0,0,0.06);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    font-weight: 700;
    color: #555;
    opacity: 1;
}

.wavio-pdp__thumb--more:hover {
    background: rgba(0,0,0,0.1);
    border-color: transparent;
}

/* ── Rechte Seite: Titel, Facts, Highlights, CTA ── */
.wavio-pdp__panel {
    padding-top: 0;
}

@media (min-width: 1024px) {
    .wavio-pdp__panel {
        padding-top: 4px;
    }
}

/* Titel */
.wavio-pdp__title {
    font-size: var(--wavio-h1, 2rem);
    line-height: 1.15;
    margin-bottom: 4px;
    font-weight: 700;
}

.wavio-pdp__subtitle {
    font-size: var(--wavio-body, 1rem);
    color: var(--wavio-text-muted, #6b6b6b);
    margin: 2px 0 0;
    line-height: 1.4;
}

/* Key Fact Pills */
.wavio-pdp__facts {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 14px;
    margin-bottom: 4px;
}

.wavio-pdp__fact {
    font-size: 0.8rem;
    font-weight: 400;
    letter-spacing: -0.02em;
    background: var(--wavio-badge-bg, #1c1c1c);
    color: var(--wavio-badge-text, #fff);
    padding: 5px 12px;
    border-radius: 999px;
    white-space: nowrap;
    border: 1px solid transparent;
}

.wavio-pdp__fact--price {
    font-size: 0.8rem;
    font-weight: 700;
    background: none;
    border-color: var(--wavio-primary, #c8102e);
    color: var(--wavio-primary, #c8102e);
}

.wavio-pdp__fact--perday {
    font-size: 0.8rem;
    font-weight: 500;
}

/* Category badges gleiches Sizing */
.wavio-pdp__facts a.wavio-pdp__fact--cat {
    font-size: 0.8rem;
}

/* Highlights */
.wavio-pdp__highlights {
    list-style: none;
    padding: 0;
    margin: 14px 0 16px;
}

.wavio-pdp__highlights li {
    padding: 4px 0 4px 26px;
    position: relative;
    font-size: var(--wavio-body, 1rem);
    font-weight: 400;
    line-height: 1.4;
    color: var(--wavio-text, #2a2a2a);
}

.wavio-pdp__highlights li::before {
    content: '';
    position: absolute;
    left: 2px;
    top: 11px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--wavio-primary, #c8102e);
}

.wavio-pdp__highlights li::after {
    content: '\2713';
    position: absolute;
    left: 5px;
    top: 11px;
    font-size: 0.55rem;
    font-weight: 900;
    color: #fff;
    line-height: 14px;
}

.wavio-pdp__highlights-more {
    color: #888;
    font-style: italic;
}

/* Preis — jetzt als Fact-Badge im Header, diese Klassen bleiben fuer Preistabelle */

/* CTA */
.wavio-pdp__cta {
    width: 100%;
    text-align: center;
    justify-content: center;
    font-size: 0.95rem;
    padding: 14px 24px;
    margin-top: 16px;
    margin-bottom: 14px;
}

/* Trust Signals */
.wavio-pdp__trust {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.wavio-pdp__trust span {
    font-size: 0.78rem;
    color: #888;
    line-height: 1.4;
    padding-left: 18px;
    position: relative;
}

.wavio-pdp__trust span::before {
    content: '\2713';
    position: absolute;
    left: 0;
    color: #6ab04c;
    font-weight: 700;
}

/* ── Accordion Details ───────────────────────── */
.wavio-pdp__details {
    padding-top: 20px;
    padding-bottom: 48px;
}

/* Content-Blöcke (offen, weiße Karte) */
.wavio-pdp__block {
    background: #fff;
    border-radius: var(--wavio-radius, 12px);
    padding: 24px 24px;
    margin-bottom: 16px;
}

.wavio-pdp__block-title {
    font-size: var(--wavio-h2, 1.625rem);
    font-weight: 700;
    margin: 24px 0 10px;
    color: var(--wavio-text, #2a2a2a);
}

.wavio-pdp__block-title:first-child {
    margin-top: 0;
}

.wavio-pdp__block-body {
    font-size: var(--wavio-body, 1rem);
    line-height: 1.7;
    color: #444;
}

.wavio-pdp__prose {
    line-height: 1.75;
}

.wavio-pdp__prose h3,
.wavio-pdp__prose h4 {
    margin: 20px 0 8px;
    color: var(--wavio-text, #2a2a2a);
}

.wavio-pdp__prose p {
    margin-bottom: 12px;
}

/* Leistungen in Accordion */
.wavio-pdp__leistungen ul {
    list-style: none;
    padding: 0;
    columns: 1;
}


.wavio-pdp__leistungen li {
    padding: 4px 0 4px 26px;
    position: relative;
    font-size: var(--wavio-body, 1rem);
    break-inside: avoid;
    line-height: 1.4;
}

.wavio-pdp__leistungen li::before {
    content: '';
    position: absolute;
    left: 2px;
    top: 11px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--wavio-primary, #c8102e);
}

.wavio-pdp__leistungen li::after {
    content: '\2713';
    position: absolute;
    left: 5px;
    top: 11px;
    font-size: 0.55rem;
    font-weight: 900;
    color: #fff;
    line-height: 14px;
}

/* Preistabelle (Pakete) */
.wavio-pdp__price-table {
    margin: 0;
}

.wavio-pdp__price-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 18px 24px;
    background: #fff;
    border-radius: var(--wavio-radius, 12px);
    margin-bottom: 8px;
    font-size: var(--wavio-body, 1rem);
}

.wavio-pdp__price-row:last-child {
    margin-bottom: 0;
}

.wavio-pdp__price-row dt {
    flex: 1;
    min-width: 0;
}

.wavio-pdp__price-row dd {
    flex-shrink: 0;
    font-weight: 600;
    text-align: right;
    white-space: nowrap;
    margin: 0;
}

.wavio-pdp__price-row del {
    font-size: 0.8em;
    opacity: 0.5;
    margin-right: 4px;
}

.wavio-pdp__price-row ins {
    text-decoration: none;
    color: var(--wavio-primary, #c8102e);
}

/* Frühbucher Staffel */
.wavio-pdp__eb-steps {
    margin-top: 12px;
}

.wavio-pdp__eb-steps h4 {
    font-size: var(--wavio-body, 1rem);
    margin: 0 0 10px;
}

.wavio-pdp__eb-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 18px 24px;
    font-size: var(--wavio-body, 1rem);
    background: #fff;
    border-radius: var(--wavio-radius, 12px);
    margin-bottom: 6px;
}

.wavio-pdp__eb-row:last-child {
    margin-bottom: 0;
}

.wavio-pdp__eb-row strong {
    flex-shrink: 0;
    color: var(--wavio-primary, #c8102e);
}

.wavio-pdp__eb-row.is-past {
    opacity: 0.4;
    text-decoration: line-through;
}

.wavio-pdp__eb-row.is-active em {
    font-style: normal;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--wavio-accent, #00843e);
    text-transform: uppercase;
}

/* Hotel */
.wavio-pdp__hotel-name {
    font-size: var(--wavio-h3, 1.25rem);
    font-weight: 600;
    margin: 0 0 10px;
    color: var(--wavio-text, #2a2a2a);
}

.wavio-pdp__hotel-name:last-child {
    margin-bottom: 0;
}

.wavio-pdp__hotel-row {
    padding: 18px 24px;
    background: #fff;
    border-radius: var(--wavio-radius, 12px);
    margin-bottom: 8px;
    font-size: var(--wavio-body, 1rem);
    font-weight: 600;
}

.wavio-pdp__hotel-name:not(:first-of-type) {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid rgba(0,0,0,0.06);
}

.wavio-pdp__hotel-img {
    width: 100%;
    aspect-ratio: 16/9;
    object-fit: cover;
    border-radius: var(--wavio-radius, 12px);
    margin-bottom: 16px;
    display: block;
}

/* Zustiege Rows */
.wavio-pdp__zustiege-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.wavio-pdp__zustiege-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 24px;
    background: #fff;
    border-radius: var(--wavio-radius, 12px);
    font-size: var(--wavio-body, 1rem);
}

.wavio-pdp__zustiege-info {
    flex: 1;
    min-width: 0;
}

.wavio-pdp__zustiege-info strong {
    font-weight: 600;
}

.wavio-pdp__zustiege-detail {
    font-weight: 400;
    color: var(--wavio-text-muted, #6b6b6b);
}

.wavio-pdp__zustiege-price {
    flex-shrink: 0;
    font-weight: 600;
    white-space: nowrap;
    color: var(--wavio-text, #2a2a2a);
    text-align: right;
}

@media (max-width: 599px) {
    .wavio-pdp__zustiege-row {
        padding: 12px 16px;
    }
}

/* Karte */
.wavio-pdp__map {
    border-radius: var(--wavio-radius, 12px);
    overflow: hidden;
}

.wavio-pdp__map iframe {
    width: 100%;
    height: 400px;
    border: none;
}

/* ── Vollbreite Galerie ──────────────────────── */
.wavio-pdp__gallery-full {
    padding: 48px 0;
    background: var(--wavio-bg-alt, #f7f7f7);
}

.wavio-pdp__gallery-full h2 {
    margin-bottom: 24px;
}

.wavio-pdp__gallery-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
}

@media (min-width: 600px) {
    .wavio-pdp__gallery-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (min-width: 1024px) {
    .wavio-pdp__gallery-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.wavio-pdp__gallery-cell {
    display: block;
    border-radius: var(--wavio-radius, 12px);
    overflow: hidden;
}

.wavio-pdp__gallery-cell img {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    display: block;
    transition: transform 0.2s;
}

.wavio-pdp__gallery-cell:hover img {
    transform: scale(1.04);
}

/* ── Cross-Sell ──────────────────────────────── */
.wavio-pdp__crosssell {
    padding: 48px 0 64px;
}

.wavio-pdp__crosssell h2 {
    margin-bottom: 24px;
}

/* ── Tour Card Theme Overrides ───────────────── */
.l7-tour-card.l7-tour-card {
    border-radius: var(--wavio-radius, 12px);
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}

.l7-tour-card.l7-tour-card:hover {
    transform: none;
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}

.l7-tour-card .l7-tour-card__title {
    font-family: var(--wavio-font-heading, var(--wavio-font-body));
    color: var(--wavio-heading, var(--wavio-text, #2a2a2a));
    letter-spacing: -0.02em;
}

.l7-tour-card .l7-tour-card__body {
    font-family: var(--wavio-font-body);
}

.l7-tour-card .l7-tour-card__price {
    color: var(--wavio-primary, #c8102e);
}

.l7-tour-card .l7-tour-card__date {
    font-family: var(--wavio-font-body);
}

.l7-tour-card .l7-tour-card__excerpt {
    font-family: var(--wavio-font-body);
    color: var(--wavio-text-muted, #6b6b6b);
}

.l7-tour-card .l7-badge {
    backdrop-filter: blur(60px);
    -webkit-backdrop-filter: blur(60px);
    background: rgba(0,0,0,0.35);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.12);
}

/* ── Tour List Layout (1-Spalte, eigenes Theme-Layout) ── */
.wavio-tour-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.wavio-tour-list__item {
    display: grid;
    grid-template-columns: 1fr 2fr;
    background: #fff;
    border-radius: var(--wavio-radius, 12px);
    overflow: hidden;
    text-decoration: none;
    color: var(--wavio-text, #2a2a2a);
    transition: box-shadow 0.25s ease;
}

.wavio-tour-list__image {
    position: relative;
    overflow: hidden;
    min-height: 0;
}

.wavio-tour-list__image img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.4s ease;
}

.wavio-tour-list__item:hover {
    box-shadow: 0 8px 32px rgba(0,0,0,0.1);
    text-decoration: none;
}

.wavio-tour-list__item:hover .wavio-tour-list__image img {
    transform: scale(1.04);
}

.wavio-tour-list__badge {
    position: absolute;
    top: 12px;
    left: 12px;
    font-size: 0.75rem;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(0,0,0,0.35);
    backdrop-filter: blur(60px);
    -webkit-backdrop-filter: blur(60px);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.12);
}

.wavio-tour-list__badge--featured {
    background: var(--wavio-primary, #c8102e);
    color: #fff;
    border: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.wavio-tour-list__body {
    padding: 24px 28px;
    display: flex;
    flex-direction: column;
    font-family: var(--wavio-font-body);
    min-height: 0;
    overflow: hidden;
}

.wavio-tour-list__title {
    font-family: var(--wavio-font-heading, var(--wavio-font-body));
    font-size: var(--wavio-h3, 1.25rem);
    font-weight: 700;
    color: var(--wavio-heading, var(--wavio-text, #2a2a2a));
    letter-spacing: -0.02em;
    margin: 0 0 4px;
}

.wavio-tour-list__subtitle {
    font-size: var(--wavio-body, 1rem);
    color: var(--wavio-text-muted, #6b6b6b);
    margin: 0 0 10px;
}

.wavio-tour-list__facts {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 12px;
}

.wavio-tour-list__fact {
    font-size: 0.8rem;
    font-weight: 400;
    letter-spacing: -0.02em;
    background: var(--wavio-badge-bg, #1c1c1c);
    color: var(--wavio-badge-text, #fff);
    padding: 4px 10px;
    border-radius: 999px;
    white-space: nowrap;
}

.wavio-tour-list__highlights {
    list-style: none;
    padding: 0;
    margin: 0 0 auto;
}

.wavio-tour-list__highlights li {
    padding: 3px 0 3px 22px;
    position: relative;
    font-size: var(--wavio-body, 1rem);
    line-height: 1.4;
}

.wavio-tour-list__highlights li::before {
    content: '';
    position: absolute;
    left: 2px;
    top: 9px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: var(--wavio-primary, #c8102e);
}

.wavio-tour-list__highlights li::after {
    content: '\2713';
    position: absolute;
    left: 4.5px;
    top: 9px;
    font-size: 0.5rem;
    font-weight: 900;
    color: #fff;
    line-height: 12px;
}

.wavio-tour-list__fact--price {
    background: var(--wavio-primary, #c8102e);
    color: #fff;
    border-color: var(--wavio-primary, #c8102e);
    font-weight: 600;
}

.wavio-tour-list__footer {
    margin-top: auto;
    padding-top: 14px;
}

.wavio-tour-list__cta {
    display: inline-block;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--wavio-primary, #c8102e);
    padding: 10px 24px;
    border: 1px solid var(--wavio-primary, #c8102e);
    border-radius: 30px;
    white-space: nowrap;
    transition: background 0.2s, color 0.2s;
}

.wavio-tour-list__item:hover .wavio-tour-list__cta {
    background: var(--wavio-primary, #c8102e);
    color: #fff;
    opacity: 1;
}

/* List responsive */
@media (max-width: 599px) {
    .wavio-tour-list__item {
        grid-template-columns: 1fr;
    }

    .wavio-tour-list__image {
        aspect-ratio: 16/9;
    }

    .wavio-tour-list__body {
        padding: 16px 18px;
    }

    .wavio-tour-list__footer {
        flex-direction: column;
        align-items: flex-start;
        gap: 10px;
    }
}

/* ── Sticky Bottom Bar (alle Viewports) ──────── */
.wavio-pdp__bottom-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 90;
    background: rgba(255,255,255,0.3);
    -webkit-backdrop-filter: blur(60px);
    backdrop-filter: blur(60px);
    border-top: 1px solid rgba(0,0,0,0.06);
    padding: 10px 0;
    transform: translateY(100%);
    transition: transform 0.25s ease;
}

.wavio-pdp__bottom-bar.is-visible {
    transform: translateY(0);
}

.wavio-pdp__bottom-bar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    max-width: var(--wavio-container, 1400px);
    margin: 0 auto;
    padding: 0 20px;
}

.wavio-pdp__bottom-bar-thumb {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 6px;
    overflow: hidden;
}

.wavio-pdp__bottom-bar-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wavio-pdp__bottom-bar-info {
    flex: 1;
    min-width: 0;
    display: none;
}

@media (min-width: 768px) {
    .wavio-pdp__bottom-bar-info {
        display: block;
    }
}

.wavio-pdp__bottom-bar-title {
    font-size: 0.9rem;
    font-weight: 700;
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wavio-pdp__bottom-bar-meta {
    font-size: 0.78rem;
    color: #444;
}

.wavio-pdp__bottom-bar-price {
    display: flex;
    align-items: baseline;
    gap: 6px;
    flex-shrink: 0;
}

.wavio-pdp__bottom-bar-price del {
    font-size: 0.82rem;
    color: #555;
}

.wavio-pdp__bottom-bar-price strong {
    font-size: 1.3rem;
    color: var(--wavio-primary, #c8102e);
}

.wavio-pdp__bottom-bar-price span {
    font-size: 0.78rem;
    color: #444;
}

.wavio-pdp__bottom-bar .wavio-btn {
    flex-shrink: 0;
    padding: 12px 24px;
    border-radius: 30px;
}

/* Platz fuer die Bar */
.wavio-pdp {
    padding-bottom: 72px;
}

/* ── Lightbox ────────────────────────────────── */
.wavio-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(0,0,0,0.92);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s;
}

.wavio-lightbox[aria-hidden="false"] {
    opacity: 1;
    pointer-events: auto;
}

.wavio-lightbox__img {
    max-width: 90vw;
    max-height: 85vh;
    object-fit: contain;
    border-radius: 4px;
}

.wavio-lightbox__close,
.wavio-lightbox__prev,
.wavio-lightbox__next {
    position: absolute;
    background: none;
    border: none;
    color: #fff;
    cursor: pointer;
    padding: 12px;
    font-size: 2rem;
    line-height: 1;
    opacity: 0.7;
    transition: opacity 0.15s;
}

.wavio-lightbox__close:hover,
.wavio-lightbox__prev:hover,
.wavio-lightbox__next:hover {
    opacity: 1;
}

.wavio-lightbox__close {
    top: 16px;
    right: 20px;
    font-size: 2.4rem;
}

.wavio-lightbox__prev {
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 3rem;
}

.wavio-lightbox__next {
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 3rem;
}

.wavio-lightbox__counter {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(255,255,255,0.7);
    font-size: 0.85rem;
    font-variant-numeric: tabular-nums;
}

/* ── PDP Mobile Responsive ─────────────────── */
@media (max-width: 599px) {
    .wavio-pdp__top {
        padding-top: 16px;
        padding-bottom: 24px;
    }

    .wavio-pdp__block {
        padding: 20px 16px;
        margin-bottom: 12px;
    }

    .wavio-pdp__gallery-prev,
    .wavio-pdp__gallery-next {
        width: 34px;
        height: 34px;
        font-size: 1.1rem;
    }

    .wavio-pdp__gallery-prev { left: 8px; }
    .wavio-pdp__gallery-next { right: 8px; }



    .wavio-pdp__bottom-bar-inner {
        padding: 0 12px;
    }

    .wavio-pdp__bottom-bar .wavio-btn {
        padding: 10px 18px;
        font-size: 0.88rem;
    }

    .wavio-lightbox__prev,
    .wavio-lightbox__next {
        font-size: 2rem;
    }

    .wavio-lightbox__img {
        max-width: 95vw;
        max-height: 80vh;
    }
}

@media (min-width: 600px) and (max-width: 1023px) {
    .wavio-pdp__top-grid {
        gap: 28px;
    }

    .wavio-pdp__details .wavio-container {
        max-width: 800px;
    }
}

/* ─── Team ───────────────────────────────────────────── */

.wavio-team--grouped {
    max-width: var(--wavio-container, 1400px);
    margin: 0 auto 48px;
    padding: 0 20px;
}

@media (min-width: 1024px) {
    .wavio-team--grouped {
        padding: 0 40px;
    }
}

.wavio-team__department {
    font-family: var(--wavio-font-heading, var(--wavio-font-body));
    font-size: var(--wavio-h2, 1.625rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--wavio-heading, var(--wavio-text, #2a2a2a));
    margin-bottom: 20px;
}

.wavio-team__department-desc {
    font-size: var(--wavio-body, 1rem);
    color: var(--wavio-text-muted, #6b6b6b);
    margin-bottom: 20px;
}

.wavio-team__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

.wavio-team-card {
    background: #fff;
    border-radius: var(--wavio-radius, 12px);
    overflow: hidden;
    text-align: left;
    display: flex;
    flex-direction: column;
}

.wavio-team-card__photo {
    overflow: hidden;
    aspect-ratio: 1/1;
    background: var(--wavio-bg-alt, #f2f1ed);
}

.wavio-team-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.wavio-team-card__body {
    padding: 16px 20px 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.wavio-team-card__name {
    font-family: var(--wavio-font-heading, var(--wavio-font-body));
    font-size: var(--wavio-h3, 1.25rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--wavio-heading, var(--wavio-text, #2a2a2a));
    margin: 0 0 4px;
}

.wavio-team-card__position {
    font-size: var(--wavio-body, 1rem);
    color: var(--wavio-text-muted, #6b6b6b);
    margin: 0 0 8px;
}

.wavio-team-card__gebiet {
    font-size: var(--wavio-body, 1rem);
    color: var(--wavio-text-muted, #6b6b6b);
    margin: 0 0 8px;
}

.wavio-team-card__beschreibung {
    font-size: var(--wavio-body, 1rem);
    color: var(--wavio-text-muted, #6b6b6b);
    margin: 0 0 12px;
    line-height: 1.5;
}

.wavio-team-card__contact {
    list-style: none;
    padding: 0;
    margin: auto 0 0;
    font-size: 0.85rem;
    padding-top: 8px;
}

.wavio-team-card__contact li {
    margin-bottom: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wavio-team-card__contact a {
    color: var(--wavio-primary, #c8102e);
    text-decoration: none;
}

.wavio-team-card__contact a:hover {
    opacity: 0.7;
}

/* Compact card (ohne Foto, z.B. Fahrer) */
.wavio-team-card--compact {
    padding: 18px 24px;
    text-align: left;
}

.wavio-team-card--compact .wavio-team-card__name {
    margin: 0 0 2px;
}

.wavio-team-card--compact .wavio-team-card__body {
    padding: 0;
}

/* Team auf normaler Page (wavio-container) */
.wavio-page .wavio-team--grouped {
    max-width: none;
    padding: 0;
}

@media (max-width: 1024px) {
    .wavio-team__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .wavio-team__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .wavio-team__grid {
        grid-template-columns: 1fr;
    }
}

/* ─── Standorte ──────────────────────────────────────── */

.wavio-standorte {
    display: flex;
    flex-direction: column;
    gap: 48px;
}

.wavio-standort {
    padding-bottom: 48px;
    border-bottom: 1px solid rgba(0,0,0,0.06);
}

.wavio-standort:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.wavio-standort__name {
    font-family: var(--wavio-font-heading, var(--wavio-font-body));
    font-size: var(--wavio-h2, 1.625rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--wavio-heading, var(--wavio-text, #2a2a2a));
    margin-bottom: 16px;
}

.wavio-standort__details {
    background: #fff;
    border-radius: var(--wavio-radius, 12px);
    padding: 24px;
    margin-bottom: 24px;
}

.wavio-standort__details p {
    font-size: var(--wavio-body, 1rem);
    color: var(--wavio-text, #2a2a2a);
    margin: 0 0 8px;
}

.wavio-standort__details a {
    color: var(--wavio-primary, #c8102e);
    text-decoration: none;
}

.wavio-standort__details a:hover {
    opacity: 0.7;
}

.wavio-standort__hours {
    color: var(--wavio-text-muted, #6b6b6b) !important;
}

/* ─── Fuhrpark Cards (Override) ──────────────────────── */

.wavio-fuhrpark__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}

@media (max-width: 1024px) {
    .wavio-fuhrpark__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .wavio-fuhrpark__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .wavio-fuhrpark__grid {
        grid-template-columns: 1fr;
    }
}

.wavio-fuhrpark-card {
    background: #fff;
    border-radius: var(--wavio-radius, 10px);
    overflow: hidden;
    transition: box-shadow 0.2s;
    display: flex;
    flex-direction: column;
}

.wavio-fuhrpark-card:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
}

.wavio-fuhrpark-card__img {
    width: 100%;
    aspect-ratio: 16/10;
    object-fit: cover;
    display: block;
}

.wavio-fuhrpark-card__body {
    padding: 16px 20px 20px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.wavio-fuhrpark-card__name {
    font-family: var(--wavio-font-heading, var(--wavio-font-body));
    font-size: var(--wavio-h3, 1.25rem);
    font-weight: 500;
    letter-spacing: -0.02em;
    color: var(--wavio-heading, var(--wavio-text, #2a2a2a));
    margin: 0 0 10px;
}

.wavio-fuhrpark-card__name a {
    color: inherit;
    text-decoration: none;
}

.wavio-fuhrpark-card__hersteller {
    font-size: var(--wavio-body, 1rem);
    color: var(--wavio-text-muted, #6b6b6b);
    margin: 0 0 8px;
}

.wavio-fuhrpark-card__facts {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 12px;
}

.wavio-fuhrpark-card__fact {
    font-size: 0.8rem;
    font-weight: 400;
    letter-spacing: -0.02em;
    background: var(--wavio-badge-bg, #1c1c1c);
    color: var(--wavio-badge-text, #fff);
    padding: 4px 10px;
    border-radius: 999px;
}

.wavio-fuhrpark-card__link {
    display: inline-block;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--wavio-primary, #c8102e);
    padding: 8px 20px;
    border: 1px solid var(--wavio-primary, #c8102e);
    border-radius: 30px;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
    margin-top: auto;
    align-self: flex-start;
}

.wavio-fuhrpark-card:hover .wavio-fuhrpark-card__link {
    background: var(--wavio-primary, #c8102e);
    color: #fff;
}

/* Fuhrpark Grouped */
.wavio-fuhrpark--grouped {
    margin-bottom: 40px;
}

.wavio-fuhrpark__type {
    font-family: var(--wavio-font-heading, var(--wavio-font-body));
    font-size: var(--wavio-h2, 1.625rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--wavio-heading, var(--wavio-text, #2a2a2a));
    margin-bottom: 16px;
}

/* Fuhrpark Archive */
.wavio-fuhrpark-archive {
    padding: 40px 0 64px;
}

/* Kontakt Grid */
.wavio-kontakt-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin: 32px 0 48px;
}

.wavio-kontakt-card {
    background: #fff;
    border-radius: var(--wavio-radius, 12px);
    padding: 24px;
}

.wavio-kontakt-card h3 {
    font-size: var(--wavio-h3, 1.25rem);
    margin-bottom: 8px;
}

.wavio-kontakt-card p {
    font-size: var(--wavio-body, 1rem);
    color: var(--wavio-text-muted, #6b6b6b);
    margin-bottom: 4px;
}

.wavio-kontakt-card a {
    color: var(--wavio-primary, #c8102e);
    text-decoration: none;
}

.wavio-kontakt-card a:hover {
    opacity: 0.7;
}

@media (max-width: 768px) {
    .wavio-kontakt-grid {
        grid-template-columns: 1fr;
    }
}

/* Business Hours — Styles sind oben bei Standort-Cards unified */

.wavio-bh__list {
    list-style: none;
    padding: 0;
    margin: 12px 0 0;
}

.wavio-bh__day {
    display: flex;
    justify-content: space-between;
    padding: 6px 0;
    border-bottom: 1px solid rgba(0,0,0,0.04);
    font-size: var(--wavio-body, 1rem);
}

.wavio-bh__day:last-child {
    border-bottom: none;
}

.wavio-bh__label {
    font-weight: 500;
    color: var(--wavio-text, #2a2a2a);
}

.wavio-bh__time {
    color: var(--wavio-text-muted, #6b6b6b);
}

.wavio-bh__day--closed .wavio-bh__time {
    color: var(--wavio-primary, #c8102e);
    opacity: 0.7;
}

.wavio-bh-live--open {
    color: var(--wavio-success);
    font-weight: 600;
}

.wavio-bh-live--closed {
    color: var(--wavio-primary, #c8102e);
    font-weight: 600;
}

.wavio-standort__maps {
    display: inline-block;
    margin-top: 8px;
    font-weight: 600;
    font-size: var(--wavio-body, 1rem);
}

.wavio-standort__team {
    margin-top: 16px;
}

.wavio-standort__team .wavio-team--grouped {
    max-width: none;
    padding: 0;
    margin-bottom: 0;
}

.wavio-standort__team .wavio-team__department {
    font-size: var(--wavio-h3, 1.25rem);
}

/* ─── Standorte Uebersicht Cards ─────────────────────── */

.wavio-standorte-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
}

@media (max-width: 599px) {
    .wavio-standorte-grid {
        grid-template-columns: 1fr;
    }
}

.wavio-standort-card {
    background: #fff;
    border-radius: var(--wavio-radius, 12px);
    padding: 28px;
    text-decoration: none;
    color: var(--wavio-text, #2a2a2a);
    display: flex;
    flex-direction: column;
    transition: box-shadow 0.2s;
}

.wavio-standort-card:hover {
    box-shadow: 0 8px 24px rgba(0,0,0,0.1);
    text-decoration: none;
}

.wavio-standort-card__name {
    font-family: var(--wavio-font-heading, var(--wavio-font-body));
    font-size: var(--wavio-h3, 1.25rem);
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--wavio-heading, var(--wavio-text, #2a2a2a));
    margin: 0 0 12px;
}

.wavio-standort-card__address,
.wavio-standort-card__phone,
.wavio-standort-card__hours {
    font-size: var(--wavio-body, 1rem);
    color: var(--wavio-text-muted, #6b6b6b);
    margin: 0 0 4px;
}

.wavio-standort-card__live,
.wavio-standort__live {
    font-size: var(--wavio-body, 1rem);
    font-weight: 600;
    padding: 8px 14px;
    border-radius: var(--wavio-radius, 12px);
    display: inline-block;
    margin-bottom: 12px;
}

.wavio-standort-card__live--open,
.wavio-standort__live--open {
    background: color-mix(in srgb, var(--wavio-success) 12%, transparent);
    color: var(--wavio-success);
}

.wavio-standort-card__live--closed,
.wavio-standort__live--closed {
    background: rgba(0,0,0,0.06);
    color: var(--wavio-text-muted, #6b6b6b);
}

.wavio-standort-card__cta {
    margin-top: auto;
    padding-top: 16px;
    font-size: var(--wavio-body, 1rem);
    font-weight: 600;
    color: var(--wavio-primary, #c8102e);
}

/* ─── Page fallback ───────────────────────────────────── */

.wavio-page .wavio-container {
    padding-top: 40px;
    padding-bottom: 48px;
}

.wavio-page h1,
.wavio-archive__title,
.wavio-fuhrpark-archive h1 {
    margin-bottom: 10px;
}

.wavio-page h1 + .wavio-page__content > p:first-child,
.wavio-archive__count,
.wavio-fuhrpark-archive__intro {
    margin-bottom: 40px;
    max-width: 800px;
    color: var(--wavio-text-muted, #6b6b6b);
}

.wavio-page__content {
    margin-top: 0;
}

.wavio-page__content > p,
.wavio-page__content > h2,
.wavio-page__content > h3,
.wavio-page__content > ul,
.wavio-page__content > ol,
.wavio-page__content > blockquote {
    max-width: 800px;
}

/* ─── 404 ─────────────────────────────────────────────── */

.wavio-404 {
    text-align: center;
    min-height: 50vh;
    display: flex;
    align-items: center;
}

/* ─── Reisebüro / Standort Detailseite ───────────────── */

.status-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; flex-shrink: 0; }
.status-dot--open  { background: #4ade80; box-shadow: 0 0 6px rgba(74,222,128,0.5); }
.status-dot--closed { background: #f87171; }

.standort-cards-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }

.standort-imgcard {
    position: relative;
    display: flex;
    aspect-ratio: 3/4;
    border-radius: var(--wavio-radius, 12px);
    overflow: hidden;
    text-decoration: none;
    color: var(--wavio-white, #fff);
    background: var(--wavio-gray-100, #f4f4f4);
}
.standort-imgcard__bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.standort-imgcard__overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,0.08) 0%, rgba(0,0,0,0.55) 100%);
}
.standort-imgcard__content {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    width: 100%;
    padding: 20px;
}
.standort-imgcard__top { display: flex; flex-direction: column; gap: 6px; }
.standort-imgcard__name {
    font-family: var(--wavio-font-heading, inherit);
    font-weight: 500;
    font-size: clamp(22px, 2.2vw, 30px);
    letter-spacing: -0.02em;
    line-height: 1.15;
    color: inherit;
    margin: 0;
}
.standort-imgcard__status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 500;
    color: rgba(255,255,255,0.85);
}
.standort-imgcard__bottom { margin-top: auto; }
.standort-imgcard__tag {
    display: inline-flex;
    align-items: center;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 4px 10px;
    background: rgba(255,255,255,0.2);
    border-radius: var(--wavio-radius-pill, 999px);
    backdrop-filter: blur(4px);
}

/* Linien Grid (Main + Sidebar) */
.linien-grid { display: grid; grid-template-columns: 1fr 340px; gap: 48px; align-items: start; }
.linien-info { min-width: 0; }
.linien-section { margin-bottom: 48px; }
.linien-section:has(.linien-offer) { margin-bottom: 80px; }
.linien-section__title {
    font-family: var(--wavio-font-heading, inherit);
    font-weight: 500;
    font-size: 18px;
    color: var(--wavio-secondary, #1c1c1c);
    margin-bottom: 20px;
    letter-spacing: -0.01em;
}
.linien-section__text { font-size: 16px; line-height: 1.5; color: var(--wavio-text, #2a2a2a); margin-bottom: 16px; }
.linien-offer { margin-top: 48px; }
.linien-offer__sub {
    font-family: var(--wavio-font-heading, inherit);
    font-weight: 500;
    font-size: 18px;
    color: var(--wavio-secondary, #1c1c1c);
    letter-spacing: -0.01em;
    margin-bottom: 20px;
}
.linien-contact { display: flex; flex-direction: column; gap: 12px; }
.linien-contact__item { display: flex; flex-direction: column; gap: 2px; }
.linien-contact__label {
    font-family: var(--wavio-font-heading, inherit);
    font-weight: 500;
    font-size: 12px;
    color: var(--wavio-secondary, #1c1c1c);
    opacity: 0.55;
}
.linien-contact__value {
    font-family: var(--wavio-font-heading, inherit);
    font-weight: 500;
    font-size: 15px;
    color: var(--wavio-secondary, #1c1c1c);
    text-decoration: none;
}
.linien-contact__value:hover { text-decoration: underline; }

/* Sidebar */
.linien-sidebar { position: sticky; top: 70px; }
.linien-sidebar__card {
    background: var(--wavio-white, #fff);
    border-radius: var(--wavio-radius, 12px);
    padding: 20px;
    margin-bottom: 12px;
}
.linien-sidebar__card--highlight { background: var(--wavio-mint, #aaf0d1); color: var(--wavio-secondary, #1c1c1c); }
.linien-sidebar__card--highlight .linien-sidebar__title { color: var(--wavio-secondary, #1c1c1c); }
.linien-sidebar__card--highlight .taxi-hotline { color: var(--wavio-secondary, #1c1c1c); }
.linien-sidebar__card--highlight .open-now__status { color: var(--wavio-secondary, #1c1c1c); }
.linien-sidebar__card--highlight .open-now__today { color: rgba(0,0,0,0.65); }
.linien-sidebar__card--highlight .open-now__bar { background: rgba(0,0,0,0.15); }
.linien-sidebar__card--highlight .open-now__bar-fill { background: var(--wavio-secondary, #1c1c1c); }
.linien-sidebar__card--highlight .open-now__bar-now { background: var(--wavio-secondary, #1c1c1c); }
.linien-sidebar__card--highlight .open-now__bar-gap { background: rgba(255,255,255,0.45); }
.linien-sidebar__card--highlight .standort-detail__hours { margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(0,0,0,0.15); }
.linien-sidebar__card--highlight .standort-detail__hour-row { border-bottom-color: rgba(0,0,0,0.08); }
.linien-sidebar__card--highlight .standort-detail__hour-day,
.linien-sidebar__card--highlight .standort-detail__hour-time { color: var(--wavio-secondary, #1c1c1c); }
.linien-sidebar__card--highlight .standort-detail__hour-row--closed .standort-detail__hour-time { color: rgba(0,0,0,0.45); }
.linien-sidebar__title {
    font-family: var(--wavio-font-heading, inherit);
    font-weight: 500;
    font-size: 14px;
    color: var(--wavio-secondary, #1c1c1c);
    margin-bottom: 10px;
}
.linien-sidebar__text {
    font-family: var(--wavio-font-heading, inherit);
    font-weight: 500;
    font-size: 14px;
    color: var(--wavio-secondary, #1c1c1c);
    line-height: 1.5;
    margin-bottom: 16px;
}
.linien-sidebar__link {
    font-size: 13px;
    font-weight: 500;
    color: var(--wavio-secondary, #1c1c1c);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Telefon-Anzeige in Sidebar / Kontakt */
.taxi-hotline {
    display: block;
    font-family: var(--wavio-font-mono, monospace);
    font-weight: 500;
    font-size: 22px;
    color: var(--wavio-secondary, #1c1c1c);
    text-decoration: none;
    margin-bottom: 16px;
    letter-spacing: -0.01em;
}

/* Open-Now Status-Bar */
.open-now { display: flex; flex-direction: column; gap: 8px; margin-top: 0; }
.open-now__line { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.open-now__status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--wavio-font-heading, inherit);
    font-weight: 500;
    font-size: 13px;
}
.open-now__today {
    font-family: var(--wavio-font-heading, inherit);
    font-weight: 500;
    font-size: 13px;
    color: rgba(0,0,0,0.55);
}
.open-now__bar { position: relative; width: 100%; height: 3px; background: rgba(0,0,0,0.12); border-radius: 2px; }
.open-now__bar-fill { height: 100%; background: #4ade80; border-radius: 2px; transition: width 0.4s ease; }
.open-now__bar-now { position: absolute; top: -2px; width: 2px; height: 7px; background: var(--wavio-secondary, #1c1c1c); border-radius: 1px; transform: translateX(-50%); }
.open-now__bar-gap { position: absolute; top: 0; height: 100%; background: rgba(255,255,255,0.45); }
.open-now--closed .open-now__bar-fill { background: #f87171; }

/* Service Features (Was wir hier anbieten) */
.taxi-services { display: flex; flex-direction: column; gap: 12px; }
.taxi-service {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    background: var(--wavio-white, #fff);
    border-radius: var(--wavio-radius, 12px);
    padding: 20px;
}
a.taxi-service, .taxi-service--link { text-decoration: none; color: inherit; transition: box-shadow 0.2s; }
a.taxi-service:hover, .taxi-service--link:hover { box-shadow: 0 4px 16px rgba(0,0,0,0.06); }
.taxi-service svg { flex-shrink: 0; color: var(--wavio-secondary, #1c1c1c); margin-top: 2px; }
.taxi-service__name {
    font-family: var(--wavio-font-heading, inherit);
    font-weight: 700;
    font-size: 17px;
    color: var(--wavio-secondary, #1c1c1c);
    margin-bottom: 6px;
    letter-spacing: -0.01em;
}
.taxi-service__text {
    font-family: var(--wavio-font-heading, inherit);
    font-weight: 500;
    font-size: 16px;
    color: var(--wavio-secondary, #1c1c1c);
    line-height: 1.5;
    margin: 0;
}

/* Team Card (Demo-Pattern für Reisebüro Standortseiten) */
.team-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.linien-info .team-grid { grid-template-columns: repeat(3, 1fr); }
.team-card {
    background: var(--wavio-white, #fff);
    border-radius: var(--wavio-radius, 12px);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
}
.team-card__photo {
    width: 100%;
    aspect-ratio: 1/1;
    object-fit: cover;
    display: block;
    background: var(--wavio-gray-100, #f4f4f4);
}
.team-card__photo--initials {
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--wavio-font-heading, inherit);
    font-weight: 500;
    font-size: 28px;
    color: var(--wavio-text-muted, #6b6b6b);
}
.team-card__info { padding: 16px; display: flex; flex-direction: column; gap: 4px; }
.team-card__header { display: flex; justify-content: space-between; align-items: center; gap: 8px; width: 100%; margin-bottom: 8px; }
.team-card__name {
    font-family: var(--wavio-font-heading, inherit);
    font-weight: 500;
    font-size: 17px;
    color: var(--wavio-secondary, #1c1c1c);
    line-height: 1.2;
    letter-spacing: -0.01em;
}
.team-card__position {
    display: inline-flex;
    align-items: center;
    font-family: var(--wavio-font-mono, monospace);
    font-weight: 500;
    font-size: 11px;
    color: var(--wavio-black, #1d1d1b);
    background: var(--wavio-mint, #b8d9b8);
    border-radius: var(--wavio-radius-pill, 999px);
    padding: 3px 10px;
    white-space: nowrap;
    flex-shrink: 0;
}
.team-card__phone,
.team-card__detail {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--wavio-font-mono, monospace);
    font-weight: 500;
    font-size: 12px;
    color: var(--wavio-secondary, #1c1c1c);
    text-decoration: none;
    max-width: 100%;
}
.team-card__phone svg,
.team-card__detail svg { flex-shrink: 0; opacity: 0.5; transition: opacity 0.2s; }
.team-card__phone:hover svg,
.team-card__detail:hover svg { opacity: 1; }
.team-card__phone:hover,
.team-card__detail:hover { text-decoration: underline; text-underline-offset: 2px; }
.team-card__detail span { overflow: hidden; text-overflow: ellipsis; }

/* Angebote Embed (iframe) */
.angebote-embed { padding: 60px 0 80px; background: var(--wavio-surface, var(--wavio-gray-50, #fafafa)); }
.angebote-embed .container { max-width: var(--wavio-container, 1400px); margin: 0 auto; padding: 0 20px; }
.angebote-embed__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
.angebote-embed__title {
    font-family: var(--wavio-font-heading, inherit);
    font-weight: 500;
    font-size: clamp(22px, 2vw, 28px);
    color: var(--wavio-secondary, #1c1c1c);
    letter-spacing: -0.02em;
    margin: 0;
}
.angebote-embed__sub {
    font-family: var(--wavio-font-heading, inherit);
    font-weight: 500;
    font-size: 16px;
    color: var(--wavio-secondary, #1c1c1c);
    margin: 0;
    line-height: 1.5;
}
.angebote-embed__frame {
    position: relative;
    width: 100%;
    aspect-ratio: 4/3;
    min-height: 600px;
    max-height: 900px;
    border-radius: var(--wavio-radius, 12px);
    overflow: hidden;
    background: var(--wavio-white, #fff);
    border: 1px solid var(--wavio-gray-200, #e5e5e5);
}
.angebote-embed__iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: none; }
.angebote-embed__link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--wavio-font-mono, monospace);
    font-weight: 500;
    font-size: 13px;
    color: var(--wavio-secondary, #1c1c1c);
    text-decoration: none;
    margin-top: 16px;
    padding: 8px 16px;
    border: 1.5px solid var(--wavio-gray-200, #e5e5e5);
    border-radius: var(--wavio-radius-pill, 999px);
    transition: border-color 0.2s;
}
.angebote-embed__link:hover { border-color: var(--wavio-secondary, #1c1c1c); }

/* ─── Responsive: Reisebüro / Standort ───────────────── */

@media (max-width: 1023px) {
    .standort-cards-grid { grid-template-columns: 1fr 1fr; }
    .linien-grid { grid-template-columns: 1fr; }
    .linien-sidebar { position: static; }
    .team-grid,
    .linien-info .team-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
}

@media (max-width: 639px) {
    .standort-cards-grid { grid-template-columns: 1fr; }
    .team-grid,
    .linien-info .team-grid { grid-template-columns: 1fr 1fr; }
}

/* ─── Mobile Header ───────────────────────────────────── */

@media (max-width: 1023px) {
    .wavio-header {
        height: var(--wavio-nav-h-mobile, 56px);
    }
}

/* ─── Service & Kontakt: Standard Container-Breite + Abstand zwischen Sections ─── */
.page-id-3625 .wavio-section-wrap[data-section="page-hero"] + .wavio-section-wrap > section.page-section,
.page-id-3122 .wavio-section-wrap[data-section="page-hero"] + .wavio-section-wrap > section.page-section {
	padding-top: 0;
}
/* Inner-Sections: tighter padding + Abstand zwischen den Boxen */
.page-id-3625 .wavio-section-wrap:not([data-section="page-hero"]):not([data-section="pre-footer"]) > section,
.page-id-3122 .wavio-section-wrap:not([data-section="page-hero"]):not([data-section="pre-footer"]) > section {
	padding: 0 0 24px;
}
.page-id-3625 .wavio-section-wrap:not([data-section="page-hero"]):not([data-section="pre-footer"]):last-of-type > section,
.page-id-3122 .wavio-section-wrap:not([data-section="page-hero"]):not([data-section="pre-footer"]):last-of-type > section {
	padding-bottom: 60px;
}

/* ─── 404 ─────────────────────────────────────────────── */
.wavio-404__inner {
	max-width: 640px;
	margin: 60px auto;
	text-align: center;
}
.wavio-404__code {
	display: block;
	font-family: 'Montserrat', var(--font-display);
	font-size: clamp(80px, 14vw, 160px);
	font-weight: 700;
	line-height: 0.9;
	color: var(--wavio-gray-200);
	letter-spacing: -0.04em;
	margin-bottom: 8px;
}
.wavio-404__title {
	font-family: 'Montserrat', var(--font-display);
	font-size: clamp(28px, 4vw, 40px);
	font-weight: 600;
	color: var(--wavio-black);
	margin: 0 0 12px;
}
.wavio-404__text {
	font-size: 16px;
	color: var(--wavio-gray-600);
	margin-bottom: 32px;
}
.wavio-404__search {
	display: flex;
	gap: 8px;
	justify-content: center;
	margin-bottom: 24px;
}
.wavio-404__search input[type="search"] {
	flex: 1;
	max-width: 360px;
	padding: 12px 18px;
	border: 1px solid var(--wavio-gray-200);
	border-radius: var(--wavio-radius-pill, 999px);
	font-family: var(--font-display);
	font-size: 14px;
	background: var(--wavio-white);
}
.wavio-404__actions {
	display: flex;
	gap: 8px;
	justify-content: center;
	flex-wrap: wrap;
}
@media (max-width: 540px) {
	.wavio-404__search { flex-direction: column; }
	.wavio-404__search input[type="search"] { max-width: none; }
}
