:root {
    --ink: #0f172a;
    --ink-soft: #1e293b;
    --muted: #64748b;
    --muted-light: #94a3b8;
    --line: #e2e8f0;
    --line-soft: #f1f5f9;
    --paper: #ffffff;
    --soft: #f8fafc;
    --brand: #0d9488;
    --brand-dark: #0f766e;
    --brand-darker: #134e4a;
    --brand-light: #5eead4;
    --brand-glow: rgba(13, 148, 136, 0.18);
    --gold: #d97706;
    --gold-light: #fbbf24;
    --gold-glow: rgba(217, 119, 6, 0.18);
    --night: #020617;
    --night-soft: #0c1322;
    --white: #ffffff;
    --success: #16a34a;
    --shadow-sm: 0 2px 8px rgba(2, 6, 23, 0.06);
    --shadow: 0 20px 40px -12px rgba(2, 6, 23, 0.15);
    --shadow-lg: 0 30px 60px -20px rgba(2, 6, 23, 0.25);
    --shadow-glow: 0 8px 32px rgba(13, 148, 136, 0.16);
    --radius-sm: 8px;
    --radius: 12px;
    --radius-lg: 16px;
    --radius-xl: 24px;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: "Plus Jakarta Sans", system-ui, -apple-system, sans-serif;
    color: var(--ink);
    background: var(--soft);
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

a {
    color: inherit;
    text-decoration: none;
}

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

.skip {
    position: absolute;
    left: 16px;
    top: -80px;
    z-index: 20;
    background: var(--ink);
    color: var(--white);
    padding: 10px 14px;
}

.skip:focus {
    top: 12px;
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    display: flex;
    align-items: center;
    gap: 22px;
    min-height: 74px;
    padding: 12px clamp(18px, 4vw, 56px);
    background: rgba(255, 255, 255, .9);
    border-bottom: 1px solid var(--line);
    backdrop-filter: blur(20px) saturate(150%);
    -webkit-backdrop-filter: blur(20px) saturate(150%);
    transition: box-shadow 0.3s ease, background 0.3s ease;
}
.site-header.scrolled {
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 4px 20px rgba(2, 6, 23, 0.06);
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-width: 250px;
}

.brand-mark {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 8px;
    color: var(--white);
    background: linear-gradient(135deg, var(--brand), var(--gold));
    font-weight: 900;
}

.brand small {
    display: block;
    color: var(--muted);
    font-size: 12px;
}

.nav {
    display: flex;
    align-items: center;
    gap: 6px;
    flex: 1;
    overflow: visible;
    flex-wrap: wrap;
}

.nav a {
    padding: 8px 10px;
    border-radius: 6px;
    color: #2b3442;
    font-size: 14px;
    white-space: nowrap;
}

.nav a:hover,
.nav a[aria-current="page"] {
    background: var(--soft);
    color: var(--brand-dark);
}

.dropdown {
    position: relative;
    display: inline-block;
}

.dropbtn {
    background: transparent;
    color: #2b3442;
    font-size: 14px;
    font-weight: 600;
    border: none;
    cursor: pointer;
    padding: 8px 10px;
    border-radius: 6px;
    font-family: inherit;
    display: flex;
    align-items: center;
    gap: 4px;
    transition: all 0.2s;
}

.dropbtn .arrow {
    font-size: 10px;
    opacity: 0.7;
}

.dropdown:hover .dropbtn {
    background: var(--soft);
    color: var(--brand-dark);
}

.dropdown-content {
    display: none;
    position: absolute;
    background-color: var(--white);
    min-width: 240px;
    box-shadow: 0px 8px 24px rgba(0,0,0,0.1);
    border-radius: 8px;
    padding: 8px 0;
    z-index: 100;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 1px solid var(--line);
}

.dropdown-content a {
    color: var(--ink);
    padding: 10px 16px;
    text-decoration: none;
    display: block;
    font-size: 14px;
    border-radius: 0;
}

.dropdown-content a:hover {
    background-color: var(--soft);
    color: var(--brand-dark);
}

.dropdown:hover .dropdown-content,
.dropdown.active .dropdown-content {
    display: block;
}

@media (max-width: 980px) {
    .dropdown.active .dropdown-content {
        position: static;
        transform: none;
        box-shadow: none;
        border: none;
        min-width: 100%;
        background: var(--soft);
        margin-top: 8px;
        border-radius: 8px;
    }
}

.header-cta,
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 12px 24px;
    border-radius: 12px;
    font-weight: 700;
    font-size: 15px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: none;
    cursor: pointer;
}

.header-cta {
    color: var(--white);
    background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);
    box-shadow: 0 4px 14px rgba(13, 148, 136, 0.25);
    white-space: nowrap;
}

.header-cta:hover, .btn.primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(13, 148, 136, 0.35);
    background: linear-gradient(135deg, #14b8a6 0%, var(--brand) 100%);
}

.hero {
    position: relative;
    min-height: clamp(680px, 92vh, 880px);
    display: grid;
    align-items: center;
    overflow: hidden;
    color: var(--white);
    isolation: isolate;
}

.hero picture,
.hero img,
.hero-overlay {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
}

.hero img {
    object-fit: cover;
    transform: scale(1.05);
    animation: heroZoomIn 1.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

@keyframes heroZoomIn {
    from { transform: scale(1.12); opacity: 0.7; }
    to { transform: scale(1.02); opacity: 1; }
}

.hero-overlay {
    background:
        radial-gradient(circle at 25% 50%, rgba(13, 148, 136, 0.25) 0%, transparent 50%),
        linear-gradient(105deg, rgba(2, 6, 23, .92) 0%, rgba(2, 6, 23, .72) 38%, rgba(2, 6, 23, .35) 65%, rgba(2, 6, 23, .15) 100%);
}

.hero::after {
    content: '';
    position: absolute;
    inset: auto 0 0 0;
    height: 120px;
    background: linear-gradient(180deg, transparent, var(--soft));
    z-index: 2;
    pointer-events: none;
}

.hero-content {
    position: relative;
    z-index: 3;
    width: min(780px, calc(100% - 36px));
    margin-left: clamp(18px, 7vw, 96px);
    padding: 40px 44px;
    background: rgba(8, 14, 26, 0.55);
    backdrop-filter: blur(20px) saturate(140%);
    -webkit-backdrop-filter: blur(20px) saturate(140%);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: var(--radius-lg);
    box-shadow:
        0 30px 60px rgba(0, 0, 0, 0.4),
        0 0 0 1px rgba(255, 255, 255, 0.05) inset,
        0 1px 0 0 rgba(255, 255, 255, 0.15) inset;
    animation: heroFadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
    animation-delay: 0.2s;
}

@keyframes heroFadeUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}

.hero-content::before {
    content: '';
    position: absolute;
    top: -1px;
    left: -1px;
    right: -1px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(94, 234, 212, 0.6), transparent);
    border-radius: var(--radius-lg) var(--radius-lg) 0 0;
}

.kicker,
.section-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    padding: 4px 12px;
    color: var(--gold);
    background: var(--gold-glow);
    border: 1px solid rgba(217, 119, 6, 0.3);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    line-height: 1.4;
}

.section-kicker {
    background: var(--brand-glow);
    color: var(--brand-dark);
    border-color: rgba(13, 148, 136, 0.25);
}

.kicker::before {
    content: '★';
    color: var(--gold-light);
}

h1,
h2,
h3,
p {
    overflow-wrap: anywhere;
}

h1 {
    max-width: 760px;
    margin: 0;
    font-size: clamp(34px, 4.5vw, 56px);
    line-height: 1.05;
    letter-spacing: -0.01em;
}

.breadcrumbs {
    margin-bottom: 24px;
    font-size: 13px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.7);
}

.breadcrumbs ol {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.breadcrumbs a {
    color: rgba(255, 255, 255, 0.9);
    text-decoration: underline;
    text-decoration-color: rgba(255, 255, 255, 0.3);
}

.breadcrumbs a:hover {
    color: var(--white);
    text-decoration-color: var(--white);
}

.breadcrumbs .separator {
    opacity: 0.5;
    margin: 0 2px;
}

.breadcrumbs [aria-current="page"] {
    color: #4ade80; /* A soft bright green for current page */
}

.lead {
    max-width: 660px;
    margin: 16px 0 0;
    color: rgba(255, 255, 255, .88);
    font-size: clamp(16px, 1.5vw, 18px);
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 32px;
}

.btn.primary {
    color: var(--white);
    background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);
    box-shadow: 0 4px 14px rgba(13, 148, 136, 0.25);
}

.btn.primary.dark {
    background: linear-gradient(135deg, var(--night) 0%, #1e293b 100%);
    box-shadow: 0 4px 14px rgba(2, 6, 23, 0.4);
}

.btn.primary.dark:hover {
    box-shadow: 0 8px 24px rgba(2, 6, 23, 0.6);
    background: linear-gradient(135deg, #1e293b 0%, var(--night) 100%);
}

.btn.ghost {
    color: var(--white);
    border: 1px solid rgba(255, 255, 255, .3);
    background: rgba(255, 255, 255, .05);
    backdrop-filter: blur(8px);
}

.btn.ghost:hover {
    background: rgba(255, 255, 255, .15);
    border-color: rgba(255, 255, 255, .6);
    transform: translateY(-2px);
}

.trust-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 32px 0 0;
    padding: 0;
    list-style: none;
}

.trust-list li {
    padding: 8px 12px;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 999px;
    background: rgba(255, 255, 255, .09);
    color: rgba(255, 255, 255, .92);
    font-size: 14px;
}

.wrap {
    width: min(1180px, calc(100% - 36px));
    margin: 0 auto;
}

.band {
    padding: clamp(58px, 8vw, 92px) 0;
    background: var(--soft);
}

.split {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 520px);
    gap: 36px;
    align-items: start;
}

h2 {
    margin: 0;
    font-size: clamp(28px, 3.5vw, 46px);
    line-height: 1.08;
}

h3 {
    margin: 0 0 10px;
    font-size: 20px;
    line-height: 1.2;
}

.keyword-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.keyword-grid a,
.keyword-grid li,
.route-columns a {
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--white);
}

.keyword-grid a,
.keyword-grid li > span {
    display: block;
    padding: 14px;
    font-weight: 800;
    box-shadow: 0 10px 24px rgba(17, 24, 39, .06);
}

.keyword-grid li {
    box-shadow: 0 10px 24px rgba(17, 24, 39, .06);
}

.keyword-grid li > span {
    box-shadow: none;
}

.service-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
    padding: clamp(58px, 8vw, 92px) 0;
}

.section-head {
    grid-column: 1 / -1;
    max-width: 760px;
    margin-bottom: 16px;
}

.service-grid article {
    min-height: 260px;
    padding: 28px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--white);
    box-shadow: var(--shadow-sm);
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    overflow: hidden;
}

.service-grid article::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, var(--brand), var(--gold));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

.service-grid article:hover {
    transform: translateY(-6px);
    border-color: var(--brand);
    box-shadow: var(--shadow-glow);
}

.service-grid article:hover::before {
    transform: scaleX(1);
}

.service-grid span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-bottom: 24px;
    background: linear-gradient(135deg, var(--brand-glow), var(--gold-glow));
    border: 1px solid rgba(13, 148, 136, 0.2);
    border-radius: 10px;
    color: var(--brand-dark);
    font-weight: 900;
    font-size: 14px;
}

@media (max-width: 980px) {
    .service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px) {
    .service-grid { grid-template-columns: 1fr; }
}

.service-grid p,
.content-block p,
.route-copy p,
.faq p,
.footer p,
.cta-panel p {
    color: var(--muted);
}

.premium-link-grid {
    display: grid;
    gap: 36px;
    margin-top: 24px;
}

.link-category-block h3 {
    margin-bottom: 16px;
    font-size: 20px;
    color: var(--brand-dark);
}

.pill-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.pill-grid a {
    padding: 10px 16px;
    color: var(--ink);
    font-size: 14px;
    font-weight: 600;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--white);
    transition: all 0.2s ease;
    box-shadow: 0 2px 6px rgba(17, 24, 39, .03);
}

.pill-grid a:hover {
    border-color: var(--brand);
    color: var(--brand);
    box-shadow: 0 8px 20px rgba(15, 118, 110, .08);
    transform: translateY(-2px);
}

.hotel-directory {
    grid-column: 1 / -1;
    margin-top: 36px;
    padding-top: 36px;
    border-top: 1px solid var(--line);
}

.hotel-directory h3 {
    font-size: 22px;
    color: var(--brand-dark);
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.hotel-directory h3::before {
    content: '';
    width: 4px;
    height: 22px;
    background: linear-gradient(180deg, var(--brand), var(--gold));
    border-radius: 4px;
}

.hotel-directory p {
    max-width: 720px;
    color: var(--muted);
    margin-bottom: 4px;
}

.hotel-search {
    position: relative;
    margin: 16px 0 8px;
    max-width: 520px;
}

.hotel-search input {
    width: 100%;
    padding: 12px 16px 12px 44px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--white);
    font-size: 14px;
    font-family: inherit;
    color: var(--ink);
    transition: all 0.2s ease;
}

.hotel-search input:focus {
    outline: none;
    border-color: var(--brand);
    box-shadow: 0 0 0 4px var(--brand-glow);
}

.hotel-search::before {
    content: '';
    position: absolute;
    left: 16px;
    top: 50%;
    width: 18px;
    height: 18px;
    transform: translateY(-50%);
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E") center/contain no-repeat;
    pointer-events: none;
}

.hotel-link-grid,
.hotel-intent-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-top: 18px;
}

.hotel-link-grid {
    max-height: 480px;
    overflow-y: auto;
    padding: 4px;
    scrollbar-width: thin;
    scrollbar-color: var(--brand) var(--soft);
}

.hotel-link-grid::-webkit-scrollbar {
    width: 8px;
}
.hotel-link-grid::-webkit-scrollbar-track {
    background: var(--soft);
    border-radius: 4px;
}
.hotel-link-grid::-webkit-scrollbar-thumb {
    background: var(--brand);
    border-radius: 4px;
}

.hotel-link-grid a.hidden { display: none; }

@media (max-width: 980px) {
    .hotel-link-grid,
    .hotel-intent-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 520px) {
    .hotel-link-grid,
    .hotel-intent-grid {
        grid-template-columns: 1fr;
    }
}

