/* ==================== Allgemeine Einstellungen ==================== */

:root {
    /* Navbar-Höhe */
    --navbar-height: 67px;

    /* Farbpalette */
    --primary-color: #2A3439;        /* Blaugrau - Footer */
    --secondary-color: #4B0E1F;      /* Akzent-Brombeere - Navbar, Button, Checkbox, Link */
    --accent-color: #6B0522;         /* Warme helle Brombeerfarbe - Button Hover, Navbar Dropdown Menu Hover */
    --background-white: #FAF2F3;     /* Hintergrund fast weiß */
    --background-light: #FAE8E8;     /* Hintergrund Hell */
    --background-dark: #F0B9B9;      /* Hintergrund Dunkel */
    --text-primary: #2C1017;         /* Dunkles Bordeaux Rot */
    --text-secondary: #8B132D;       /* Warme helle Brombeerfarbe */
    --text-light: white;             /* Helles Altrosa #F5D7DF; */
    --shadow-light: rgba(20, 0, 5, 0.1);
    --shadow-medium: rgba(20, 0, 5, 0.2);
    --shadow-dark: rgba(20, 0, 5, 0.3);
    --gradient-primary: linear-gradient(135deg, var(--secondary-color) 0%, var(--accent-color) 100%);
    --gradient-secondary: linear-gradient(135deg, var(--background-dark) 0%, var(--background-light) 100%);

    /* prevent text selection 
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -o-user-select: none;
    user-select: none;
    */
}

html, body {
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; /* PRÜFEN OB LIZENZPFLICHTIG */
    height: 100%;
    margin: 0;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    background: var(--gradient-secondary);
    color: var(--text-primary);
    line-height: 1.6;
    scroll-behavior: smooth;
    scrollbar-gutter: auto;
}

@media (max-width: 768px) {
    html, body {
       /* Anker-Sprünge (z. B. #faq) um die Navbar-Höhe nach unten versetzen,
       damit die fixierte Navbar den Anfang der Section nicht überdeckt.
       Steht hier (html + body), da je nach Browser eines von beiden scrollt. */
    scroll-padding-top: calc(var(--navbar-height) + 0.5rem);
    }
}

html {
    background-color: var(--background-light);
    height: 100%;
    min-height: 100dvh;
}

body {
    min-height: 100%;
    min-height: 100dvh;
    background-attachment: fixed;
}

.error-message {
    color: var(--text-secondary);
    background: var(--background-light);
    border: 1px solid var(--secondary-color);
    padding: 0.75rem 1rem;
    border-radius: 4px;
    margin-bottom: 1rem;
}

/* Überschriften und spezielle Schriftarten */
h1 {
    font-size: 2.5rem;
    font-family: "Pinyon Script", cursive;
}

h2 {
    font-size: 2rem;
    font-family: "Dancing Script", cursive;
}

h3 {
    font-size: 1.5rem;
}

/* Links */
a {
    color: var(--secondary-color);
    text-decoration: underline;
}

a:hover {
    color: var(--accent-color);
}


/* ==================== Hauptinhalt ==================== */

.content {
    /*padding: 70px 0em 0em;*/
    text-align: center;
}

/* ==================== Navigation ==================== */

.navbar {
    /*background: var(--gradient-primary);*/
    background: transparent;
    box-shadow: 0 4px 20px var(--shadow-medium);
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0rem 2rem;
    position: fixed;
    top: 0;
    width: 100%;
    box-sizing: border-box;
    z-index: 1000;
    isolation: isolate;
    transition: all 0.3s ease;
}

.navbar::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    pointer-events: none;
    z-index: 0;
}

.navbar > * {
    position: relative;
    z-index: 1;
}

.navbar-spacer {
    display: block;
    width: 100%;
    height: none;
    background: black;
}

@media (max-width: 768px) {
    .navbar-spacer {
        height: var(--navbar-height);
    }
}

.brand-name {
    position: relative;
    z-index: 1;
    margin-left: 0.5rem;
}

.logo {
    position: relative;
    z-index: 2;
}

.logo img {
    height: 45px;
    transition: transform 0.3s ease;
}

.logo img:hover {
    transform: scale(1.05);
}

.nav-links {
    display: flex;
    margin-left: auto;
}

.nav-item a {
    color: var(--text-light);
    text-decoration: none;
    padding: 0.75rem 1.25rem;
    display: block;
    transition: all 0.3s ease;
    font-weight: 500;
    position: relative;
    border-radius: 25px;
    margin: 1rem 0rem;
}

.nav-item a:hover {
    background: rgba(255, 255, 255, 0.15);
    transform: translateY(-2px);
}

/* Dropdown-Menü */
.dropdown {
    position: relative;
}

.dropdown-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    margin-top: 0;
    background: transparent;
    box-shadow: 0 8px 32px var(--shadow-dark);
    overflow: hidden;
    border-radius: 0 0 25px 25px;
    min-width: max-content;
    width: max-content;
    white-space: nowrap;
    transform: translateY(-10px);
    transition: all 0.3s ease;
    z-index: 1002;
    isolation: isolate;
}

.dropdown-menu::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    pointer-events: none;
    z-index: 0;
}

