/* =============================================
   TYPO3 Content Element Overrides
   Italimport Scialdone Design
   ============================================= */

/* ---- RESET: TYPO3 Standard-Margins/Paddings entfernen ---- */
.frame {
    margin: 0;
    padding: 0;
}

.frame-inner {
    margin: 0;
    padding: 0;
}

.ce-textpic,
.ce-text,
.ce-image,
.ce-media {
    margin: 0;
    padding: 0;
}

/* TYPO3 Gallery Reset */
.ce-gallery,
.ce-row,
.ce-column {
    margin: 0;
    padding: 0;
}

.ce-gallery figure {
    margin: 0;
    padding: 0;
}

.ce-gallery figcaption {
    display: none;
}

/* Bodytext Reset */
.ce-bodytext {
    line-height: 1.6;
    color: #333;
}

.ce-bodytext p:first-child {
    margin-top: 0;
}

.ce-bodytext p:last-child {
    margin-bottom: 0;
}

/* =============================================
   SECTION-UEBERSCHRIFTEN
   Im Backend: Erstelle ein "Header Only" Element
   als erstes Element in jeder Section.
   Die Ueberschrift bekommt automatisch das rote
   Styling mit gruenem Unterstrich.
   ============================================= */

/* Alle Section-Ueberschriften gleich stylen */
.about .frame-type-header,
.menu .frame-type-header,
.theken-section .frame-type-header,
.buffet-section .frame-type-header {
    text-align: center;
    margin-bottom: 30px;
    display: block;
    width: 100%;
}

.about .frame-type-header header,
.menu .frame-type-header header,
.theken-section .frame-type-header header,
.buffet-section .frame-type-header header {
    display: inline-block;
}

/* Die H-Tags innerhalb der Header-Elemente */
.about .frame-type-header h1,
.about .frame-type-header h2,
.about .frame-type-header h3,
.menu .frame-type-header h1,
.menu .frame-type-header h2,
.menu .frame-type-header h3,
.theken-section .frame-type-header h1,
.theken-section .frame-type-header h2,
.theken-section .frame-type-header h3,
.buffet-section .frame-type-header h1,
.buffet-section .frame-type-header h2,
.buffet-section .frame-type-header h3 {
    text-align: center;
    font-size: 2.5rem;
    font-weight: bold;
    font-style: italic;
    color: #d32f2f;
    position: relative;
    display: inline-block;
    margin: 0 0 10px 0;
    padding-bottom: 10px;
}

/* Gruener Unterstrich */
.about .frame-type-header h1::after,
.about .frame-type-header h2::after,
.about .frame-type-header h3::after,
.menu .frame-type-header h1::after,
.menu .frame-type-header h2::after,
.menu .frame-type-header h3::after,
.theken-section .frame-type-header h1::after,
.theken-section .frame-type-header h2::after,
.theken-section .frame-type-header h3::after,
.buffet-section .frame-type-header h1::after,
.buffet-section .frame-type-header h2::after,
.buffet-section .frame-type-header h3::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: 0;
    width: 120px;
    height: 4px;
    background-color: #388e3c;
    transform: translateX(-50%);
}

/* =============================================
   HEADER ONLY (Lobster + Tricolore)
   TYPO3 frame-Wrapper Reset
   ============================================= */
.frame-type-sitepackage_header_only .frame-inner,
.frame-type-sitepackage-header-only .frame-inner,
[class*="header_only"] .frame-inner,
[class*="header-only"] .frame-inner {
    margin: 0;
    padding: 0;
}

/* Sicherstellen, dass kein Standard-Header-Styling greift */
.frame-type-sitepackage_header_only header,
.frame-type-sitepackage-header-only header,
[class*="header_only"] > .frame-inner > header,
[class*="header-only"] > .frame-inner > header {
    display: none;
}

/* About Element: TYPO3 Standard-Header verstecken */
.frame-type-sitepackage_about > .frame-inner > header,
.frame-type-sitepackage-about > .frame-inner > header,
[class*="sitepackage_about"] > .frame-inner > header,
[class*="sitepackage-about"] > .frame-inner > header {
    display: none;
}

/* =============================================
   MODUL 1a: HERO (Custom Element)
   ============================================= */

/* Hero: TYPO3 frame-Wrapper unsichtbar machen */
.hero .frame {
    margin: 0;
    padding: 0;
    max-width: none;
}

/* Hero Hintergrundbild */
.hero .hero-bg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    pointer-events: none;
}

/* Dunkles Overlay */
.hero .hero-overlay {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.1);
    z-index: 1;
}