.premium-accordion {
    margin-top: 24px;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(17, 24, 39, .03);
    transition: all 0.3s ease;
}

.premium-accordion:hover {
    border-color: var(--brand);
}

.premium-accordion summary {
    cursor: pointer;
    padding: 18px 24px;
    background: var(--white);
    color: var(--brand-dark);
    font-weight: 800;
    font-size: 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    list-style: none;
}

.premium-accordion summary::-webkit-details-marker {
    display: none;
}

.premium-accordion summary::after {
    content: '+';
    font-size: 26px;
    line-height: 1;
    font-weight: 400;
    color: var(--brand);
    transition: transform 0.3s ease;
}

.premium-accordion[open] summary::after {
    transform: rotate(45deg);
}

.premium-accordion[open] summary {
    border-bottom: 1px solid var(--line);
}

.premium-accordion .hotel-link-grid {
    padding: 24px;
    margin-top: 0;
    background: var(--soft);
}

.hotel-link-grid a,
.hotel-intent-grid span {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 10px 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--white);
    color: var(--ink);
    font-size: 13px;
    font-weight: 700;
    transition: all 0.2s ease;
    position: relative;
}

.hotel-link-grid a:hover {
    border-color: var(--brand);
    color: var(--brand-dark);
    background: linear-gradient(135deg, var(--white), #f0fdfa);
    transform: translateX(2px);
    box-shadow: 0 4px 12px var(--brand-glow);
}

.hotel-seo-block {
    padding: clamp(58px, 8vw, 92px) 0 0;
}

.hotel-seo-block p {
    max-width: 900px;
    color: var(--muted);
    font-size: 18px;
}

.content-block {
    padding: clamp(58px, 8vw, 92px) 0;
}

.content-block p {
    max-width: 860px;
    font-size: 18px;
}

.facts {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    margin-top: 36px;
}

.facts div {
    padding: 28px 24px;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: linear-gradient(180deg, var(--white) 0%, var(--soft) 100%);
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    overflow: hidden;
}

.facts div::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--brand), var(--brand-dark));
    opacity: 0;
    transition: opacity 0.3s ease;
}

.facts div:hover {
    transform: translateY(-4px);
    border-color: var(--brand);
    box-shadow: var(--shadow-glow);
}

.facts div:hover::before {
    opacity: 1;
}

.facts strong {
    display: block;
    color: var(--brand-dark);
    font-size: 36px;
    line-height: 1;
    font-weight: 900;
    background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 8px;
}

.facts span {
    color: var(--muted);
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 0.3px;
}

@media (max-width: 640px) {
    .facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.faq details {
    border-top: 1px solid var(--line);
    background: transparent;
}

.faq details:last-child {
    border-bottom: 1px solid var(--line);
}

.faq summary {
    cursor: pointer;
    padding: 22px 0;
    color: var(--ink);
    font-size: 19px;
    font-weight: 900;
}

.faq details p {
    max-width: 820px;
    margin: -8px 0 24px;
}

.cta-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    margin-top: clamp(58px, 8vw, 92px);
    margin-bottom: clamp(58px, 8vw, 92px);
    padding: clamp(36px, 6vw, 64px);
    border-radius: var(--radius-lg);
    color: var(--white);
    background:
        radial-gradient(circle at 20% 30%, rgba(94, 234, 212, 0.18) 0%, transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(217, 119, 6, 0.12) 0%, transparent 50%),
        linear-gradient(135deg, var(--brand-darker) 0%, var(--night) 100%);
    box-shadow: var(--shadow-lg);
    position: relative;
    overflow: hidden;
    flex-wrap: wrap;
}

.cta-panel::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(94, 234, 212, 0.4), transparent);
}

.cta-panel h2 {
    color: var(--white);
}

@media (max-width: 720px) {
    .cta-panel {
        flex-direction: column;
        align-items: flex-start;
        text-align: left;
    }
}

.cta-panel .section-kicker,
.cta-panel p {
    color: rgba(255, 255, 255, .82);
}

.footer {
    padding: 72px 0 40px;
    color: rgba(255, 255, 255, .75);
    background:
        radial-gradient(circle at 20% 0%, rgba(13, 148, 136, 0.12) 0%, transparent 60%),
        var(--night);
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    position: relative;
}

.footer::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    width: 80%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(94, 234, 212, 0.4), transparent);
    transform: translateX(-50%);
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr;
    gap: 32px;
}

.footer strong,
.footer h2 {
    color: var(--white);
    font-weight: 800;
}

.footer h2 {
    margin: 0 0 16px;
    font-size: 13px;
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--brand-light);
}

.footer a {
    display: block;
    margin-top: 10px;
    color: rgba(255, 255, 255, 0.7);
    font-size: 14px;
    transition: color 0.2s ease, transform 0.2s ease;
}

.footer a:hover {
    color: var(--brand-light);
    transform: translateX(3px);
}

.footer p {
    color: rgba(255, 255, 255, 0.65);
    line-height: 1.6;
    font-size: 14px;
}

@media (max-width: 980px) {
    .footer-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 28px;
    }
}
@media (max-width: 520px) {
    .footer-grid {
        grid-template-columns: 1fr;
    }
}

.route-metrics {
    display: flex;
    gap: 12px;
    margin-top: 20px;
    flex-wrap: wrap;
}

.route-metrics .metric {
    background: rgba(255, 255, 255, 0.08);
    backdrop-filter: blur(10px);
    padding: 10px 16px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 700;
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: var(--white);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.booking-widget {
    margin-top: 28px;
    padding: 10px;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    border-radius: var(--radius);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.4);
}

.quick-form {
    display: flex;
    gap: 10px;
}

.quick-form input {
    flex: 1;
    padding: 12px 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    font-size: 15px;
    font-family: inherit;
    background: var(--soft);
    color: var(--ink);
    font-weight: 700;
}

.quick-form button {
    cursor: pointer;
    border: none;
    font-family: inherit;
    font-size: 15px;
}

.trust-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 20px;
}

.trust-badges .badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(94, 234, 212, 0.25);
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    color: var(--white);
    letter-spacing: 0.2px;
}

.trust-badges .badge::before {
    content: '✓';
    color: var(--brand-light);
    font-weight: 900;
}

.floating-whatsapp {
    position: fixed;
    bottom: 30px;
    right: 30px;
    background: linear-gradient(135deg, #25d366 0%, #128c7e 100%);
    color: white;
    border-radius: 999px;
    padding: 14px 24px 14px 18px;
    display: flex;
    align-items: center;
    gap: 14px;
    font-size: 15px;
    font-weight: 800;
    box-shadow: 0 14px 32px rgba(37, 211, 102, 0.36);
    z-index: 1000;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    animation: wa-pulse 2.4s infinite;
    border: 2px solid rgba(255, 255, 255, 0.15);
}

@keyframes wa-pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.7);
    }
    70% {
        box-shadow: 0 0 0 15px rgba(37, 211, 102, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(37, 211, 102, 0);
    }
}

.floating-whatsapp:hover {
    transform: translateY(-5px);
    color: white;
    animation: none;
}

.floating-whatsapp svg {
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.1));
}

.wa-text-group {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.wa-text-group small {
    font-size: 12px;
    font-weight: 600;
    opacity: 0.9;
    display: flex;
    align-items: center;
    gap: 4px;
}

.online-dot {
    width: 8px;
    height: 8px;
    background-color: #fff;
    border-radius: 50%;
    display: inline-block;
    animation: blink 1.5s infinite ease-in-out;
}

@keyframes blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}

.blog-content {
    max-width: 820px;
}

.blog-content h2 {
    font-size: 28px;
    margin: 40px 0 20px;
    color: var(--brand-dark);
}

.blog-content h3 {
    font-size: 22px;
    margin: 32px 0 16px;
    color: var(--brand-dark);
}

.cta-box .btn {
    text-decoration: none;
}

.blog-content p {
    font-size: 16px;
    line-height: 1.8;
    margin-bottom: 20px;
    color: var(--ink);
}

.blog-content ul {
    margin: 0 0 24px 20px;
}

.blog-content li {
    font-size: 16px;
    line-height: 1.8;
    margin-bottom: 8px;
    color: var(--ink);
}

@media (max-width: 980px) {
    .site-header {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .nav {
        order: 3;
        width: 100%;
        flex-basis: 100%;
        background: var(--soft);
        padding: 10px;
        border-radius: var(--radius);
        margin-top: 10px;
    }

    .header-cta {
        margin-left: auto;
    }

    .split {
        grid-template-columns: 1fr;
    }

    .service-grid,
    .hotel-link-grid,
    .hotel-intent-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .scroll-top {
        bottom: 90px;
        right: 16px;
    }
}

@media (max-width: 620px) {
    .site-header {
        padding: 8px 12px;
        align-items: center;
        gap: 8px;
    }

    .brand {
        flex: 1;
        gap: 6px;
    }

    .brand strong {
        font-size: 13px;
    }

    .brand small {
        display: none;
    }

    .header-cta {
        min-height: 36px;
        padding: 6px 12px;
        font-size: 12px;
        border-radius: 8px;
    }

    .hero {
        min-height: 600px;
        align-items: flex-start;
        padding-top: 20px;
    }

    .hero-overlay {
        background: linear-gradient(180deg, rgba(8, 16, 24, .4), rgba(8, 16, 24, .92));
    }

    .hero-content {
        width: calc(100% - 24px);
        margin: 0 auto;
        padding: 20px 16px;
        border-radius: 12px;
    }

    .nav {
        display: none;
    }
    h1 {
        font-size: 32px;
    }

    .keyword-grid,
    .service-grid,
    .hotel-link-grid,
    .hotel-intent-grid,
    .facts {
        grid-template-columns: 1fr;
    }

    .cta-panel {
        align-items: stretch;
        flex-direction: column;
    }

    .cta-panel .btn,
    .booking-widget .btn,
    .quick-form .btn {
        width: 100%;
    }

    .floating-whatsapp {
        bottom: 20px;
        right: 20px;
        left: 20px;
        justify-content: center;
        font-size: 20px;
        padding: 16px;
        border-radius: 12px;
    }

    .floating-whatsapp svg {
        width: 36px;
        height: 36px;
    }
}
/* --- Senior SEO: Rich Content & Blog Styling --- */
.rich-content {
    font-size: 1.125rem;
    line-height: 1.8;
    color: #374151;
}

.rich-content h2 {
    font-size: 1.875rem;
    margin: 2.5rem 0 1.25rem;
    color: var(--brand-dark);
}

.rich-content h3 {
    font-size: 1.5rem;
    margin: 2rem 0 1rem;
    color: var(--brand);
}

.rich-content p {
    margin-bottom: 1.5rem;
}

.rich-content ul, .rich-content ol {
    margin-bottom: 2rem;
    padding-left: 1.5rem;
}

.rich-content li {
    margin-bottom: 0.75rem;
}

.rich-content strong {
    color: var(--brand-dark);
    font-weight: 700;
}

.cta-box {
    box-shadow: 0 10px 25px rgba(0,0,0,0.05);
    transition: transform 0.3s ease;
}

.cta-box:hover {
    transform: translateY(-4px);
}

/* --- Fact Items Styling --- */
.facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 24px;
    margin-top: 32px;
    padding-top: 32px;
    border-top: 1px solid var(--line);
}

.fact-item {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.fact-item strong {
    font-size: 1.5rem;
    color: var(--brand);
}

.fact-item span {
    font-size: 0.875rem;
    color: var(--muted);
    font-weight: 500;
}

@media (max-width: 768px) {
    .rich-content {
        font-size: 1rem;
    }
    .rich-content h2 {
        font-size: 1.5rem;
    }
}

/* --- Senior SEO: Hero WhatsApp Button & Pulse Animation --- */
.btn-whatsapp-hero {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: #25d366;
    color: var(--white);
    text-decoration: none;
    padding: 12px 20px;
    border-radius: 10px;
    font-weight: 700;
    margin: 20px auto 0;
    box-shadow: 0 8px 16px rgba(37, 211, 102, 0.3);
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    font-size: 0.875rem;
    width: fit-content;
}

.btn-whatsapp-hero:hover {
    background: #22c35e;
    transform: translateY(-2px);
}

.btn-whatsapp-hero strong {
    background: #ffcc00;
    color: #000;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 0.95rem;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

@keyframes pulse {
    0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.7); }
    70% { transform: scale(1.03); box-shadow: 0 0 0 15px rgba(37, 211, 102, 0); }
    100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}

.pulse-animation {
    animation: pulse 2.5s infinite ease-in-out;
}

@media (max-width: 600px) {
    .btn-whatsapp-hero {
        font-size: 0.75rem;
        padding: 10px 16px;
        gap: 6px;
    }
    .btn-whatsapp-hero strong {
        font-size: 0.85rem;
        padding: 2px 6px;
    }
}

/* ----- New components: airport, route, reisefuehrer, fleet, tourist-info ----- */
.airport-facts,
.fleet-grid,
.reisefuehrer-grid,
.tourist-info-grid,
.contact-grid {
    display: grid;
    gap: 16px;
    margin: 24px 0;
}