.dropdown-menu a {
    color: rgb(200, 200, 200);
    background: transparent;
    padding: 0.5rem 1rem;
    display: block;
    white-space: nowrap;
    transition: all 0.3s ease;
    position: relative;
    z-index: 1;
    border-radius: 25px 0px 0px 25px;
    margin: 0rem;
    min-width: 100px;
}

.dropdown-menu a:last-child {
    border-bottom: none;
}

.dropdown-menu a:hover {
    background: rgba(255, 255, 255, 0.15);
    color: var(--text-light);
    transform: translateX(5px);
}

.dropdown:hover .dropdown-menu {
    display: block;
    opacity: 1;
    transform: translateY(0);
}

/* ==================== Fußzeile ==================== */

.footer {
    background-color: var(--primary-color);
    color: white;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1em 2em;
    width: 100%;
    font-size: 0.9em;
    box-sizing: border-box;
    margin-top: auto;
}

.footer-left a {
    color: white;
    text-decoration: none;
    margin-right: 3em;
}

.footer-left a:hover {
    text-decoration: underline;
}

.footer-center {
    display: flex;
    align-items: center;
    justify-content: center;
}

.footer-center .lang-switch {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    transition: transform 0.2s ease;
}

.footer-center .lang-switch:hover {
    transform: scale(1.2);
}

.flag-icon {
    width: 32px;
    height: 20px;
    border-radius: 2px;
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.3);
}

.footer-right {
    text-align: right;
    margin-right: 1em;
}

@media (max-width: 768px) {
    .footer {
        flex-direction: column;
        text-align: center;
        gap: 0.5em;
        padding: 1em 0.5em;
    }

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

    .footer-left a {
        margin-right: 1em;
    }

    .footer-left a:last-child {
        margin-right: 0;
    }

    .footer-right {
        text-align: center;
        margin-right: 0;
    }
}

/* ==================== Mobile Navigation ==================== */

.mobile-menu-toggle {
    display: none;
    flex-direction: column;
    cursor: pointer;
    padding: 0.5rem;
    margin-left: auto;
    flex-shrink: 0;
    position: relative;
    z-index: 2;
}

.mobile-menu-toggle span {
    width: 25px;
    height: 3px;
    background: var(--text-light);
    margin: 3px 0;
    transition: 0.3s;
    border-radius: 2px;
}

@media (max-width: 1100px) {
    :root {
        --navbar-height: calc(45px + 2rem);
    }

    .brand-name {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);
        margin-left: 0;
    }
    
    .mobile-menu-toggle {
        display: flex;
        margin-right: 0.5rem;
    }

    .nav-links {
        display: flex;
        position: fixed;
        top: 83.26px;
        right: 0;
        left: auto;
        width: max-content;
        min-width: 160px;
        max-height: calc(100vh - 70px);
        overflow-y: auto;
        background: transparent;
        flex-direction: column;
        padding: 0.5rem 0.25rem 0.5rem 0rem;
        box-shadow: 0px 4px 20px var(--shadow-medium);
        z-index: 1001;
        transform: translateX(100%);
        transition: transform 0.3s ease;
        pointer-events: none;
        border-radius: 0 0 0 25px;
        isolation: isolate;
    }

    .nav-links::before {
        content: '';
        position: absolute;
        inset: 0;
        background: rgba(0, 0, 0, 0.4);
        backdrop-filter: blur(10px);
        -webkit-backdrop-filter: blur(10px);
        pointer-events: none;
        z-index: 0;
        border-radius: inherit;
    }

    .nav-links > * {
        position: relative;
        z-index: 1;
    }

    .nav-links.active {
        transform: translateX(0);
        pointer-events: auto;
    }

    .nav-item {
        margin: 0 5px;
    }
    
    .nav-item a {
        padding: 0.3rem 0.75rem;
        font-weight: bold;
        margin: 0;
    }

    .dropdown-menu {
        position: static;
        display: block;
        transform: none;
        background: transparent;
        backdrop-filter: none;
        margin: 0;
        padding: 0;
        box-shadow: none;
        border: none;
        min-width: unset;
        width: auto;
        white-space: normal;
        margin-left: 0.5rem;
        border-radius: 0px;
    }

    .dropdown-menu::before {
        background: transparent;
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }    
    
    .dropdown-menu a {
        padding: 0.2rem 0.75rem;
        font-size: 0.9rem;
        color: rgb(200, 200, 200);
        background: transparent;
        backdrop-filter: none;
        border-bottom: none;
        white-space: normal;
        font-weight: normal;
    }

    .dropdown-menu a:hover {
        background: rgba(255, 255, 255, 0.15);
        color: var(--text-light);
    }

    .navbar {
        padding: 1rem;
        padding-right: 0.5rem;
    }
}

/* ==================== Moderne Komponenten ==================== */

/* Cards */
.card {
    background: var(--background-white);
    backdrop-filter: blur(10px);
    border-radius: 25px;
    padding: 2rem;
    box-shadow: 0 8px 32px var(--shadow-light);
    border: 1px solid rgba(255, 255, 255, 0.2);
    transition: all 0.3s ease;
    margin: 1rem;
}

/* Follow Me Grid */
.follow-section {
    margin: 2rem auto 3rem;
}

.follow-grid {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    align-items: stretch;
}

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

@media (min-width: 1200px) {
    .follow-grid {
        grid-template-columns: repeat(5, 1fr);
    }
}