/* Hero Inhalt – font-size und text-transform reset,
   weil .hero in styles.css font-size:60px und
   text-transform:uppercase hat, was sonst an alle
   Kinder vererbt wird */
.hero .hero-inner {
    position: relative;
    z-index: 3;
    text-align: center;
    font-size: 1rem;
    text-transform: none;
}

.hero .hero-inner h1 {
    font-family: "Lucida Sans", "Lucida Sans Regular", "Lucida Grande", "Lucida Sans Unicode", Geneva, Verdana, sans-serif;
    font-size: 5.5rem;
    font-weight: bold;
    color: white;
    text-transform: uppercase;
    text-align: left;
    margin: 0 0 16px 0;
    line-height: 1.15;
    letter-spacing: 0.01em;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.35);
}

.hero .hero-inner .hero-content {
    font-size: 1.2rem;
    color: white;
    margin: 0 0 20px 0;
}

.hero .hero-inner .hero-content a {
    color: white;
    text-decoration: none;
    font-weight: bold;
    position: relative;
    z-index: 2;
}

.hero .hero-inner .hero-content a:hover {
    text-decoration: underline;
}

.hero .hero-inner .hero-btn {
    position: relative;
    z-index: 1000;
    padding: 12px 30px;
    background-color: #fff;
    border: 2px solid #d32f2f;
    color: #d32f2f;
    border-radius: 30px;
    font-size: 1rem;
    font-weight: bold;
    text-decoration: none;
    text-transform: none;
    letter-spacing: 0;
    cursor: pointer;
    transition: all 0.3s ease-in-out;
    display: inline-block;
    margin: 0;
}

.hero .hero-inner .hero-btn:hover {
    background-color: #d32f2f;
    color: #fff;
}

/* =============================================
   MODUL 1b: INFO-BOXEN (Custom Element)
   ============================================= */

/* Info-Boxen Container */
.info-boxes .frame {
    margin: 0;
    padding: 0;
    max-width: none;
}

/* Einzelne InfoBox */
.infobox {
    width: 560px;
    height: 310px;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #f8f8f8;
    border: 2px solid white;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    position: relative;
    overflow: hidden;
    margin: 10px;
}

/* InfoBox Hintergrundbild */
.infobox .infobox-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    z-index: 0;
}

/* InfoBox dunkles Overlay */
.infobox .infobox-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 1;
}

/* InfoBox Inhalt */
.infobox .infobox-content {
    position: relative;
    z-index: 2;
    text-align: center;
    padding: 15px;
}

.infobox .infobox-content h2 {
    margin-top: 10px;
    margin-bottom: 15px;
    font-size: 2.3rem;
    color: white;
}

.infobox .infobox-content p {
    text-align: center;
    margin: 0 0 20px;
    padding: 0 15px;
    color: white;
}

.infobox .infobox-content .category-btn {
    padding: 12px 25px;
    min-width: 160px;
    margin-top: 5px;
}

/* Responsive InfoBox */
@media (max-width: 767px) {
    .infobox {
        width: 100%;
        max-width: 500px;
        height: auto;
        min-height: 220px;
        margin: 0 auto 25px auto;
        display: flex;
    }
}

/* =============================================
   MODUL 2: UEBER UNS
   Backend: 1x "Header Only" + 1x "Text & Bild"
   (Bild-Position: "Rechts" waehlen)
   ============================================= */
.about {
    background-color: white;
    padding: 50px 20px;
}

.about .container {
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
}

/* Text & Bild nebeneinander */
.about .ce-textpic {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-wrap: wrap;
    max-width: 1200px;
    margin: 0 auto;
}

.about .ce-textpic .ce-bodytext {
    flex: 1;
    min-width: 300px;
    max-width: 600px;
    padding: 20px;
    text-align: left;
}

.about .ce-textpic .ce-gallery,
.about .ce-gallery {
    flex: 1;
    min-width: 300px;
    max-width: 400px;
    padding: 20px;
}

.about .ce-gallery img {
    width: 100%;
    border-radius: 10px;
    box-shadow: 0 6px 10px rgba(0, 0, 0, 0.1);
}

/* About Content Element (Custom) */
.about-content {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    flex-wrap: wrap;
    max-width: 1200px;
    margin: 0 auto;
}

.about-text {
    flex: 1;
    min-width: 300px;
    max-width: 600px;
    padding: 20px;
    text-align: left;
}

.about-text p {
    line-height: 1.6;
    color: #333;
}

.about-img {
    flex: 1;
    min-width: 300px;
    max-width: 400px;
    padding: 20px;
}