.airport-facts {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
}
.fleet-grid {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
.reisefuehrer-grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.tourist-info-grid {
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.contact-grid {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.fact-card,
.info-card,
.fleet-card,
.tourist-info-card,
.contact-card {
    padding: 20px;
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(2, 6, 23, 0.04);
}

.fact-card {
    text-align: center;
}
.fact-card strong {
    display: block;
    font-size: 1rem;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 6px;
}
.fact-card span {
    font-size: 1.1rem;
    font-weight: 800;
    color: var(--brand-dark);
}

.info-card h3,
.fleet-card h3,
.tourist-info-card h3,
.contact-card h3 {
    margin: 0 0 10px;
    font-size: 1.05rem;
    color: var(--brand-dark);
}
.info-card p,
.tourist-info-card p,
.contact-card p {
    margin: 0 0 8px;
    font-size: 0.95rem;
    color: var(--ink);
    line-height: 1.55;
}
.info-card ul {
    margin: 0;
    padding-left: 18px;
}

.fleet-card {
    display: flex;
    flex-direction: column;
    height: 100%;
}
.fleet-grid { align-items: stretch; }
.fleet-card .fleet-category {
    display: inline-block;
    align-self: flex-start;
    background: var(--soft);
    color: var(--brand-dark);
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 0.8rem;
    font-weight: 700;
    margin-bottom: 12px;
}
.fleet-card ul {
    list-style: none;
    padding: 0;
    margin: 12px 0;
    flex-grow: 1;
}
.fleet-card ul li {
    padding: 4px 0;
    font-size: 0.9rem;
}
.fleet-card h4 {
    margin: 16px 0 8px;
    font-size: 0.9rem;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.feature-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.feature-tags span {
    background: var(--soft);
    color: var(--brand-dark);
    padding: 4px 10px;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 600;
}

.tip-list {
    list-style: none;
    padding: 0;
    margin: 16px 0;
}
.tip-list li {
    padding: 10px 14px;
    background: var(--soft);
    border-left: 3px solid var(--brand);
    border-radius: 4px;
    margin-bottom: 8px;
    font-size: 0.95rem;
    line-height: 1.55;
}

.route-summary {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px;
    margin: 24px 0;
    background: var(--soft);
    padding: 20px;
    border-radius: 12px;
    border: 1px solid var(--line);
}
.route-cell {
    text-align: center;
}
.route-cell span {
    display: block;
    font-size: 0.75rem;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 4px;
}
.route-cell strong {
    font-size: 1rem;
    color: var(--brand-dark);
    font-weight: 800;
}

.price-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
    margin: 20px 0;
}
.price-card {
    display: block;
    padding: 16px;
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: 10px;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 4px 12px rgba(2, 6, 23, 0.04);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.price-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(2, 6, 23, 0.08);
    border-color: var(--brand);
}
.price-card strong {
    display: block;
    font-size: 1rem;
    color: var(--brand-dark);
    margin-bottom: 4px;
}
.price-card span {
    display: block;
    font-size: 0.85rem;
    color: var(--muted);
    margin-bottom: 8px;
}
.price-card em {
    font-style: normal;
    font-weight: 800;
    color: var(--gold);
    font-size: 1.05rem;
}

.price-table {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 16px 0 32px;
    background: var(--soft);
    border-radius: 12px;
    padding: 8px;
}
.price-row {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 12px;
    padding: 12px 16px;
    background: var(--white);
    border-radius: 6px;
    text-decoration: none;
    color: inherit;
    align-items: center;
    font-size: 0.92rem;
    transition: background 0.15s ease;
}
.price-row:hover {
    background: #f0fdfa;
}
.price-row strong {
    color: var(--gold);
    text-align: right;
}
@media (max-width: 600px) {
    .price-row {
        grid-template-columns: 1fr auto;
        font-size: 0.85rem;
    }
    .price-row span:nth-child(2),
    .price-row span:nth-child(3) {
        display: none;
    }
}

.tourist-info-section {
    background: linear-gradient(180deg, var(--soft) 0%, var(--white) 100%);
}

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

/* ----- Scroll-to-top button ----- */
.scroll-top {
    position: fixed;
    bottom: 110px;
    right: 30px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--white);
    color: var(--brand-dark);
    border: 1px solid var(--line);
    cursor: pointer;
    box-shadow: var(--shadow);
    z-index: 999;
    opacity: 0;
    transform: translateY(20px);
    pointer-events: none;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}
.scroll-top.visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}
.scroll-top:hover {
    background: var(--brand);
    color: var(--white);
    transform: translateY(-2px);
}

/* ----- Reveal-on-scroll animations ----- */
.reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1), transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
.reveal.in-view {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* =============================================
   HOTEL DEEP CONTENT (rich hotel-area template)
   ============================================= */
.hotel-deep-content {
    background: var(--white);
    border-radius: var(--radius-lg);
    padding: clamp(24px, 4vw, 48px);
    margin-top: 32px;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--line);
}

.hotel-deep-content .route-info-card {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 16px;
    background: linear-gradient(135deg, var(--soft), #f0fdfa);
    padding: 24px;
    border-radius: var(--radius);
    margin-bottom: 32px;
    border: 1px solid rgba(13, 148, 136, 0.15);
}

.route-stat {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.route-stat span {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    color: var(--muted);
    font-weight: 800;
    letter-spacing: 0.6px;
}
.route-stat strong {
    font-size: 15px;
    color: var(--brand-dark);
    font-weight: 800;
    line-height: 1.3;
}

.content-prose {
    max-width: 760px;
}
.content-prose h2 {
    margin: 0 0 16px;
}
.content-prose h3 {
    margin: 32px 0 12px;
    font-size: 1.25rem;
    color: var(--brand-dark);
}
.content-prose p {
    margin: 0 0 16px;
    line-height: 1.75;
    color: var(--ink);
}
.content-prose .lead-prose {
    font-size: 1.1rem;
    color: var(--ink-soft);
    margin-bottom: 24px;
}

.content-split {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(280px, 1fr);
    gap: 40px;
    margin-top: 32px;
}
@media (max-width: 880px) {
    .content-split { grid-template-columns: 1fr; gap: 24px; }
}

.info-aside {
    display: flex;
    flex-direction: column;
    gap: 16px;
    position: sticky;
    top: 96px;
    align-self: start;
}
@media (max-width: 880px) {
    .info-aside { position: static; }
}

.aside-card {
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 20px;
    box-shadow: var(--shadow-sm);
}
.aside-card h4 {
    margin: 0 0 14px;
    font-size: 1rem;
    color: var(--brand-dark);
    font-weight: 800;
}
.aside-list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.aside-list li {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 8px 0;
    border-bottom: 1px dashed var(--line);
    font-size: 0.88rem;
}
.aside-list li:last-child { border-bottom: 0; }
.aside-list li span { color: var(--muted); font-weight: 600; }
.aside-list li strong { color: var(--ink); font-weight: 700; text-align: right; }
.aside-cta {
    margin-top: 16px;
    width: 100%;
    font-size: 14px;
}

.aside-trust {
    background: linear-gradient(135deg, var(--soft), var(--white));
}
.trust-bullets {
    list-style: none;
    padding: 0;
    margin: 0;
}
.trust-bullets li {
    position: relative;
    padding: 6px 0 6px 24px;
    font-size: 0.9rem;
    line-height: 1.5;
}
.trust-bullets li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 11px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--brand);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
    background-size: 11px 11px;
    background-repeat: no-repeat;
    background-position: center;
}

/* =============================================
   TABBED FAQ
   ============================================= */
.tab-faq {
    margin-top: 56px;
    padding-top: 32px;
    border-top: 1px solid var(--line);
}
.tab-faq h3 {
    margin: 4px 0 20px;
    font-size: 1.5rem;
}
.tab-bar {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
    margin-bottom: 16px;
    background: var(--soft);
    padding: 4px;
    border-radius: 12px;
    border: 1px solid var(--line);
}
.tab-btn {
    flex: 1 1 auto;
    min-width: 0;
    background: transparent;
    border: 0;
    padding: 10px 18px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 800;
    color: var(--muted);
    cursor: pointer;
    border-radius: 8px;
    transition: all 0.2s ease;
    white-space: nowrap;
}
.tab-btn:hover { color: var(--brand-dark); }
.tab-btn.is-active {
    background: var(--white);
    color: var(--brand-dark);
    box-shadow: var(--shadow-sm);
}
.tab-panel {
    display: none;
    padding: 8px 0;
}
.tab-panel.is-active {
    display: block;
    animation: fadeInUp 0.3s ease both;
}
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

.qa {
    border-bottom: 1px solid var(--line);
    padding: 6px 0;
}
.qa summary {
    cursor: pointer;
    padding: 14px 36px 14px 0;
    font-weight: 800;
    font-size: 1rem;
    color: var(--ink);
    list-style: none;
    position: relative;
}
.qa summary::-webkit-details-marker { display: none; }
.qa summary::after {
    content: '+';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    font-size: 24px;
    line-height: 1;
    color: var(--brand);
    font-weight: 300;
    transition: transform 0.2s ease;
}
.qa[open] summary::after { transform: translateY(-50%) rotate(45deg); }
.qa p {
    margin: 0 0 14px;
    color: var(--muted);
    line-height: 1.65;
    font-size: 0.95rem;
    max-width: 720px;
}

/* =============================================
   RELATED CARDS (nearby attractions, similar hotels)
   ============================================= */
.related-block {
    margin-top: 48px;
    padding-top: 32px;
    border-top: 1px solid var(--line);
}
.related-block h3 {
    margin: 4px 0 24px;
    font-size: 1.5rem;
}
.related-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
}
.related-card {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 20px;
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    color: inherit;
    text-decoration: none;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: var(--shadow-sm);
    position: relative;
    overflow: hidden;
}
.related-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 3px;
    background: linear-gradient(90deg, var(--brand), var(--gold));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.3s ease;
}
.related-card:hover {
    border-color: var(--brand);
    transform: translateY(-3px);
    box-shadow: var(--shadow-glow);
}
.related-card:hover::before { transform: scaleX(1); }

.related-tag {
    display: inline-block;
    padding: 3px 10px;
    background: var(--brand-glow);
    color: var(--brand-dark);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    width: fit-content;
}
.related-card strong {
    font-size: 1rem;
    color: var(--ink);
    font-weight: 800;
    line-height: 1.3;
}
.related-card p {
    font-size: 0.88rem;
    color: var(--muted);
    margin: 0;
    line-height: 1.5;
}
.related-meta {
    font-size: 0.78rem;
    color: var(--brand-dark);
    font-weight: 700;
    margin-top: auto;
}

.similar-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 12px;
}
.similar-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    color: inherit;
    text-decoration: none;
    transition: all 0.2s ease;
}
.similar-card:hover {
    border-color: var(--brand);
    background: linear-gradient(135deg, var(--white), #f0fdfa);
    transform: translateX(3px);
}
.similar-icon {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    border-radius: 8px;
    background: var(--brand-glow);
    color: var(--brand-dark);
    display: flex;
    align-items: center;
    justify-content: center;
}
.similar-name {
    flex: 1;
    font-size: 0.9rem;
    font-weight: 800;
    color: var(--ink);
    line-height: 1.3;
}
.similar-meta {
    font-size: 0.75rem;
    color: var(--brand-dark);
    font-weight: 700;
    white-space: nowrap;
}

/* =============================================
   MOBILE DRAWER MENU
   ============================================= */
.drawer-toggle {
    display: none;
    width: 44px;
    height: 44px;
    background: transparent;
    border: 1px solid var(--line);
    border-radius: 8px;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    cursor: pointer;
    padding: 0;
    margin-left: 8px;
}
.drawer-toggle span {
    width: 20px;
    height: 2px;
    background: var(--ink);
    border-radius: 1px;
    transition: all 0.25s ease;
}
.drawer-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
.drawer-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.drawer-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }

.drawer-scrim {
    position: fixed;
    inset: 0;
    background: rgba(2, 6, 23, 0.45);
    backdrop-filter: blur(2px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
    z-index: 1099;
}
.drawer-scrim.is-open {
    opacity: 1;
    pointer-events: auto;
}

.mobile-drawer {
    position: fixed;
    top: 0;
    right: 0;
    width: min(360px, 92vw);
    height: 100dvh;
    background: var(--white);
    box-shadow: -16px 0 40px rgba(2, 6, 23, 0.2);
    z-index: 1100;
    display: flex;
    flex-direction: column;
    transform: translateX(100%);
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    overflow-y: auto;
    overscroll-behavior: contain;
}
.mobile-drawer.is-open { transform: translateX(0); }

.drawer-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    border-bottom: 1px solid var(--line);
    position: sticky;
    top: 0;
    background: var(--white);
    z-index: 2;
}
.drawer-header strong {
    font-size: 15px;
    color: var(--brand-dark);
}
.drawer-close {
    background: transparent;
    border: 0;
    color: var(--ink);
    padding: 6px;
    cursor: pointer;
    border-radius: 6px;
}
.drawer-close:hover { background: var(--soft); }

.drawer-nav {
    flex: 1;
    padding: 12px 12px 24px;
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.drawer-home, .drawer-link {
    display: block;
    padding: 14px 16px;
    color: var(--ink);
    font-weight: 800;
    font-size: 15px;
    border-radius: 8px;
}
.drawer-home:hover, .drawer-link:hover {
    background: var(--soft);
    color: var(--brand-dark);
}

.drawer-section {
    border-radius: 8px;
    overflow: hidden;
}
.drawer-section-title {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    background: transparent;
    border: 0;
    cursor: pointer;
    font-family: inherit;
    font-weight: 800;
    font-size: 15px;
    color: var(--ink);
    text-align: left;
    border-radius: 8px;
}
.drawer-section-title:hover { background: var(--soft); }
.drawer-section-title svg { transition: transform 0.2s ease; color: var(--muted); }
.drawer-section.is-open .drawer-section-title svg { transform: rotate(180deg); color: var(--brand-dark); }
.drawer-section-content {
    display: none;
    padding: 4px 8px 8px 24px;
}
.drawer-section.is-open .drawer-section-content { display: block; }
.drawer-section-content a {
    display: block;
    padding: 10px 12px;
    color: var(--muted);
    font-size: 14px;
    font-weight: 600;
    border-radius: 6px;
}
.drawer-section-content a:hover {
    background: var(--soft);
    color: var(--brand-dark);
}

.drawer-footer {
    padding: 16px 20px;
    border-top: 1px solid var(--line);
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.drawer-footer .btn { width: 100%; }
.ghost-dark {
    color: var(--ink);
    background: var(--soft);
    border: 1px solid var(--line);
}
.ghost-dark:hover { background: var(--white); border-color: var(--brand); }

body.drawer-open { overflow: hidden; }

@media (max-width: 980px) {
    .drawer-toggle { display: flex; }
    .nav { display: none !important; }
    .header-cta { display: none; }
}

/* =============================================
   STICKY INFO BAR
   ============================================= */
.sticky-info-bar {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    background: rgba(255, 255, 255, 0.96);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--line);
    box-shadow: 0 4px 16px rgba(2, 6, 23, 0.08);
    z-index: 998;
    transform: translateY(-100%);
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    padding: 10px 0;
}
.sticky-info-bar.visible { transform: translateY(0); }
.sticky-info-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: nowrap;
}
.sticky-route {
    display: flex;
    flex-direction: column;
    min-width: 0;
    flex: 1 1 auto;
    overflow: hidden;
}
.sticky-route strong {
    font-size: 14px;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}