.follow-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    padding: 1.5rem;
    background: var(--background-white);
    border-radius: 20px;
    box-shadow: 0 8px 32px var(--shadow-light);
    border: 1px solid rgba(255, 255, 255, 0.2);
    text-decoration: none;
    color: inherit;
    transition: all 0.3s ease;
}

.follow-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 40px var(--shadow-medium);
}

.follow-logo {
    width: 72px;
    height: 72px;
    background: var(--gradient-primary);
    mask-image: var(--logo-url);
    -webkit-mask-image: var(--logo-url);
    mask-position: center;
    -webkit-mask-position: center;
    mask-repeat: no-repeat;
    -webkit-mask-repeat: no-repeat;
    mask-size: contain;
    -webkit-mask-size: contain;
    transition: transform 0.3s ease, background 0.3s ease;
}

.follow-card:hover .follow-logo {
    transform: scale(1.05);
}

.follow-name {
    font-weight: 700;
    font-size: 1.05rem;
    background: var(--gradient-primary);
    background-clip: text;
    -webkit-background-clip: text;
    color: transparent;
    transition: text-shadow 0.3s ease;
}

.follow-card:hover .follow-name {
    text-shadow: 0 0 18px rgba(0, 0, 0, 0.1);
}

.follow-logo::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s;
}

.follow-logo:hover::before {
    left: 100%;
}

/* Buttons */
.btn {
    display: inline-block;
    padding: 1rem 2rem;
    padding: clamp(0.8rem, 1vw + 0.3rem, 1rem) clamp(1.5rem, 1vw + 0.3rem, 2rem);
    font-size: clamp(0.9rem, 1vw + 0.5rem, 1.2rem);
    background: var(--gradient-primary);
    color: var(--text-light);
    text-decoration: none;
    border-radius: 50px;
    font-weight: 600;
    transition: all 0.3s ease;
    border: 2px solid transparent;
    cursor: pointer;
    box-shadow: 0 4px 20px var(--shadow-medium);
    position: relative;
    overflow: hidden;
}

.btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 32px var(--shadow-dark);
    color: var(--text-light);
    text-decoration: none;
}

.btn-secondary {
    background: transparent;
    border: 2px solid var(--accent-color);
    color: var(--accent-color);
}

.btn-secondary:hover {
    background: var(--accent-color);
    color: var(--text-light);
}

.container {
    max-width: min(1200px, 100%);
    margin: 0 auto;
    padding: 1rem min(1em, 10%);
}

/* Grid System */
.row {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -1rem;
    align-items: center;
}

.col {
    flex: 1;
    padding: 0 1rem;
}

@media (max-width: 768px) {
    .row {
        flex-direction: column;
    }

    .col {
        width: 100%;
        margin-bottom: 1rem;
    }
    
    .col-1, .col-2, .col-3, .col-4, .col-6, .col-8, .col-9, .col-12 {
        width: 100%;
        flex: 0 0 100%;
        margin-bottom: 1rem;
    }
}

.col-1 { flex: 0 0 8.333333%;}
.col-2 { flex: 0 0 16.666667%;}
.col-3 { flex: 0 0 25%;}
.col-4 { flex: 0 0 33.333333%;}
.col-6 { flex: 0 0 50%;}
.col-8 { flex: 0 0 66.666667%;}
.col-9 { flex: 0 0 75%;}
.col-12 { flex: 0 0 100%;}

/* Spacing */
.mt-1 { margin-top: 0.5rem; }
.mt-2 { margin-top: 1rem; }
.mt-3 { margin-top: 1.5rem; }
.mt-4 { margin-top: 2rem; }
.mt-5 { margin-top: 3rem; }

.mb-1 { margin-bottom: 0.5rem; }
.mb-2 { margin-bottom: 0.25rem; }
.mb-3 { margin-bottom: 1.5rem; }
.mb-4 { margin-bottom: 2rem; }
.mb-5 { margin-bottom: 3rem; }

.p-1 { padding: 0.5rem; }
.p-2 { padding: 1rem; }
.p-3 { padding: 1.5rem; }
.p-4 { padding: 2rem; }
.p-5 { padding: 3rem; }

/* Text Alignment */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }
.text-block {
    text-align: justify;
    text-align-last: none;
}

.padding-block {
    width: 70%;
    padding: 15%;
}
/*
@media (max-width: 768px) {
    .padding-block {
        width: 90%;
        padding: 5%;
    }
}
*/
/* Images */
.img-responsive {
    max-width: 100%;
    height: auto;
    border-radius: 25px;
    box-shadow: 0 8px 32px var(--shadow-light);
    transition: all 0.3s ease;
}

/* Hero Section */
.hero {
    position: relative;
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100vh;
    height: 100svh;
    display: flex;
    align-items: center;
    text-align: center;
    justify-content: center;
    overflow: clip;
}

.hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: clip;
    mask-size: 100%;
    z-index: 0;
}

.hero-text {
    z-index: 1;
}

@media (max-width: 768px) {
    .hero {
        height: 40vh;
        height: 40svh;
    }
}

/*
.hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1;
}
*/
.hero-text {
    position: relative;
    text-align: center;
    color: white;
    max-width: 800px;
    padding: 2rem;
    text-shadow: 0px 0px 4px rgba(0, 0, 0, 0.99);
}

.hero-text h1 {
    font-size: clamp(3rem, 5vw + 1rem, 5rem);
    font-weight: normal;
}