.about-img img {
    width: 100%;
    border-radius: 10px;
    box-shadow: 0 6px 10px rgba(0, 0, 0, 0.1);
}

/* Social Media Icons in Ueber uns */
.about-social {
    margin-top: 20px;
    padding-top: 10px;
}

.about-social p {
    color: #555;
    font-size: 1rem;
    margin-bottom: 12px;
}

.about-social-icons {
    display: flex;
    gap: 15px;
}

.about-social-icons a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    text-decoration: none;
    transition: transform 0.3s ease;
}

.about-social-icons a:hover {
    transform: translateY(-3px);
}

.about-social-icons img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

@media (max-width: 767px) {
    .about-content {
        flex-direction: column;
        align-items: center;
    }

    .about-text,
    .about-img {
        max-width: 100%;
        min-width: 0;
    }

    .about-social-icons {
        justify-content: center;
    }

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

/* =============================================
   MODUL 3: SPEISEKARTE / BISTRO
   Backend: 1x "Header Only" fuer Titel
   + 1x "Text Only" fuer Beschreibung
   + Pro Gericht: 1x "Text & Bild"
   ============================================= */
.menu {
    background-color: #f8f8f8;
    padding: 40px 20px;
}

.menu .container {
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
}

/* Menu Header Container (Ueberschrift + Beschreibung) */
.menu-header {
    text-align: center;
    margin-bottom: 10px;
}

/* Beschreibungstext unter der Ueberschrift */
.menu .frame-type-text {
    text-align: center;
    margin-bottom: 30px;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

/* Kategorie Filter Buttons */
.menu-categories {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 40px;
    gap: 10px;
}

/* Menu Items Container */
.menu-items {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0;
    width: 100%;
    clear: both;
}

/* =============================================
   GERICHT CARD (Custom Content Element)
   ============================================= */
.dish-card {
    background-color: white;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease-in-out;
    width: 280px;
    margin: 10px;
    display: inline-flex;
    flex-direction: column;
    vertical-align: top;
    text-align: center;
}

.dish-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.15);
}

/* Bild oben - direkt verbunden */
.dish-card-image {
    margin: 0;
    padding: 0;
    overflow: hidden;
}

.dish-card-image img {
    width: 100%;
    height: 240px;
    object-fit: cover;
    display: block;
}

/* Inhalt unter dem Bild */
.dish-card-content {
    padding: 15px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.dish-card-title {
    font-size: 1.4rem;
    color: #d32f2f;
    font-weight: bold;
    margin: 0 0 8px 0;
}

.dish-card-description {
    color: #555;
    font-size: 1rem;
    margin: 0 0 8px 0;
    line-height: 1.4;
}

.dish-card-price {
    color: #388e3c;
    font-size: 1.2rem;
    font-weight: bold;
    margin-top: auto;
    padding-top: 10px;
}

/* =============================================
   MODUL 4: SALUMERIA
   Backend: 1x "Header Only" fuer Titel
   + 3x "Text & Bild" (Bild oben)
   ============================================= */
.theken-section {
    padding: 40px 20px;
    background: none;
}

.theken-section .container {
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
}

/* =============================================
   SALUMERIA CARD (Custom Content Element)
   ============================================= */
.salumeria-card {
    display: inline-flex;
    flex-direction: column;
    vertical-align: top;
    width: 360px;
    max-width: 100%;
    background-color: #fff;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.08);
    transition: transform 300ms ease, box-shadow 300ms ease;
    margin: 12px;
    text-align: left;
}

.salumeria-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 14px 35px rgba(0, 0, 0, 0.12);
}

/* Bild oben - direkt mit Card verbunden */
.salumeria-card-image {
    margin: 0;
    padding: 0;
    overflow: hidden;
}

.salumeria-card-image img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
    transition: transform 500ms ease;
}

.salumeria-card:hover .salumeria-card-image img {
    transform: scale(1.06);
}

/* Titel unter dem Bild */
.salumeria-card-content {
    padding: 20px;
}

.salumeria-card-title {
    font-size: 1.4rem;
    color: #d32f2f;
    font-weight: bold;
    margin: 0 0 10px 0;
}

.salumeria-card-text {
    color: #444;
    line-height: 1.7;
    margin: 0;
}

/* =============================================
   MODUL 5: CATERING / BUFFET – Parallax Galerie
   ============================================= */

/* Salumeria Header Container */
.theken-header {
    text-align: center;
    margin-bottom: 10px;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 20px;
}

/* Buffet Header Container (Ueberschrift + Beschreibung, wie Speisekarte) */
.buffet-header {
    text-align: center;
    margin-bottom: 10px;
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding: 0 20px;
}