.sticky-meta {
    display: flex;
    gap: 6px;
    font-size: 12px;
    color: var(--muted);
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.sticky-cta {
    flex: 0 0 auto !important;
    width: auto !important;
    min-height: 40px;
    padding: 8px 18px;
    font-size: 13px;
    white-space: nowrap;
}
@media (max-width: 640px) {
    .sticky-info-bar { padding: 8px 0; }
    .sticky-info-inner { gap: 10px; padding: 0 12px; width: 100%; }
    .sticky-route strong { font-size: 13px; }
    .sticky-meta { font-size: 11px; gap: 4px; }
    .sticky-meta span:nth-child(3),
    .sticky-meta span:nth-child(4),
    .sticky-meta span:nth-child(5) { display: none; }
    .sticky-cta {
        min-height: 36px;
        padding: 6px 14px !important;
        font-size: 12px !important;
        width: auto !important;
    }
}
@media (max-width: 420px) {
    .sticky-cta { padding: 6px 12px !important; font-size: 11px !important; }
    .sticky-route strong { font-size: 12px; }
    .sticky-meta { display: none; }
}

/* =============================================
   TRUST STRIP
   ============================================= */
.trust-strip {
    background: linear-gradient(180deg, var(--white), var(--soft));
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    padding: 36px 0;
}
.trust-strip-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 24px;
}
.trust-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
}
.trust-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--brand-glow);
    color: var(--brand-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 0 1px rgba(13, 148, 136, 0.18);
}
.trust-item strong {
    font-size: 14px;
    color: var(--ink);
    font-weight: 800;
}
.trust-item span {
    font-size: 12px;
    color: var(--muted);
    font-weight: 600;
    line-height: 1.35;
}

/* =============================================
   PROCESS STEPS (Buchungsprozess)
   ============================================= */
.process-section {
    background: linear-gradient(180deg, var(--soft) 0%, var(--white) 100%);
}
.process-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
    margin-top: 32px;
    counter-reset: process;
}
.process-step {
    position: relative;
    padding: 28px 24px;
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}
.process-step:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-glow);
    border-color: var(--brand);
}
.process-num {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--brand), var(--brand-dark));
    color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 18px;
    margin-bottom: 16px;
    box-shadow: 0 6px 16px var(--brand-glow);
}
.process-step h3 {
    font-size: 1.05rem;
    margin: 0 0 8px;
    color: var(--brand-dark);
}
.process-step p {
    font-size: 0.92rem;
    color: var(--muted);
    line-height: 1.55;
    margin: 0;
}

/* =============================================
   TESTIMONIALS
   ============================================= */
.testimonials-section {
    background: linear-gradient(135deg, var(--soft) 0%, var(--white) 60%);
}
.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
    margin-top: 28px;
}
.testimonial-card {
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 28px 24px;
    box-shadow: var(--shadow-sm);
    position: relative;
    transition: all 0.25s ease;
    display: flex;
    flex-direction: column;
    height: 100%;
}
.testimonials-grid { align-items: stretch; }
.testimonial-card:hover {
    box-shadow: var(--shadow-glow);
    border-color: var(--brand);
    transform: translateY(-3px);
}
.testimonial-card::before {
    content: '"';
    position: absolute;
    top: -10px;
    left: 18px;
    font-size: 72px;
    line-height: 1;
    color: var(--brand);
    opacity: 0.25;
    font-family: Georgia, serif;
    font-weight: 700;
}
.testimonial-stars {
    display: flex;
    gap: 2px;
    color: var(--gold);
    margin-bottom: 12px;
}
.testimonial-text {
    font-size: 0.95rem;
    color: var(--ink);
    line-height: 1.6;
    margin: 0 0 16px;
    font-style: italic;
}
.testimonial-author {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
    margin-top: auto;
}
.testimonial-author strong {
    font-size: 0.92rem;
    color: var(--ink);
    font-weight: 800;
}
.testimonial-author span {
    font-size: 0.8rem;
    color: var(--muted);
    font-weight: 600;
}

/* =============================================
   PRICE CALCULATOR
   ============================================= */
.price-calc {
    margin: 32px 0 48px;
    background: linear-gradient(135deg, var(--white), var(--soft));
    border: 1px solid var(--line);
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow);
}
.price-calc-head {
    padding: 24px 28px 8px;
}
.price-calc-head h3 {
    margin: 0 0 6px;
    color: var(--brand-dark);
    font-size: 1.4rem;
}
.price-calc-head p {
    margin: 0;
    color: var(--muted);
    font-size: 0.95rem;
}
.price-calc-form {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px;
    padding: 20px 28px;
}
.price-calc-field { display: flex; flex-direction: column; gap: 6px; }
.price-calc-field label {
    font-size: 12px;
    color: var(--muted);
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.4px;
}
.price-calc-field select {
    padding: 12px 14px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--white);
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    color: var(--ink);
    cursor: pointer;
    transition: border-color 0.2s ease;
}
.price-calc-field select:hover { border-color: var(--brand); }
.price-calc-field select:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 3px var(--brand-glow); }

.price-calc-result {
    background: linear-gradient(135deg, var(--brand-darker), var(--night));
    color: var(--white);
    padding: 24px 28px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.calc-line {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-size: 0.95rem;
}
.calc-line span { color: rgba(255, 255, 255, 0.7); }
.calc-line strong { color: var(--white); font-weight: 800; }
.calc-total {
    padding-top: 12px;
    margin-top: 6px;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    font-size: 1.2rem;
}
.calc-total strong { color: var(--gold-light); font-size: 1.6rem; font-weight: 900; }
.calc-cta-btn {
    margin-top: 12px;
    width: 100%;
}

/* =============================================
   ITINERARY (tour pages)
   ============================================= */
.itinerary-list {
    list-style: none;
    padding: 0;
    margin: 16px 0 32px;
    counter-reset: itin;
    position: relative;
}
.itinerary-list::before {
    content: '';
    position: absolute;
    left: 70px;
    top: 12px;
    bottom: 12px;
    width: 2px;
    background: linear-gradient(180deg, var(--brand), var(--gold));
}
.itinerary-list li {
    display: grid;
    grid-template-columns: 96px 1fr;
    gap: 16px;
    align-items: center;
    padding: 12px 0;
    position: relative;
}
.itin-time {
    background: var(--brand);
    color: var(--white);
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    text-align: center;
    position: relative;
    z-index: 1;
    box-shadow: 0 4px 12px var(--brand-glow);
}
.itin-event {
    color: var(--ink);
    font-weight: 700;
    font-size: 0.95rem;
    line-height: 1.45;
}

.check-list, .cross-list {
    list-style: none;
    padding: 0;
    margin: 14px 0 24px;
}
.check-list li, .cross-list li {
    position: relative;
    padding: 6px 0 6px 28px;
    font-size: 0.95rem;
    line-height: 1.5;
}
.check-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 9px;
    width: 18px;
    height: 18px;
    background: var(--brand);
    border-radius: 50%;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
    background-size: 12px 12px;
    background-repeat: no-repeat;
    background-position: center;
}
.cross-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 9px;
    width: 18px;
    height: 18px;
    background: var(--muted);
    border-radius: 50%;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E");
    background-size: 11px 11px;
    background-repeat: no-repeat;
    background-position: center;
}

@media (max-width: 520px) {
    .itinerary-list::before { left: 56px; }
    .itinerary-list li { grid-template-columns: 80px 1fr; }
}

/* =============================================
   SOLUTION GRID (persona + special pages)
   ============================================= */
.solution-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 14px;
    margin: 18px 0 32px;
}
.solution-card {
    padding: 22px 20px;
    background: linear-gradient(135deg, var(--white), var(--soft));
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
    transition: all 0.25s ease;
    position: relative;
    overflow: hidden;
}
.solution-card::before {
    content: '';
    position: absolute;
    left: 0; top: 0; bottom: 0;
    width: 4px;
    background: linear-gradient(180deg, var(--brand), var(--gold));
}
.solution-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-glow);
    border-color: var(--brand);
}
.solution-card h4 {
    margin: 0 0 8px;
    font-size: 1rem;
    color: var(--brand-dark);
    font-weight: 800;
}
.solution-card p {
    margin: 0;
    font-size: 0.9rem;
    color: var(--ink);
    line-height: 1.55;
}

/* =============================================
   INSIDER TIP BLOCK
   ============================================= */
.insider-tip {
    margin: 28px 0;
    padding: 18px 22px 18px 56px;
    background: linear-gradient(135deg, #fef3c7, #fde68a);
    border-left: 4px solid var(--gold);
    border-radius: var(--radius);
    font-size: 0.95rem;
    color: #78350f;
    position: relative;
    line-height: 1.6;
}
.insider-tip::before {
    content: '💡';
    position: absolute;
    left: 18px;
    top: 16px;
    font-size: 24px;
}
.insider-tip strong { color: #92400e; }

/* =============================================
   COMPARISON TABLE
   ============================================= */
.compare-headers {
    display: grid;
    grid-template-columns: minmax(140px, 1fr) repeat(2, minmax(0, 1.5fr));
    gap: 12px;
    padding: 20px;
    background: linear-gradient(135deg, var(--brand-darker), var(--night));
    color: var(--white);
    border-radius: var(--radius) var(--radius) 0 0;
    margin-top: 24px;
}
.compare-headers > :first-child { display: none; }
.compare-headers .compare-col-head:nth-child(2) { grid-column: 2; }
.compare-col-head { display: flex; flex-direction: column; gap: 4px; text-align: center; }
.compare-badge {
    display: inline-block;
    align-self: center;
    padding: 4px 10px;
    background: var(--brand);
    color: var(--white);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    margin-bottom: 6px;
}
.compare-col-head strong { font-size: 1rem; }
.compare-col-head span { font-size: 0.8rem; opacity: 0.8; }

.compare-table {
    background: var(--white);
    border: 1px solid var(--line);
    border-top: 0;
    border-radius: 0 0 var(--radius) var(--radius);
    overflow: hidden;
    margin-bottom: 28px;
}
.compare-row {
    display: grid;
    grid-template-columns: minmax(140px, 1.5fr) repeat(2, minmax(0, 1.5fr));
    gap: 12px;
    padding: 14px 20px;
    border-top: 1px solid var(--line);
    align-items: center;
}
.compare-row:nth-child(odd) { background: var(--soft); }
.compare-label {
    font-weight: 800;
    font-size: 0.85rem;
    color: var(--brand-dark);
}
.compare-val {
    font-size: 0.9rem;
    color: var(--ink);
    text-align: center;
}
@media (max-width: 720px) {
    .compare-headers { grid-template-columns: 1fr 1fr; }
    .compare-row { grid-template-columns: 1fr 1fr; padding-left: 12px; padding-right: 12px; }
    .compare-label { grid-column: 1 / -1; font-size: 0.8rem; padding-bottom: 4px; border-bottom: 1px dashed var(--line); }
    .compare-val { font-size: 0.85rem; }
}

.verdict-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
    margin: 24px 0 32px;
}
.verdict-card {
    padding: 24px;
    background: linear-gradient(135deg, var(--white), #ecfdf5);
    border: 1px solid rgba(16, 185, 129, 0.2);
    border-radius: var(--radius);
}
.verdict-card h4 {
    margin: 0 0 10px;
    font-size: 1.05rem;
    color: var(--brand-dark);
}
.verdict-card p {
    margin: 0;
    font-size: 0.92rem;
    color: var(--ink);
    line-height: 1.6;
}

.recommendation-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 14px;
    margin: 18px 0 32px;
}
.rec-card {
    padding: 20px;
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    display: flex;
    flex-direction: column;
    gap: 10px;
    box-shadow: var(--shadow-sm);
}
.rec-card h4 { margin: 0; font-size: 1rem; color: var(--brand-dark); }
.rec-card p { margin: 0; font-size: 0.9rem; color: var(--muted); line-height: 1.55; flex-grow: 1; }
.rec-card .btn { margin-top: auto; align-self: flex-start; }

/* =============================================
   HOWTO STEPS
   ============================================= */
.howto-steps {
    list-style: none;
    padding: 0;
    margin: 16px 0 32px;
    counter-reset: howto;
}
.howto-step {
    display: grid;
    grid-template-columns: 56px 1fr;
    gap: 18px;
    padding: 20px 0;
    border-bottom: 1px solid var(--line);
    align-items: start;
}
.howto-step:last-child { border-bottom: 0; }
.howto-num {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--brand), var(--brand-dark));
    color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 18px;
    box-shadow: 0 4px 12px var(--brand-glow);
    margin-top: 2px;
}
.howto-content { min-width: 0; }
.howto-step-head {
    display: flex;
    align-items: baseline;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 4px;
}
.howto-step-head strong { font-size: 1.05rem; color: var(--ink); }
.howto-step-head span {
    font-size: 12px;
    color: var(--muted);
    background: var(--soft);
    padding: 2px 8px;
    border-radius: 999px;
    font-weight: 700;
}
.howto-content p {
    margin: 0;
    font-size: 0.95rem;
    color: var(--ink);
    line-height: 1.6;
}

/* =============================================
   GLOSSAR GRID
   ============================================= */
.glossar-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 12px;
    margin: 20px 0;
}
.glossar-card {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 18px 20px;
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    color: inherit;
    text-decoration: none;
    box-shadow: var(--shadow-sm);
    transition: all 0.2s ease;
}
.glossar-card:hover {
    border-color: var(--brand);
    transform: translateY(-2px);
    box-shadow: var(--shadow-glow);
}
.glossar-card strong {
    font-size: 1rem;
    color: var(--brand-dark);
    font-weight: 800;
}
.glossar-card p {
    margin: 0;
    font-size: 0.85rem;
    color: var(--muted);
    line-height: 1.5;
}

/* =============================================
   DISH GRID (kulinarik pages)
   ============================================= */
.dish-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 14px;
    margin: 18px 0 32px;
}
.dish-card {
    padding: 18px 20px;
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow-sm);
    transition: all 0.2s ease;
}
.dish-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-glow);
    border-color: var(--brand);
}
.dish-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 8px;
}
.dish-head strong {
    font-size: 1rem;
    color: var(--brand-dark);
}
.dish-price {
    font-size: 0.78rem;
    font-weight: 800;
    color: var(--gold);
    background: var(--gold-glow);
    padding: 3px 8px;
    border-radius: 999px;
    white-space: nowrap;
}
.dish-where {
    font-size: 0.78rem;
    color: var(--muted);
    margin: 0 0 8px;
    font-style: italic;
}
.dish-card p {
    font-size: 0.88rem;
    color: var(--ink);
    line-height: 1.55;
    margin: 0;
}