.hero-text h2 {
    font-size: 3rem;
    font-weight: normal;
}

.hero-text p {
    font-size: 1.3rem;
    font-size: clamp(1rem, 1vw + 0.5rem, 1.5rem);
}

/* Section Spacing */
.section {
    padding: 0rem 0;
}

/* Loading Animation */
body:not(.loaded) {
    overflow: hidden;
}

body:not(.loaded)::before {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--gradient-secondary);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
}

body:not(.loaded)::after {
    content: '';
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 50px;
    height: 50px;
    border: 3px solid rgba(139, 69, 19, 0.3);
    border-top: 3px solid var(--accent-color);
    border-radius: 50%;
    animation: spin 1s linear infinite;
    z-index: 10000;
}

@keyframes spin {
    0% { transform: translate(-50%, -50%) rotate(0deg); }
    100% { transform: translate(-50%, -50%) rotate(360deg); }
}

/* Enhanced Card Hover Effects */
.card {
    position: relative;
    overflow: hidden;
}

.card::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s;
}

/* Enhanced Button Styles */
.btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s;
}

.btn:hover::before {
    left: 100%;
}

/* Form Enhancements */
.select, textarea {
    transition: all 0.3s ease;
}

.select:focus, textarea:focus {
    transform: translateY(-2px);
    box-shadow: 0 4px 20px var(--shadow-medium);
}

/* Image Gallery Effects */
.img-responsive {
    transition: all 0.3s ease;
}

/* Custom Scrollbar */
@media (max-width: 768px) {
    html {
        scrollbar-width: thin;
        scrollbar-color: var(--secondary-color) transparent;
    }
}

/* Desktop: sehr schmale, halbtransparente Scrollbar */
::-webkit-scrollbar {
    width: 4px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: rgba(75, 14, 31, 0.5); /* var(--secondary-color) mit 50% Transparenz */
    border-radius: 2px;
    transition: background 0.2s ease, opacity 0.2s ease;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--accent-color);
    opacity: 1;
}

/* Mobile: etwas breitere Scrollbar für bessere Bedienbarkeit */
@media (max-width: 768px) {
    ::-webkit-scrollbar {
        width: 8px;
    }
    
    ::-webkit-scrollbar-thumb {
        background: var(--secondary-color);
        border-radius: 4px;
    }
    
    ::-webkit-scrollbar-thumb:hover {
        background: var(--accent-color);
    }
}

/* Print Styles */
@media print {
    .navbar, .footer, .btn {
        display: none !important;
    }

    .content {
        padding-top: 0 !important;
    }
}

/* ==================== Tabelle & Bild (Erster Abschnitt) ==================== */
.about-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 2rem;
}

.about-table {
    flex: 1;
    width: 100%;
    border-collapse: collapse;
    background: var(--background-white);
}

.about-table td {
    padding: 1rem;
    text-align: center;
    font-size: 1rem;
    font-weight: bold;
    border: 5px solid var(--background-dark);
}

/* ==================== FAQ ==================== */
.faq-item {
    border-bottom: 1px solid var(--secondary-color);
    padding: 1em 1em;
    max-width: clamp(min(800px, 100%), 50%, 1000px);
    margin: 0 auto;
}

.faq-question {
    text-align: left;
    display: flex;
    justify-content: space-between;
    cursor: pointer;
    font-weight: bold;
}

.plus-icon {
    font-size: 1.5em;
    transition: transform 0.3s ease;
}

.faq-answer {
    display: none;
    padding-top: 0.5em;
    color: var(--secondary-color);
    text-align: left;
}

.faq-answer.active {
    display: block;
}

.plus-icon.rotate {
    transform: rotate(45deg);
}

/* ==================== Abstände ==================== */

.centered-text {
    max-width: 800px;
    margin: 2rem auto;
    text-align: center;
    padding: 0 1rem;
}

/* Social Links Styling */
.social-links a {
    display: block;
    margin-bottom: 0.5rem;
    text-align: center;
}

.social-links {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    margin-horizontal: 5px;
}


/* ========== REVIEW-SECTION ========== */