/* Beschreibungstext unter der Buffet-Ueberschrift */
.buffet-header .frame-type-text {
    text-align: center;
    margin-bottom: 30px;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.7;
    color: #444;
}

/* TYPO3 frame-Wrapper innerhalb der Galerie */
.buffet-content .frame {
    margin: 0;
    padding: 0;
}

/* =============================================
   RESPONSIVE
   ============================================= */
@media (max-width: 991px) and (min-width: 768px) {
    /* Salumeria Cards untereinander (nur Tablet) */
    .salumeria-card {
        width: 100%;
        max-width: 500px;
        display: flex;
        margin: 12px auto;
    }
}

@media (max-width: 991px) {
    /* Speisekarte Cards groesser */
    .dish-card {
        width: 100%;
        max-width: 400px;
        display: flex;
        margin: 10px auto;
    }

    /* Bildbox hoeher, damit der Teller nicht oben/unten abgeschnitten wird */
    .dish-card-image img {
        height: 280px;
    }
}

@media (max-width: 767px) {
    /* Hero kleiner */
    .hero {
        min-height: 300px;
    }

    .hero .hero-inner h1 {
        font-size: 2.6rem;
        line-height: 1.15;
        margin: 0 0 12px 0;
    }

    /* Ueber uns: Text und Bild untereinander */
    .about .ce-textpic {
        flex-direction: column;
        align-items: center;
    }

    .about .ce-textpic .ce-bodytext,
    .about .ce-textpic .ce-gallery,
    .about .ce-gallery {
        max-width: 100%;
        min-width: 0;
    }

    /* Section-Ueberschriften kleiner */
    .about .frame-type-header h1,
    .about .frame-type-header h2,
    .menu .frame-type-header h1,
    .menu .frame-type-header h2,
    .theken-section .frame-type-header h1,
    .theken-section .frame-type-header h2,
    .buffet-section .frame-type-header h1,
    .buffet-section .frame-type-header h2 {
        font-size: 2rem;
    }

    /* Hero: Layout und Font-Size-Reset auf Mobil */
    .hero .hero-inner {
        font-size: 1rem;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
    }

    .hero .hero-inner .hero-content {
        font-size: 1.1rem;
    }

    /* hero-btn: gleich wie Desktop */


    /* Salumeria Accordion – normales Block-Layout auf Mobile */
    .theken-section .container {
        display: block;
        overflow: visible;
        padding: 0 16px;
    }
}

/* Scroll-Reveal auf Mobile fuer Swipe-Sections deaktivieren */
@media (max-width: 767px) {
    .theken-section.scroll-reveal,
    .buffet-section.scroll-reveal,
    .theken-section .scroll-reveal-child,
    .buffet-section .scroll-reveal-child {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }
}

/* Salumeria-Dots auf Desktop ausblenden */
@media (min-width: 768px) {
    .salumeria-dots {
        display: none;
    }
}

/* =============================================
   BUTTONS
   ============================================= */
.category-btn {
    padding: 12px 25px;
    margin: 8px;
    background-color: #fff;
    border: 2px solid #d32f2f;
    color: #d32f2f;
    border-radius: 30px;
    cursor: pointer;
    font-size: 1rem;
    font-weight: bold;
    transition: all 0.3s ease-in-out;
    display: inline-block;
    text-decoration: none;
}

.category-btn:hover,
.category-btn.active {
    background-color: #d32f2f;
    color: white;
}

/* =============================================
   IMPRESSUM SEITE
   ============================================= */
.impressum-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 80px 20px 60px;
    background-color: #fff;
}

.impressum-container {
    max-width: 600px;
    width: 100%;
    text-align: center;
}

.impressum-container .frame {
    margin: 0;
    padding: 0;
}

.impressum-container h1,
.impressum-container h2,
.impressum-container h3 {
    color: #d32f2f;
    font-size: 2rem;
    font-weight: bold;
    margin-bottom: 30px;
}

.impressum-container p {
    color: #333;
    font-size: 1.05rem;
    line-height: 1.8;
    margin: 0 0 8px 0;
    font-weight: 600;
}

.impressum-back {
    margin-top: 40px;
}

.impressum-back .category-btn {
    padding: 14px 35px;
    font-size: 1.05rem;
}

@media (max-width: 767px) {
    .impressum-page {
        padding: 100px 20px 40px;
        align-items: flex-start;
    }

    .impressum-container h1,
    .impressum-container h2,
    .impressum-container h3 {
        font-size: 1.6rem;
    }

    .impressum-container p {
        font-size: 1rem;
    }
}