/* =============================================
   DAY PLAN (itinerary pages)
   ============================================= */
.day-plan {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin: 20px 0 32px;
    position: relative;
}
.day-plan::before {
    content: '';
    position: absolute;
    left: 24px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: linear-gradient(180deg, var(--brand), var(--gold));
}
.day-card {
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 18px 20px 18px 70px;
    position: relative;
    box-shadow: var(--shadow-sm);
}
.day-card:hover {
    border-color: var(--brand);
    box-shadow: var(--shadow-glow);
}
.day-card-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 12px;
}
.day-num {
    position: absolute;
    left: 8px;
    top: 16px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--brand), var(--brand-dark));
    color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 15px;
    box-shadow: 0 4px 12px var(--brand-glow);
    z-index: 1;
}
.day-card-head strong {
    font-size: 1.05rem;
    color: var(--brand-dark);
}
.day-content p {
    margin: 6px 0;
    font-size: 0.92rem;
    line-height: 1.55;
    color: var(--ink);
}
.day-content p strong {
    color: var(--brand-dark);
    margin-right: 4px;
}
.day-transfer {
    margin-top: 10px !important;
    padding: 8px 12px;
    background: var(--soft);
    border-radius: 6px;
    font-size: 0.85rem !important;
    color: var(--brand-dark) !important;
}

/* =============================================
   INSIDER LIST
   ============================================= */
.insider-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 18px 0 32px;
}
.insider-item {
    display: grid;
    grid-template-columns: 44px 1fr;
    gap: 16px;
    padding: 18px 20px;
    background: var(--white);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    transition: all 0.2s ease;
    box-shadow: var(--shadow-sm);
}
.insider-item:hover {
    transform: translateX(4px);
    border-color: var(--gold);
    box-shadow: 0 8px 24px var(--gold-glow);
}
.insider-num {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--gold), #b45309);
    color: var(--white);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 14px;
    box-shadow: 0 4px 12px var(--gold-glow);
}
.insider-item strong {
    font-size: 1rem;
    color: var(--brand-dark);
    display: block;
    margin-bottom: 4px;
}
.insider-item p {
    margin: 0;
    font-size: 0.92rem;
    line-height: 1.55;
    color: var(--ink);
}

/* =============================================
   VISUAL POLISH - ANIMATIONS + MICRO-INTERACTIONS
   ============================================= */

/* Stagger fade-in for grid items */
@keyframes fadeInUpStagger {
    from {
        opacity: 0;
        transform: translateY(16px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.related-grid > *,
.dish-grid > *,
.fleet-grid > *,
.testimonials-grid > *,
.process-grid > *,
.facts > *,
.trust-strip-grid > *,
.solution-grid > *,
.glossar-grid > *,
.day-plan > *,
.insider-list > * {
    animation: fadeInUpStagger 0.5s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.related-grid > *:nth-child(1),
.dish-grid > *:nth-child(1),
.fleet-grid > *:nth-child(1),
.testimonials-grid > *:nth-child(1),
.process-grid > *:nth-child(1) { animation-delay: 0.05s; }

.related-grid > *:nth-child(2),
.dish-grid > *:nth-child(2),
.fleet-grid > *:nth-child(2),
.testimonials-grid > *:nth-child(2),
.process-grid > *:nth-child(2) { animation-delay: 0.10s; }

.related-grid > *:nth-child(3),
.dish-grid > *:nth-child(3),
.fleet-grid > *:nth-child(3),
.testimonials-grid > *:nth-child(3),
.process-grid > *:nth-child(3) { animation-delay: 0.15s; }

.related-grid > *:nth-child(4),
.dish-grid > *:nth-child(4),
.fleet-grid > *:nth-child(4),
.process-grid > *:nth-child(4) { animation-delay: 0.20s; }

.related-grid > *:nth-child(5),
.dish-grid > *:nth-child(5) { animation-delay: 0.25s; }
.related-grid > *:nth-child(6),
.dish-grid > *:nth-child(6) { animation-delay: 0.30s; }

/* Pulse highlight for badges */
@keyframes badgePulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(13, 148, 136, 0.4); }
    50% { box-shadow: 0 0 0 6px rgba(13, 148, 136, 0); }
}
.section-kicker, .kicker {
    transition: transform 0.2s ease;
}
.section-kicker:hover {
    transform: translateY(-1px);
}

/* Smooth link underlines */
a:not(.btn):not(.header-cta):not(.related-card):not(.glossar-card):not(.similar-card):not(.dish-card):not(.day-card):not(.fleet-card):not(.testimonial-card):not(.insider-item):not(.process-step):not(.trust-item):not(.price-card):not(.price-row):not(.brand):not(.drawer-home):not(.drawer-link):not(.drawer-close):not(.drawer-section-title):not(.dropbtn):not(.scroll-top):not(.floating-whatsapp):not(.skip):not(.btn-whatsapp-hero):not(.aside-cta):not(.calc-cta-btn):not(.tab-btn):not(.sticky-cta):not(.aside-list a):not(.trust-bullets a):not(.dropdown-content a):not(.drawer-section-content a):not(.pill-grid a):not(.hotel-link-grid a):not(.nav a) {
    text-decoration-color: rgba(13, 148, 136, 0.3);
    text-underline-offset: 3px;
    transition: text-decoration-color 0.2s ease, color 0.2s ease;
}

/* Focus state - accessibility */
*:focus-visible {
    outline: 3px solid var(--brand);
    outline-offset: 2px;
    border-radius: 4px;
}

button:focus-visible,
input:focus-visible,
select:focus-visible {
    outline: 3px solid var(--brand);
    outline-offset: 1px;
}

/* Smooth image loading */
img {
    transition: opacity 0.4s ease;
}
img[loading="lazy"] {
    opacity: 0;
}
img[loading="lazy"].loaded,
img[loading="lazy"]:not([src=""]) {
    opacity: 1;
}

/* Better selection color */
::selection {
    background: var(--brand);
    color: var(--white);
}

/* Smooth scrollbars (Firefox + Webkit) */
html {
    scrollbar-width: thin;
    scrollbar-color: var(--brand) var(--soft);
}
body::-webkit-scrollbar {
    width: 10px;
}
body::-webkit-scrollbar-track {
    background: var(--soft);
}
body::-webkit-scrollbar-thumb {
    background: linear-gradient(180deg, var(--brand), var(--brand-dark));
    border-radius: 5px;
}
body::-webkit-scrollbar-thumb:hover {
    background: var(--brand-dark);
}

/* Subtle gradient divider for sections */
.band + .band::before,
.wrap > section:not(:first-child)::before {
    display: none;
}

/* Improved button micro-interaction */
.btn:active,
.header-cta:active {
    transform: translateY(0) scale(0.98);
}

.btn::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    transform: translate(-50%, -50%);
    transition: width 0.4s ease, height 0.4s ease;
    pointer-events: none;
}
.btn {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}
.btn:hover::before {
    width: 120%;
    height: 200%;
}

/* Subtle pulsing dot for floating whatsapp */
.online-dot {
    box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.7);
    animation: pulseBeat 1.8s infinite;
}
@keyframes pulseBeat {
    0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.7); }
    70% { box-shadow: 0 0 0 6px rgba(255, 255, 255, 0); }
    100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0); }
}

/* Heading entrance animations on hero */
.hero-content h1 {
    animation: heroSlideIn 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.3s both;
}
.hero-content .lead,
.hero-content .breadcrumbs,
.hero-content .kicker {
    animation: heroSlideIn 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.4s both;
}
.hero-content .booking-widget,
.hero-content .route-metrics {
    animation: heroSlideIn 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.5s both;
}
.hero-content .trust-badges {
    animation: heroSlideIn 0.7s cubic-bezier(0.16, 1, 0.3, 1) 0.6s both;
}
@keyframes heroSlideIn {
    from {
        opacity: 0;
        transform: translateY(14px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Improved section spacing rhythm */
.wrap > h2,
.content-prose > h2 {
    margin-top: 0;
}
.wrap > h2:not(:first-child) {
    margin-top: 40px;
}

/* Better hr / divider style */
hr {
    border: none;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--line) 20%, var(--line) 80%, transparent);
    margin: 48px 0;
}

/* Improved blockquote */
blockquote {
    margin: 24px 0;
    padding: 16px 24px;
    border-left: 4px solid var(--brand);
    background: var(--soft);
    border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
    font-style: italic;
    color: var(--ink);
}

/* Improved form inputs (global) */
input:not([type="checkbox"]):not([type="radio"]),
select,
textarea {
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
input:not([type="checkbox"]):not([type="radio"]):hover,
select:hover,
textarea:hover {
    border-color: var(--brand);
}

/* Hover transition for cards (consistent) */
.related-card,
.similar-card,
.dish-card,
.glossar-card,
.day-card,
.fleet-card,
.testimonial-card,
.process-step,
.solution-card,
.aside-card,
.tourist-info-card,
.info-card,
.fact-card,
.fact-item,
.price-card,
.verdict-card,
.rec-card {
    transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1),
                box-shadow 0.25s cubic-bezier(0.16, 1, 0.3, 1),
                border-color 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Anchor headings have a subtle hover indicator */
.content-prose h2:hover,
.content-prose h3:hover {
    color: var(--brand-darker);
}

/* Smooth page loading - initial body fade */
body {
    opacity: 0;
    animation: bodyFadeIn 0.4s ease 0.05s forwards;
}
@keyframes bodyFadeIn {
    to { opacity: 1; }
}

/* Better tab transition */
.tab-btn {
    position: relative;
}
.tab-btn::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 50%;
    width: 0;
    height: 2px;
    background: var(--brand);
    transition: width 0.3s ease, left 0.3s ease;
}
.tab-btn:hover::after {
    width: 30%;
    left: 35%;
}

/* Trust strip - subtle hover effect */
.trust-item:hover .trust-icon {
    transform: scale(1.08) rotate(-4deg);
    background: linear-gradient(135deg, var(--brand-glow), var(--gold-glow));
}
.trust-icon {
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), background 0.3s ease;
}

/* Testimonial stars subtle pulse on hover */
.testimonial-card:hover .testimonial-stars {
    animation: starsPulse 0.5s ease;
}
@keyframes starsPulse {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}