.review-section {
    position: relative;
    width: 100%;
    height: 80vh;
    background: center/cover no-repeat fixed; /* fixiertes BG */
    background-image: image-set(
        url('pictures/home_3_768.webp') type('image/webp'),
        url('pictures/home_3.jpg') type('image/jpeg')
    );
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

@media (max-width: 768px) {
    .review-section {
        background-attachment: scroll;
    }
}

@media (min-width: 769px) {
    .review-section {
        background-image: image-set(
            url('pictures/home_3_1280.webp') type('image/webp'),
            url('pictures/home_3.jpg') type('image/jpeg')
        );
    }
}

@media (min-width: 1400px) {
    .review-section {
        background-image: image-set(
            url('pictures/home_3_1920.webp') type('image/webp'),
            url('pictures/home_3.jpg') type('image/jpeg')
        );
    }
}

@media (min-width: 2560px) {
    .review-section {
        background-image: image-set(
            url('pictures/home_3_2560.webp') type('image/webp'),
            url('pictures/home_3.jpg') type('image/jpeg')
        );
    }
}

/* about-me: eigenes Hintergrundbild about_me_3 (viewport-basiert 768/1280/1920/2560) */
.review-section-about-me-3 {
    background-image: image-set(
        url('pictures/about_me_3_768.webp') type('image/webp'),
        url('pictures/about_me_3.jpg') type('image/jpeg')
    );
}
@media (min-width: 769px) {
    .review-section-about-me-3 {
        background-image: image-set(
            url('pictures/about_me_3_1280.webp') type('image/webp'),
            url('pictures/about_me_3.jpg') type('image/jpeg')
        );
    }
}
@media (min-width: 1400px) {
    .review-section-about-me-3 {
        background-image: image-set(
            url('pictures/about_me_3_1920.webp') type('image/webp'),
            url('pictures/about_me_3.jpg') type('image/jpeg')
        );
    }
}
@media (min-width: 2560px) {
    .review-section-about-me-3 {
        background-image: image-set(
            url('pictures/about_me_3_2560.webp') type('image/webp'),
            url('pictures/about_me_3.jpg') type('image/jpeg')
        );
    }
}

/* dunkle Overlay über dem Bild, damit Text sichtbar ist */
.review-overlay {
    position: absolute;
    inset: 0; /* top:0;right:0;bottom:0;left:0; */
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.5);
    pointer-events: none; /* Buttons sind außerhalb, damit der Overlay Klicks nicht blockiert */
}

/* Kasten (weiß halbtransparent) in der Mitte */
.review-container {
    position: relative;
    width: 70%;
    max-width: 700px;
    min-height: 70vh;
    padding: 2rem;
    box-shadow: var(--shadow-dark);
    display: flex;
    align-items: center;      /* vertikal zentriert */
    justify-content: center;  /* horizontal zentriert */
    pointer-events: auto;     /* erlaubt Interaktion falls nötig */
    overflow: hidden;         /* verhindert Überlauf bei Animation */
    text-align: center;
}

/* einzelne Rezensionen: absolut positioniert */
.review {
    position: absolute;
    text-shadow: 0 0px 10px rgba(0, 0, 0, 0.6);
    inset: 0; /* füllt den review-container */
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 1rem;
    box-sizing: border-box;
    opacity: 0;
    transition: opacity 1s ease;
    font-size: 1.1rem;
    color: white;
    text-align: justify;
	text-align-last: none;
}

/* sichtbar */
.review.show {
    opacity: 1;
}

/* Hilfsklassen werden per JS nicht mehr benötigt, wir steuern mit inline-styles/transform */

/* Autorenname */
.review span {
    display: block;
    margin-top: 0.6rem;
    font-weight: 700;
    color: var(--secondary-color);
}

/* Pfeile am Bildrand (außerhalb des weißen Kastens) */
.arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 30;
    background: rgba(255, 255, 255, 0.75);
    border: none;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    font-size: 1.6rem;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.15);
}

.arrow.left { left: 16px; }
.arrow.right { right: 16px; }

.arrow:hover { background: rgba(255, 255, 255, 0.95); }

/* Responsiv */
@media (max-width: 768px) {
    .review-container { width: 90%; padding: 1.2rem; }
    .arrow { width: 40px; height: 40px; font-size: 1.4rem; }
    .review { font-size: 1rem; padding: 0 70px; }
}


/* ========== Abschnitt: Mittiger Textblock ========== */
.text-center {
    max-width: 800px;
    margin: 2rem auto;
    text-align: center;
}

/* ========== Responsive Anpassungen ========== */

/* ========== Vorlieben / Preferences ========== */
.pref-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-areas:
        "vanilla kinky"
        "group   kinky"
        "limits  limits";
    gap: clamp(0.75rem, 1.5vw, 1.5rem);
    align-items: start;
    width: 100%;
    max-width: 1000px;
    margin: 0 auto;
    box-sizing: border-box;
}

.pref-card {
    display: grid;
    grid-template-columns: clamp(72px, 14%, 120px) 1fr;
    border-radius: 22px;
    overflow: hidden;
    background: var(--background-white);
    box-shadow: 0 8px 32px var(--shadow-medium);
    border: 1px solid var(--background-dark);
}

.pref-card--vanilla { grid-area: vanilla; }
.pref-card--kinky   { grid-area: kinky; }
.pref-card--group   { grid-area: group; }
.pref-card--limits  { grid-area: limits; }

/* Tabus-Karte spannt über beide Spalten -> Icon-Spalte auf gleiche feste Breite
   wie die anderen Karten fixieren (sonst wird sie prozentual doppelt so breit) */
@media (min-width: 769px) {
    .pref-card--limits {
        grid-template-columns: 72px 1fr;
    }
}

/* Dunkler Icon-Block links */
.pref-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.25rem 0.75rem;
    background: var(--gradient-primary);
    color: var(--background-light);
}
.pref-icon svg {
    width: clamp(32px, 4vw, 46px);
    height: clamp(32px, 4vw, 46px);
}

/* Heller Inhalts-Block rechts */
.pref-content {
    padding: 1.25rem clamp(1rem, 2.5vw, 1.75rem);
    text-align: left;
}
.pref-title {
    display: inline-block;
    margin-bottom: 0.6rem;
    font-family: "Dancing Script", cursive;
    font-size: 2.2rem;
    line-height: 1.2;
    font-weight: 700;
    color: var(--secondary-color);
    text-decoration: none;
}
.pref-list {
    list-style: none;
    margin: 0;
    padding: 0;
}
.pref-list li {
    position: relative;
    padding-left: 1.25rem;
    margin-bottom: 0.4rem;
    color: var(--text-primary);
}
.pref-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.55em;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--text-secondary);
}

@media (max-width: 768px) {
    .pref-grid {
        grid-template-columns: 1fr;
        grid-template-areas:
            "vanilla"
            "kinky"
            "group"
            "limits";
        padding-left: 1rem;
        padding-right: 1rem;
    }
    .pref-card {
        grid-template-columns: clamp(64px, 22%, 96px) 1fr;
    }
    .pref-content {
        padding: 1rem 1.1rem;
    }
}

/* ==================== Formular-Stile ==================== */

form {
    max-width: 600px;
    margin: 0 auto;
    margin-bottom: 3rem;
    background: var(--background-white);
    padding: 2rem min(2rem, 2%);
    border-radius: 25px;
    box-shadow: 0 8px 32px var(--shadow-medium);
    transition: all 0.3s ease;
    border: 2px solid var(--background-light);
}

input, select, textarea, button {
    background: var(--background-white);
    border: 2px solid var(--background-dark);
    border-radius: 25px;
    padding: 0.5em;
    font-family: inherit;
    width: 100%;
    margin-top: 5px;
    font-size: 1em;
}

input:focus, select:focus, textarea:focus {
    outline: none;
    border-color: var(--accent-color);
    box-shadow: 0 0 0 3px var(--shadow-light);
    background: rgba(255, 255, 255, 1);
    transform: translateY(-1px);
}

/* Textarea für Freitextfeld */
textarea {
    box-sizing: border-box;
    resize: none;
    overflow: hidden; /* Kein Scrollbalken */
    min-height: 50px;
}

/* Hinweistext über dem Freitextfeld */
.freitext-infos {
    text-align: left;
    margin: 0 0 8px;
    font-size: 0.95em;
    line-height: 1.4;
    opacity: 0.85;
}

/* Button-Stile */
button {
    background: var(--gradient-primary);
    color: white;
    border: none;
    cursor: pointer;
}

button:hover {
    background-color: var(--accent-color);
}

/* ==================== Unsichtbare Tabelle für Checkboxen & Dropdowns ==================== */

.form-table {
    width: 100%;
    border-collapse: collapse; /* Entfernt Standardabstände */
}

.form-table td {
    padding: 10px 0;
    vertical-align: middle; /* Vertikale Zentrierung */
}

.checkbox-cell {
    text-align: right;
}

.checkbox-cell input[type="checkbox"] {
    margin-right: 1px;
}

.form-table label {
    text-align: left;
    display: block;
    margin-left: 5px;
}

.form-table select,
.form-table input[type="date"],
.form-table input[type="text"],
.form-table textarea {
    width: 100%;
    background: var(--background-white);
    border-radius: 25px;
    padding: 0.5em;
    box-sizing: border-box;
    margin: 0;
    font-family: 'Arial', sans-serif;
    font-size: 1em;
}

/* ==================== Checkbox-Design ==================== */

input[type="checkbox"] {
    appearance: none;
    background: var(--background-light);
    border: 2px solid var(--secondary-color);
    width: 20px;
    height: 20px;
    border-radius: 25px;
    display: inline-block;
    cursor: pointer;
    position: relative;
}

input[type="checkbox"]:checked {
    background-color: var(--secondary-color);
}

input[type="checkbox"]:checked::after {
    content: "✔";
    font-size: 16px;
    color: white;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

/* ==================== Kalender-Stile ==================== */

input[type="date"] {
    background: var(--background-white);
    border-radius: 25px;
    padding: 5px;
    font-family: 'Arial', sans-serif;
    font-size: 1em;
}

/* ==================== Enjoy me ==================== */

.image-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(25%, 1fr));
    width: 100%;
}

.image-tile {
    padding: 50px 0px;
    /*min-height: 100%;*/
    background-size: cover;
    background-position: center;
    /*background-attachment: fixed;*/
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Image-tile Hintergrundbilder viewport-basiert (768 / 1280 / 1920 / 2560) */
.image-tile-enjoy-me-2 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_2_768.webp'); }
.image-tile-enjoy-me-3 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_3_768.webp'); }
.image-tile-enjoy-me-4 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_4_768.webp'); }
.image-tile-enjoy-me-5 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_5_768.webp'); }
.image-tile-enjoy-me-6 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_6_768.webp'); }
.image-tile-enjoy-me-7 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_7_768.webp'); }
.image-tile-enjoy-me-8 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_8_768.webp'); }
.image-tile-enjoy-me-9 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_9_768.webp'); }

@media (min-width: 769px) {
    .image-tile-enjoy-me-2 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_2_1280.webp'); }
    .image-tile-enjoy-me-3 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_3_1280.webp'); }
    .image-tile-enjoy-me-4 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_4_1280.webp'); }
    .image-tile-enjoy-me-5 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_5_1280.webp'); }
    .image-tile-enjoy-me-6 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_6_1280.webp'); }
    .image-tile-enjoy-me-7 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_7_1280.webp'); }
    .image-tile-enjoy-me-8 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_8_1280.webp'); }
    .image-tile-enjoy-me-9 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_9_1280.webp'); }
}

@media (min-width: 1400px) {
    .image-tile-enjoy-me-2 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_2_1920.webp'); }
    .image-tile-enjoy-me-3 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_3_1920.webp'); }
    .image-tile-enjoy-me-4 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_4_1920.webp'); }
    .image-tile-enjoy-me-5 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_5_1920.webp'); }
    .image-tile-enjoy-me-6 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_6_1920.webp'); }
    .image-tile-enjoy-me-7 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_7_1920.webp'); }
    .image-tile-enjoy-me-8 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_8_1920.webp'); }
    .image-tile-enjoy-me-9 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_9_1920.webp'); }
}

@media (min-width: 2560px) {
    .image-tile-enjoy-me-2 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_2_2560.webp'); }
    .image-tile-enjoy-me-3 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_3_2560.webp'); }
    .image-tile-enjoy-me-4 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_4_2560.webp'); }
    .image-tile-enjoy-me-5 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_5_2560.webp'); }
    .image-tile-enjoy-me-6 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_6_2560.webp'); }
    .image-tile-enjoy-me-7 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_7_2560.webp'); }
    .image-tile-enjoy-me-8 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_8_2560.webp'); }
    .image-tile-enjoy-me-9 { background-image: linear-gradient(rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0.5)), url('pictures/enjoy_me_9_2560.webp'); }
}