/* Process numbers - subtle rotate on hover */
.process-num,
.howto-num {
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.process-step:hover .process-num,
.howto-step:hover .howto-num {
    transform: rotate(-8deg) scale(1.05);
}

/* Insider-num gold pulse */
.insider-item:hover .insider-num {
    transform: rotate(8deg) scale(1.1);
    box-shadow: 0 6px 20px var(--gold-glow);
}
.insider-num {
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.3s ease;
}

/* Better drawer slide-in animation */
.mobile-drawer {
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}
.drawer-scrim {
    transition: opacity 0.35s ease, backdrop-filter 0.35s ease;
}

/* Better dropdown animation */
.dropdown-content {
    opacity: 0;
    visibility: hidden;
    transform: translateX(-50%) translateY(8px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
    display: block;
}
.dropdown:hover .dropdown-content,
.dropdown.active .dropdown-content,
.dropdown:focus-within .dropdown-content {
    opacity: 1;
    visibility: visible;
    transform: translateX(-50%) translateY(0);
    display: block;
}
@media (max-width: 980px) {
    .dropdown-content { transform: none; }
    .dropdown.active .dropdown-content { transform: none; }
}

/* Scroll-margin for anchored links */
[id] {
    scroll-margin-top: 80px;
}

/* Sticky bar smoother slide */
.sticky-info-bar {
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: transform;
}

/* Improved spacing for content-prose */
.content-prose > p + p {
    margin-top: 1.1em;
}
.content-prose ul,
.content-prose ol {
    margin: 16px 0;
    padding-left: 24px;
}
.content-prose li {
    margin: 6px 0;
    line-height: 1.65;
}

/* Better dish-grid header treatment */
.dish-grid + .dish-grid,
.related-grid + .related-grid {
    margin-top: 24px;
}

/* Improved keyword-grid hover */
.keyword-grid li {
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.keyword-grid li:hover {
    transform: translateY(-2px);
    border-color: var(--brand);
    box-shadow: 0 8px 20px var(--brand-glow);
}

/* Hide horizontal overflow on body */
html, body {
    overflow-x: hidden;
}

/* Better max-width control for prose */
.lead-prose {
    max-width: 720px;
}

/* Loading skeleton state */
.skeleton {
    background: linear-gradient(90deg, var(--soft) 25%, var(--line) 50%, var(--soft) 75%);
    background-size: 200% 100%;
    animation: skeletonLoading 1.4s infinite;
    border-radius: 8px;
}
@keyframes skeletonLoading {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* Print-friendly basics */
@media print {
    .site-header,
    .sticky-info-bar,
    .floating-whatsapp,
    .scroll-top,
    .mobile-drawer,
    .drawer-scrim,
    .drawer-toggle,
    .booking-widget,
    .footer {
        display: none !important;
    }
    body {
        background: white;
        font-size: 11pt;
        color: black;
    }
    .hero {
        min-height: auto;
        color: black;
    }
    .hero-overlay,
    .hero img {
        display: none;
    }
    .hero-content {
        background: white;
        color: black;
        backdrop-filter: none;
        box-shadow: none;
        margin: 0;
        padding: 0;
    }
    a {
        color: black !important;
        text-decoration: underline;
    }
    .related-card,
    .similar-card,
    .day-card,
    .testimonial-card {
        page-break-inside: avoid;
    }
}

/* Reduced motion respect (already there but re-enforce) */
@media (prefers-reduced-motion: reduce) {
    .related-grid > *,
    .dish-grid > *,
    .fleet-grid > *,
    .testimonials-grid > *,
    .process-grid > *,
    .facts > *,
    .trust-strip-grid > *,
    .solution-grid > *,
    .glossar-grid > *,
    .day-plan > *,
    .insider-list > *,
    .hero-content h1,
    .hero-content .lead,
    .hero-content .breadcrumbs,
    .hero-content .kicker,
    .hero-content .booking-widget,
    .hero-content .trust-badges,
    body {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
    }
}

/* Fix: contrast on lead-text under brand background */
.cta-panel .lead-prose,
.cta-panel p {
    color: rgba(255, 255, 255, 0.92);
}

/* Improve readability of long paragraphs */
.content-prose p,
.dish-card p,
.testimonial-text {
    text-wrap: pretty;
}

/* Better mobile hero */
@media (max-width: 600px) {
    .hero-content {
        padding: 24px 18px;
    }
    .hero h1 {
        font-size: 28px !important;
        line-height: 1.15;
    }
    .hero .lead {
        font-size: 15px !important;
    }
    .trust-badges .badge {
        font-size: 11px;
        padding: 5px 10px;
    }
    .booking-widget {
        margin-top: 18px;
        padding: 8px;
    }
    .btn-whatsapp-hero {
        font-size: 13px;
        padding: 12px 16px;
    }
    .btn-whatsapp-hero strong {
        font-size: 12px;
        padding: 2px 6px;
    }
}

/* Smooth focus ring for keyboard nav */
@supports selector(:has(*)) {
    .nav a:has(+ a:focus-visible),
    .nav a:focus-visible + a {
        background: var(--soft);
    }
}

/* Subtle wave divider class */
.wave-divider {
    position: relative;
    overflow: hidden;
    line-height: 0;
}
.wave-divider::after {
    content: '';
    position: absolute;
    inset: 0;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 60' preserveAspectRatio='none'%3E%3Cpath d='M0 30 Q 300 0 600 30 Q 900 60 1200 30 L 1200 60 L 0 60 Z' fill='%23ffffff'/%3E%3C/svg%3E") center bottom / 100% 60px no-repeat;
}

/* Improve footer link hover - feel more tactile */
.footer a {
    position: relative;
}
.footer a::after {
    content: '→';
    margin-left: 6px;
    opacity: 0;
    transform: translateX(-6px);
    display: inline-block;
    transition: opacity 0.2s ease, transform 0.2s ease;
}
.footer a:hover::after {
    opacity: 1;
    transform: translateX(0);
}

/* Hero overlay - slightly more readable */
@media (max-width: 980px) {
    .hero-overlay {
        background:
            radial-gradient(circle at 30% 50%, rgba(13, 148, 136, 0.3) 0%, transparent 60%),
            linear-gradient(180deg, rgba(2, 6, 23, 0.5) 0%, rgba(2, 6, 23, 0.85) 70%);
    }
}

/* =============================================
   PREMIUM CARD SYSTEM
   Minimal, elegant, with subtle depth and refined hover.
   ============================================= */

:root {
    /* Premium shadow layers - inspired by Apple/Stripe */
    --card-shadow:
        0 1px 2px rgba(15, 23, 42, 0.04),
        0 2px 6px rgba(15, 23, 42, 0.04),
        0 8px 24px rgba(15, 23, 42, 0.06);
    --card-shadow-hover:
        0 1px 2px rgba(13, 148, 136, 0.06),
        0 4px 14px rgba(13, 148, 136, 0.08),
        0 16px 40px rgba(13, 148, 136, 0.12);
    --card-border: rgba(15, 23, 42, 0.06);
    --card-border-hover: rgba(13, 148, 136, 0.25);
    --card-radius: 14px;
    --card-radius-lg: 18px;
}

/* Base premium treatment for all interactive card types */
.related-card,
.similar-card,
.dish-card,
.glossar-card,
.day-card,
.fleet-card,
.testimonial-card,
.solution-card,
.price-card,
.verdict-card,
.rec-card,
.process-step,
.insider-item,
.fact-card,
.tourist-info-card,
.info-card,
.aside-card {
    background: var(--white);
    border: 1px solid var(--card-border);
    border-radius: var(--card-radius);
    box-shadow: var(--card-shadow);
    transition:
        transform 0.32s cubic-bezier(0.16, 1, 0.3, 1),
        box-shadow 0.32s cubic-bezier(0.16, 1, 0.3, 1),
        border-color 0.32s cubic-bezier(0.16, 1, 0.3, 1) !important;
    position: relative;
}

/* Premium hover - subtle lift, soft halo */
.related-card:hover,
.similar-card:hover,
.dish-card:hover,
.glossar-card:hover,
.day-card:hover,
.fleet-card:hover,
.testimonial-card:hover,
.solution-card:hover,
.price-card:hover,
.verdict-card:hover,
.rec-card:hover,
.process-step:hover,
.insider-item:hover,
.fact-card:hover,
.tourist-info-card:hover,
.info-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--card-shadow-hover) !important;
    border-color: var(--card-border-hover);
}

/* Refined related-card (the most-used card type) */
.related-card {
    padding: 22px 22px 20px;
    gap: 10px;
}
.related-card::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: var(--card-radius);
    padding: 1px;
    background: linear-gradient(135deg, transparent 0%, transparent 60%, rgba(13, 148, 136, 0.4) 100%);
    mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    mask-composite: exclude;
    -webkit-mask-composite: xor;
    opacity: 0;
    transition: opacity 0.32s ease;
    pointer-events: none;
}
.related-card:hover::before {
    opacity: 1;
}
.related-card strong {
    font-size: 1.02rem;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.35;
    letter-spacing: -0.005em;
}
.related-card p {
    font-size: 0.875rem;
    color: var(--muted);
    line-height: 1.55;
    margin: 0;
}
.related-card .related-meta {
    font-size: 0.75rem;
    color: var(--brand);
    font-weight: 700;
    letter-spacing: 0.01em;
    margin-top: 4px;
    text-transform: uppercase;
    opacity: 0.85;
}
.related-card:hover .related-meta {
    opacity: 1;
}

/* Subtle arrow on related-card hover */
.related-card .related-meta::after {
    content: '';
    display: inline-block;
    margin-left: 6px;
    width: 0;
    height: 0;
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
    border-left: 5px solid currentColor;
    transform: translateX(0);
    transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1);
}
.related-card:hover .related-meta::after {
    transform: translateX(4px);
}

/* Refined related-tag (the small label) */
.related-tag {
    display: inline-block;
    padding: 4px 10px;
    background: var(--soft);
    color: var(--brand-dark);
    border: 1px solid var(--card-border);
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    width: fit-content;
    transition: background 0.32s ease, border-color 0.32s ease;
}
.related-card:hover .related-tag {
    background: var(--brand-glow);
    border-color: rgba(13, 148, 136, 0.2);
}

/* Refined dish-card */
.dish-card {
    padding: 20px 22px;
}
.dish-head strong {
    font-size: 1.02rem;
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.005em;
}
.dish-price {
    font-size: 0.72rem;
    font-weight: 800;
    color: var(--brand);
    background: var(--brand-glow);
    border: 1px solid rgba(13, 148, 136, 0.15);
    padding: 4px 10px;
    border-radius: 999px;
    letter-spacing: 0.02em;
    white-space: nowrap;
}
.dish-where {
    font-size: 0.78rem;
    color: var(--muted);
    margin: 4px 0 12px;
    font-style: normal;
    font-weight: 500;
}
.dish-where::before {
    content: '◉ ';
    color: var(--brand);
    font-size: 0.7em;
    margin-right: 2px;
}
.dish-card p {
    font-size: 0.875rem;
    color: var(--ink-soft);
    line-height: 1.55;
}

/* Refined glossar-card */
.glossar-card {
    padding: 20px 22px;
    gap: 8px;
}
.glossar-card strong {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.01em;
    position: relative;
    padding-left: 14px;
}
.glossar-card strong::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 4px;
    height: 4px;
    background: var(--brand);
    border-radius: 50%;
    transition: width 0.32s ease, background 0.32s ease;
}
.glossar-card:hover strong::before {
    width: 8px;
    background: var(--gold);
}
.glossar-card p {
    font-size: 0.85rem;
    color: var(--muted);
    line-height: 1.55;
    padding-left: 14px;
}

/* Refined similar-card */
.similar-card {
    padding: 14px 18px;
    gap: 14px;
}
.similar-card:hover {
    transform: translateY(-2px);
}
.similar-icon {
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: var(--soft);
    color: var(--brand);
    border: 1px solid var(--card-border);
    transition: background 0.32s ease, color 0.32s ease, transform 0.32s ease;
}
.similar-card:hover .similar-icon {
    background: var(--brand);
    color: var(--white);
    transform: scale(1.05) rotate(-3deg);
}
.similar-name {
    font-weight: 700;
    font-size: 0.92rem;
    color: var(--ink);
    letter-spacing: -0.005em;
}
.similar-meta {
    font-size: 0.72rem;
    color: var(--brand);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    white-space: nowrap;
    opacity: 0.8;
}

/* Refined testimonial-card */
.testimonial-card {
    padding: 28px 24px 24px;
    background: linear-gradient(180deg, var(--white) 0%, var(--soft) 100%);
}
.testimonial-card::before {
    font-size: 60px;
    top: -4px;
    left: 20px;
    opacity: 0.18;
    color: var(--brand);
    font-family: 'Plus Jakarta Sans', Georgia, serif;
    line-height: 1;
}
.testimonial-stars {
    gap: 3px;
    color: #f59e0b;
    margin-bottom: 14px;
}
.testimonial-text {
    font-size: 0.95rem;
    color: var(--ink);
    line-height: 1.65;
    margin-bottom: 18px;
    font-style: normal;
    letter-spacing: -0.005em;
}
.testimonial-author {
    padding-top: 14px;
    border-top: 1px solid var(--card-border);
    margin-top: auto;
}
.testimonial-author strong {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.005em;
}
.testimonial-author span {
    font-size: 0.78rem;
    color: var(--muted);
    font-weight: 500;
    margin-top: 2px;
}

/* Refined fleet-card */
.fleet-card {
    padding: 26px 24px;
}
.fleet-card h3 {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.015em;
    margin-bottom: 6px;
}
.fleet-card .fleet-category {
    background: var(--soft);
    color: var(--brand-dark);
    border: 1px solid var(--card-border);
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: 14px;
}
.fleet-card ul li {
    font-size: 0.88rem;
    line-height: 1.55;
    color: var(--ink-soft);
    padding: 5px 0;
}
.fleet-card ul li strong {
    color: var(--ink);
    font-weight: 700;
    margin-right: 4px;
}
.fleet-card h4 {
    margin: 18px 0 10px;
    font-size: 0.7rem;
    color: var(--muted);
    font-weight: 800;
    letter-spacing: 0.08em;
}
.feature-tags span {
    background: var(--soft);
    color: var(--ink);
    border: 1px solid var(--card-border);
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 600;
    transition: background 0.32s ease, border-color 0.32s ease, color 0.32s ease;
}
.fleet-card:hover .feature-tags span {
    background: var(--white);
    border-color: rgba(13, 148, 136, 0.18);
}

/* Refined process-step */
.process-step {
    padding: 32px 26px 28px;
    text-align: left;
}
.process-num {
    width: 42px;
    height: 42px;
    font-size: 17px;
    margin-bottom: 18px;
    box-shadow: 0 8px 20px rgba(13, 148, 136, 0.25);
    background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);
}
.process-step h3 {
    font-size: 1.08rem;
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.01em;
    margin-bottom: 8px;
}
.process-step p {
    font-size: 0.88rem;
    color: var(--muted);
    line-height: 1.6;
    margin: 0;
}

/* Refined solution-card */
.solution-card {
    padding: 24px 24px;
    background: var(--white);
}
.solution-card::before {
    width: 3px;
    background: linear-gradient(180deg, var(--brand) 0%, var(--gold) 100%);
    border-radius: 0 2px 2px 0;
}
.solution-card h4 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.005em;
    margin-bottom: 8px;
    margin-left: 8px;
}
.solution-card p {
    font-size: 0.875rem;
    color: var(--muted);
    line-height: 1.6;
    margin-left: 8px;
}

/* Refined aside-card (sticky sidebar) */
.aside-card {
    padding: 22px 22px;
    background: var(--white);
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.04),
        0 4px 12px rgba(15, 23, 42, 0.05);
}
.aside-card h4 {
    font-size: 0.78rem;
    font-weight: 800;
    color: var(--muted);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0 0 14px;
}
.aside-card .aside-list li {
    font-size: 0.85rem;
    padding: 9px 0;
    border-bottom: 1px solid var(--card-border);
}
.aside-card .aside-list li:last-child {
    border-bottom: none;
}
.aside-card .aside-list span {
    color: var(--muted);
    font-weight: 500;
}
.aside-card .aside-list strong {
    color: var(--ink);
    font-weight: 700;
    letter-spacing: -0.005em;
}
.aside-trust {
    background: linear-gradient(135deg, var(--soft) 0%, var(--white) 100%);
    border: 1px solid var(--card-border);
}
.aside-trust h4 {
    color: var(--brand-dark);
}

/* Refined tourist-info-card */
.tourist-info-card {
    padding: 20px 22px;
    background: linear-gradient(180deg, var(--white) 0%, var(--soft) 200%);
}
.tourist-info-card h3 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.01em;
    margin-bottom: 10px;
}
.tourist-info-card p {
    font-size: 0.88rem;
    color: var(--muted);
    line-height: 1.6;
    margin: 0;
}
.tourist-info-card strong {
    color: var(--ink);
    font-weight: 700;
}

/* Refined info-card (reisefuehrer grid) */
.info-card {
    padding: 22px 22px;
}
.info-card h3 {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.92rem;
    color: var(--brand-dark);
    font-weight: 700;
    margin: 0 0 10px;
    letter-spacing: -0.005em;
}
.info-card h3 svg {
    flex-shrink: 0;
    color: var(--brand);
}
.info-card p {
    font-size: 0.88rem;
    line-height: 1.6;
    color: var(--ink-soft);
    margin: 4px 0;
}
.info-card ul {
    margin: 6px 0 0;
    padding-left: 18px;
}
.info-card ul li {
    font-size: 0.85rem;
    line-height: 1.55;
    color: var(--ink-soft);
}

/* Refined fact-card (airport stats) */
.fact-card {
    padding: 22px 18px;
    text-align: center;
}
.fact-card strong {
    font-size: 0.7rem;
    font-weight: 800;
    color: var(--muted);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 6px;
}
.fact-card span {
    font-size: 1rem;
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.01em;
    display: block;
    line-height: 1.3;
}