.tile-content {
    color: white;
    text-align: center;
    max-width: 80%;
    text-shadow: 0 0px 10px rgba(0, 0, 0, 0.6);
}

/* Tablet: 3 Spalten */
@media (max-width: 1900px) {
    .image-strip {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* Kleiner Tablet: 2 Spalten */
@media (max-width: 1400px) {
    .image-strip {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Mobile: 1 Spalte */
@media (max-width: 768px) {
    .image-strip {
        grid-template-columns: 1fr;
    }
}

.hero-table {
    position: relative;
    text-align: center;
    color: white;
    max-width: 800px;
    padding: min(1rem, 2%);
    text-shadow: 0px 0px 4px rgba(0, 0, 0, 0.99);
    border-collapse: separate;     /* extrem wichtig */
    border-spacing: 15px 15px;         /* Abstand = „Trennlinie“ */
    background: transparent;
    width: 100%;
}

/* Zellen */
.hero-table td {              /* abgerundete Ecken */
    padding: 0px 0px;
    text-align: center;
    vertical-align: middle;
}

@media (max-height: 768px) {
    .hero-table {
        border-spacing: 10px 10px; 
    }
}

.hero-table td:nth-child(1) { width: 50%; }

/* ==================== About Me Image with Overlay ==================== */

.about-me-image-container {
    position: relative;
    width: 100%;
    min-height: 600px;
    max-height: 1000px;
    overflow: hidden;
    box-shadow: 0 8px 32px var(--shadow-light);
    background-image: image-set(
        url('pictures/home2_768.webp') type('image/webp'),
        url('pictures/home2.jpg') type('image/jpeg')
    );
    background-size: 50% 100%;
    background-position: fixed;
    /*left: 50%;*/
    /*translate: 0, -25%;*/
    background-attachment: fixed;
    background-repeat: no-repeat;
}

@media (min-width: 769px) {
    .about-me-image-container {
        background-image: image-set(
            url('pictures/home2_1280.webp') type('image/webp'),
            url('pictures/home2.jpg') type('image/jpeg')
        );
    }
}

@media (min-width: 1400px) {
    .about-me-image-container {
        background-image: image-set(
            url('pictures/home2_1920.webp') type('image/webp'),
            url('pictures/home2.jpg') type('image/jpeg')
        );
    }
}

@media (min-width: 2560px) {
    .about-me-image-container {
        background-image: image-set(
            url('pictures/home2_2560.webp') type('image/webp'),
            url('pictures/home2.jpg') type('image/jpeg')
        );
    }
}

.about-me-image {
    display: none; /* Versteckt das img-Tag, da wir background-image verwenden */
}

.about-me-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    /*background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3), rgba(0, 0, 0, 0.7));*/
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 6rem 1rem;
    color: white;
    text-align: center;
}

.about-me-overlay h2 {
    color: white;
    margin-bottom: 1.5rem;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8);
}

/* Services-Spalte vertikal zentrieren und mit Innenabstand versehen */
.sub-section-class .col-6 {
    justify-content: center;
    padding: clamp(1.5rem, 4vh, 3rem) clamp(1rem, 3vw, 2.5rem);
    box-sizing: border-box;
}

.services-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(0.75rem, 1.5vw, 1.5rem);
    width: 100%;
    max-width: 840px;
    margin: 0 auto;
}

.service-col {
    display: flex;
    flex-direction: column;
    gap: clamp(0.5rem, 1vw, 0.85rem);
    min-width: 0;
}

/* Spaltenüberschrift (In-Person Dates / Online) – gefüllte Gradient-Karte */
.service-header {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.9rem 1rem;
    margin-bottom: 0.25rem;
    border-radius: 14px;
    background: var(--gradient-primary);
    color: var(--text-light);
    text-decoration: none;
    font-weight: 700;
    box-shadow: 0 6px 18px var(--shadow-medium);
    position: relative;
    overflow: hidden;
    transition: all 0.3s ease;
}
.service-header:hover {
    color: var(--text-light);
    text-decoration: none;
    transform: translateY(-2px);
    box-shadow: 0 10px 26px var(--shadow-dark);
}
/* Shine-Sweep wie bei den Buttons */
.service-header::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s;
}
.service-header:hover::before {
    left: 100%;
}
.service-title {
    font-size: clamp(1rem, 0.6vw + 0.85rem, 1.25rem);
    line-height: 1.2;
    text-align: left;
}

/* Header-Icon: heller, umrandeter Rahmen */
.service-header .service-icon {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    border: 2px solid rgba(255, 255, 255, 0.6);
    color: var(--text-light);
}

/* Einzelnes Angebot als helle Karte */
.service-item {
    display: flex;
    align-items: center;
    gap: 0.85rem;
    padding: 0.55rem 0.85rem;
    border-radius: 50px;
    background: var(--background-white);
    color: var(--secondary-color);
    text-decoration: none;
    box-shadow: 0 4px 14px var(--shadow-light);
    position: relative;
    overflow: hidden;
    transition: all 0.3s ease;
}
.service-item:hover {
    background: var(--gradient-primary);
    color: var(--text-light);
    text-decoration: none;
    transform: translateY(-2px);
    box-shadow: 0 8px 22px var(--shadow-medium);
}
/* Shine-Sweep wie bei den Buttons */
.service-item::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s;
}
.service-item:hover::before {
    left: 100%;
}
.service-label {
    font-size: clamp(0.85rem, 0.5vw + 0.7rem, 1.05rem);
    font-weight: 600;
    line-height: 1.2;
    text-align: left;
}

/* Item-Icon: gefüllter Kreis mit hellem Symbol */
.service-item .service-icon {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--gradient-primary);
    color: var(--text-light);
    box-shadow: 0 2px 8px var(--shadow-light);
    box-sizing: border-box;
    transition: all 0.3s ease;
}
/* Beim Hover heller Rahmen statt gefülltem Kreis, damit das Symbol auf dem Gradient sichtbar bleibt */
.service-item:hover .service-icon {
    background: transparent;
    border: 2px solid white;
    box-shadow: none;
}

/* Icon-Grundlayout + Größe fixieren */
.service-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.service-icon svg {
    display: block;
    width: 22px;
    height: 22px;
}

@media (max-width: 768px) {
    .services-grid {
        gap: 0.5rem;
    }
    .service-header,
    .service-item {
        gap: 0.6rem;
        padding: 0.55rem 0.7rem;
    }
    .service-header .service-icon,
    .service-item .service-icon {
        width: 36px;
        height: 36px;
    }
    .service-icon svg {
        width: 20px;
        height: 20px;
    }
}

.sub-section-class {
    height: min(800px, 100vh);
    height: min(800px, 100svh);
    display: flex;
    margin: 0 0;
    position: relative;
    flex-wrap: wrap;
    align-items: stretch;
}

@media (max-width: 768px) {
    .sub-section-class {
        height: min(800px, 100vh);
        height: min(800px, 100svh);
        flex-direction: column;
        height: auto;
    }
}

.component-block {
    min-height: 800px;
    height: 100%;
    width: 100%;
    flex: 0 0 50%;
    left: 0;
    min-width: 0;
    position: relative;
    top: 0;
    order: 1;
}

.sub-section-class .col-6 {
    height: 100%;
    display: flex;
    flex-direction: column;
    order: 2;
}

@media (max-width: 768px) {
    .component-block {
        order: 1;
        min-height: 800px;
        height: 800px;
        width: 100%;
        flex: 0 0 100%;
    }
    
    .sub-section-class .col-6 {
        order: 2;
        height: auto;
        width: 100%;
        flex: 0 0 100%;
        margin-bottom: 0;
    }

    .sub-section-class .col-6 .row {
        flex-direction: row;
    }

    .sub-section-class .col-6 .row .col-6 {
        flex: 0 0 50%;
        width: 50%;
        margin-bottom: 0;
    }

    .picture-wrapper {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }
    
    .about-me-overlay {
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 10;
    }
}

.picture-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: clip;
    mask-size: 100%;
}

.picture-scroll {
    height: calc(100% + 200lvh);
    margin-top: -100lvh;
    overflow: clip;
    isolation: isolate;
}

.picture-sticky {
    position: sticky;
    top: 0;
    width: 100%;
    height: max(100lvh, calc(100% - 200lvh));
    margin-bottom: calc(100lvh - max(100lvh, 100%));
    display: block;
    padding: 0;
}

@media (max-width: 768px) {
    .picture-scroll {
        height: 100%;
        margin-top: 0;
    }
    
    .picture-sticky {
        position: relative;
        height: 100%;
        margin-bottom: 0;
    }
}

.picture-sticky img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 50% 50%;
}

.link-rose {
    color: var(--background-dark);
    text-decoration: underline;
    transition: color 0.2s ease;
}
.link-rose:hover {
    color: var(--background-light);
}

.text-justify {
    padding: 20px;
    text-align: justify;
    hyphens: auto;
    -webkit-hyphens: auto;
    word-break: break-word;
}

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

.col-img-flush {
    padding: 0 !important;
    overflow: hidden;
}

@media (max-width: 768px) {
    .col-4:not(.col-img-flush) {
        padding: 0 1rem;
        box-sizing: border-box;
    }
}

.mobile-break {
  display: none;
}

@media (max-width: 768px) {
  .mobile-break {
    display: inline;
  }
}