/* Refined verdict-card */
.verdict-card {
    padding: 28px 26px;
    background: linear-gradient(135deg, var(--white) 0%, #f0fdfa 100%);
    border: 1px solid rgba(13, 148, 136, 0.12);
}
.verdict-card h4 {
    font-size: 0.7rem;
    font-weight: 800;
    color: var(--brand-dark);
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin: 0 0 12px;
}
.verdict-card p {
    font-size: 0.92rem;
    color: var(--ink);
    line-height: 1.65;
}

/* Refined rec-card */
.rec-card {
    padding: 24px;
    gap: 12px;
}
.rec-card h4 {
    font-size: 1rem;
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.01em;
}
.rec-card p {
    font-size: 0.875rem;
    color: var(--muted);
    line-height: 1.6;
}

/* Refined price-card */
.price-card {
    padding: 20px 22px;
}
.price-card strong {
    font-size: 1rem;
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.005em;
}
.price-card span {
    font-size: 0.8rem;
    color: var(--muted);
    font-weight: 500;
}
.price-card em {
    font-style: normal;
    font-weight: 800;
    color: var(--gold);
    font-size: 1.15rem;
    letter-spacing: -0.01em;
    margin-top: 6px;
}

/* Refined day-card (itinerary) */
.day-card {
    padding: 20px 22px 20px 70px;
}
.day-card:hover {
    transform: translateY(-2px);
}
.day-num {
    width: 38px;
    height: 38px;
    font-size: 15px;
    box-shadow: 0 6px 16px rgba(13, 148, 136, 0.3);
    background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);
}
.day-card-head strong {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.01em;
}
.day-content p {
    font-size: 0.9rem;
    line-height: 1.6;
    color: var(--ink-soft);
}
.day-content p strong {
    color: var(--brand-dark);
    font-weight: 700;
}
.day-transfer {
    background: var(--brand-glow) !important;
    color: var(--brand-dark) !important;
    border: 1px solid rgba(13, 148, 136, 0.15);
    padding: 10px 14px !important;
    border-radius: 8px;
    font-weight: 600;
    margin-top: 12px !important;
}

/* Refined insider-item */
.insider-item {
    padding: 20px 22px;
    gap: 18px;
}
.insider-item:hover {
    transform: translateX(3px);
    border-color: rgba(217, 119, 6, 0.25);
}
.insider-num {
    width: 38px;
    height: 38px;
    font-size: 15px;
    background: linear-gradient(135deg, #f59e0b 0%, var(--gold) 100%);
    box-shadow: 0 6px 16px rgba(217, 119, 6, 0.3);
}
.insider-item strong {
    font-size: 1.02rem;
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.01em;
}
.insider-item p {
    font-size: 0.875rem;
    color: var(--muted);
    line-height: 1.6;
    margin-top: 4px;
}

/* Refined howto-step */
.howto-step {
    padding: 22px 0;
}
.howto-num {
    width: 38px;
    height: 38px;
    font-size: 15px;
    background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);
    box-shadow: 0 6px 16px rgba(13, 148, 136, 0.25);
}
.howto-step-head strong {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.01em;
}
.howto-step-head span {
    background: var(--soft);
    border: 1px solid var(--card-border);
    color: var(--muted);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 3px 9px;
}

/* Refined facts (.facts div = homepage stats) */
.facts div {
    padding: 28px 22px;
    background: var(--white);
    border: 1px solid var(--card-border);
    border-radius: var(--card-radius);
    box-shadow: var(--card-shadow);
    transition:
        transform 0.32s cubic-bezier(0.16, 1, 0.3, 1),
        box-shadow 0.32s cubic-bezier(0.16, 1, 0.3, 1),
        border-color 0.32s cubic-bezier(0.16, 1, 0.3, 1);
}
.facts div::before {
    height: 2px;
    background: linear-gradient(90deg, var(--brand) 0%, var(--gold) 100%);
    border-radius: var(--card-radius) var(--card-radius) 0 0;
}
.facts strong {
    font-size: 2.3rem;
    font-weight: 800;
    letter-spacing: -0.025em;
    margin-bottom: 6px;
    line-height: 1;
}
.facts span {
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--muted);
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

/* Refined trust-strip items */
.trust-item {
    transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1);
    cursor: default;
}
.trust-item:hover {
    transform: translateY(-2px);
}
.trust-icon {
    width: 52px;
    height: 52px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--white) 0%, var(--soft) 100%);
    color: var(--brand);
    border: 1px solid var(--card-border);
    box-shadow: 0 4px 14px rgba(13, 148, 136, 0.08);
    transition: all 0.32s cubic-bezier(0.16, 1, 0.3, 1);
}
.trust-item:hover .trust-icon {
    transform: scale(1.06);
    border-color: rgba(13, 148, 136, 0.25);
    box-shadow: 0 8px 20px rgba(13, 148, 136, 0.18);
    color: var(--brand-dark);
}
.trust-item strong {
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.005em;
    margin-top: 4px;
}
.trust-item span {
    font-size: 0.78rem;
    color: var(--muted);
    font-weight: 500;
    line-height: 1.4;
}

/* Refined route-info-card */
.route-info-card,
.hotel-deep-content .route-info-card {
    padding: 20px 22px !important;
    background: linear-gradient(135deg, var(--soft) 0%, #f0fdfa 100%) !important;
    border: 1px solid rgba(13, 148, 136, 0.1) !important;
    border-radius: var(--card-radius-lg) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5) !important;
}
.route-stat span {
    font-size: 0.68rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.08em !important;
    color: var(--muted) !important;
}
.route-stat strong {
    font-size: 1rem !important;
    color: var(--ink) !important;
    font-weight: 700 !important;
    letter-spacing: -0.005em;
    line-height: 1.35;
}

/* Header CTA - more premium */
.header-cta {
    box-shadow:
        0 1px 2px rgba(13, 148, 136, 0.1),
        0 4px 12px rgba(13, 148, 136, 0.2);
    letter-spacing: -0.005em;
    padding: 12px 22px;
    font-size: 14px;
}
.header-cta:hover {
    transform: translateY(-1px);
    box-shadow:
        0 1px 2px rgba(13, 148, 136, 0.15),
        0 8px 20px rgba(13, 148, 136, 0.3);
}

/* Primary button - premium feel */
.btn.primary {
    box-shadow:
        0 1px 2px rgba(13, 148, 136, 0.1),
        0 4px 12px rgba(13, 148, 136, 0.18);
    letter-spacing: -0.005em;
}
.btn.primary:hover {
    transform: translateY(-1px);
    box-shadow:
        0 2px 4px rgba(13, 148, 136, 0.15),
        0 10px 24px rgba(13, 148, 136, 0.28);
}

/* Section kicker / tag refinement */
.section-kicker, .kicker {
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    padding: 5px 12px;
    line-height: 1.5;
}

/* Trust badges (hero) - premium glass */
.trust-badges .badge {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
    transition: background 0.32s ease, border-color 0.32s ease, transform 0.32s ease;
}
.trust-badges .badge:hover {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(94, 234, 212, 0.4);
    transform: translateY(-1px);
}

/* Premium tab-faq treatment */
.tab-bar {
    padding: 5px;
    background: var(--soft);
    border: 1px solid var(--card-border);
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.03);
}
.tab-btn.is-active {
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.06),
        0 2px 6px rgba(15, 23, 42, 0.04);
    color: var(--ink);
    font-weight: 700;
}

/* qa (FAQ details) refinement */
.qa summary {
    font-size: 0.98rem;
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.005em;
    transition: color 0.2s ease;
}
.qa summary:hover {
    color: var(--brand-dark);
}
.qa summary::after {
    width: 24px;
    height: 24px;
    border: 1px solid var(--card-border);
    border-radius: 50%;
    background: var(--white);
    color: var(--brand);
    font-size: 18px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 400;
    transition: background 0.32s ease, color 0.32s ease, transform 0.32s ease;
}
.qa[open] summary::after {
    background: var(--brand);
    color: var(--white);
    transform: translateY(-50%) rotate(45deg);
    border-color: var(--brand);
}

/* Premium insider-tip refinement */
.insider-tip {
    background: linear-gradient(135deg, #fffbeb 0%, #fef3c7 100%);
    border: 1px solid #fde68a;
    border-left: 4px solid var(--gold);
    box-shadow:
        0 1px 2px rgba(217, 119, 6, 0.06),
        0 4px 12px rgba(217, 119, 6, 0.08);
    padding: 18px 22px 18px 56px;
    line-height: 1.65;
}
.insider-tip strong {
    color: var(--gold);
    font-weight: 800;
}

/* Make all H3 inside content-prose more refined */
.content-prose h3 {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -0.015em;
    margin: 36px 0 14px;
    line-height: 1.35;
}
.content-prose h3:first-child {
    margin-top: 0;
}
.content-prose .lead-prose {
    font-size: 1.08rem;
    line-height: 1.7;
    color: var(--ink-soft);
    margin-bottom: 28px;
    font-weight: 400;
    letter-spacing: -0.005em;
}
.content-prose p {
    font-size: 0.98rem;
    line-height: 1.7;
    color: var(--ink-soft);
}

/* Aside CTA button refinement */
.aside-cta {
    margin-top: 18px;
    font-size: 0.88rem;
    padding: 12px 20px;
    box-shadow:
        0 1px 2px rgba(13, 148, 136, 0.1),
        0 4px 12px rgba(13, 148, 136, 0.18);
}

/* Smooth focus on cards (accessibility) */
.related-card:focus-visible,
.similar-card:focus-visible,
.dish-card:focus-visible,
.glossar-card:focus-visible,
.price-card:focus-visible {
    outline: none;
    border-color: var(--brand);
    box-shadow:
        0 0 0 3px var(--brand-glow),
        var(--card-shadow-hover) !important;
}

/* ============================================================
   PREMIUM CARD REFRESH — minimal, elegant, animated
   Routes-info / Highlights / Insider-Tipps / Service-Grid
   ============================================================ */

/* --- ROUTE-INFO-CARD: glassy mini-stats grid -------------- */
.route-info-card {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)) !important;
    gap: 1px !important;
    padding: 0 !important;
    margin: 28px 0 36px !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.92) 0%, rgba(248,250,251,0.92) 100%) !important;
    border: 1px solid rgba(15, 23, 42, 0.06) !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.04),
        0 8px 28px -12px rgba(13, 148, 136, 0.10) !important;
    position: relative;
    isolation: isolate;
}
.route-info-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(120% 100% at 0% 0%, rgba(13,148,136,0.04) 0%, transparent 55%);
    pointer-events: none;
    z-index: 0;
}
.route-info-card .route-stat {
    position: relative;
    padding: 18px 22px !important;
    background: rgba(255,255,255,0.6);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    display: flex;
    flex-direction: column;
    gap: 6px !important;
    transition: background 0.4s cubic-bezier(0.16,1,0.3,1);
    z-index: 1;
}
.route-info-card .route-stat:hover {
    background: rgba(240,253,250,0.85);
}
.route-info-card .route-stat::after {
    content: '';
    position: absolute;
    left: 22px;
    bottom: 0;
    width: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--brand) 0%, var(--gold) 100%);
    transition: width 0.45s cubic-bezier(0.16,1,0.3,1);
}
.route-info-card .route-stat:hover::after { width: calc(100% - 44px); }
.route-info-card .route-stat span {
    font-size: 10px !important;
    font-weight: 700 !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase;
    color: rgba(15, 23, 42, 0.45) !important;
    margin: 0 !important;
}
.route-info-card .route-stat strong {
    font-size: 0.98rem !important;
    font-weight: 700 !important;
    color: #0f172a !important;
    letter-spacing: -0.01em !important;
    line-height: 1.35 !important;
}

/* --- CHECK-LIST: premium minimal dots ---------------------- */
.check-list {
    list-style: none;
    padding: 0;
    margin: 18px 0 28px !important;
    display: grid;
    gap: 4px !important;
}
.check-list li {
    position: relative;
    padding: 10px 14px 10px 38px !important;
    font-size: 0.95rem !important;
    line-height: 1.5 !important;
    color: #1e293b;
    border-radius: 10px;
    transition: background 0.32s cubic-bezier(0.16,1,0.3,1), transform 0.32s cubic-bezier(0.16,1,0.3,1);
}
.check-list li:hover {
    background: linear-gradient(90deg, rgba(13,148,136,0.06) 0%, rgba(13,148,136,0) 100%);
    transform: translateX(2px);
}
.check-list li::before {
    content: '' !important;
    position: absolute !important;
    left: 10px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 18px !important;
    height: 18px !important;
    background:
        linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%) !important;
    border-radius: 50% !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") !important;
    background-size: 11px 11px !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    box-shadow:
        0 1px 2px rgba(13, 148, 136, 0.30),
        0 4px 10px -2px rgba(13, 148, 136, 0.35),
        inset 0 1px 0 rgba(255,255,255,0.25) !important;
    transition: transform 0.32s cubic-bezier(0.16,1,0.3,1);
}
.check-list li:hover::before {
    transform: translateY(-50%) scale(1.08) rotate(-4deg);
}

/* --- TIP-LIST: refined left-accent cards ------------------- */
.tip-list {
    list-style: none;
    padding: 0;
    margin: 18px 0 28px !important;
    display: grid;
    gap: 8px !important;
}
.tip-list li {
    position: relative;
    padding: 14px 18px 14px 48px !important;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.95) 0%, rgba(248,250,251,0.95) 100%) !important;
    border: 1px solid rgba(15,23,42,0.05) !important;
    border-left: none !important;
    border-radius: 12px !important;
    box-shadow:
        0 1px 2px rgba(15,23,42,0.03),
        0 4px 16px -8px rgba(13,148,136,0.10) !important;
    font-size: 0.95rem !important;
    line-height: 1.55 !important;
    color: #1e293b !important;
    overflow: hidden;
    transition: transform 0.35s cubic-bezier(0.16,1,0.3,1), box-shadow 0.35s cubic-bezier(0.16,1,0.3,1), border-color 0.35s cubic-bezier(0.16,1,0.3,1);
}
.tip-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 3px;
    background: linear-gradient(180deg, var(--brand) 0%, var(--gold) 100%);
    transform: scaleY(0.4);
    transform-origin: center;
    transition: transform 0.4s cubic-bezier(0.16,1,0.3,1);
}
.tip-list li::after {
    content: '';
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 35% 35%, rgba(13,148,136,0.25) 0%, rgba(13,148,136,0.08) 60%, transparent 100%);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230d9488' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 18h6'/%3E%3Cpath d='M10 22h4'/%3E%3Cpath d='M12 2a7 7 0 0 1 4 12.7c-.7.5-1 1-1 1.8V18H9v-1.5c0-.8-.3-1.3-1-1.8A7 7 0 0 1 12 2z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 13px 13px;
}
.tip-list li:hover {
    transform: translateY(-1px);
    border-color: rgba(13,148,136,0.18) !important;
    box-shadow:
        0 2px 4px rgba(15,23,42,0.04),
        0 10px 28px -10px rgba(13,148,136,0.22) !important;
}
.tip-list li:hover::before { transform: scaleY(1); }
/* Hide the legacy 💡 emoji that gets prefixed in markup */
.tip-list li {
    text-indent: 0;
}

/* --- SERVICE-GRID: premium numbered cards ------------------ */
.service-grid article {
    min-height: 240px !important;
    padding: 32px 28px 28px !important;
    border: 1px solid rgba(15,23,42,0.06) !important;
    border-radius: 18px !important;
    background:
        linear-gradient(180deg, #ffffff 0%, #fafbfc 100%) !important;
    box-shadow:
        0 1px 2px rgba(15,23,42,0.03),
        0 8px 24px -12px rgba(13,148,136,0.10) !important;
    transition: transform 0.5s cubic-bezier(0.16,1,0.3,1), box-shadow 0.5s cubic-bezier(0.16,1,0.3,1), border-color 0.5s cubic-bezier(0.16,1,0.3,1) !important;
    position: relative;
    overflow: hidden;
}
.service-grid article::before {
    content: '' !important;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px !important;
    background: linear-gradient(90deg, var(--brand) 0%, var(--gold) 50%, var(--brand) 100%) !important;
    background-size: 200% 100% !important;
    transform: scaleX(0) !important;
    transform-origin: left;
    transition: transform 0.5s cubic-bezier(0.16,1,0.3,1) !important;
}
.service-grid article::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -30%;
    width: 240px;
    height: 240px;
    background: radial-gradient(circle, rgba(13,148,136,0.06) 0%, transparent 65%);
    opacity: 0;
    transition: opacity 0.6s cubic-bezier(0.16,1,0.3,1);
    pointer-events: none;
}
.service-grid article:hover {
    transform: translateY(-6px) !important;
    border-color: rgba(13,148,136,0.18) !important;
    box-shadow:
        0 4px 8px rgba(15,23,42,0.04),
        0 24px 48px -16px rgba(13,148,136,0.25) !important;
}
.service-grid article:hover::before {
    transform: scaleX(1) !important;
    animation: shimmerBar 2.4s linear infinite;
}
.service-grid article:hover::after { opacity: 1; }

@keyframes shimmerBar {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

.service-grid article > span {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 44px !important;
    height: 44px !important;
    margin-bottom: 22px !important;
    background: linear-gradient(135deg, #ffffff 0%, #f0fdfa 100%) !important;
    border: 1px solid rgba(13,148,136,0.18) !important;
    border-radius: 12px !important;
    color: var(--brand-dark) !important;
    font-weight: 800 !important;
    font-size: 13px !important;
    letter-spacing: 0.04em;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.8),
        0 1px 2px rgba(13,148,136,0.08),
        0 4px 12px -4px rgba(13,148,136,0.18) !important;
    transition: transform 0.45s cubic-bezier(0.16,1,0.3,1), box-shadow 0.45s cubic-bezier(0.16,1,0.3,1);
    position: relative;
    z-index: 1;
}
.service-grid article:hover > span {
    transform: translateY(-2px) rotate(-3deg);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.9),
        0 2px 4px rgba(13,148,136,0.12),
        0 10px 24px -6px rgba(13,148,136,0.30) !important;
}
.service-grid article h3 {
    position: relative;
    z-index: 1;
    margin: 0 0 12px !important;
    font-size: 1.08rem !important;
    font-weight: 700 !important;
    color: #0f172a !important;
    letter-spacing: -0.012em;
    line-height: 1.35;
}
.service-grid article p {
    position: relative;
    z-index: 1;
    font-size: 0.93rem !important;
    line-height: 1.6 !important;
    color: rgba(15,23,42,0.62) !important;
    margin: 0;
}

/* Mobile refinement */
@media (max-width: 640px) {
    .route-info-card {
        grid-template-columns: 1fr 1fr !important;
    }
    .route-info-card .route-stat { padding: 14px 16px !important; }
    .route-info-card .route-stat strong { font-size: 0.92rem !important; }
    .check-list li { padding: 9px 12px 9px 36px !important; font-size: 0.92rem !important; }
    .tip-list li { padding: 12px 14px 12px 44px !important; font-size: 0.92rem !important; }
    .service-grid article { padding: 26px 22px 22px !important; min-height: 200px !important; }
}
@media (max-width: 400px) {
    .route-info-card { grid-template-columns: 1fr !important; }
}

/* ============================================================
   LEISTUNGEN PAGE — premium, minimal, animated
   ============================================================ */

/* USP cards */
.leistung-usp-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 16px;
    margin: 22px 0 12px;
}
.leistung-usp-card {
    position: relative;
    padding: 24px 22px;
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
    border: 1px solid rgba(15,23,42,0.06);
    border-radius: 16px;
    box-shadow:
        0 1px 2px rgba(15,23,42,0.03),
        0 8px 24px -14px rgba(13,148,136,0.10);
    transition: transform 0.45s cubic-bezier(0.16,1,0.3,1), box-shadow 0.45s cubic-bezier(0.16,1,0.3,1), border-color 0.45s cubic-bezier(0.16,1,0.3,1);
    overflow: hidden;
}
.leistung-usp-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--brand) 0%, var(--gold) 100%);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.5s cubic-bezier(0.16,1,0.3,1);
}
.leistung-usp-card:hover {
    transform: translateY(-4px);
    border-color: rgba(13,148,136,0.18);
    box-shadow:
        0 4px 8px rgba(15,23,42,0.04),
        0 20px 40px -16px rgba(13,148,136,0.22);
}
.leistung-usp-card:hover::before { transform: scaleX(1); }
.leistung-usp-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: linear-gradient(135deg, #f0fdfa 0%, #ffffff 100%);
    border: 1px solid rgba(13,148,136,0.16);
    font-size: 22px;
    margin-bottom: 16px;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.8),
        0 1px 2px rgba(13,148,136,0.08);
    transition: transform 0.45s cubic-bezier(0.16,1,0.3,1);
}
.leistung-usp-card:hover .leistung-usp-icon {
    transform: rotate(-6deg) scale(1.06);
}
.leistung-usp-card strong {
    display: block;
    font-size: 1.02rem;
    font-weight: 700;
    color: #0f172a;
    letter-spacing: -0.01em;
    margin-bottom: 8px;
    line-height: 1.35;
}
.leistung-usp-card p {
    font-size: 0.91rem;
    line-height: 1.6;
    color: rgba(15,23,42,0.62);
    margin: 0;
}

/* Destination cards */
.leistung-dest-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
    margin: 22px 0 12px;
}
.leistung-dest-card {
    position: relative;
    padding: 22px 22px 20px;
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
    border: 1px solid rgba(15,23,42,0.06);
    border-radius: 16px;
    box-shadow:
        0 1px 2px rgba(15,23,42,0.03),
        0 8px 24px -14px rgba(13,148,136,0.10);
    transition: transform 0.45s cubic-bezier(0.16,1,0.3,1), box-shadow 0.45s cubic-bezier(0.16,1,0.3,1), border-color 0.45s cubic-bezier(0.16,1,0.3,1);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.leistung-dest-card:hover {
    transform: translateY(-4px);
    border-color: rgba(13,148,136,0.18);
    box-shadow:
        0 4px 8px rgba(15,23,42,0.04),
        0 20px 40px -16px rgba(13,148,136,0.22);
}
.leistung-dest-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 4px;
}
.leistung-dest-head strong {
    font-size: 1.05rem;
    font-weight: 700;
    color: #0f172a;
    letter-spacing: -0.012em;
    line-height: 1.3;
}
.leistung-dest-price {
    flex-shrink: 0;
    padding: 4px 12px;
    background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);
    color: white;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: -0.005em;
    white-space: nowrap;
    box-shadow: 0 4px 10px -3px rgba(13,148,136,0.40);
}
.leistung-dest-sub {
    display: block;
    font-size: 0.82rem;
    color: var(--brand-dark);
    font-weight: 600;
    margin-bottom: 6px;
    letter-spacing: -0.005em;
}
.leistung-dest-meta {
    display: inline-block;
    font-size: 0.75rem;
    color: rgba(15,23,42,0.55);
    font-weight: 600;
    margin-bottom: 10px;
}
.leistung-dest-card p {
    font-size: 0.9rem;
    line-height: 1.6;
    color: rgba(15,23,42,0.62);
    margin: 0;
}

/* Process steps */
.leistung-steps {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
    margin: 22px 0 12px;
    counter-reset: step;
}
.leistung-step {
    position: relative;
    padding: 22px 20px 20px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafa 100%);
    border: 1px solid rgba(15,23,42,0.06);
    border-radius: 14px;
    box-shadow:
        0 1px 2px rgba(15,23,42,0.03),
        0 6px 20px -12px rgba(13,148,136,0.10);
    transition: transform 0.4s cubic-bezier(0.16,1,0.3,1), box-shadow 0.4s cubic-bezier(0.16,1,0.3,1);
}
.leistung-step:hover {
    transform: translateY(-3px);
    box-shadow:
        0 3px 6px rgba(15,23,42,0.04),
        0 16px 32px -14px rgba(13,148,136,0.18);
}
.leistung-step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);
    color: white;
    border-radius: 10px;
    font-weight: 800;
    font-size: 14px;
    margin-bottom: 12px;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.25),
        0 4px 12px -3px rgba(13,148,136,0.40);
}
.leistung-step strong {
    display: block;
    font-size: 0.98rem;
    font-weight: 700;
    color: #0f172a;
    margin-bottom: 6px;
    letter-spacing: -0.01em;
}
.leistung-step p {
    font-size: 0.88rem;
    line-height: 1.55;
    color: rgba(15,23,42,0.62);
    margin: 0;
}

/* Price table */
.leistung-price-table {
    margin: 22px 0 12px;
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
    border: 1px solid rgba(15,23,42,0.06);
    border-radius: 16px;
    overflow: hidden;
    box-shadow:
        0 1px 2px rgba(15,23,42,0.03),
        0 8px 24px -14px rgba(13,148,136,0.10);
}
.leistung-price-row {
    display: grid;
    grid-template-columns: 2fr 1fr auto;
    gap: 16px;
    padding: 16px 22px;
    align-items: center;
    border-bottom: 1px solid rgba(15,23,42,0.04);
    transition: background 0.35s cubic-bezier(0.16,1,0.3,1);
}
.leistung-price-row:last-child { border-bottom: none; }
.leistung-price-row:hover { background: rgba(240,253,250,0.55); }
.leistung-price-route {
    font-size: 0.95rem;
    font-weight: 700;
    color: #0f172a;
    letter-spacing: -0.01em;
}
.leistung-price-duration {
    font-size: 0.82rem;
    color: rgba(15,23,42,0.55);
    font-weight: 600;
}
.leistung-price-amount {
    font-size: 1rem;
    font-weight: 800;
    color: var(--brand-dark);
    padding: 4px 14px;
    background: linear-gradient(135deg, rgba(13,148,136,0.08) 0%, rgba(245,158,11,0.06) 100%);
    border-radius: 999px;
    white-space: nowrap;
    letter-spacing: -0.005em;
}

/* FAQ accordion */
.leistung-faq {
    margin: 22px 0 12px;
    display: grid;
    gap: 10px;
}
.leistung-faq-item {
    background: linear-gradient(180deg, #ffffff 0%, #fafbfc 100%);
    border: 1px solid rgba(15,23,42,0.06);
    border-radius: 14px;
    box-shadow:
        0 1px 2px rgba(15,23,42,0.03),
        0 4px 14px -10px rgba(13,148,136,0.10);
    transition: border-color 0.35s cubic-bezier(0.16,1,0.3,1), box-shadow 0.35s cubic-bezier(0.16,1,0.3,1);
    overflow: hidden;
}
.leistung-faq-item[open] {
    border-color: rgba(13,148,136,0.18);
    box-shadow:
        0 2px 4px rgba(15,23,42,0.04),
        0 14px 32px -14px rgba(13,148,136,0.22);
}
.leistung-faq-item summary {
    position: relative;
    padding: 18px 56px 18px 22px;
    cursor: pointer;
    font-size: 0.98rem;
    font-weight: 700;
    color: #0f172a;
    letter-spacing: -0.01em;
    list-style: none;
    transition: color 0.3s ease;
}
.leistung-faq-item summary::-webkit-details-marker { display: none; }
.leistung-faq-item summary::after {
    content: '';
    position: absolute;
    right: 20px;
    top: 50%;
    width: 28px;
    height: 28px;
    margin-top: -14px;
    background: linear-gradient(135deg, var(--brand) 0%, var(--brand-dark) 100%);
    border-radius: 8px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-size: 14px 14px;
    background-repeat: no-repeat;
    background-position: center;
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,0.25),
        0 3px 8px -2px rgba(13,148,136,0.40);
    transition: transform 0.4s cubic-bezier(0.16,1,0.3,1);
}
.leistung-faq-item[open] summary::after {
    transform: rotate(180deg);
}
.leistung-faq-item summary:hover { color: var(--brand-dark); }
.leistung-faq-item p {
    padding: 0 22px 20px;
    margin: 0;
    font-size: 0.93rem;
    line-height: 1.65;
    color: rgba(15,23,42,0.7);
}

/* Mobile refinement */
@media (max-width: 640px) {
    .leistung-usp-card { padding: 20px 18px; }
    .leistung-dest-card { padding: 20px 18px 18px; }
    .leistung-dest-head { flex-direction: column; gap: 6px; }
    .leistung-dest-price { align-self: flex-start; }
    .leistung-price-row {
        grid-template-columns: 1fr;
        gap: 6px;
    }
    .leistung-price-amount { justify-self: flex-start; }
    .leistung-faq-item summary { padding: 16px 50px 16px 18px; font-size: 0.92rem; }
}
