/*
 * Landhaus Averbeck – Website-Refresh 2026
 * Arbeitsdatei für alle NEUEN Styles (Typo-Umstellung, Module, Angebots-Kacheln).
 * Die build.min.css wird NICHT angefasst – alle Overrides und Neuerungen hier.
 * Struktur: 0) Variablen  1) Typo-System  2) Header  3) Neue Module  4) Angebote  5) Instagram  6) Responsive
 */

/* ---------------------------------------------------------------
   0a) Schriften lokal (Refresh 2026)
   "Brother 1816" und "Vollkorn" (Gewicht 500) werden von den
   Elementor-Einstellungen der neuen Startseite referenziert. Ohne
   diese Deklarationen kaemen sie nur ueber Elementor Pro (Custom
   Fonts) bzw. Google Fonts. Dateien liegen im Theme (assets/font/),
   damit Live ohne Pro und ohne externe Anfragen auskommt.
   Gewichte wie im Custom-Font-Upload: 400 = Book, 500 = Medium.
   --------------------------------------------------------------- */
@font-face {
    font-family: "Brother 1816";
    src: url("../font/Brother1816/Brother-1816-Book.woff2") format("woff2"),
         url("../font/Brother1816/Brother-1816-Book.woff") format("woff");
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Brother 1816";
    src: url("../font/Brother1816/Brother-1816-Medium.woff2") format("woff2"),
         url("../font/Brother1816/Brother-1816-Medium.woff") format("woff");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: "Vollkorn";
    src: url("../font/Vollkorn/Vollkorn-500-latin-ext.woff2") format("woff2");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
    font-family: "Vollkorn";
    src: url("../font/Vollkorn/Vollkorn-500-latin.woff2") format("woff2");
    font-weight: 500;
    font-style: normal;
    font-display: swap;
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}



/* ---------------------------------------------------------------
   0) Farb- und Schrift-Variablen des Refresh
   --------------------------------------------------------------- */

:root {
    --nwr-green: #154037;
    --nwr-green-text: #1B4039;
    --nwr-rose: #E4B2A8;
    --nwr-white: #FFFFFF;
    --nwr-font-sans: 'BrotherMedium', sans-serif;
    --nwr-font-sans-book: 'BrotherBook', sans-serif;
    --nwr-font-serif: 'VollkornSemiBold', serif;
    --nwr-font-hand: 'MaradonaSignatureRegular', cursive;
}


/* ---------------------------------------------------------------
   1) Typo-System (H1/H2-Tausch)
   Brother 1816 Versalien als Headline, Vollkorn als Topline,
   Maradona nur noch als Akzent. Wird im Typo-Pass ausgearbeitet.
   --------------------------------------------------------------- */


/* ---------------------------------------------------------------
   2) Header (volle Breite für Video UND Bild)
   --------------------------------------------------------------- */


/* ---------------------------------------------------------------
   3) Neue Module (Struktur-CSS)
   --------------------------------------------------------------- */

/* Topline in den neuen Modulen (bewusst auf die neuen Module
   begrenzt, damit Bestandsseiten unberührt bleiben) */
.nwr-fullimage .topline,
.nwr-bigbox-slide .topline,
.nwr-layered .topline {
    font-family: var(--nwr-font-serif);
    color: var(--nwr-rose);
    font-size: calc(15px + 0.3vw);
    letter-spacing: 0.08em;
    margin: 0 0 0.9em;
}

.nwr-fullimage h2,
.nwr-bigbox-slide h2,
.nwr-layered h2:not(.handwrit) {
    font-family: var(--nwr-font-sans);
    font-weight: 400;
    color: var(--nwr-green);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    line-height: 1.15;
    margin: 0 0 0.6em;
    font-size: calc(22px + 1.7vw);
}

@media (min-width: 1600px) {
    .nwr-fullimage h2,
    .nwr-bigbox-slide h2,
    .nwr-layered h2:not(.handwrit) {
        font-size: 50px;
    }
}

/* In der Textbox etwas kleiner, damit lange Worte nicht anstossen */
.nwr-fullimage .nwr-fullimage-box h2 {
    font-size: calc(18px + 1.4vw);
}

@media (min-width: 1600px) {
    .nwr-fullimage .nwr-fullimage-box h2 {
        font-size: 40px;
    }
}

.nwr-fullimage .nwr-fullimage-box p:not(.topline),
.nwr-bigbox-slide .text-container p:not(.topline) {
    font-family: var(--nwr-font-sans-book);
    color: var(--nwr-green-text);
    font-size: 15px;
    line-height: 2;
}




/* --- Bild Fullscreen + Textbox (.nwr-fullimage) --- */



.nwr-fullimage {
    position: relative;
}

.nwr-fullimage .nwr-fullimage-media img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1600 / 968;
    object-fit: cover;
}

.nwr-fullimage .nwr-fullimage-box {
    position: relative;
    z-index: 2;
    width: 33%;
    min-width: 380px;
    max-width: 530px;
    margin-top: clamp(-560px, -29vw, -240px);
    margin-left: 7.5%;
    background: var(--nwr-white);
}

.nwr-fullimage.box-right .nwr-fullimage-box {
    margin-left: auto;
    margin-right: 7.5%;
}

.nwr-fullimage .nwr-fullimage-box .inner {
    padding: calc(28px + 2vw) calc(24px + 1.8vw);
}


/* --- Gelayerte Bilder + Text (.nwr-layered) ---
   Erbt das Grund-Layout der bestehenden .widget-text.image-Sektionen
   aus der build.min.css. Versatz, Abstaende und neue Typo werden im
   Typo-Pass hier verfeinert, ohne die alten Text-Container zu aendern. */


/* ---------------------------------------------------------------
   4) Angebote (Startseiten-Slider + Buchungsstrecke)
   --------------------------------------------------------------- */

/* --- Angebots-Slider (.nwr-angebote) ---
   Markup kommt serverseitig aus functions/SliderAngebote.php, Init aus
   refresh-2026.js (die alte .slider-angebote-Init in app.min.js greift
   nicht mehr). Drittel-Kacheln randlos, weisse Info-Box unten auf jeder
   Kachel. Die volle Breite liefert der Widget-Wrapper ueber die
   Theme-Klasse outer-content (SliderAngeboteModul.php). */

.nwr-angebote {
    position: relative;
    overflow: hidden;
    transition: opacity 0.4s ease;
}

.nwr-angebote.loading {
    opacity: 0;
}

/* Slide-Breite steuert die sichtbare Kachel-Anzahl (slidesPerView 'auto',
   siehe refresh-2026.js): Desktop 3, Tablet 2, Mobil 1 */
.nwr-angebote .swiper-slide {
    width: 33.3334%;
}


@media (max-width: 1023px) {
    .nwr-angebote .swiper-slide {
        width: 50%;
    }
}

@media (max-width: 767px) {
    .nwr-angebote .swiper-slide {
        width: 100%;
    }
}

.nwr-angebote .swiper-slide .item {
    position: relative;
    display: block;
    width: 100%;
    -webkit-user-select: none;
    user-select: none;
}

.nwr-angebote .swiper-slide .item img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 533 / 763;
    object-fit: cover;
}

/* Weisse Info-Box unten auf der Kachel */
.nwr-angebote .nwr-offer-box {
    position: absolute;
    left: 50%;
    bottom: calc(16px + 2.5vw);
    transform: translateX(-50%);
    width: 77%;
    background: var(--nwr-white);
    text-align: center;
    padding: calc(18px + 1.2vw) 16px;
    z-index: 2;
}

.nwr-angebote .nwr-offer-box h3 {
    font-family: var(--nwr-font-sans);
    font-weight: 400;
    color: var(--nwr-green);
    text-transform: uppercase;
    letter-spacing: 0.14em;
    line-height: 1.4;
    font-size: calc(16px + 0.9vw);
    margin: 0 0 0.5em;
    padding: 0;
}

@media (min-width: 1600px) {
    .nwr-angebote .nwr-offer-box h3 {
        font-size: 30px;
    }
}

.nwr-angebote .nwr-offer-box .nwr-offer-meta {
    font-family: var(--nwr-font-sans);
    color: var(--nwr-green);
    font-size: 13px;
    letter-spacing: 0.1em;
    margin: 0;
}

/* Pfeile wie bei der Sliderbox: Altrosa-Kreis, weisser Pfeil, mittig */
.nwr-angebote .swiper-button-prev,
.nwr-angebote .swiper-button-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 49px;
    height: 49px;
    margin: 0;
    z-index: 5;
    cursor: pointer;
}

.nwr-angebote .swiper-button-prev {
    left: calc(24px + 2.5vw);
}

.nwr-angebote .swiper-button-next {
    right: calc(24px + 2.5vw);
}

.nwr-angebote .swiper-button-prev:after,
.nwr-angebote .swiper-button-next:after {
    display: none;
    content: none;
}

.nwr-angebote .circle-arrow {
    display: block;
    width: 100%;
    height: 100%;
}

.nwr-angebote .circle-arrow .circle {
    fill: var(--nwr-rose);
}

.nwr-angebote .circle-arrow .arrow {
    fill: none;
    stroke: var(--nwr-white);
    stroke-width: 3;
}


/* ---------------------------------------------------------------
   5) Instagram
   --------------------------------------------------------------- */


/* ---------------------------------------------------------------
   6) Responsive
   --------------------------------------------------------------- */

@media (max-width: 767px) {

    /* Bild Fullscreen + Textbox: Box unter das Bild, volle Breite */
    .nwr-fullimage .nwr-fullimage-media img {
        aspect-ratio: auto;
    }

    .nwr-fullimage .nwr-fullimage-box,
    .nwr-fullimage.box-right .nwr-fullimage-box {
        width: 100%;
        min-width: 0;
        max-width: none;
        margin: 0;
    }

    .nwr-fullimage .nwr-fullimage-box .inner {
        padding: 32px 24px 8px;
        text-align: center;
    }

    /* Sliderbox: Bild oben, Text darunter zentriert, Pfeile auf dem Bild */
    .nwr-bigbox-slide,
    .slider-bigbox.image-right .nwr-bigbox-slide {
        flex-direction: column;
    }

    .nwr-bigbox-slide .image-container {
        width: 100%;
    }

    .nwr-bigbox-slide .image-container img {
        height: auto;
        aspect-ratio: 1 / 1;
    }

    .nwr-bigbox-slide .text-container .inner {
        padding: 32px 24px 12px;
        max-width: none;
        text-align: center;
    }

    .slider-bigbox .swiper-button-prev,
    .slider-bigbox .swiper-button-next {
        top: calc(100vw - 78px);
        transform: none;
    }

    .slider-bigbox .swiper-button-prev {
        left: 18px;
    }

    .slider-bigbox .swiper-button-next {
        right: 18px;
    }

    /* Angebots-Slider: eine Kachel pro Ansicht, Pfeile im oberen Bildbereich.
       display: block noetig, weil die build.min.css Swiper-Pfeile auf Mobil
       global ausblendet */
    .nwr-angebote .nwr-offer-box {
        width: 86%;
        bottom: 44px;
        padding: 28px 18px;
    }

    .nwr-angebote .swiper-button-prev,
    .nwr-angebote .swiper-button-next {
        display: block;
        top: 40%;
        transform: translateY(-50%);
    }

    .nwr-angebote .swiper-button-prev {
        left: 18px;
    }

    .nwr-angebote .swiper-button-next {
        right: 18px;
    }
}



/* ---------------------------------------------------------------
   New home page style
   --------------------------------------------------------------- */

#main {
  max-width: 100%;
  padding: 0;
}
    
.site-main {
  padding: 0px !important;
}

/*-------------  Hero Section -------------*/

 /*Hero Section*/

.new-home-hero-sec h2 {
    font-family: var(--nwr-font-sans-book);
    font-size: 50px !important;
    font-weight: 400;
    text-transform: uppercase;
    line-height: 57px;
    letter-spacing: 5px;
	margin-bottom: 0px;
}

.new-home-hero-sec p.topline {
    font-family: "Vollkorn", Sans-serif;
    font-family:var(--nwr-font-serif);
    font-size: 20px;
    font-weight: 500;
    line-height: 22px;
    letter-spacing: 2.16px;
    text-transform: unset;
    margin-bottom: 25px;
}

.new-home-hero-sec .content {
    padding: 0px 42px !important;
    max-width: 1280px !important;
}

@media screen and (max-width:1024px) {
	.new-home-hero-sec h2 {
		font-size: 40px !important;
        line-height: 50px;
	}
}

@media screen and (max-width:767px) {
	.new-home-hero-sec h2 {
    	font-size: 28px !important;
    	line-height: 34px;
	}
	
	.new-home-hero-sec p.topline {
		font-size: 15px;
		line-height: 18px;
		letter-spacing: 1px;
		margin-bottom: 13px;
	}
}

  /*All-inclusive Premium*/
  .image-1 {
    margin-left: auto;
  }
  @media screen and (max-width: 1239px) and (min-width: 1025px) {
    .hero-video .elementor-column-gap-default {
      min-height: 470px !important;
    }
    .right-col .elementor-element-populated {
      padding-left: 50px !important;
    }
    .image-1 {
      max-width: 294px !important;
    }
    .image-2 {
      max-width: 293px !important;
    }
    .urlaub-title .elementor-heading-title {
      font-size: 40px !important;
      line-height: 47px !important;
    }
    .urlaub-title .elementor-widget-container {
      margin: 0px 22px 26px 0px !important;
    }
    .sub-title .elementor-widget-container {
      margin: 0px 0px 15px 0px;
    }
    .anim-image {
      max-width: 137px !important;
      top: 20px !important;
      right: 10px !important;
    }
  }
  @media screen and (max-width: 767px) {
    .image-block .elementor-widget-wrap {
      max-width: 308px;
      margin: auto;
    }
  }

/*-------------  Image With Handwriting Accent -------------*/

.maradona-title h2 {
  font-family:'MaradonaSignatureRegular'!important;
}
    
.mage-with-handwriting-accent-video .elementor-wrapper {
  aspect-ratio: 2 / 2.5 !important;
}

/*-------------  Restaurnt & Kulinarik -------------*/

.section-title-row .elementor-widget-wrap {
    justify-content: center;
}
.section-title-row {
    width: 100% !important;
}

/*------- Urlaub für alle style -------*/
@media (max-width: 1199px) {
    .left-box-content {
        padding-left: 30px;
    }
}

/*-------------  Urlaub für alle Section -------------*/

.image-box-slider {
    box-shadow: 0px 0px 3px 1px rgba(0, 0, 0, 0.1);
}

@media (max-width:1024px) {
	.image-box-slider {
    	box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.1);
	}
}


/*-------------  Customer Review Section -------------*/

.review_widget .text-container .inner h3 {
    font-size: 30px;
    line-height: 40px;
	color: #154037;
	letter-spacing: 5px;
	padding: 0px;
	font-family:var(--nwr-font-sans-book);
	margin-bottom: 80px;
}

.review_widget .text-container .inner p {
    margin-bottom: 0px;
    font-size: 20px;
    line-height: 21.6px;
    letter-spacing: 1px;
    color: #E4B2A8;
    font-family:var(--nwr-font-serif);
    font-weight: 400;
	text-transform: unset;
}

.review_widget .modul-container {
    margin-top: 0;
}

/* 15.09.2026: zweiter Selektor war nicht auf das Widget begrenzt und hat sitewide die
   automatische Hoehe aller Bild-Text-Slider abgeschaltet (Punkte lagen auf dem Text). */
.review_widget .swiper-autoheight, .review_widget .swiper-autoheight .swiper-slide {
    height: 100%;
}

.review_widget .swiper-wrapper {
    height: 100% !important;
}

.review_widget .text-container .inner {
    padding: 0px;
    width: 100%;
    max-width: 60%;
}

.review_widget .modul-container-inner {
    padding: 0px !important;
    max-width: 1470px !important;
}

@media screen and (max-width:1200px) {
	.review_widget .text-container .inner {
		padding: 0px;
		width: 100%;
		max-width: 72%;
	}
	
	.review_widget .text-container .inner h3 {
		font-size: 20px;
		line-height: 30px;
		color: #154037;
		letter-spacing: 2px;
	}
}

@media screen and (max-width:767px) {
	.review_widget .text-container .inner {
		max-width: 100%;
		padding: 0px 55px;
	}
	
	.review_widget .text-container .inner h3 {
		margin-bottom: 50px;
	}
	
	.review_widget .swiper-container {
		padding-bottom: 70px;
	}
}

@media screen and (max-width:575px) {
	.review_widget .text-container .inner h3 {
		font-size: 18px;
	}
	
	.review_widget .text-container .inner p {
		font-size: 15px;
		line-height: 30px;
		letter-spacing: 3px;
		text-transform: uppercase;
	}
}

/*------- Angebote & Arrangements style -------*/
.nwr-angebote .nwr-offer-box {
    padding: 35px 40px;
    min-height: 240px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/*------- Instagram feed style -------*/
.insta_feed_img img {
    aspect-ratio: 3/4;
    object-fit: cover;
}
.feed_icon svg {
    filter: drop-shadow(2px 2px 2px #00000060);
}

/* ---------------------------------------------------------------
   7) Typo-Tausch Bestandsmodule (alle Unterseiten, Refresh 2026)
   Bisher: kleine Brother-Versalzeile (h1 / p.topline) ueber einer
   grossen Vollkorn-Headline (h2). Neu nach Figma: Vollkorn klein als
   Topline, Brother 1816 in Versalien als Headline. Gilt nur innerhalb
   der Theme-Module (.modul-container); Handschrift-Headlines
   (h2.handwrit) bleiben als Akzent unveraendert.
   --------------------------------------------------------------- */
.modul-container h1,
.modul-container p.topline {
    font-family: "Vollkorn", VollkornSemiBold, Georgia, serif;
    font-weight: 500;
    font-size: calc(15px + 5 * (100vw - 390px) / 1210);
    letter-spacing: .06em;
    line-height: 1.2;
    text-transform: none;
}
@media screen and (max-width: 390px) {
    .modul-container h1,
    .modul-container p.topline { font-size: 15px; }
}
@media screen and (min-width: 1600px) {
    .modul-container h1,
    .modul-container p.topline { font-size: 20px; }
}

.modul-container h2:not(.handwrit) {
    font-family: "Brother 1816", BrotherBook, sans-serif;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: .1em;
    line-height: 1.14;
}

.modul-container h3 {
    font-family: "Brother 1816", BrotherMedium, sans-serif;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: .08em;
    line-height: 1.25;
}

/* 7a) Ausnahme Testimonial-Zitat (Startseite, Figma: Brother 1816
   Book 30 px, gemischte Schreibweise, Laufweite 5 px, Zeile 40 px).
   Die Versalien-Regel fuer h3 oben trifft sonst das Zitat. */
.modul-container .widget-testimonial .text-container .inner h3 {
    font-family: "Brother 1816", BrotherBook, sans-serif;
    font-weight: 400;
    text-transform: none;
    letter-spacing: .167em;
    line-height: 1.34;
    font-size: calc(20px + 10 * (100vw - 390px) / 1210);
    color: #154037;
}
@media screen and (max-width: 390px) {
    .modul-container .widget-testimonial .text-container .inner h3 { font-size: 20px; }
}
@media screen and (min-width: 1600px) {
    .modul-container .widget-testimonial .text-container .inner h3 { font-size: 30px; }
}
.modul-container .widget-testimonial .text-container .inner p {
    font-family: "Vollkorn", VollkornSemiBold, Georgia, serif;
    font-weight: 500;
    font-size: 20px;
    letter-spacing: .05em;
    text-transform: none;
    color: #E4B2A8;
}

/* ---------------------------------------------------------------
   8) Buchungsstrecke (Vioma-Maske /buchen/, VRI 5513)
   Nur Darstellung: Schriften, Farben, Versalien-Titel. Die Maske
   wird von Vioma per JavaScript geladen, ihre eigenen Stylesheets
   kommen NACH dieser Datei, deshalb die verstaerkten Selektoren
   (.vsc.vsc-remote ...). Datenuebergabe und Markup bleiben unangetastet.
   Vorschau auf dem Staging: /qa-buchungsstrecke/ (statische Kopie).
   --------------------------------------------------------------- */
.vsc.vsc-remote,
.vsc.vsc-remote input,
.vsc.vsc-remote select,
.vsc.vsc-remote textarea,
.vsc.vsc-remote button {
    font-family: "Brother 1816", BrotherBook, sans-serif;
    color: #154037;
}
.vsc.vsc-remote input:not([type="radio"]):not([type="checkbox"]),
.vsc.vsc-remote select,
.vsc.vsc-remote textarea {
    border: 1px solid #154037;
    border-radius: 0;
    background: #FFFFFF;
    font-size: 15px;
}

/* Titel: Brother 1816 in Versalien statt Vollkorn */
.vsc.vsc-remote .vsc-title,
.vsc.vsc-remote .vsc-item-title,
.vsc.vsc-remote .vsc-item-menu-title {
    font-family: "Brother 1816", BrotherBook, sans-serif !important;
    font-weight: 400 !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    line-height: 1.2 !important;
    color: #154037 !important;
}
.vsc.vsc-remote .vsc-item-title { font-size: 24px !important; }
.vsc.vsc-remote .vsc-title { font-size: 20px !important; }

/* Abschnitts-Balken (REISEDATUM, ZIMMER 1) */
.vsc.vsc-remote .vsc-item-head .vsc-name,
.vsc.vsc-remote .vsc-head .vsc-name {
    font-family: "Brother 1816", BrotherMedium, sans-serif !important;
    font-weight: 500 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
}

/* Metabar (Codes einloesen, Login) */
.vsc.vsc-remote .vsc-metabar-button,
.vsc.vsc-remote .vsc-metabar-button-text,
.vsc.vsc-remote .vsc-metabar-select-selected {
    font-family: "Brother 1816", BrotherMedium, sans-serif !important;
    font-weight: 500 !important;
    color: #154037 !important;
    letter-spacing: .1em !important;
}

/* Buttons wie auf der Startseite: transparent, Altrosa-Rahmen, Altrosa-Label */
.vsc.vsc-remote .vsc-button,
.vsc.vsc-remote .vsc-block-item-description-link,
.vsc.vsc-remote .vsc-element-submit {
    font-family: "Brother 1816", BrotherMedium, sans-serif !important;
    font-weight: 500 !important;
    font-size: 16px !important;
    letter-spacing: .07em !important;
    color: #E4B2A8 !important;
    background: transparent !important;
    border: 2px solid #E4B2A8 !important;
    border-radius: 0 !important;
}
.vsc.vsc-remote .vsc-button:hover,
.vsc.vsc-remote .vsc-block-item-description-link:hover,
.vsc.vsc-remote .vsc-element-submit:hover {
    color: #FFFFFF !important;
    background: #E4B2A8 !important;
}

/* Preise und Labels */
.vsc.vsc-remote .vsc-item-roomtypes-price,
.vsc.vsc-remote [class*="vsc-price"] {
    font-family: "Brother 1816", BrotherMedium, sans-serif !important;
    font-weight: 500 !important;
    color: #154037 !important;
}
.vsc.vsc-remote label,
.vsc.vsc-remote .vsc-element-radio-title,
.vsc.vsc-remote .vsc-description {
    color: #154037;
}

/* Datepicker */
.vdp-wrapper,
.vdp-wrapper .vdp-cell,
.vdp-wrapper .vdp-head {
    font-family: "Brother 1816", BrotherBook, sans-serif !important;
    color: #154037;
}
.vdp-wrapper .vdp-head-month,
.vdp-wrapper .vdp-head-year {
    font-family: "Brother 1816", BrotherMedium, sans-serif !important;
    font-weight: 500 !important;
    text-transform: uppercase !important;
    letter-spacing: .1em !important;
}
.vdp-wrapper .vdp-daynames .vdp-cell {
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: 12px;
}


/* ---------------------------------------------------------------
   9) Menü-Overlay nach Figma
   Ab 768 px zeigt das Overlay alle fünf Gruppen mit ihren
   Untereinträgen gleichzeitig (Figma "Frame 17"): erste Reihe drei
   Spalten, zweite Reihe zwei Spalten, rechts der Icon-Streifen mit
   Instagram, Facebook und dem Sprachumschalter.

   Zwei Eingriffe sind dafür nötig, beide bleiben im Overlay:
   1. Die Gruppen-Titel sind im Figma reine Überschriften. Sie
      bekommen "pointer-events: none", damit der Titel-Link (er
      zeigt im Menü ohnehin auf href="") nicht mehr anklickbar ist.
      Dadurch läuft der Aufklapp-Handler der app.min.js gar nicht
      erst an, der sonst per Inline-Stil alle anderen Untermenüs
      ausblenden würde.
   2. Die Untermenüs stehen auf "display: block !important" und
      überschreiben damit auch einen Inline-Stil, falls das
      Theme-Skript sie doch einmal ausblendet.

   Unter 768 px bleibt das Aufklapp-Verhalten des Themes erhalten,
   dort ändert sich nur die Typografie (Figma "Navi Mobil").
   --------------------------------------------------------------- */

/* Weisse Fläche über die volle Breite statt des rechten Panels */
aside.menu {
    background-color: var(--nwr-white, #FFFFFF);
}


/* --- Ab 768 px: Gesamtansicht ----------------------------------- */
@media (min-width: 768px) {

    .menu .menu-container .inner {
        width: 100%;
        float: none;
        min-height: 100%;
        position: relative;
    }

    ul.overlay-menu {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        align-items: start;
        column-gap: 0;
        row-gap: 45px;
        padding-top: 60px;
        padding-left: 8%;
        padding-right: 9%;
        padding-bottom: 60px;
    }

    ul.overlay-menu li.nav-item {
        position: relative;
        margin: 0;
        padding: 0;
    }

    /* Gruppen-Titel: Brother 1816 in Versalien. Die Breite von 9.68em
       (242 px bei 25 px Schrift) erzeugt genau die Zeilenumbrüche des
       Figma-Entwurfs, die Mindesthöhe von zwei Zeilen hält alle
       Untermenüs auf einer Linie. */
    ul.overlay-menu li.nav-item.parent > a,
    ul.overlay-menu li.nav-item.parent.active > a,
    ul.overlay-menu li.nav-item.parent.click-on > a,
    ul.overlay-menu li.nav-item.active.click-off > a {
        font-family: "Brother 1816", BrotherBook, sans-serif;
        font-weight: 400;
        font-size: clamp(20px, 1.5625vw, 25px);
        line-height: 1.4;
        letter-spacing: .2em;
        text-transform: uppercase;
        color: var(--nwr-green, #154037);
        background-image: none;
        display: block;
        max-width: 9.68em;
        min-height: 2.8em;
        margin: 0;
        padding: 0;
        white-space: normal;
        pointer-events: none;
        cursor: default;
    }

    /* Untermenüs dauerhaft offen, direkt unter dem Titel */
    ul.overlay-menu li.nav-item ul.sub,
    ul.overlay-menu li.nav-item.active ul.sub,
    ul.overlay-menu li.nav-item.bottom ul.sub {
        display: block !important;
        position: static;
        top: auto;
        bottom: auto;
        left: auto;
        font-size: clamp(16px, 1.25vw, 20px);
        margin: 1.4em 0 0 0;
        padding: 0;
    }

    ul.overlay-menu li.nav-item ul.sub li {
        margin: 0;
        padding: 0;
    }

    ul.overlay-menu li.nav-item ul.sub li a,
    ul.overlay-menu li.nav-item.active ul.sub li a {
        font-family: "Brother 1816", BrotherBook, sans-serif;
        font-weight: 400;
        font-size: 1em;
        line-height: 2;
        letter-spacing: .05em;
        text-transform: none;
        color: var(--nwr-green, #154037);
        display: inline-block;
        margin: 0;
        padding: 0;
        white-space: normal;
        pointer-events: auto;
    }

    ul.overlay-menu li.nav-item ul.sub li a:hover,
    ul.overlay-menu li.nav-item.active ul.sub li a:hover,
    ul.overlay-menu li.nav-item ul.sub li.active a,
    ul.overlay-menu li.nav-item.active ul.sub li.active a {
        color: var(--nwr-rose, #E4B2A8);
    }

    /* Icon-Streifen rechts oben */
    ul.overlay-icons {
        position: absolute;
        top: 170px;
        right: 24px;
        float: none;
        width: 30px;
        margin: 0;
        padding: 0;
    }

    ul.overlay-icons li {
        display: block;
        margin: 0 0 33px 0;
        padding: 0;
    }

    ul.overlay-icons li:last-child {
        margin-bottom: 0;
    }

    ul.overlay-icons li a .icon-container {
        width: 30px;
    }
}


/* --- Ab 1200 px: drei Spalten in der ersten Reihe ---------------- */
@media (min-width: 1200px) {

    ul.overlay-menu {
        /* Spaltenbreiten aus dem Figma: Textspalten bei
           202 / 648 / 1025 px in einem 1600er Rahmen */
        grid-template-columns: minmax(0, 446fr) minmax(0, 377fr) minmax(0, 361fr);
        row-gap: 57px;
    }
}


/* --- Ab 1500 px: Masse exakt wie im Figma ----------------------- */
@media (min-width: 1500px) {

    ul.overlay-menu {
        padding-top: 94px;
        padding-left: 12.625%;
        padding-right: 13.375%;
    }

    ul.overlay-icons {
        top: 204px;
        right: 45px;
    }
}


/* --- Unter 768 px: Aufklapp-Menü wie bisher, Typografie neu ------
   Figma "Navi Mobil": zentriert, Versalien, 20/34 px, die
   Untereinträge erscheinen weiterhin erst auf Klick.              */
@media (max-width: 767px) {

    ul.overlay-menu {
        padding-top: 73px;
        padding-left: 20px;
        padding-right: 20px;
        padding-bottom: 40px;
    }

    ul.overlay-menu li.nav-item {
        text-align: center;
        margin-bottom: 20px;
    }

    ul.overlay-menu li.nav-item:last-child {
        margin-bottom: 0;
    }

    ul.overlay-menu li.nav-item.parent > a,
    ul.overlay-menu li.nav-item.parent.active > a,
    ul.overlay-menu li.nav-item.parent.click-on > a,
    ul.overlay-menu li.nav-item.active.click-off > a {
        font-family: "Brother 1816", BrotherBook, sans-serif;
        font-weight: 400;
        font-size: 20px;
        line-height: 34px;
        letter-spacing: .1em;
        text-transform: uppercase;
        color: var(--nwr-green, #154037);
        display: block;
        width: 274px;
        max-width: 100%;
        margin: 0 auto;
        padding: 0;
        white-space: normal;
    }

    ul.overlay-menu li.nav-item ul.sub {
        margin: 6px 0 0 0;
        padding: 0;
    }

    ul.overlay-menu li.nav-item ul.sub li a,
    ul.overlay-menu li.nav-item.active ul.sub li a {
        font-family: "Brother 1816", BrotherBook, sans-serif;
        font-weight: 400;
        font-size: 13px;
        line-height: 26px;
        letter-spacing: .07em;
        text-transform: none;
        color: var(--nwr-green-text, #1B4039);
        display: block;
        margin: 0;
        padding: 0;
        white-space: normal;
    }

    ul.overlay-menu li.nav-item ul.sub li.active a {
        color: var(--nwr-rose, #E4B2A8);
    }

    ul.overlay-icons {
        float: none;
        width: 100%;
        text-align: center;
        padding-left: 20px;
        padding-right: 20px;
    }

    ul.overlay-icons li {
        display: inline-block;
        padding: 0 15px;
        vertical-align: middle;
    }

    ul.overlay-icons li a .icon-container {
        width: 30px;
    }
}

/* ---------------------------------------------------------------
   11) Hero-Höhe nach Figma (Desktop)
   Das Theme setzt den Video-Header auf 100vh minus Kopfzeile. Das
   Figma zeigt auf dem Desktop eine feste Fläche von 968 px unter der
   98-px-Kopfzeile. Ab 1200 px Breite gilt deshalb die Figma-Höhe,
   darunter bleibt die bildschirmhohe Variante des Themes.
   --------------------------------------------------------------- */
@media (min-width: 1200px) {
    /* !important, weil das Theme-JS die Hoehe als Inline-Stil setzt */
    .widget-header-video-text .header-video-container {
        height: 968px !important;
    }
}

/* ---------------------------------------------------------------
   10) Sliderbox-Widget (.slider-bigbox)

   Grosse Sliderbox "Ankommen und Wohlfuehlen": quadratisches Medium
   (Bild oder Video) auf der einen Seite, weisse Textbox auf der
   anderen, runde Altrosa-Pfeile links und rechts.

   Alle Werte stammen aus den Designer-Containern 18631 (Bild links),
   18637 (Bild rechts), 18642 / 18648 (Video) und wurden auf der
   Startseite gegengemessen: Medium 55 %, Textspalte 45 % mit
   Innenabstand 20/20/20/90, weisse Box 400 px breit, Abstand zwischen
   den Textbausteinen 30 px, Pfeile 70 px ab 385 px Hoehe.

   Der Fliesstext laeuft bewusst mit 0,07em Laufweite (= 1,05 px bei 15 px,
   0,91 px bei 13 px). Genau so rendert die Vorlage auf der Startseite: die
   1,5 px aus den Elementor-Einstellungen greifen dort nicht, weil die
   Absatz-Regel des Themes gewinnt.

   Dieser Block ersetzt den frueheren Abschnitt "Slider Bild + Text
   Gross (.slider-bigbox)" aus Abschnitt 3 samt seinem Teil im
   Responsive-Block. Die alten Regeln koennen entfernt werden, sie
   werden hier vollstaendig ueberschrieben.
   --------------------------------------------------------------- */

.slider-bigbox {
    position: relative;
    overflow: hidden;
    /* padding zuruecksetzen: die build.min.css haelt auf Mobil 60 px fuer
       Pagination-Punkte frei, die diese Box nicht hat */
    padding: 0;
    box-shadow: 0 0 3px 1px rgba(0, 0, 0, 0.1);
    transition: opacity 0.4s ease;
}

.slider-bigbox.loading {
    opacity: 0;
}

.slider-bigbox .swiper-slide {
    height: auto;
}

.nwr-bigbox-slide {
    display: flex;
    align-items: stretch;
    height: 100%;
}

/* Anordnung in beide Richtungen (Julias Anmerkung 19.08.2026) */
.slider-bigbox.image-right .nwr-bigbox-slide {
    flex-direction: row-reverse;
}


/* --- Medium: Bild oder Video, immer quadratisch, Bildmitte oben --- */

.nwr-bigbox-slide .image-container {
    width: 55%;
    flex: 0 0 55%;
    overflow: hidden;
}

.nwr-bigbox-slide .image-container img,
.nwr-bigbox-slide .image-container video {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: 50% 0;
}


/* --- Textspalte und weisse Box --- */

.nwr-bigbox-slide .text-container {
    flex: 1 1 45%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    background: none;
    padding: 20px 20px 20px 90px;
}

.nwr-bigbox-slide .text-container .inner {
    display: flex;
    flex-direction: column;
    gap: 30px;
    width: 400px;
    max-width: 100%;
    padding: 0;
    background: var(--nwr-white);
    text-align: left;
}

.nwr-bigbox-slide .text-container .topline {
    margin: 0;
}

.nwr-bigbox-slide .text-container h2 {
    font-family: "Brother 1816", var(--nwr-font-sans-book);
    font-weight: 400;
    color: var(--nwr-green);
    text-transform: uppercase;
    font-size: 30px;
    line-height: 40px;
    letter-spacing: 3px;
    margin: 0;
}

.nwr-bigbox-slide .text-container .copy {
    margin: 0;
}

.nwr-bigbox-slide .text-container .copy p {
    font-family: var(--nwr-font-sans-book);
    font-weight: 400;
    color: var(--nwr-green-text);
    font-size: 15px;
    line-height: 30px;
    letter-spacing: 0.07em;
    margin: 0 0 20px;
}

.nwr-bigbox-slide .text-container .more-button {
    display: inline-block;
    align-self: flex-start;
    font-family: "Brother 1816", var(--nwr-font-sans);
    font-weight: 500;
    font-size: 16px;
    line-height: 16px;
    letter-spacing: 1.12px;
    color: var(--nwr-rose);
    background-color: var(--nwr-white);
    border: 2px solid var(--nwr-rose);
    border-radius: 0;
    padding: 15px 22px;
    margin: 31px 0 0;
}

.nwr-bigbox-slide .text-container .more-button:hover,
.nwr-bigbox-slide .text-container .more-button:focus {
    color: var(--nwr-white);
    background-color: var(--nwr-rose);
}


/* --- Pfeile: gefuellte Altrosa-Kreise, weisser Winkel ---
   70 px Kreis mit 14 x 26 px Winkel und 2 px Strichstaerke, genau wie
   left_arrow.svg / right_arrow.svg der Vorlage. Die Werte stehen im
   49er-Koordinatensystem des Theme-SVG, deshalb Strichstaerke 1,4. */

.slider-bigbox .swiper-button-prev,
.slider-bigbox .swiper-button-next {
    position: absolute;
    display: block;
    top: 385px;
    width: 70px;
    height: 70px;
    margin: 0;
    padding: 0;
    background: none;
    transform: none;
    z-index: 5;
    cursor: pointer;
}

.slider-bigbox .swiper-button-prev {
    left: 20px;
    right: auto;
    margin-right: 0;
}

.slider-bigbox .swiper-button-next {
    right: 20px;
    left: auto;
    margin-left: 0;
}

.slider-bigbox .swiper-button-prev:after,
.slider-bigbox .swiper-button-next:after {
    display: none;
    content: none;
}

/* Bei nur einer Slide setzt Swiper diese Klasse: dann keine Pfeile zeigen */
.slider-bigbox .swiper-button-lock {
    display: none;
}

.slider-bigbox .circle-arrow {
    display: block;
    width: 100%;
    height: 100%;
}

.slider-bigbox .circle-arrow .circle {
    fill: var(--nwr-rose);
}

.slider-bigbox .circle-arrow .arrow {
    fill: none;
    stroke: var(--nwr-white);
    stroke-width: 1.4;
    stroke-linecap: square;
}


/* --- Ab 1199 px rueckt die Textspalte enger an das Medium --- */

@media (max-width: 1199px) {

    .nwr-bigbox-slide .text-container {
        padding-left: 30px;
    }
}


/* --- Tablet: Medium oben, weisse Box 50 px darueber geschoben --- */

@media (max-width: 1024px) {

    .slider-bigbox {
        box-shadow: none;
    }

    .nwr-bigbox-slide,
    .slider-bigbox.image-right .nwr-bigbox-slide {
        flex-direction: column;
    }

    .nwr-bigbox-slide .image-container {
        width: 100%;
        flex: 0 0 auto;
    }

    .nwr-bigbox-slide .text-container {
        flex: 1 1 auto;
        width: 100%;
        align-items: stretch;
        padding: 0 30px 20px 30px;
    }

    .nwr-bigbox-slide .text-container .inner {
        position: relative;
        z-index: 2;
        width: 100%;
        gap: 20px;
        margin-top: -50px;
        padding: 30px;
    }

    .nwr-bigbox-slide .text-container .more-button {
        margin-top: 20px;
    }
}


/* --- Handy: Text zentriert, kleinere Pfeile mittig auf dem Medium --- */

@media (max-width: 767px) {

    .nwr-bigbox-slide .text-container {
        padding: 0 20px 42px 30px;
    }

    .nwr-bigbox-slide .text-container .inner {
        padding: 34px 20px 42px;
        text-align: center;
    }

    .nwr-bigbox-slide .text-container h2 {
        font-size: 24px;
        line-height: 30px;
    }

    .nwr-bigbox-slide .text-container .copy p {
        font-size: 13px;
        line-height: 26px;
    }

    .nwr-bigbox-slide .text-container .more-button {
        align-self: center;
        margin-top: 0;
    }

    /* display: block noetig, weil die build.min.css Swiper-Pfeile auf
       Mobil global ausblendet */
    .slider-bigbox .swiper-button-prev,
    .slider-bigbox .swiper-button-next {
        display: block;
        width: 50px;
        height: 50px;
        top: 170px;
    }

    .slider-bigbox .swiper-button-prev {
        left: 20px;
    }

    .slider-bigbox .swiper-button-next {
        right: 20px;
    }
}

/* --- 12) Instagram-Feed-Widget (.nwr-insta-grid) ---
   Kachelraster des Widgets "Instagram Feed" (instagram-feed-modul).
   Vorbild ist der Designer-Container 18150fa: drei Spalten ueber die volle
   Breite, Hochformat 3:4 (531 x 708 px bei 1600), hauchduenne Fuge von 4 px,
   weisses Symbol oben rechts. Die bisherigen Regeln .insta_feed_img /
   .feed_icon (Block 5) bleiben unberuehrt, damit die alte Sektion weiter
   aussieht wie bisher, solange sie noch auf der Seite liegt.
   --------------------------------------------------------------- */

.nwr-insta-grid {
    /* Fuge und Symbolgroesse wachsen mit der Fensterbreite:
       390 px -> 22 px Symbol, 1600 px -> 60 px Symbol (Figma-Mass). */
    --nwr-insta-gap: 4px;
    --nwr-insta-icon: clamp(22px, calc(22px + 38 * (100vw - 390px) / 1210), 60px);
    --nwr-insta-inset: clamp(12px, calc(12px + 20 * (100vw - 390px) / 1210), 32px);

    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--nwr-insta-gap);
}

.nwr-insta-grid.cols-4 {
    grid-template-columns: repeat(4, 1fr);
}

.nwr-insta-tile {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 3 / 4;
    background-color: #EFEAE3;
    text-decoration: none;
}

.nwr-insta-tile .nwr-insta-img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: filter .35s ease, transform .5s ease;
}

/* Hover: Kachel leicht abdunkeln, damit der Klickpunkt spuerbar wird. */
.nwr-insta-tile:hover .nwr-insta-img,
.nwr-insta-tile:focus-visible .nwr-insta-img {
    filter: brightness(.9);
}

.nwr-insta-tile:focus-visible {
    outline: 2px solid var(--nwr-rose);
    outline-offset: -4px;
}

/* Weisses Symbol oben rechts (Pinnadel, Abspielzeichen, Galerie). */
.nwr-insta-icon {
    position: absolute;
    top: var(--nwr-insta-inset);
    right: var(--nwr-insta-inset);
    display: block;
    width: var(--nwr-insta-icon);
    height: var(--nwr-insta-icon);
    pointer-events: none;
}

.nwr-insta-icon svg {
    display: block;
    width: 100%;
    height: 100%;
    filter: drop-shadow(2px 2px 3px rgba(0, 0, 0, .35));
}

/* --- Bis 1024 px: zwei Spalten, auch wenn Desktop auf vier steht --- */
@media screen and (max-width: 1024px) {
    .nwr-insta-grid,
    .nwr-insta-grid.cols-4 {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* --- Handy: gleiche zwei Spalten, Fuge bleibt so schmal wie im Bestand --- */
@media screen and (max-width: 767px) {
    .nwr-insta-grid {
        --nwr-insta-gap: 4px;
    }
}

/* Aeltere Browser ohne aspect-ratio: Hoehe ueber das Bild selbst. */
@supports not (aspect-ratio: 3 / 4) {
    .nwr-insta-tile {
        height: auto;
    }

    .nwr-insta-tile .nwr-insta-img {
        height: auto;
    }
}

/* 12a) Bei zwei Spalten (Tablet/Smartphone) keine einzelne Kachel in der letzten Reihe */
@media screen and (max-width: 1024px) {
    .nwr-insta-grid.cols-3 .nwr-insta-tile:last-child:nth-child(odd) { display: none; }
}

/* --- 13) Bild Fullscreen nach Figma-Massen + Video randlos mit Handschrift ---
   (Blocknummer vergibt der Hauptagent, hier 12 als Vorschlag)

   Ersetzt die drei Pro-Templates 18008, 18011 und 18262:
   - 18008 -> fullscreen-image-text-modul ohne Textbox (.nwr-fullimage--nobox)
   - 18262 -> fullscreen-image-text-modul mit Textbox (Box 791 px bei 1600)
   - 18011 -> video-text-modul mit .nwr-video-refresh

   Die Masse stammen aus figma-crops/03-fullimage-box.png und
   figma-crops/02-video-handwrit.png (Crop 968 px = Figma 1600 px, Faktor
   1,653) sowie aus den Pro-Templates selbst. Dieser Block steht bewusst
   NACH Block 3, damit die dortigen Grundwerte (Box 33 % breit,
   Seitenverhaeltnis 1600/968) gezielt ueberschrieben werden.
   --------------------------------------------------------------- */


/* --- 13a) Bild Fullscreen + Textbox (.nwr-fullimage) --------------- */

/* Bildhoehe wie im Pro-Template 18262: 1059 px bei 1600 px Breite. */
.nwr-fullimage .nwr-fullimage-media img {
    aspect-ratio: 1600 / 1059;
}

/* Weisse Box: 791 px breit, linke Kante auf dem 1227er Raster (186 px bei
   1600), haengt unten ueber das Bild hinaus. Der negative Abstand haelt die
   Oberkante der Box bei rund 48 % der Bildhoehe, genau wie im Figma. */
.nwr-fullimage .nwr-fullimage-box {
    width: 49.5%;
    min-width: 0;
    max-width: 791px;
    margin-left: 11.65%;
    margin-right: 0;
    margin-top: clamp(-554px, -34.6vw, -200px);
    box-shadow: 0 0 6px rgba(0, 0, 0, 0.1);
}

.nwr-fullimage.box-right .nwr-fullimage-box {
    margin-left: auto;
    margin-right: 11.65%;
}

/* Innenabstaende und Abstaende der Zeilen wie im Template
   (101 / 106 / 132 px, Abstand zwischen den Elementen 35 px). */
.nwr-fullimage .nwr-fullimage-box .inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 35px;
    padding: calc(30px + 4.4vw) calc(32px + 4.6vw) calc(45px + 5.4vw);
}

.nwr-fullimage .nwr-fullimage-box .inner > * {
    margin: 0;
}

@media (min-width: 1600px) {
    .nwr-fullimage .nwr-fullimage-box .inner {
        padding: 101px 106px 132px;
    }
}

/* Topline: Vollkorn 500, 20 px bei 1600, Laufweite 2,16 px. */
.nwr-fullimage .nwr-fullimage-box .topline {
    font-size: calc(15px + 5 * (100vw - 390px) / 1210);
    letter-spacing: 0.108em;
}

@media (min-width: 1600px) {
    .nwr-fullimage .nwr-fullimage-box .topline {
        font-size: 20px;
    }
}

/* Headline: Brother 400 Versalien, 50 px / 57 px bei 1600, 28 px bei 390. */
.nwr-fullimage .nwr-fullimage-box h2 {
    font-size: calc(28px + 22 * (100vw - 390px) / 1210);
    line-height: 1.14;
    letter-spacing: 0.1em;
}

@media (min-width: 1600px) {
    .nwr-fullimage .nwr-fullimage-box h2 {
        font-size: 50px;
    }
}

/* Button: Outline Altrosa, 16 px, wie im Template (15/22 Innenabstand). */
.nwr-fullimage .nwr-fullimage-box .more-button {
    display: inline-block;
    font-family: "Brother 1816", var(--nwr-font-sans);
    font-weight: 500;
    font-size: 16px;
    line-height: 16px;
    letter-spacing: 1.12px;
    color: var(--nwr-rose);
    background-color: var(--nwr-white);
    border: 2px solid var(--nwr-rose);
    border-radius: 0;
    padding: 15px 22px;
    margin: 0;
}

.nwr-fullimage .nwr-fullimage-box .more-button:hover,
.nwr-fullimage .nwr-fullimage-box .more-button:focus {
    color: var(--nwr-white);
    background-color: var(--nwr-rose);
}

/* Ohne Textbox (Ersatz fuer Template 18008): reines Vollbild im Raster,
   1216 x 774 px, kein 100vh-Hero. */
.nwr-fullimage--nobox .nwr-fullimage-media img {
    aspect-ratio: 1216 / 774;
}

/* --- Bis 1199 px: Box breiter, Innenabstaende kleiner --- */
@media (max-width: 1199px) {

    .nwr-fullimage .nwr-fullimage-box,
    .nwr-fullimage.box-right .nwr-fullimage-box {
        width: 75%;
        max-width: none;
        margin-top: -32vw;
    }

    .nwr-fullimage .nwr-fullimage-box {
        margin-left: 6.5%;
        margin-right: 0;
    }

    .nwr-fullimage.box-right .nwr-fullimage-box {
        margin-left: auto;
        margin-right: 6.5%;
    }

    .nwr-fullimage .nwr-fullimage-box .inner {
        gap: 25px;
        padding: 50px 50px 60px;
    }
}

/* --- Unter 768 px: Bild im Hochformat, Box 90 % zentriert --- */
@media (max-width: 767px) {

    .nwr-fullimage .nwr-fullimage-media img {
        aspect-ratio: 390 / 489;
    }

    .nwr-fullimage--nobox .nwr-fullimage-media img {
        aspect-ratio: 2 / 3;
    }

    .nwr-fullimage .nwr-fullimage-box,
    .nwr-fullimage.box-right .nwr-fullimage-box {
        width: 90%;
        max-width: none;
        margin-left: auto;
        margin-right: auto;
        margin-top: -40vw;
    }

    .nwr-fullimage .nwr-fullimage-box .inner {
        gap: 13px;
        padding: 30px;
    }

    .nwr-fullimage .nwr-fullimage-box p:not(.topline) {
        font-size: 13px;
        letter-spacing: 0.91px;
    }

    .nwr-fullimage .nwr-fullimage-box .more-button {
        font-size: 15px;
        line-height: 19px;
        padding: 7px 11px;
        margin-top: 20px;
    }
}


/* --- 13b) Video randlos + Handschrift (.nwr-video-refresh) ---------
   Nur mit der Zusatzklasse aus dem Control "Randloses Layout".
   Ohne die Klasse bleibt das Modul exakt wie bisher.
   Figma: Video links bis zum Bildschirmrand, 640 x 735 px bei 1600,
   Text rechts vertikal mittig, Abstand zum Video 210 px. ------------ */

.nwr-video-refresh {
    align-items: center;
    padding-bottom: clamp(60px, 12.375vw, 198px);
}

.nwr-video-refresh .video-container {
    width: 40%;
}

.nwr-video-refresh .text-container {
    width: 60%;
}

.nwr-video-refresh .video-container .inner {
    float: none;
    width: 100%;
    aspect-ratio: 128 / 147;
    overflow: hidden;
}

.nwr-video-refresh .video-container .inner video {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

/* Falls die Abspielart "Player" genutzt wird, fuellt auch der Plyr-Rahmen
   den Hochformat-Ausschnitt. */
.nwr-video-refresh .video-container .inner .plyr,
.nwr-video-refresh .video-container .inner .plyr__video-wrapper {
    height: 100%;
}

.nwr-video-refresh.right .text-container .inner {
    padding-left: calc(30px + 11.25vw);
    padding-right: calc(20px + 3.75vw);
}

.nwr-video-refresh.left .text-container .inner {
    padding-right: calc(30px + 11.25vw);
    padding-left: calc(20px + 3.75vw);
}

@media (min-width: 1600px) {

    .nwr-video-refresh.right .text-container .inner {
        padding-left: 210px;
        padding-right: 80px;
    }

    .nwr-video-refresh.left .text-container .inner {
        padding-right: 210px;
        padding-left: 80px;
    }
}

/* Handschrift-Headline: 50 px bei 1600, 25 px bei 390, Zeilenabstand 100 %,
   Dunkelgruen wie alle Headlines des Refresh. */
.nwr-video-refresh .text-container h2.handwrit {
    color: var(--nwr-green);
    font-size: calc(25px + 25 * (100vw - 390px) / 1210);
    line-height: 2;
    margin: 0;
}

@media (min-width: 1600px) {
    .nwr-video-refresh .text-container h2.handwrit {
        font-size: 50px;
    }
}

.nwr-video-refresh .text-container .more-button {
    display: inline-block;
    font-family: "Brother 1816", var(--nwr-font-sans);
    font-weight: 500;
    font-size: 16px;
    line-height: 16px;
    letter-spacing: 1.12px;
    color: var(--nwr-rose);
    background-color: var(--nwr-white);
    border: 2px solid var(--nwr-rose);
    border-radius: 0;
    padding: 15px 22px;
    margin: 51px 0 0;
}

.nwr-video-refresh .text-container .more-button:hover,
.nwr-video-refresh .text-container .more-button:focus {
    color: var(--nwr-white);
    background-color: var(--nwr-rose);
}

/* --- Bis 1199 px: Video etwas breiter, Text rueckt naeher heran --- */
@media (max-width: 1199px) {

    .nwr-video-refresh .video-container {
        width: 45%;
    }

    .nwr-video-refresh .text-container {
        width: 55%;
    }

    .nwr-video-refresh.right .text-container .inner {
        padding-left: 50px;
        padding-right: 30px;
    }

    .nwr-video-refresh.left .text-container .inner {
        padding-right: 50px;
        padding-left: 30px;
    }
}

/* --- Unter 768 px: Video oben ueber die volle Breite, Text darunter --- */
@media (max-width: 767px) {

    .nwr-video-refresh {
        align-items: stretch;
    }

    .nwr-video-refresh .video-container,
    .nwr-video-refresh .text-container {
        width: 100%;
    }

    .nwr-video-refresh .video-container .inner {
        aspect-ratio: 1 / 1;
    }

    .nwr-video-refresh.right .text-container .inner,
    .nwr-video-refresh.left .text-container .inner {
        padding: 0 30px;
        text-align: center;
    }

    .nwr-video-refresh .text-container .more-button {
        margin-top: 30px;
    }
}

/* ---------------------------------------------------------------
   14) Intro-Textbloecke (text-container-modul ohne Bilder) + Handschrift-Banner (Refresh 2026)
   --------------------------------------------------------------- */
/* ---------------------------------------------------------------
   <Blocknummer vergibt Hauptagent>) Zentrierte Intro-Textbloecke und Handschrift-Banner
   Bringt das Bestandsmodul "Text Container" (.widget-text ohne Bilder)
   und das Modul "Handwrit Image" auf das Figma-Design der neuen
   Startseite. Schriftart, Versalien und Laufweite kommen bereits aus
   Block 7 (Typo-Tausch Bestandsmodule); hier fehlen nur noch Groessen,
   Zeilenhoehen, Abstaende und Breiten.
   Alle Regeln greifen ausschliesslich in .modul-container und nur bei
   Textbloecken OHNE Bilder (:not(.image)), damit Bild-Text-Module der
   Unterseiten unberuehrt bleiben.
   --------------------------------------------------------------- */

/* --- A) Raster: Textblock fuellt die Breite der Elementor-Sektion ---
   Die Bloecke der Startseite laufen mit "Ueber Content hinaus"
   (.outer-content). Dort setzt das Bestandsraster die Textspalte auf
   55 % und schiebt sie 120 px nach unten; beides gilt nur fuer die
   Bild-Text-Variante. Fuer reine Textbloecke wird die Spalte wieder
   voll und randlos, die Breite steuern die Maximalbreiten weiter unten. */
.modul-container-inner.outer-content .widget-text:not(.image) .text-container {
    width: 100%;
    padding-top: 0;
    padding-left: 0;
    padding-right: 0;
}

/* Unter 1220 px uebernimmt der Textblock das Seitenmass des Modulrasters,
   sonst wuerde der Text auf Tablet und Handy am Bildschirmrand kleben. */
@media screen and (max-width: 1219px) {
    .modul-container-inner.outer-content .widget-text:not(.image) .text-container {
        padding-left: calc(15.6px + 6.525vw);
        padding-right: calc(15.6px + 6.525vw);
    }
}


/* --- B) Topline: Vollkorn 500, 20 px, Laufweite 1 px, Zeile 22 px --- */
.modul-container .widget-text:not(.image) .text-container p.topline {
    color: #E4B2A8;
    letter-spacing: 1px;
    line-height: 1.1;
}


/* --- C) Headline H2: 28 -> 50 px, Zeile 34 -> 57 px, 50 px Luft nach unten --- */
.modul-container .widget-text:not(.image) .text-container h2:not(.handwrit) {
    color: #154037;
    font-size: calc(28px + 22 * (100vw - 390px) / 1210);
    line-height: calc(34px + 23 * (100vw - 390px) / 1210);
    margin-bottom: calc(35px + 15 * (100vw - 390px) / 1210);
}
@media screen and (max-width: 390px) {
    .modul-container .widget-text:not(.image) .text-container h2:not(.handwrit) {
        font-size: 28px;
        line-height: 34px;
        margin-bottom: 35px;
    }
}
@media screen and (min-width: 1600px) {
    .modul-container .widget-text:not(.image) .text-container h2:not(.handwrit) {
        font-size: 50px;
        line-height: 57px;
        margin-bottom: 50px;
    }
}


/* --- D) Fliesstext: 13/28 -> 15/30 px, 30 px zwischen den Absaetzen ---
   Schriftgroesse und Laufweite (.07em = 1,05 px bei 15 px) stimmen im
   Bestand schon, nur Zeilenhoehe auf Handy und Absatzabstand fehlen. */
.modul-container .widget-text:not(.image) .text-container p:not(.topline) {
    color: #1B4039;
    line-height: calc(28px + 2 * (100vw - 390px) / 1210);
    margin-bottom: 30px;
}
@media screen and (max-width: 390px) {
    .modul-container .widget-text:not(.image) .text-container p:not(.topline) {
        line-height: 28px;
    }
}
@media screen and (min-width: 1600px) {
    .modul-container .widget-text:not(.image) .text-container p:not(.topline) {
        line-height: 30px;
    }
}

/* Letztes Element ohne Abstand nach unten, damit der Block sauber
   auf dem Abstand der naechsten Sektion sitzt. */
.modul-container .widget-text:not(.image) .text-container .inner > *:last-child {
    margin-bottom: 0;
}


/* --- E) Zentrierte Intros: Headline max. 1008 px, Text max. 1003 px --- */
.modul-container .widget-text:not(.image) .text-container.center .inner > * {
    margin-left: auto;
    margin-right: auto;
}
.modul-container .widget-text:not(.image) .text-container.center .inner h2 {
    max-width: 1008px;
}
.modul-container .widget-text:not(.image) .text-container.center .inner p:not(.topline) {
    max-width: 1003px;
}


/* --- F) Linksbuendige Intros (Angebote & Arrangements) ---
   Headline darf bis 1075 px laufen, damit "EUREN NAECHSTEN
   FAMILIENURLAUB" wie im Entwurf in der zweiten Zeile steht;
   der Fliesstext bleibt bei 960 px. */
.modul-container .widget-text:not(.image) .text-container.left .inner h2 {
    max-width: 1075px;
}
.modul-container .widget-text:not(.image) .text-container.left .inner p:not(.topline) {
    max-width: 960px;
}


/* --- G) Handschrift-Banner: Schrift zurueck auf die Handschrift ---
   Block 7 stellt .modul-container h3 auf Brother 1816 in Versalien um
   und trifft dabei auch die Handschrift-Zeile des Banners (gleiche
   Spezifitaet, spaeter in der Datei). Das gilt fuer ALLE Seiten mit
   diesem Modul und wird hier zurueckgedreht. */
.modul-container .widget-handwrit-image h3 {
    font-family: MaradonaSignatureRegular, cursive;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    color: #FFFFFF;
}


/* --- H) Handschrift-Banner in der neuen Optik (Schalter "Neue Optik") ---
   Bild volle Breite, Banner 450 -> 670 px hoch, Inhalt senkrecht
   zentriert, Handschrift 24 -> 50 px auf 60 -> 100 px Zeile,
   Logo 28 -> 64 px. Ohne den Schalter bleibt alles wie bisher. */
.widget-handwrit-image.nwr-handwrit {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: calc(450px + 220 * (100vw - 390px) / 1210);
}
@media screen and (max-width: 390px) {
    .widget-handwrit-image.nwr-handwrit { min-height: 450px; }
}
@media screen and (min-width: 1600px) {
    .widget-handwrit-image.nwr-handwrit { min-height: 670px; }
}

.widget-handwrit-image.nwr-handwrit h3 {
    font-size: calc(24px + 26 * (100vw - 390px) / 1210);
    line-height: calc(60px + 40 * (100vw - 390px) / 1210);
    margin: 0 auto calc(30px + 8 * (100vw - 390px) / 1210);
}
@media screen and (max-width: 390px) {
    .widget-handwrit-image.nwr-handwrit h3 {
        font-size: 24px;
        line-height: 60px;
        margin-bottom: 30px;
    }
}
@media screen and (min-width: 1600px) {
    .widget-handwrit-image.nwr-handwrit h3 {
        font-size: 50px;
        line-height: 100px;
        margin-bottom: 38px;
    }
}

.widget-handwrit-image.nwr-handwrit .la-icon,
.widget-handwrit-image.nwr-handwrit .la-icon-img {
    display: block;
    width: calc(28px + 36 * (100vw - 390px) / 1210);
    height: calc(28px + 36 * (100vw - 390px) / 1210);
    padding: 0;
    margin: 0 auto;
}
.widget-handwrit-image.nwr-handwrit .la-icon-img {
    height: auto;
}
@media screen and (max-width: 390px) {
    .widget-handwrit-image.nwr-handwrit .la-icon,
    .widget-handwrit-image.nwr-handwrit .la-icon-img { width: 28px; height: 28px; }
    .widget-handwrit-image.nwr-handwrit .la-icon-img { height: auto; }
}
@media screen and (min-width: 1600px) {
    .widget-handwrit-image.nwr-handwrit .la-icon,
    .widget-handwrit-image.nwr-handwrit .la-icon-img { width: 64px; height: 64px; }
    .widget-handwrit-image.nwr-handwrit .la-icon-img { height: auto; }
}

/* --- 15) Gelayerte Bilder + Text: Feinschliff, Reihen-Layout, Bildwechsel --- */

/*
 * Ergaenzt den Platzhalter-Abschnitt "Gelayerte Bilder + Text (.nwr-layered)"
 * weiter oben in dieser Datei. Nichts darin wird umgeschrieben, alle Regeln
 * hier sind spezifischer und ueberschreiben gezielt die build.min.css.
 *
 * Alle Masse stammen aus dem Figma-Desktop-Frame (1600 px breit, Inhalt
 * 1216 px, Seitenrand 192 px) und sind in Prozent der jeweiligen Elternbreite
 * umgerechnet. Dadurch sieht die Sektion in jeder Fensterbreite gleich aus,
 * ohne dass fuer jede Stufe eigene Pixelwerte noetig sind.
 *
 * Figma-Grundmass der ueberlappenden Variante:
 *   Bildblock 539 px (44,33 % von 1216), Textspalte 677 px (55,67 %)
 *   hinteres Foto 426 px, 113 px nach innen versetzt (79,03 % / 20,97 % von 539)
 *   vorderes Foto 425 px an der Aussenkante, 121 px Ueberlappung (-22,45 %)
 */


/* --- 1) Typografie im Modul (Design-System 2026) ------------------------ */

/* Topline und H2 kommen aus dem gemeinsamen Block weiter oben, hier nur die
   Abstaende aus dem Figma: Topline 35 px unter sich, H2 56 px. */
.widget-text.nwr-layered .topline {
    margin-bottom: 1.75em;
}

.widget-text.nwr-layered h2:not(.handwrit) {
    margin-bottom: 1.12em;
}

/* Subline H3: Brother Book, Versalien, 30 px bei 1600 px */
.widget-text.nwr-layered h3 {
    font-family: var(--nwr-font-sans-book);
    font-weight: 400;
    color: var(--nwr-green);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    line-height: 1.2;
    margin: 0 0 1em;
    font-size: calc(20px + 10 * (100vw - 390px) / 1210);
}

@media screen and (max-width: 390px) {
    .widget-text.nwr-layered h3 {
        font-size: 20px;
    }
}

@media screen and (min-width: 1600px) {
    .widget-text.nwr-layered h3 {
        font-size: 30px;
    }
}

/* Fliesstext: 13/26 auf dem Handy, 15/30 ab 1600 px */
.widget-text.nwr-layered .text-container p:not(.topline) {
    font-family: var(--nwr-font-sans-book);
    font-weight: 400;
    color: var(--nwr-green-text);
    letter-spacing: 0.07em;
    line-height: 2;
    margin: 0;
    font-size: calc(13px + 2 * (100vw - 390px) / 1210);
}

@media screen and (max-width: 390px) {
    .widget-text.nwr-layered .text-container p:not(.topline) {
        font-size: 13px;
    }
}

@media screen and (min-width: 1600px) {
    .widget-text.nwr-layered .text-container p:not(.topline) {
        font-size: 15px;
    }
}

/* Mehrere Absaetze bekommen einen Abstand, ein einzelner nicht (der Abstand
   zum Button steckt schon in .more-button). */
.widget-text.nwr-layered .text-container p:not(.topline) + p:not(.topline) {
    margin-top: 1em;
}


/* --- 2) Bildblock: Ueberlappung nach Figma ------------------------------ */

/* Das vordere Foto laeuft ab hier im Textfluss mit (negativer Abstand statt
   absoluter Position). Dadurch waechst der Bildblock mit und das Foto ragt
   nicht mehr in die naechste Sektion. */
.modul-container-inner .widget-text.nwr-layered.image .image-container .image-container-inner .two {
    width: 79.03%;
    margin-left: 20.97%;
    display: block;
}

.modul-container-inner .widget-text.nwr-layered.image .image-container .image-container-inner .one {
    position: relative;
    z-index: 3;
    display: block;
    width: 78.85%;
    top: auto;
    left: auto;
    margin: -22.45% 0 0 0;
}

/* Die Innenabstaende der alten Bildspalte fallen weg - Versatz und
   Ueberlappung stecken jetzt komplett in den Prozentwerten oben. Gilt in
   jeder Breite, damit der Bildblock auch auf dem Handy die volle
   Inhaltsbreite nutzt. */
.modul-container-inner .widget-text.nwr-layered.image .image-container {
    padding-right: 0;
    padding-left: 0;
    padding-bottom: 0;
}

/* Eine im Textblock verankerte Grafik darf ueber den Inhalt hinausragen,
   aber niemals die Seite breiter machen (sonst entsteht auf mittleren
   Breiten ein waagerechter Rollbalken). */
.modul-container.nwr-has-text-grafik {
    overflow: hidden;
}

@media (min-width: 768px) {

    .modul-container-inner .widget-text.nwr-layered.image .image-container {
        width: 44.33%;
    }

    .modul-container-inner .widget-text.nwr-layered.image .text-container {
        width: 55.67%;
    }

    .modul-container-inner .widget-text.nwr-layered.image.left .text-container {
        padding-left: 11.92%;
        padding-right: 0;
    }

    .modul-container-inner .widget-text.nwr-layered.image.right .text-container {
        padding-right: 11.92%;
        padding-left: 0;
    }
}

/* Zwischenbreiten: der Abstand zwischen Bildern und Text darf schrumpfen,
   sonst wird die Textspalte zu schmal fuer die grossen Headlines. */
@media (min-width: 768px) and (max-width: 1199px) {

    .modul-container-inner .widget-text.nwr-layered.image.left .text-container {
        padding-left: 6%;
    }

    .modul-container-inner .widget-text.nwr-layered.image.right .text-container {
        padding-right: 6%;
    }
}


/* --- 3) Bilder nebeneinander (Bild-Anordnung "Nebeneinander") ----------- */

/* Reihenfolge: "Bild (front)" links, "Bild (back)" rechts. Figma-Mass
   Appartements: 255 px + 60 px Abstand + 476 px = 791 px Bildblock
   (65,05 % von 1216), Textspalte 425 px (34,95 %). */
@media (min-width: 768px) {

    .modul-container-inner .widget-text.nwr-layered.layout-row .image-container {
        width: 65.05%;
    }

    .modul-container-inner .widget-text.nwr-layered.layout-row .text-container {
        width: 34.95%;
    }

    .modul-container-inner .widget-text.nwr-layered.layout-row.left .text-container {
        padding-left: 4.7%;
    }

    .modul-container-inner .widget-text.nwr-layered.layout-row.right .text-container {
        padding-right: 4.7%;
    }

    .modul-container-inner .widget-text.nwr-layered.layout-row .image-container .image-container-inner {
        display: flex;
        flex-wrap: nowrap;
        align-items: flex-start;
    }

    .modul-container-inner .widget-text.nwr-layered.layout-row.layout-row-bottom .image-container .image-container-inner {
        align-items: flex-end;
    }

    .modul-container-inner .widget-text.nwr-layered.layout-row .image-container .image-container-inner .one {
        order: 1;
        position: relative;
        z-index: 1;
        width: 32.24%;
        margin: 0 7.59% 0 0;
    }

    .modul-container-inner .widget-text.nwr-layered.layout-row .image-container .image-container-inner .two {
        order: 2;
        width: 60.18%;
        margin: 0;
    }
}

/* Tablet: Bilder ueber die volle Breite, Text darunter. Zwei Fotos plus
   Textspalte nebeneinander sind unter 1024 px nicht mehr lesbar. */
@media (min-width: 768px) and (max-width: 1023px) {

    .modul-container-inner .widget-text.nwr-layered.layout-row {
        flex-wrap: wrap;
    }

    .modul-container-inner .widget-text.nwr-layered.layout-row .image-container,
    .modul-container-inner .widget-text.nwr-layered.layout-row .text-container {
        width: 100%;
    }

    .modul-container-inner .widget-text.nwr-layered.layout-row.left .text-container,
    .modul-container-inner .widget-text.nwr-layered.layout-row.right .text-container {
        padding-left: 0;
        padding-right: 0;
        padding-top: 40px;
    }
}

/* Handy: Fotos untereinander, kleines Foto links, grosses Foto rechts
   angeschnitten - wie auf der bisherigen Seite. */
@media (max-width: 767px) {

    .modul-container-inner .widget-text.nwr-layered.layout-row .image-container .image-container-inner {
        display: flex;
        flex-direction: column;
    }

    .modul-container-inner .widget-text.nwr-layered.layout-row .image-container .image-container-inner .one {
        order: 1;
        align-self: flex-start;
        position: relative;
        z-index: 1;
        width: 70%;
        margin: 0;
    }

    .modul-container-inner .widget-text.nwr-layered.layout-row .image-container .image-container-inner .two {
        order: 2;
        align-self: flex-end;
        display: block;
        width: 88%;
        margin: 24px 0 0 0;
    }
}


/* --- 4) Bildwechsel (weiche Ueberblendung) ------------------------------ */

/*
 * Aufbau: das Grundbild bleibt im Textfluss und bestimmt die Groesse, die
 * Wechselfotos liegen deckungsgleich darueber. Ohne JavaScript ist genau das
 * Grundbild sichtbar. refresh-2026.js setzt .is-running auf den Stapel und
 * wandert dann mit .is-active durch die Fotos.
 */
.widget-text.nwr-layered .nwr-sequence {
    position: relative;
    display: block;
}

.widget-text.nwr-layered .nwr-sequence > img {
    display: block;
    width: 100%;
}

/* Das Grundbild bleibt im Fluss und bestimmt die Groesse. position: relative
   nur, damit das Skript ihm beim Zurueckwechseln einen z-index geben kann. */
.widget-text.nwr-layered .nwr-sequence > .nwr-seq-base {
    position: relative;
    z-index: 1;
}

.widget-text.nwr-layered .nwr-sequence > .nwr-seq-frame {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    z-index: 2;
}

/* Sobald das Skript uebernimmt, ist genau das Bild mit .is-active sichtbar.
   Die Reihenfolge der beiden Regeln ist wichtig: die zweite muss gewinnen. */
.widget-text.nwr-layered .nwr-sequence.is-running > .nwr-seq-base {
    opacity: 0;
}

.widget-text.nwr-layered .nwr-sequence.is-running > img.is-active,
.widget-text.nwr-layered .nwr-sequence > img.is-active {
    opacity: 1;
}

.widget-text.nwr-layered .nwr-sequence.is-running > img {
    transition: opacity 900ms ease-in-out;
    transition-duration: var(--nwr-seq-fade, 900ms);
}

@media (prefers-reduced-motion: reduce) {

    .widget-text.nwr-layered .nwr-sequence.is-running > img {
        transition: none;
    }
}


/* --- 5) Grafik am Textblock (Grafik gehoert zu "Textblock") ------------- */

.widget-text.nwr-layered .text-container.nwr-grafik-text {
    position: relative;
}

.widget-text.nwr-layered .text-container.nwr-grafik-text > .grafik {
    position: absolute;
    z-index: 4;
    width: 100%;
    height: auto;
    pointer-events: none;
}

/* Auf Smartphones verschwindet die animierte Grafik (wie im Bildblock auch). */
@media (max-width: 767px) {

    .widget-text.nwr-layered .text-container.nwr-grafik-text > .grafik {
        display: none;
    }
}

/* Standbild fuer Smartphones: steht unter dem Text, nur unter 768 px sichtbar. */
.widget-text.nwr-layered .nwr-grafik-mobile {
    display: none;
}

@media (max-width: 767px) {

    .widget-text.nwr-layered .nwr-grafik-mobile {
        display: block;
        width: 100%;
        max-width: 45%;
        height: auto;
        margin: 35px auto 0 0;
    }
}


/* --- 6) Die drei Sektionen der Startseite ------------------------------- */

/*
 * Die Klassen kommen aus dem Feld "CSS-Klassen" des jeweiligen Widgets
 * (Reiter Erweitert). Sie halten die Abstimmung auf das Figma an EINER
 * Stelle, ohne die allgemeinen Modul-Regeln zu verbiegen.
 */

@media (min-width: 768px) {

    /* All-inclusive / Huhn: Topline startet 272 px unter der Oberkante des
       hinteren Fotos (22,37 % von 1216). */
    .nwr-sec-allinclusive .widget-text.nwr-layered.image .text-container {
        padding-top: 22.37%;
    }

    /* Kulinarik: Text startet 329 px unter der Oberkante des hinteren Fotos,
       Textspalte 603 px breit (Figma), deshalb nur 74 px Innenabstand. */
    .nwr-sec-kulinarik .widget-text.nwr-layered.image .text-container {
        padding-top: 27.06%;
    }

    .nwr-sec-kulinarik .widget-text.nwr-layered.image.right .text-container {
        padding-right: 6.09%;
    }

    /* Appartements: Text startet 70 px unter der Oberkante der Fotos. */
    .nwr-sec-appartements .widget-text.nwr-layered.image .text-container {
        padding-top: 5.76%;
    }
}

@media (min-width: 768px) and (max-width: 1199px) {

    /* Auf Zwischenbreiten weniger Vorlauf, sonst rutscht der Text zu tief. */
    .nwr-sec-allinclusive .widget-text.nwr-layered.image .text-container {
        padding-top: 14%;
    }

    .nwr-sec-kulinarik .widget-text.nwr-layered.image .text-container {
        padding-top: 16%;
    }
}

/* Appartements: die beiden Fotos sind im Figma unterschiedlich beschnitten
   (255x340 und 476x472). Das Seitenverhaeltnis erzwingt denselben Schnitt
   unabhaengig von der Bilddatei. */
.nwr-sec-appartements .widget-text.nwr-layered.layout-row .image-container .image-container-inner .one {
    aspect-ratio: 255 / 340;
    object-fit: cover;
}

.nwr-sec-appartements .widget-text.nwr-layered.layout-row .image-container .image-container-inner .two {
    aspect-ratio: 476 / 472;
    object-fit: cover;
}

/* --- 13c) Textbox mobil: alles linksbuendig (Topline, Headline, Copy, Button) --- */
@media screen and (max-width: 767px) {
    .nwr-fullimage .nwr-fullimage-box .inner,
    .nwr-fullimage .nwr-fullimage-box .inner h2,
    .nwr-fullimage .nwr-fullimage-box .inner p { text-align: left; }
}

/* --- 4a) Angebots-Kacheln: Subpixel-Luecken zwischen den Drittel-Kacheln schliessen (Bild ueberlappt 1 px) --- */
.nwr-angebote .swiper-slide .item img { width: calc(100% + 1px); max-width: none; }


/* --- 15b) Gelayerte Bilder: Stapelung Bildwechsel + Reihen-Layout nach Figma --- */

/*
 * Ergaenzt Block 15. Nichts dort wird umgeschrieben, alle Regeln hier sind
 * spezifischer oder betreffen Eigenschaften, die Block 15 nicht setzt.
 *
 * Zwei Befunde vom 10.09.2026:
 *
 * A) "All-inclusive Premium": der Bildwechsel lag ueber dem Pool-Foto.
 *    Ursache: .nwr-sequence ist zwar position:relative, hat aber z-index:auto
 *    und bildet damit KEINEN eigenen Stapelkontext. Die Wechselfotos darin
 *    bekommen von refresh-2026.js einen Inline-z-index (3, 4, 5, 6 ... immer
 *    weiter steigend). Diese Werte wirken deshalb im Stapelkontext der
 *    Bildspalte und schlagen das vordere Foto .one (z-index 3). Ein hoeherer
 *    fester z-index auf .one hilft nicht, weil der Zaehler im Skript nach
 *    oben offen ist. Loesung: .nwr-sequence bekommt einen eigenen
 *    Stapelkontext, dann bleiben die Skript-Werte im Bildwechsel eingesperrt.
 *
 * B) "Zimmer & Appartements": Fotos und Textspalte zu klein.
 *    Ursache liegt nicht im Modul, sondern im Elementor-Wrapper f012dad:
 *    er ist auf "boxed 1220 px" gestellt. .modul-container-inner setzt darin
 *    noch einmal 190 px Innenabstand je Seite, also bleiben fuer .widget-text
 *    nur 1220 - 380 = 840 px statt der 1220 px aus dem Figma. Behoben wird
 *    das im Wrapper (elements/f012dad.patch.json). Hier stehen nur die
 *    Feinmasse, die danach exakt aufs Figma passen.
 */


/* --- A) Bildwechsel: eigener Stapelkontext ----------------------------- */

/*
 * isolation:isolate erzeugt einen Stapelkontext, ohne den z-index des
 * Stapels selbst zu veraendern. Das ist wichtig, weil .nwr-sequence je nach
 * Einstellung "Bildwechsel auf" entweder das hintere Bild (.two, z-index
 * auto) oder das vordere Bild (.one, z-index 3 bzw. 1 im Reihen-Layout) ist.
 * Beide Faelle bleiben dadurch richtig gestapelt.
 */
.widget-text.nwr-layered .nwr-sequence {
    isolation: isolate;
}

/*
 * Rueckfallebene fuer Browser ohne isolation: das hintere Bild bekommt einen
 * eigenen z-index. Ein positioniertes Element mit z-index:0 bildet in jedem
 * Browser einen Stapelkontext und liegt weiterhin unter .one
 * (z-index 3 in der Ueberlappung, z-index 1 im Reihen-Layout).
 */
.widget-text.nwr-layered .nwr-sequence.two {
    z-index: 0;
}

/*
 * Sicherheitsnetz fuer die Ueberlappung: das vordere Foto liegt ueber dem
 * hinteren Bildstapel, egal in welcher Phase der Bildwechsel gerade ist.
 * Der Wert ist bewusst niedriger als der der Grafik (z-index 4), damit die
 * Huhn-Grafik weiter vorne bleibt.
 */
.modul-container-inner .widget-text.nwr-layered.image .image-container .image-container-inner > .one {
    position: relative;
    z-index: 3;
}


/* --- B1) Reihen-Layout: Masse exakt nach Figma ------------------------- */

/*
 * Figma-Rechnung (Desktop-Frame 1600 px, Inhalt 1220 px ab x 190):
 *   kleines Foto   257 px  ->  x  190 ... 447
 *   Abstand         60 px
 *   grosses Foto   476 px  ->  x  507 ... 983
 *   Textspalte     427 px  ->  x  983 ... 1410 (= 190 + 1220)
 *
 * Bildblock = 257 + 60 + 476 = 793 px
 *   Bildblock  793 / 1220 = 65,000 %
 *   Textspalte 427 / 1220 = 35,000 %   (Summe 100 %)
 *
 * Innerhalb des Bildblocks (793 px):
 *   kleines Foto 257 / 793 =  32,408 %
 *   Abstand       60 / 793 =   7,567 %
 *   grosses Foto 476 / 793 =  60,025 %   (Summe 100,000 %)
 *
 * Innenabstand der Textspalte: 60 / 1220 = 4,918 %
 * (Prozentwerte fuer padding beziehen sich auf .widget-text = 1220 px.)
 */
@media (min-width: 768px) {

    .modul-container-inner .widget-text.nwr-layered.layout-row .image-container {
        width: 65%;
    }

    .modul-container-inner .widget-text.nwr-layered.layout-row .text-container {
        width: 35%;
    }

    .modul-container-inner .widget-text.nwr-layered.layout-row.left .text-container {
        padding-left: 4.918%;
    }

    .modul-container-inner .widget-text.nwr-layered.layout-row.right .text-container {
        padding-right: 4.918%;
    }

    .modul-container-inner .widget-text.nwr-layered.layout-row .image-container .image-container-inner .one {
        width: 32.408%;
        margin-right: 7.567%;
    }

    .modul-container-inner .widget-text.nwr-layered.layout-row .image-container .image-container-inner .two {
        width: 60.025%;
    }
}

/* Beschnitt der beiden Appartement-Fotos: 257x340 und 476x472 aus dem Figma. */
.nwr-sec-appartements .widget-text.nwr-layered.layout-row .image-container .image-container-inner .one {
    aspect-ratio: 257 / 340;
}


/* --- B2) Intro-Text der Appartements auf Figma-Breite ------------------ */

/*
 * .text-container.center bekommt aus build.min.css 130 px Innenabstand je
 * Seite. Bei 1220 px Textbreite blieben davon 960 px Text uebrig, das Figma
 * zeigt aber 1005 px (Headline 1008, Absatz 1003).
 *   (1220 - 1005) / 2 = 107,5 px  ->  107,5 / 1220 = 8,81 %
 * Als Prozentwert waechst der Abstand mit der Breite mit, unter 1200 px
 * bleibt der bisherige fluide Wert stehen.
 * Der Selektor haengt an der Elementor-ID des Wrappers und wirkt damit nur
 * auf dieser einen Seite. Unterseiten bleiben unberuehrt.
 */
@media (min-width: 1200px) {

    .elementor-element-f012dad .widget-text:not(.image) .text-container.center {
        padding-left: 8.81%;
        padding-right: 8.81%;
    }
}


/* --- C) Die uebrigen Intro-Textbloecke der Startseite ------------------
 *
 * Gleiche Ursache wie B2, nur an anderen Stellen: der Elementor-Wrapper
 * schnuert den Textblock ein, danach zieht .modul-container-inner noch
 * einmal seine 190 px Innenabstand je Seite ab.
 *
 * Behoben wird das dort, wo es entsteht:
 *   nwrtx04 (Kulinarik)  Der Wrapper 6feb4fd hatte 16 px Innenabstand links
 *                        und rechts, jetzt 0. Die Sektion ist damit 1600
 *                        statt 1568 px breit.
 *   nwrtx05 (Angebote)   Der Wrapper 6c5de3c war 1224 px breit, jetzt 100 %.
 *                        Der Textblock beginnt danach bei x 190 wie im
 *                        Figma. Die Deckel aus Block 14 F (Headline 1075 px,
 *                        Fliesstext 960 px) greifen von selbst, deshalb
 *                        steht hier keine eigene Regel fuer nwrtx05.
 *   nwrtx01 (Willkommen) sitzt als einziges Intro in einer Sektion mit
 *                        fester Inhaltsbreite 1216 px, zusammen mit dem
 *                        Fullscreen-Modul. Die Sektion bleibt unangetastet,
 *                        damit Reihenfolge und Abstaende zum Fullscreen-
 *                        Modul erhalten bleiben. Stattdessen wird nur bei
 *                        diesem einen Widget der Innenabstand von
 *                        .modul-container-inner um genau den Betrag
 *                        verkleinert, den die Sektion links und rechts
 *                        wegnimmt, also um (100vw - 1216px) / 2:
 *                          Theme-Wert  calc(22.6px + 10.4625vw)
 *                          minus       (100vw - 1216px) / 2
 *                          ergibt      calc(630.6px - 39.5375vw)
 *                        max(0px, ...) faengt den negativen Bereich ab rund
 *                        1595 px Fensterbreite ab. Damit ist .widget-text
 *                        genauso breit wie bei nwrtx02 und nwrtx06
 *                        (1600 px: 1216 statt 1220, 1280 px: 967 = exakt
 *                        derselbe Wert).
 *
 * Danach gilt fuer alle zentrierten Intros dieselbe Rechnung wie in B2:
 *   (1220 - 1005) / 2 = 107,5 px  ->  107,5 / 1220 = 8,81 %
 * Erst ab 1200 px. Darunter bleibt der bisherige fluide Wert stehen, Tablet
 * und Handy sehen also aus wie vorher.
 * Alle Selektoren haengen an der Elementor-ID des jeweiligen Widgets und
 * wirken damit nur auf der Startseite. DE 17553 und EN 18775 tragen die
 * gleichen IDs, eine Regel deckt beide Sprachen ab. Unterseiten benutzen
 * diese IDs nicht und bleiben unberuehrt.
 * ------------------------------------------------------------------- */
@media (min-width: 1200px) {

    .elementor-element-nwrtx01 .modul-container-inner {
        padding-left: max(0px, calc(630.6px - 39.5375vw));
        padding-right: max(0px, calc(630.6px - 39.5375vw));
    }

    .elementor-element-nwrtx01 .widget-text:not(.image) .text-container.center,
    .elementor-element-nwrtx02 .widget-text:not(.image) .text-container.center,
    .elementor-element-nwrtx04 .widget-text:not(.image) .text-container.center,
    .elementor-element-nwrtx06 .widget-text:not(.image) .text-container.center {
        padding-left: 8.81%;
        padding-right: 8.81%;
    }
}


/* Nachtrag zu C, aus der Messung direkt nach dem Einbau:
 *
 * 1) nwrtx04 wurde nach dem Wrapper-Patch nur noch 1383 statt 1600 px breit.
 *    Grund: der innere Wrapper 4eea1c7 steht auf "Elemente zentrieren"
 *    (align-items: center). Ein Flex-Kind ohne eigene Breite bekommt dann
 *    seine Inhaltsbreite, und in dieser Rechnung zaehlen prozentuale
 *    Innenabstaende als 0. Der 8,81-%-Abstand von oben faellt dabei weg,
 *    uebrig bleiben 1008 px Headline plus 2 x 190 px Innenabstand des
 *    Moduls = 1388 px. Eine feste Breite von 100 % nimmt das Widget aus
 *    dieser Rechnung heraus. Dieselbe Falle steckt im Wrapper 6c5de3c
 *    (nwrtx05, siehe Punkt 2), deshalb stehen beide Widgets in einer
 *    Regel. Nur diese beiden, nur ab 1200 px, unter 1200 px war die
 *    Breite ohnehin schon voll ausgeschoepft.
 *
 * 2) nwrtx05: Block 14 F erlaubt der Headline 1075 px, damit sie wie im
 *    Entwurf zweizeilig steht (Figma-Textrahmen 1072 px ab x 192). Die
 *    Textspalte war dafuer zu schmal, weil .text-container.left aus
 *    build.min.css 260 px Innenabstand rechts mitbringt: 1220 - 260 = 960.
 *    145 px reichen: 1220 - 145 = 1075. Als Prozentwert 145 / 1220
 *    = 11,885 %, damit er unter 1600 px mitwaechst. Der Fliesstext bleibt
 *    bei seinen 960 px aus Block 14 F.
 */
@media (min-width: 1200px) {

    .elementor-element-4eea1c7 .elementor-element-nwrtx04,
    .elementor-element-6c5de3c .elementor-element-nwrtx05 {
        width: 100%;
    }

    .elementor-element-nwrtx05 .widget-text:not(.image) .text-container.left {
        padding-right: 11.885%;
    }
}


/* --- 12b) Instagram-Reels auf der Seite abspielen --- 
   Ergaenzt Block 12: Reel-Kacheln, deren Video beim Import in die Mediathek
   gewandert ist, sind keine Verlinkung mehr, sondern eine Schaltflaeche
   (.nwr-insta-play) mit Standbild, <video> und den weissen Symbolen. Der Weg
   zu Instagram liegt als kleines Zeichen unten rechts darueber
   (.nwr-insta-link). Raster, Fuge, Symbolgroesse und Hover-Abdunkelung aus
   Block 12 bleiben unangetastet, alle uebrigen Kacheln sehen aus wie bisher.
   Gesteuert wird das Ganze vom Abschnitt "Instagram-Reels" in refresh-2026.js;
   ohne JS (Elementor-Editor) bleibt das Standbild mit Abspielzeichen stehen.
   --------------------------------------------------------------- */

/* Die Kachel selbst ist jetzt ein div: kein Zeigefinger, den setzt der Schalter. */
.nwr-insta-tile.has-video {
    cursor: default;
}

/* Schaltflaeche fuellt die ganze Kachel und traegt alle Innenteile.
   Sie ist der Bezugspunkt fuer die absolut gesetzten Symbole (position: relative),
   damit deren Abstaende aus Block 12 unveraendert weitergelten. */
.nwr-insta-tile .nwr-insta-play {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: inherit;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

.nwr-insta-tile .nwr-insta-play:focus-visible {
    outline: 2px solid var(--nwr-rose);
    outline-offset: -4px;
}

/* Das Video liegt deckungsgleich ueber dem Standbild und ist unsichtbar,
   solange nichts laeuft. Kein display:none, sonst spielt iOS nicht inline ab.
   Feste Groesse ueber CSS: die Kachel behaelt ihr 3:4-Mass, nichts springt. */
.nwr-insta-tile .nwr-insta-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    background-color: #EFEAE3;
    opacity: 0;
    pointer-events: none;
    transition: opacity .25s ease;
}

.nwr-insta-tile.is-playing .nwr-insta-video {
    opacity: 1;
}

/* Waehrend der Wiedergabe keine Hover-Abdunkelung mehr, sie liegt sonst als
   Schleier ueber dem laufenden Bild. */
.nwr-insta-tile.is-playing:hover .nwr-insta-img,
.nwr-insta-tile.is-playing .nwr-insta-play:focus-visible .nwr-insta-img {
    filter: none;
}

/* Abspiel- und Pausezeichen liegen an derselben Stelle oben rechts (Masse aus
   Block 12) und werden ueberblendet. */
.nwr-insta-icon--play,
.nwr-insta-icon--pause {
    transition: opacity .2s ease;
}

.nwr-insta-icon--pause {
    opacity: 0;
}

.nwr-insta-tile.is-playing .nwr-insta-icon--play {
    opacity: 0;
}

.nwr-insta-tile.is-playing .nwr-insta-icon--pause {
    opacity: 1;
}

/* Angeheftete Reels: die Pinnadel wandert nach links, weil rechts das
   Abspielzeichen als Bedienung sitzt. */
.nwr-insta-icon--pin {
    right: auto;
    left: var(--nwr-insta-inset);
}

/* Zeichen unten rechts: fuehrt zu Instagram, eigener Halt fuer die Tastatur.
   Etwas kleiner als das Typ-Symbol (22 -> 60 px), gleicher weisser Look mit
   Schatten. Innenabstand vergroessert die Tippflaeche, ohne das Zeichen selbst
   zu vergroessern (content-box gegen die border-box-Grundregel des Themes). */
.nwr-insta-tile .nwr-insta-link {
    position: absolute;
    right: var(--nwr-insta-inset);
    bottom: var(--nwr-insta-inset);
    z-index: 2;
    box-sizing: content-box;
    display: block;
    width: clamp(18px, calc(18px + 20 * (100vw - 390px) / 1210), 38px);
    height: clamp(18px, calc(18px + 20 * (100vw - 390px) / 1210), 38px);
    padding: 11px;
    margin: -11px;
    line-height: 0;
    opacity: .92;
    transition: opacity .2s ease;
}

.nwr-insta-tile .nwr-insta-link svg {
    display: block;
    width: 100%;
    height: 100%;
    filter: drop-shadow(2px 2px 3px rgba(0, 0, 0, .35));
}

.nwr-insta-tile .nwr-insta-link:hover,
.nwr-insta-tile .nwr-insta-link:focus-visible {
    opacity: 1;
}

.nwr-insta-tile .nwr-insta-link:focus-visible {
    outline: 2px solid var(--nwr-rose);
    outline-offset: 0;
}

/* Aeltere Browser ohne aspect-ratio: dort hat die Kachel keine feste Hoehe,
   die Hoehe kommt vom Standbild. Der Schalter darf dann nicht auf 100 %
   ausweichen, sonst faellt er in sich zusammen. */
@supports not (aspect-ratio: 3 / 4) {
    .nwr-insta-tile .nwr-insta-play {
        height: auto;
    }
}

/* >>> MOBIL-SLIDER START */
/* ---------------------------------------------------------------
   MOBIL-SLIDER (Mobil-Optimierung Startseite, 10.09.2026)
   Die drei Slider der Startseite auf Smartphones (bis 767 px) nach dem
   Figma-Mobildesign (390 px): Sliderbox 600489a, Angebote 851d0f6,
   Testimonials 645d12b. Desktop und Tablet bleiben unveraendert.
   --------------------------------------------------------------- */

/* A0) Kurztext fuer Smartphones im Widget "Slider Bild + Text (Gross)".
   Das Markup (.nwr-copy-mobile) entsteht nur, wenn im Repeater das Feld
   "Kurztext fuer Smartphones" gefuellt ist (SliderBigBoxModul.php). Der
   Kurztext steht direkt vor dem langen Text: bis 767 px ersetzt er ihn,
   ab 768 px ist er ausgeblendet. Ohne Eintrag greift keine dieser Regeln,
   deshalb gelten sie fuer das Widget auf allen Seiten. */
.nwr-bigbox-slide .text-container .nwr-copy-mobile {
    display: none;
}

@media (max-width: 767px) {

    .nwr-bigbox-slide .text-container .nwr-copy-mobile {
        display: block;
    }

    .nwr-bigbox-slide .text-container .nwr-copy-mobile + .copy {
        display: none;
    }


    /* A) Sliderbox "Entspannte Familienzeit in der Natur" (600489a).
       Figma: Bild 390 x 507, weisse Box 309 breit, 423 px unter der
       Bild-Oberkante (ueberlappt das Bild um 84 px), Headline 34 px unter
       der Box-Oberkante, 24/30 px mit 2 px Laufweite, Text 251 breit,
       Button zentriert, 42 px Luft unter dem Button, Pfeile 43 px bei
       x = 29 und senkrecht mittig auf dem Bild. */
    .elementor-element-600489a .nwr-bigbox-slide .image-container img,
    .elementor-element-600489a .nwr-bigbox-slide .image-container video {
        aspect-ratio: 390 / 507;
    }

    /* Box fest 309 px breit und mittig: so brechen Headline und Text auf
       jedem Smartphone genau wie im Figma um (Headline-Spalte 280 px, damit
       "Kinderbetreuung" in eine Zeile passt, Textspalte 251 px). */
    /* Alle Slides sind so hoch wie die hoechste (Swiper). Die Box beginnt
       deshalb oben statt mittig und fuellt die Hoehe, der Button sitzt
       unten: gleiche Box-Hoehe und Button-Lage auf jeder Slide wie im Figma. */
    .elementor-element-600489a .nwr-bigbox-slide .text-container {
        justify-content: flex-start;
        padding: 0 0 42px;
    }

    .elementor-element-600489a .nwr-bigbox-slide .text-container .inner {
        flex: 1 1 auto;
        width: 309px;
        max-width: calc(100% - 40px);
        margin: -84px auto 0;
        padding: 34px 14.5px 42px;
        gap: 0;
        box-shadow: 0 0 5px rgba(0, 0, 0, 0.08);
    }

    .elementor-element-600489a .nwr-bigbox-slide .text-container h2 {
        letter-spacing: 2px;
        margin: 0 0 38px;
    }

    .elementor-element-600489a .nwr-bigbox-slide .text-container .copy {
        padding: 0 14.5px;
        margin: 0 0 28px;
    }

    .elementor-element-600489a .nwr-bigbox-slide .text-container .copy p:last-child {
        margin-bottom: 0;
    }

    .elementor-element-600489a .nwr-bigbox-slide .text-container .more-button {
        margin: auto 0 0;
    }

    .elementor-element-600489a .slider-bigbox .swiper-button-prev,
    .elementor-element-600489a .slider-bigbox .swiper-button-next {
        width: 43px;
        height: 43px;
        top: calc(65vw - 21.5px);
    }

    .elementor-element-600489a .slider-bigbox .swiper-button-prev {
        left: 29px;
    }

    .elementor-element-600489a .slider-bigbox .swiper-button-next {
        right: 29px;
    }

    /* Winkel so kraeftig wie im Figma und wie beim Angebots-Slider */
    .elementor-element-600489a .slider-bigbox .circle-arrow .arrow {
        stroke-width: 3;
    }


    /* B) Angebots-Slider (851d0f6). Figma je Slide: Bild randlos
       390 x 558, weisse Box 307 x 176 mittig (fest 307 breit),
       Unterkante 42 px ueber der Slide-Unterkante (Oberkante 341),
       Inhalt senkrecht mittig; Titel Brother 24/30 px, Laufweite 2 px,
       Versalien; Preiszeile Brother Medium 12/22 px, Laufweite 1 px;
       Pfeile 43 px, Oberkante 257 px (liegen damit ueber der Box). */
    .elementor-element-851d0f6 .nwr-angebote .nwr-offer-box {
        left: 50%;
        bottom: 42px;
        width: 307px;
        max-width: calc(100% - 40px);
        min-height: 176px;
        padding: 12px 29px;
        transform: translateX(-50%);
    }

    .elementor-element-851d0f6 .nwr-angebote .nwr-offer-box h3 {
        font-family: "Brother 1816", BrotherBook, sans-serif;
        font-weight: 400;
        font-size: 24px;
        line-height: 30px;
        letter-spacing: 2px;
        margin: 0 0 15px;
    }

    .elementor-element-851d0f6 .nwr-angebote .nwr-offer-box .nwr-offer-meta {
        font-family: "Brother 1816", BrotherMedium, sans-serif;
        font-weight: 500;
        font-size: 12px;
        line-height: 22px;
        letter-spacing: 1px;
    }

    .elementor-element-851d0f6 .nwr-angebote .swiper-button-prev,
    .elementor-element-851d0f6 .nwr-angebote .swiper-button-next {
        width: 43px;
        height: 43px;
        top: 65.9vw;
        margin-top: 0;
        transform: none;
    }

    .elementor-element-851d0f6 .nwr-angebote .swiper-button-prev {
        left: 29px;
    }

    .elementor-element-851d0f6 .nwr-angebote .swiper-button-next {
        right: 29px;
    }


    /* C) Testimonials (645d12b). Figma: Zitat Brother 18/30 px,
       Laufweite 2 px, 275 breit, zentriert; Autor Brother Medium 15 px,
       Laufweite 3 px, Versalien, Altrosa, Zeile 30 px; Punkte 15 px,
       18 px Abstand, 50 px unter dem Autor.
       Figma-Logik (Nachbesserung F1, 10.09.2026): das Zitat steht senkrecht
       zentriert in einem festen Rahmen, Autor und Punkte stehen immer an
       derselben Stelle. Umsetzung: alle Slides so hoch wie das laengste
       Zitat (Slider-Hoehe), das Zitat teilt sich den freien Platz oben und
       unten, der Autor steht unten, 50 px ueber den Punkten. Beim laengsten
       Zitat 49 px Zitat -> Autor (Figma: 26,5 px Rahmen-Zentrierung + 22 px
       Rahmenabstand, sichtbar 65,5 px). */
    .elementor-element-645d12b .slider-two-image-text .swiper-wrapper {
        align-items: stretch;
    }

    .elementor-element-645d12b .slider-two-image-text .swiper-slide {
        height: auto;
        display: flex;
        flex-direction: column;
    }

    .elementor-element-645d12b .slider-two-image-text .swiper-slide > .widget-testimonial,
    .elementor-element-645d12b .modul-container .widget-testimonial .text-container {
        flex: 1 0 auto;
        display: flex;
        flex-direction: column;
    }

    .elementor-element-645d12b .modul-container .widget-testimonial .text-container .inner {
        padding: 0 20px;
        flex: 1 0 auto;
        display: flex;
        flex-direction: column;
    }

    .elementor-element-645d12b .modul-container .widget-testimonial .text-container .inner h3 {
        font-size: 18px;
        line-height: 30px;
        letter-spacing: 2px;
        width: 100%;
        max-width: 275px;
        margin: auto;
    }

    .elementor-element-645d12b .modul-container .widget-testimonial .text-container .inner p {
        font-family: "Brother 1816", BrotherMedium, sans-serif;
        font-weight: 500;
        font-size: 15px;
        line-height: 30px;
        letter-spacing: 3px;
        text-transform: uppercase;
        color: #E4B2A8;
        margin-top: 49px;
    }

    /* Punkte: Zeilenhoehe raus, damit die Punktreihe genau 15 px hoch ist
       und 50 px unter dem Autor steht (65 px Innenabstand - 15 px) */
    .elementor-element-645d12b .slider-two-image-text {
        padding-bottom: 65px;
    }

    .elementor-element-645d12b .slider-two-image-text .swiper-pagination {
        line-height: 0;
        font-size: 0;
        height: 15px;
        bottom: 0;
    }
}
/* <<< MOBIL-SLIDER ENDE */

/* >>> MOBIL-GRAFIK START */
/* === MOBIL-GRAFIK (Startseite, nur Smartphones): Huhn + Spargel nach Figma-Mobil (390 px) ===
   Grafik = img.nwr-grafik-mobile (Widget-Feld "Grafik fuer Smartphones", eigene kleine animierte WebP-Datei).
   Steht im Textfluss unter dem Button, Abstand unten 0 (Sektionsabstand regelt MOBIL-LAYOUT).
   Waagerechte Lage bezogen auf den Bildschirmrand, unabhaengig von der Textspaltenbreite:
   (100vw - 100%) / 2 = Abstand der mittig stehenden Textspalte (.inner) zum Bildschirmrand.
   aspect-ratio reserviert die Hoehe schon vor dem Lazyload (kein Layoutsprung). */
@media (max-width: 767px) {

    /* Huhn (All-inclusive): 149 x 217, rechte Kante 40 px vom Rand, 30 px unter dem Button */
    .elementor-element-nwr29e3.nwr-sec-allinclusive .widget-text.nwr-layered .text-container .inner > img.nwr-grafik-mobile {
        display: block;
        width: 149px;
        max-width: none;
        height: auto;
        aspect-ratio: auto 300 / 435;
        margin: 30px calc(40px - (100vw - 100%) / 2) 0 auto;
    }

    /* Spargel (Kulinarik): 177 x 177, linke Kante 38 px vom Rand, 50 px unter dem Button */
    .elementor-element-nwr6feb.nwr-sec-kulinarik .widget-text.nwr-layered .text-container .inner > img.nwr-grafik-mobile {
        display: block;
        width: 177px;
        max-width: none;
        height: auto;
        aspect-ratio: auto 1 / 1;
        margin: 50px auto 0 calc(38px - (100vw - 100%) / 2);
    }
}
/* <<< MOBIL-GRAFIK ENDE */

/* >>> MOBIL-TYPO START */
/* ---------------------------------------------------------------
   MOBIL-TYPO (M1): Startseite /new-home/ (DE 17553, EN 18775), nur bis 767 px.
   Typografie + Textspalten nach Figma-Mobil (390 px):
   Topline Vollkorn 500 15/18, Laufweite 1 px, 13 px bis zur Headline;
   H2 28/34, Laufweite 5 px, Versalien, Spalte 320 px; Fliesstext 13/26,
   Laufweite 0,91 px, Spalte 305 px, 26 px zwischen Absaetzen; H2 -> Text 38 px
   (Willkommen 51 px); Text -> Button 37 px.
   Spalten bis 390 px fest (gleiche Zeilenumbrueche bei 375 wie im Figma),
   darueber wachsen sie mit, unter 360 px schrumpfen sie mit dem Bildschirm.
   Die Spalten richten sich an der Mitte des Elternelements aus
   (calc(50% - Breite/2)), deshalb bleiben Bild- und Sektionsraender unberuehrt.
   --------------------------------------------------------------- */
@media (max-width: 767px) {

    /* --- 1) Zentrierte Textbloecke: Intros + Textblock der Bild-Text-Module --- */
    :is(.elementor-element-nwrtx01, .elementor-element-nwrtx02, .elementor-element-nwrtx03,
        .elementor-element-nwrtx04, .elementor-element-nwrtx05, .elementor-element-nwrtx06,
        .elementor-element-nwr29e3, .elementor-element-nwrf012, .elementor-element-nwr6feb).elementor-element.elementor-widget .modul-container .widget-text .text-container .inner {
        --m1-hw: min(calc(100vw - 40px), clamp(320px, calc(320px + (100vw - 390px) * 0.82), 540px));
        --m1-tw: min(calc(100vw - 48px), clamp(305px, calc(305px + (100vw - 390px) * 0.78), 520px));
        --m1-h3w: min(calc(100vw - 40px), clamp(274px, calc(274px + (100vw - 390px) * 0.7), 460px));
        text-align: center;
    }

    /* Topline (p.topline, in Willkommen ein h1) */
    :is(.elementor-element-nwrtx01, .elementor-element-nwrtx02, .elementor-element-nwrtx03,
        .elementor-element-nwrtx04, .elementor-element-nwrtx05, .elementor-element-nwrtx06,
        .elementor-element-nwr29e3, .elementor-element-nwrf012, .elementor-element-nwr6feb).elementor-element.elementor-widget .modul-container .widget-text .text-container .inner > :is(p.topline, h1) {
        font-family: "Vollkorn", VollkornSemiBold, Georgia, serif;
        font-weight: 500;
        font-size: 15px;
        line-height: 18px;
        letter-spacing: 1px;
        text-transform: none;
        text-align: center;
        color: #E4B2A8;
        width: var(--m1-hw);
        max-width: none;
        margin: 0 calc(50% - var(--m1-hw) / 2) 13px;
    }

    /* Headline H2 */
    :is(.elementor-element-nwrtx01, .elementor-element-nwrtx02, .elementor-element-nwrtx03,
        .elementor-element-nwrtx04, .elementor-element-nwrtx05, .elementor-element-nwrtx06,
        .elementor-element-nwr29e3, .elementor-element-nwrf012, .elementor-element-nwr6feb).elementor-element.elementor-widget .modul-container .widget-text .text-container .inner > h2:not(.handwrit) {
        font-family: "Brother 1816", BrotherBook, sans-serif;
        font-weight: 400;
        font-size: 28px;
        line-height: 34px;
        letter-spacing: 5px;
        text-transform: uppercase;
        text-align: center;
        color: #154037;
        width: var(--m1-hw);
        max-width: none;
        margin: 0 calc(50% - var(--m1-hw) / 2) 38px;
    }
    /* Willkommen: im Figma mehr Luft zwischen Headline und Text */
    .elementor-element-nwrtx01.elementor-element.elementor-widget .modul-container .widget-text .text-container .inner > h2:not(.handwrit) {
        margin-bottom: 51px;
    }

    /* Zwischenheadline H3 ("34 Zimmer verteilt auf 5 Haeuser") */
    :is(.elementor-element-nwrtx01, .elementor-element-nwrtx02, .elementor-element-nwrtx03,
        .elementor-element-nwrtx04, .elementor-element-nwrtx05, .elementor-element-nwrtx06,
        .elementor-element-nwr29e3, .elementor-element-nwrf012, .elementor-element-nwr6feb).elementor-element.elementor-widget .modul-container .widget-text .text-container .inner > h3 {
        font-family: "Brother 1816", BrotherBook, sans-serif;
        font-weight: 400;
        font-size: 20px;
        line-height: 34px;
        letter-spacing: 2px;
        text-transform: uppercase;
        text-align: center;
        color: #154037;
        width: var(--m1-h3w);
        max-width: none;
        margin: 0 calc(50% - var(--m1-h3w) / 2) 18px;
    }

    /* Fliesstext */
    :is(.elementor-element-nwrtx01, .elementor-element-nwrtx02, .elementor-element-nwrtx03,
        .elementor-element-nwrtx04, .elementor-element-nwrtx05, .elementor-element-nwrtx06,
        .elementor-element-nwr29e3, .elementor-element-nwrf012, .elementor-element-nwr6feb).elementor-element.elementor-widget .modul-container .widget-text .text-container .inner > p:not(.topline) {
        font-family: BrotherBook, "Brother 1816", sans-serif;
        font-weight: 400;
        font-size: 13px;
        line-height: 26px;
        letter-spacing: 0.91px;
        text-transform: none;
        text-align: center;
        color: #1B4039;
        width: var(--m1-tw);
        max-width: none;
        margin: 0 calc(50% - var(--m1-tw) / 2) 26px;
    }
    :is(.elementor-element-nwrtx01, .elementor-element-nwrtx02, .elementor-element-nwrtx03,
        .elementor-element-nwrtx04, .elementor-element-nwrtx05, .elementor-element-nwrtx06,
        .elementor-element-nwr29e3, .elementor-element-nwrf012, .elementor-element-nwr6feb).elementor-element.elementor-widget .modul-container .widget-text .text-container .inner > p:not(.topline) + p:not(.topline) {
        margin-top: 0;
    }
    /* Letztes Element ohne Abstand nach unten (Abstand zum naechsten Block macht das Layout) */
    :is(.elementor-element-nwrtx01, .elementor-element-nwrtx02, .elementor-element-nwrtx03,
        .elementor-element-nwrtx04, .elementor-element-nwrtx05, .elementor-element-nwrtx06,
        .elementor-element-nwr29e3, .elementor-element-nwrf012, .elementor-element-nwr6feb).elementor-element.elementor-widget .modul-container .widget-text .text-container .inner > p:not(.topline):last-child {
        margin-bottom: 0;
    }
    /* Text -> Button 37 px (26 px Absatzabstand + 11 px); Button-Optik bleibt */
    :is(.elementor-element-nwrtx01, .elementor-element-nwrtx02, .elementor-element-nwrtx03,
        .elementor-element-nwrtx04, .elementor-element-nwrtx05, .elementor-element-nwrtx06,
        .elementor-element-nwr29e3, .elementor-element-nwrf012, .elementor-element-nwr6feb).elementor-element.elementor-widget .modul-container .widget-text .text-container .inner > p:not(.topline) + .more-button {
        margin-top: 11px;
    }

    /* --- 2) Weisse Box Appartements (nwrw1b2): linksbuendig, Innenabstand nach Figma
           (oben 55, links 30, rechts 15, unten 58). Box-Breite/-Lage: Layout. --- */
    .elementor-element-nwrw1b2.elementor-element.elementor-widget .nwr-fullimage .nwr-fullimage-box .inner {
        padding: 55px 15px 58px 30px;
        gap: 0; /* Flex-Spalte: Abstaende kommen unten einzeln aus dem Figma */
        text-align: left;
    }
    .elementor-element-nwrw1b2.elementor-element.elementor-widget .nwr-fullimage .nwr-fullimage-box .inner > p.topline {
        font-family: "Vollkorn", VollkornSemiBold, Georgia, serif;
        font-weight: 500;
        font-size: 15px;
        line-height: 18px;
        letter-spacing: 1px;
        text-align: left;
        color: #E4B2A8;
        margin: 0 0 13px;
    }
    .elementor-element-nwrw1b2.elementor-element.elementor-widget .nwr-fullimage .nwr-fullimage-box .inner > h2 {
        font-family: "Brother 1816", BrotherBook, sans-serif;
        font-weight: 400;
        font-size: 28px;
        line-height: 34px;
        letter-spacing: 5px;
        text-transform: uppercase;
        text-align: left;
        color: #154037;
        max-width: 320px;
        margin: 0 -15px 38px 0;
    }
    .elementor-element-nwrw1b2.elementor-element.elementor-widget .nwr-fullimage .nwr-fullimage-box .inner > p:not(.topline) {
        font-family: BrotherBook, "Brother 1816", sans-serif;
        font-weight: 400;
        font-size: 13px;
        line-height: 26px;
        letter-spacing: 0.91px;
        text-align: left;
        color: #1B4039;
        max-width: 305px;
        margin: 0 0 26px;
    }
    .elementor-element-nwrw1b2.elementor-element.elementor-widget .nwr-fullimage .nwr-fullimage-box .inner > p:not(.topline):last-child {
        margin-bottom: 0;
    }
    /* Button im Figma mittig unter dem Text (Optik unveraendert):
       26 px Absatzabstand + 11 px = 37 px */
    .elementor-element-nwrw1b2.elementor-element.elementor-widget .nwr-fullimage .nwr-fullimage-box .inner > .more-button {
        align-self: center;
        margin: 11px 0 0;
    }

    /* --- 3) Hero (ff2ce08): Topline + Headline linksbuendig, Headline 320 px --- */
    .elementor-element-ff2ce08.elementor-element.elementor-widget .widget-header-video-text .header-video-container .content .inner > p.topline {
        font-size: 15px;
        line-height: 18px;
        letter-spacing: 1px;
        margin-bottom: 13px;
    }
    .elementor-element-ff2ce08.elementor-element.elementor-widget .widget-header-video-text .header-video-container .content .inner > h2 {
        font-size: 28px; /* die Theme-Regel setzt 28px !important, Wert identisch */
        line-height: 34px;
        letter-spacing: 5px;
        width: min(320px, calc(100vw - 62px));
        max-width: none;
    }
}

/* Unter 360 px (kleine Geraete): Laufweite der Headlines zuruecknehmen,
   damit lange Worte wie FAMILIENURLAUB nicht ueber den Rand laufen. */
@media (max-width: 359px) {
    :is(.elementor-element-nwrtx01, .elementor-element-nwrtx02, .elementor-element-nwrtx03,
        .elementor-element-nwrtx04, .elementor-element-nwrtx05, .elementor-element-nwrtx06,
        .elementor-element-nwr29e3, .elementor-element-nwrf012, .elementor-element-nwr6feb).elementor-element.elementor-widget .modul-container .widget-text .text-container .inner > h2:not(.handwrit),
    .elementor-element-nwrw1b2.elementor-element.elementor-widget .nwr-fullimage .nwr-fullimage-box .inner > h2,
    .elementor-element-ff2ce08.elementor-element.elementor-widget .widget-header-video-text .header-video-container .content .inner > h2 {
        letter-spacing: 3px;
    }
}
/* <<< MOBIL-TYPO ENDE */

/* >>> MOBIL-LAYOUT START */
/* M2 Mobil-Layout Startseite /new-home/ (DE 17553, EN 18775), nur bis 767 px.
   Proportionen und senkrechter Rhythmus nach dem Figma-Mobildesign (390 px).
   Die Abstaende ZWISCHEN den Sektionen stehen als Elementor-Mobilwerte an den
   Containern (padding_mobile, flex_gap_mobile, _margin_mobile) und lassen sich
   im Editor in der Smartphone-Ansicht aendern. Hier stehen nur:
   - der widget-eigene "Abstand oben" (.modul-container.distance-*, im Theme
     mobil 100 px) wird auf 0 gesetzt, damit allein der Container-Wert gilt,
   - Masse von Hero, Bildern, Video und Box. */
@media (max-width: 767px) {

    /* --- Hero: sichtbares Bild 390:587 unter der 80-px-Kopfzeile ---
       app.min.js setzt inline "height: calc(60vh - Kopfzeile)". min-height
       schlaegt die Inline-Hoehe ohne !important. Deckel 100vh fuer Querformat. */
    .elementor-element-ff2ce08 .widget-header-video-text .header-video-container {
        min-height: min(calc(80px + 150.513vw), 100vh);
    }

    /* Textblock mittig im sichtbaren Bildteil (Kopfzeile liegt ueber dem Hero) */
    .elementor-element-ff2ce08 .widget-header-video-text .header-video-container .content {
        top: calc(50% + 40px);
    }

    /* --- Willkommen-Bild: 308 x 461 bei x = 41 (Seitenverhaeltnis 2:3 aus Block 13a) --- */
    .elementor-element-nwrw1a1 .nwr-fullimage.nwr-fullimage--nobox {
        width: calc(100% - 22px);
        margin-left: auto;
        margin-right: auto;
    }

    /* --- Video: randlos 390 x 463, Abstand Bild davor aus fa59104 --- */
    .elementor-element-nwrw1c3 > .elementor-widget-container > .modul-container {
        margin-top: 0;
    }

    .elementor-element-nwrw1c3 .widget-video-text.nwr-video-refresh .video-container .inner {
        aspect-ratio: 390 / 463;
    }

    /* Video -> Handschrift wie im Figma (gemessen an der Schrift, nicht am Rahmen) */
    .elementor-element-nwrw1c3 .widget-video-text.nwr-video-refresh .video-container {
        margin-bottom: 74px;
    }

    /* Button -> Appartement-Bild 75 px */
    .elementor-element-nwrw1c3 .widget-video-text.nwr-video-refresh {
        padding-bottom: 75px;
    }

    /* --- Appartements: weisse Box am linken Bildschirmrand, 350 px bei 390
       (89,74 %), Oberkante 285 px unter der Bildoberkante. Bild 390:489,
       Ueberlappung 204 px = 52,31vw. Bei "Box rechts" gespiegelt. --- */
    .elementor-element-nwrw1b2 .nwr-fullimage.box-left .nwr-fullimage-box,
    .elementor-element-nwrw1b2 .nwr-fullimage.box-right .nwr-fullimage-box {
        width: 89.744%;
        margin-top: -52.308vw;
        margin-left: 0;
        margin-right: auto;
    }

    .elementor-element-nwrw1b2 .nwr-fullimage.box-right .nwr-fullimage-box {
        margin-left: auto;
        margin-right: 0;
    }

    /* --- Widget-eigener Abstand oben aus: Abstand kommt vom Container --- */
    .elementor-element-nwr29e3 > .elementor-widget-container > .modul-container,
    .elementor-element-600489a > .elementor-widget-container > .modul-container,
    .elementor-element-nwrf012 > .elementor-widget-container > .modul-container,
    .elementor-element-nwr6feb > .elementor-widget-container > .modul-container,
    .elementor-element-851d0f6 > .elementor-widget-container > .modul-container,
    .elementor-element-nwrig01 > .elementor-widget-container > .modul-container {
        margin-top: 0;
    }

    /* --- Gelayerte Bilder: Abstand Bildblock -> Text (Theme mobil 70 px) --- */
    .elementor-element-nwr29e3 .modul-container-inner .widget-text.nwr-layered.image.top .image-container {
        margin-bottom: 55px;
    }

    .elementor-element-nwrf012 .modul-container-inner .widget-text.nwr-layered.image.top .image-container {
        margin-bottom: 53px;
    }

    .elementor-element-nwr6feb .modul-container-inner .widget-text.nwr-layered.image.top .image-container {
        margin-bottom: 78px;
    }

    /* --- Zimmer & Appartements: Bild 1 200 x 265 links, Bild 2 253 x 250
       rechts, 25 px darunter (Bildflaeche 308 px ab x = 41) --- */
    .elementor-element-nwrf012 .modul-container-inner .widget-text.nwr-layered.layout-row .image-container .image-container-inner .one {
        width: 64.935%;
    }

    .elementor-element-nwrf012 .modul-container-inner .widget-text.nwr-layered.layout-row .image-container .image-container-inner .two {
        width: 82.143%;
        margin-top: 25px;
    }
}
/* <<< MOBIL-LAYOUT ENDE */

/* >>> AUDIT-0911 START */
/* Abschlusspruefung 11.09.2026 (gilt fuer alle Seiten, Startseite unveraendert)

   A) Headlines, die in schmalen Spalten ueber den Rand laufen, verkleinert
      refresh-2026.js zuerst leicht (bis 85 %). Reicht das nicht, bekommen sie
      die Klasse .nwr-hyph: Silbentrennung, notfalls Umbruch im Wort. Headlines,
      die passen, bleiben unveraendert. */
.modul-container .nwr-hyph {
    -webkit-hyphens: auto;
    hyphens: auto;
    overflow-wrap: break-word;
}

/* D) Textspalten duerfen durch ein langes Wort nicht breiter werden als ihr Platz.
      Erst dadurch erkennt A die zu lange Headline. Wirkt nur, wo etwas uebersteht. */
.modul-container .widget-text > .text-container {
    min-width: 0;
}
.elementor-widget-wrap > .elementor-widget {
    max-width: 100%;
}
@media screen and (max-width: 767px) {
    /* Widgets mit eigener Breite in Elementor (z. B. 175 %) nie breiter als die Spalte */
    .elementor-widget-wrap > .elementor-widget {
        max-width: 100% !important;
    }
}
.modul-container iframe {
    max-width: 100%;
}
@media screen and (max-width: 1199px) {
    .modul-container .widget-text .text-container .inner {
        max-width: 100% !important;
    }
}

/* B) FAQ-Fragen (Akkordeon) in normaler Schreibweise wie bisher. Block 7 stellt
      h3 auf Versalien um, die Akkordeon-Fragen behalten aber ihre Serifenschrift. */
.modul-container .widget-accordion .accordion-container h3 {
    text-transform: none;
}

/* C) Vioma-Listen (Angebote im Fruehling & Sommer / Herbst & Winter DE + EN,
      Zimmerliste /en/rooms/): Ueberschriften in der Schrift des Angebots-Sliders
      der Startseite. Vioma laedt sein CSS nach unserem, daher
      !important (wie Block 8 Buchungsmaske). */
.widget-vioma .vri-package-title h3,
.widget-vioma .vri-roomtype-group-header {
    font-family: "Brother 1816", BrotherMedium, sans-serif !important;
    font-weight: 400 !important;
    text-transform: uppercase !important;
    letter-spacing: .14em !important;
    line-height: 1.4 !important;
    font-size: calc(22px + 8 * (100vw - 390px) / 1210) !important;
    color: #154037 !important;
}
.widget-vioma .vri-package-variant-infobar-name,
.widget-vioma .vri-roomtype-title h3 {
    font-family: "Brother 1816", BrotherMedium, sans-serif !important;
    font-weight: 400 !important;
    text-transform: uppercase !important;
    letter-spacing: .1em !important;
    line-height: 1.5 !important;
    font-size: calc(16px + 4 * (100vw - 390px) / 1210) !important;
    color: #154037 !important;
}
@media screen and (max-width: 390px) {
    .widget-vioma .vri-package-title h3, .widget-vioma .vri-roomtype-group-header { font-size: 22px !important; }
    .widget-vioma .vri-package-variant-infobar-name, .widget-vioma .vri-roomtype-title h3 { font-size: 16px !important; }
}
@media screen and (min-width: 1600px) {
    .widget-vioma .vri-package-title h3, .widget-vioma .vri-roomtype-group-header { font-size: 30px !important; }
    .widget-vioma .vri-package-variant-infobar-name, .widget-vioma .vri-roomtype-title h3 { font-size: 20px !important; }
}

/* C2) Vioma-Angebotszeilen auf dem Smartphone untereinander */
@media screen and (max-width: 767px) {
    /* Angebotszeilen auf dem Smartphone: Beschriftung ueber dem Wert statt
       zweispaltiger Tabelle (die war 357 px breit bei 308 px Platz, auch auf Live) */
    .widget-vioma .vri-package-variant-infobar,
    .widget-vioma .vri-package-variant-infobar-content,
    .widget-vioma .vri-package-variant-infobar-content-row,
    .widget-vioma .vri-package-variant-infobar-days,
    .widget-vioma .vri-package-variant-infobar-date,
    .widget-vioma .vri-package-variant-infobar-summary {
        display: block !important;
        width: auto !important;
    }
    .widget-vioma .vri-package-variant-infobar-days,
    .widget-vioma .vri-package-variant-infobar-date,
    .widget-vioma .vri-package-variant-infobar-summary {
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-bottom: 10px;
        border-left: 0 !important;
        border-right: 0 !important;
    }
    .widget-vioma .vri-package-variant-infobar-content-row-title,
    .widget-vioma .vri-package-variant-infobar-content-row-content {
        display: block !important;
        width: auto !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }
    .widget-vioma .vri-package-variant-infobar-name {
        padding-right: 50px !important;
    }
    .widget-vioma .vri-package-variant-infobar-days::after,
    .widget-vioma .vri-package-variant-infobar-date::after,
    .widget-vioma .vri-package-variant-infobar-summary::after {
        display: none !important;
    }
}
/* <<< AUDIT-0911 ENDE */

/* >>> AUDIT-0911B START */
/* Abschlusspruefung 11.09.2026, Nachtrag (Desktop ab 1200 px unveraendert)

   E) Blog-Uebersicht (/averbeck-hat-bock/): Die Kachel-Titel (h3, seit Block 7
      Brother-Versalien) liefen in den drei schmalen Spalten in die Nachbarkachel
      und machten die Seite auf dem Handy waagerecht scrollbar.
      Handy: zwei Kacheln nebeneinander, Titel 14 px (ab 480 px 16 px), Laufweite
      .06em. Tablet: Titel 18 bis 24 px. Titel, die dann noch nicht passen, trennt
      refresh-2026.js (Block AUDIT-0911B) per .nwr-hyph (Block AUDIT-0911 A). */
@media screen and (max-width: 767px) {
    .modul-container .widget-blog .item {
        width: 50%;
    }
    .modul-container .widget-blog .item h3 {
        font-size: 16px;
        letter-spacing: .06em;
    }
}
@media screen and (max-width: 479px) {
    .modul-container .widget-blog .item h3 {
        font-size: 14px;
    }
}
@media screen and (min-width: 768px) and (max-width: 1199px) {
    .modul-container .widget-blog .item h3 {
        font-size: calc(18px + 6 * (100vw - 768px) / 431);
    }
}

/* F) Startseite, Kulinarik (Spargel): Auf Tablets (768 bis 1199 px) lag die
      gezeichnete Grafik ueber der Headline. Dort steht jetzt wie auf dem Handy
      die kleine Grafik fuer Smartphones im Textfluss unter dem Button. Die grosse
      Desktop-Grafik wird auf Tablets weder angezeigt noch geladen (loading=lazy). */
@media screen and (min-width: 768px) and (max-width: 1199px) {
    .elementor-element-nwr6feb.nwr-sec-kulinarik .widget-text.nwr-layered .text-container > img.grafik {
        display: none;
    }
    .elementor-element-nwr6feb.nwr-sec-kulinarik .widget-text.nwr-layered .text-container .inner > img.nwr-grafik-mobile {
        display: block;
        width: 177px;
        max-width: none;
        height: auto;
        aspect-ratio: auto 1 / 1;
        margin: 50px 0 0 0;
    }
}
/* <<< AUDIT-0911B ENDE */

/* >>> AUDIT-0911C START */
/* Abschlusspruefung 11.09.2026, Nachtrag 2 (Desktop ab 1200 px unveraendert)

   G) Lange Webadressen, Links und Dateinamen in Fliesstexten (Datenschutz,
      Impressum, Presse) liefen auf dem Handy ueber den Rand und machten die Seite
      seitlich verschiebbar. Sie brechen jetzt innerhalb der Zeichenkette um, aber
      nur, wenn sie nicht in die Zeile passen. Normale Woerter und Zeilen bleiben
      unveraendert (overflow-wrap greift erst beim Ueberlauf). */
@media screen and (max-width: 1199px) {
    .modul-container .text-container .inner p,
    .modul-container .text-container .inner li {
        overflow-wrap: break-word;
    }
}

/* I) Bilder im Fliesstext (WordPress-Klasse wp-image-*, z. B. Weihnachtsseite)
      nie breiter als die Textspalte. */
@media screen and (max-width: 767px) {
    .modul-container .text-container .inner img[class*="wp-image-"] {
        max-width: 100%;
        height: auto;
    }
}
/* <<< AUDIT-0911C ENDE */

/* >>> AUDIT-0915 START */
/* Julia-Feedback 14.09.2026 (Abstaende beim Schriftwechsel, mobil): In den
   Bild-Text-Slidern der Unterseiten ist die Textbox .inner ein Float
   (build.min.css) und wird durch ein langes Versalienwort breiter als ihre
   Spalte (390 px: 406 statt 308 px). Dadurch ragt der Text in den
   Nachbar-Slide und der Headline-Fit (Block AUDIT-0911) erkennt die zu lange
   Headline nicht. Deckel wie fuer .widget-text: nie breiter als die Spalte. */
@media screen and (max-width: 1199px) {
    .modul-container .widget-slider-two-image-text .text-container .inner,
    .modul-container .widget-slider-one-image-text .text-container .inner {
        max-width: 100% !important;
        box-sizing: border-box;
    }
}
/* <<< AUDIT-0915 ENDE */

/* >>> FB0916-INSTA START */
/* Social Wall: vier Spalten ab großen Bildschirmen (Feedback 16.09.2026)
   Steht im Widget "Instagram Feed" die Einstellung "Spalten auf großen
   Bildschirmen" auf "4 Spalten", setzt das Widget zusätzlich die Klasse
   .nwr-insta-wide-4-1600 bzw. .nwr-insta-wide-4-1920 auf das Raster. Erst ab
   dieser Fensterbreite stehen vier Kacheln nebeneinander, darunter bleibt es
   bei den drei Spalten aus Block 12. Die Zwei-Spalten-Regel bis 1024 px bleibt
   unberührt: sie steht in einer max-width-Abfrage und überschneidet sich mit
   min-width nicht. */

@media screen and (min-width: 1600px) {
    .nwr-insta-grid.cols-3.nwr-insta-wide-4-1600 {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media screen and (min-width: 1920px) {
    .nwr-insta-grid.cols-3.nwr-insta-wide-4-1920 {
        grid-template-columns: repeat(4, 1fr);
    }
}
/* <<< FB0916-INSTA ENDE */

/* >>> FB0916-BREITE START */
/* ---------------------------------------------------------------
   Randlose Module auf sehr breiten Bildschirmen (Feedback 16.09.2026)
   build.min.css deckelt jeden randlosen Modul-Wrapper
   (.modul-container-inner.outer-content) auf 1920 px. Ab 1921 px Fenster-
   breite blieb dadurch links und rechts ein weisser Rand stehen. Das Figma
   zeigt Header, Vollbild-Foto und Video bis an den Bildschirmrand.
   Der Deckel faellt deshalb nur fuer diese Module. Bewusst nicht betroffen:
   Angebots-Slider (.widget-slider-angebote), Sliderbox (.slider-bigbox),
   Handschrift-Modul und die Textmodule - die bleiben wie bisher gedeckelt.
   Unter 1921 px aendert sich nichts.
   --------------------------------------------------------------- */
@media screen and (min-width: 1921px) {

    .modul-container .modul-container-inner.outer-content:has(> .widget-header-video-text),
    .modul-container .modul-container-inner.outer-content:has(> .widget-header-image),
    .modul-container .modul-container-inner.outer-content:has(> .nwr-fullimage),
    .modul-container .modul-container-inner.outer-content:has(> .widget-video-text) {
        max-width: none;
    }

    /* Video im Header und im randlosen Videomodul fuellt die groessere
       Flaeche vollstaendig aus (keine Balken an den Seiten). */
    .widget-header-video-text .header-video-container video {
        min-width: 100%;
        min-height: 100%;
        object-fit: cover;
    }
}
/* <<< FB0916-BREITE ENDE */


/* >>> FB0916-BURGER START */
/* Burger-Icon: Animation nach der Vorlage des Designers.
   Oeffnen: die aeussere Linie oben und unten fahren zur Mitte (0,22 s), die eine Linie haelt (0,20 s),
   daraus dreht sich das X (0,23 s). Schliessen spiegelbildlich. Zeiten und Easing aus der Vorlage gemessen.
   Das Theme-Icon bleibt im Markup (es steuert Overlay und Zustandsklassen) und wird nur unsichtbar gestellt.
   Die aeussere Ebene (span) verschiebt, die innere (i) dreht - so laufen beide Phasen nacheinander.
   X-Arme wie in der Vorlage 1,414-fach so lang wie die Linien (laufen in die Ecken), Lars 16.09.2026. */
#header .burger .open,
#header .burger .close{opacity:0}

#header .burger .nwr-burger{position:absolute;left:0;top:50%;width:40px;height:22px;
  -webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);pointer-events:none}
#header .burger .nwr-burger span{position:absolute;left:0;display:block;width:40px;height:2px;
  -webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0);
  -webkit-transition:-webkit-transform .22s cubic-bezier(.42,0,.58,1) .43s;
  transition:transform .22s cubic-bezier(.42,0,.58,1) .43s}
#header .burger .nwr-burger span i{display:block;width:100%;height:100%;background:#154037;
  -webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg);
  -webkit-backface-visibility:hidden;backface-visibility:hidden;
  -webkit-transition:-webkit-transform .23s cubic-bezier(.42,0,.58,1) 0s;
  transition:transform .23s cubic-bezier(.42,0,.58,1) 0s}
#header .burger .nwr-burger span:nth-child(1){top:0}
#header .burger .nwr-burger span:nth-child(2){top:10px}
#header .burger .nwr-burger span:nth-child(3){top:20px}
/* mittlere Linie: verschwindet genau dann, wenn sich das X aufdreht */
#header .burger .nwr-burger span:nth-child(2) i{opacity:1;
  -webkit-transition:-webkit-transform .23s cubic-bezier(.42,0,.58,1) 0s,opacity 0s linear .23s;
  transition:transform .23s cubic-bezier(.42,0,.58,1) 0s,opacity 0s linear .23s}

/* geoeffnet (get-open = Uebergang, is-open = Ruhezustand, gleiche Zielwerte) */
#header .burger.get-open .nwr-burger span:nth-child(1),
#header .burger.is-open .nwr-burger span:nth-child(1){-webkit-transform:translateY(10px);-ms-transform:translateY(10px);transform:translateY(10px);-webkit-transition-delay:0s;transition-delay:0s}
#header .burger.get-open .nwr-burger span:nth-child(3),
#header .burger.is-open .nwr-burger span:nth-child(3){-webkit-transform:translateY(-10px);-ms-transform:translateY(-10px);transform:translateY(-10px);-webkit-transition-delay:0s;transition-delay:0s}
#header .burger.get-open .nwr-burger span:nth-child(1) i,
#header .burger.is-open .nwr-burger span:nth-child(1) i{-webkit-transform:rotate(45deg) scaleX(1.414);-ms-transform:rotate(45deg) scaleX(1.414);transform:rotate(45deg) scaleX(1.414);-webkit-transition-delay:.42s;transition-delay:.42s}
#header .burger.get-open .nwr-burger span:nth-child(3) i,
#header .burger.is-open .nwr-burger span:nth-child(3) i{-webkit-transform:rotate(-45deg) scaleX(1.414);-ms-transform:rotate(-45deg) scaleX(1.414);transform:rotate(-45deg) scaleX(1.414);-webkit-transition-delay:.42s;transition-delay:.42s}
#header .burger.get-open .nwr-burger span:nth-child(2) i,
#header .burger.is-open .nwr-burger span:nth-child(2) i{opacity:0;-webkit-transition-delay:.42s,.42s;transition-delay:.42s,.42s}

/* Reduzierte Bewegung: ohne Animation direkt umschalten */
@media (prefers-reduced-motion:reduce){
  #header .burger .nwr-burger span,
  #header .burger .nwr-burger span i{-webkit-transition:none !important;transition:none !important}
}
/* <<< FB0916-BURGER ENDE */

/* >>> FB0916-BLOG START */
/* Julia-Feedback 16.09.2026, Blog-Uebersicht (/averbeck-hat-bock/):
   Die Kacheln sind Flex-Kinder von .widget-blog und damit reihenweise schon
   gleich hoch. Innen standen Bild, Titel und "Mehr erfahren" aber direkt
   untereinander, deshalb sass der Link je nach Zeilenzahl der Ueberschrift auf
   einer anderen Hoehe und unter den kurzen Kacheln blieb Leerraum. Jede Kachel
   ist jetzt eine senkrechte Spalte: der Titelbereich haelt mindestens drei
   Zeilen frei, "Mehr erfahren" sitzt immer am unteren Rand der Kachel und
   damit in jeder Reihe auf gleicher Hoehe. Bildgroessen und Abstaende
   unveraendert; laengere Titel wachsen weiter (kein Abschneiden). */
.modul-container .widget-blog .item {
    display: flex;
    flex-direction: column;
}
.modul-container .widget-blog .item img {
    float: none;
}
.modul-container .widget-blog .item h3 {
    float: none;
    box-sizing: border-box;
    /* Innenabstand oben wie build.min.css + drei Zeilen (Zeilenhoehe 1,25) */
    min-height: calc(7.6px + 2.025vw + 3.75em);
}
@media screen and (min-width: 1600px) {
    .modul-container .widget-blog .item h3 {
        min-height: calc(40px + 3.75em);
    }
}
.modul-container .widget-blog .item p {
    margin-top: auto;
}
/* <<< FB0916-BLOG ENDE */

/* >>> FB0916-TEXT START */
/* Julia-Feedback 16.09.2026, Textzentrierung auf Unterseiten (Handy und kleines
   Tablet): In den randlosen Bild-Text-Abschnitten (.modul-container-inner.outer-content)
   steht die Textspalte auf dem Desktop neben dem Bild. Dafuer hat sie nur auf
   einer Seite den Seitenrand, und der Textkasten .inner ist ein Float mit bis zu
   205 px Abstand auf der Bildseite (build.min.css). Unter 768 px stehen Bild und
   Text untereinander und der Text wird mittig gesetzt, die einseitigen Abstaende
   blieben aber stehen: der Textblock sass rund 14 px (390 px) bzw. 18 px (560 px)
   zu weit links. Jetzt liegt links und rechts der gleiche Seitenrand an und der
   Textkasten nimmt die volle Spaltenbreite ein, der Text steht damit genau in
   der Mitte. Das Bild darueber bleibt unveraendert randlos. */
@media screen and (max-width: 767px) {
    .modul-container .modul-container-inner.outer-content .widget-text .text-container {
        padding-left: calc(15.6px + 6.525vw);
        padding-right: calc(15.6px + 6.525vw);
    }
    .modul-container .modul-container-inner.outer-content .widget-text .text-container .inner {
        float: none;
        width: 100%;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
        padding-left: 0;
        padding-right: 0;
    }
}
/* <<< FB0916-TEXT ENDE */

/* >>> FB0916-TYPO START */
/* Rueckmeldung 16.09.2026: Schriftbild Footer + Angebots-Slider, Rahmen der Sliderbox */

/* 1) Footer-Ueberschriften ("Anschrift", "Kontakt", "News aus Averbeck"):
   Im Entwurf stehen sie in Brother 1816 Book in Versalien, 30 px bei 1600 px
   und mit derselben Laufweite wie die Kachel-Ueberschriften; bisher lief dort
   noch Vollkorn in 35 px. Selektor so tief wie die Grundregel, damit er greift.
   Abstand zur Adresszeile nach dem Entwurf: Versalhoehe zu Versalhoehe 81 px
   bei 1600 px, 47 px bei 390 px. */
#footer .container-widget .footer-widget .widget-title {
    font-family: var(--nwr-font-sans-book);
    font-weight: 400;
    font-style: normal;
    text-transform: uppercase;
    font-size: calc(20px + 10 * (100vw - 390px) / 1210);
    line-height: 1.2;
    letter-spacing: 0.08em;
    color: #154037;
    margin-bottom: calc(19px + 24 * (100vw - 390px) / 1210);
}

@media screen and (max-width: 390px) {
    #footer .container-widget .footer-widget .widget-title {
        font-size: 20px;
        margin-bottom: 19px;
    }
}

@media screen and (min-width: 1600px) {
    #footer .container-widget .footer-widget .widget-title {
        font-size: 30px;
        margin-bottom: 43px;
    }
}

/* 2) Angebots-Slider: Die Kachel-Ueberschriften stehen im Entwurf in Brother
   1816 Book. Bisher lief dort der Medium-Schnitt und wirkte dadurch zu fett.
   Groesse, Zeilenhoehe und Laufweite bleiben unveraendert. Unterhalb von
   768 px gilt weiter die bestehende mobile Fassung (Block MOBIL-SLIDER). */
@media screen and (min-width: 768px) {
    .nwr-angebote .nwr-offer-box h3 {
        font-family: var(--nwr-font-sans-book);
        font-weight: 400;
    }
}

/* 3) Bild/Text-Slider auf der Startseite: Der aeussere Container traegt die
   Klasse image-box-slider und damit einen zweiten Schatten. Da der Abstand
   ueber dem Modul innerhalb dieses Containers liegt, begann dieser Rahmen
   rund 120 px oberhalb des Bildes. Der gewollte Rahmen sitzt auf
   .slider-bigbox und bleibt unveraendert. */
.elementor-element.image-box-slider,
.image-box-slider {
    box-shadow: none;
}
/* <<< FB0916-TYPO ENDE */

/* >>> FB0916-F1 START */
/* ---------------------------------------------------------------
   Nachbesserung zum Feedback vom 16.09.2026 (drei Punkte)
   --------------------------------------------------------------- */

/* 1) Kopfbild der Unterseiten laeuft bis an den Bildschirmrand.
   Die Startseite war bereits freigestellt, die Unterseiten nicht: Dort sitzt
   das Kopfbild in einer Elementor-Sektion mit fester Inhaltsbreite
   (.elementor-container, 1600 px). Auf breiteren Bildschirmen blieb deshalb
   links und rechts ein weisser Rand stehen (bei 2414 px Fenster je 407 px).
   Die Inhaltsbreite entfaellt jetzt fuer genau die Sektionen, die ein
   Kopfbild-Modul in einer einzelnen, ganzbreiten Spalte enthalten; alle
   uebrigen Module dieser Sektion behalten ihre 1600 px und bleiben zentriert.
   Es wird bewusst nicht mit Fensterbreiten (vw) gearbeitet, damit eine
   sichtbare Bildlaufleiste keinen waagerechten Ueberlauf erzeugt.
   Bis 1600 px aendert sich nichts. */
@media screen and (min-width: 1601px) {

    .elementor-section-boxed > .elementor-container:has(> .elementor-column.elementor-col-100 > .elementor-widget-wrap > .elementor-widget-header-image-modul) {
        max-width: none;
    }

    .elementor-section-boxed > .elementor-container:has(> .elementor-column.elementor-col-100 > .elementor-widget-wrap > .elementor-widget-header-image-modul) > .elementor-column > .elementor-widget-wrap > .elementor-element:not(.elementor-widget-header-image-modul) {
        max-width: 1600px;
        margin-left: auto;
        margin-right: auto;
    }
}

/* 2) Abstand zwischen dem Text "Urlaub fuer alle" und der Bild-Text-Box.
   Der Bestandswert der Klasse distance-default (120 px ab 1600 px Breite)
   ergab 199 px zwischen Textunterkante und Oberkante der Box, das Figma
   zeigt rund 157 px. Nur der Wert dieser einen Box wird angepasst, die
   Klasse selbst bleibt fuer alle anderen Module unveraendert. Unter 1600 px
   greift weiter die bestehende, mitwachsende Kurve. */
@media screen and (min-width: 1600px) {

    .elementor-element-600489a > .elementor-widget-container > .modul-container.distance-default {
        margin-top: 78px;
    }
}

/* 3) Blog-Uebersicht: gleich hohe Reihen auch unter 1600 px.
   Der Titelbereich haelt bisher drei Zeilen frei. Zwei Beitraege mit
   vierzeiligem Titel machten ihre Reihe dadurch hoeher als alle anderen
   (1280 px: 635 statt 600 px, 390 px: 323 statt 304 px). Unter 1600 px sind
   es jetzt vier Zeilen, damit alle Reihen gleich hoch sind. Ab 1600 px
   bleibt es bei drei Zeilen, dort sind alle Titel kuerzer und die Reihen
   schon gleich hoch. Laengere Titel wachsen weiterhin mit, es wird nichts
   abgeschnitten. */
@media screen and (max-width: 1599px) {

    .modul-container .widget-blog .item h3 {
        min-height: calc(7.6px + 2.025vw + 5em);
    }
}
/* <<< FB0916-F1 ENDE */

/* >>> FB0916-F2 START */
/* ---------------------------------------------------------------
   Ueberschrift vor einem Akkordeon: Abstand des Themes wiederherstellen
   (Rueckmeldung 16.09.2026). Weiter oben steht die Regel, dass das letzte
   Element eines Textmoduls keinen Abstand nach unten bekommt. Auf den
   Fragen-und-Antworten-Seiten besteht das Textmodul nur aus der H2, die
   damit als letztes Element ihren Abstand verliert und direkt auf der
   ersten Frage sitzt. Betroffen sind ausschliesslich Akkordeon-Module
   ohne eigenen Abstand nach oben (.modul-container.distance-no); Seiten,
   auf denen das Akkordeon einen eigenen Abstand mitbringt, bleiben
   unveraendert. Werte wie im Theme (h2).
   --------------------------------------------------------------- */
.elementor-section:has(+ .elementor-section .modul-container.distance-no .widget-accordion) .modul-container .widget-text:not(.image) .text-container .inner > h2:last-child,
.elementor-widget-text-container-modul:has(+ .elementor-widget-accordion-modul .modul-container.distance-no) .modul-container .widget-text:not(.image) .text-container .inner > h2:last-child {
    margin-bottom: calc(7.6px + 2.025vw);
}

@media screen and (min-width: 1600px) {
    .elementor-section:has(+ .elementor-section .modul-container.distance-no .widget-accordion) .modul-container .widget-text:not(.image) .text-container .inner > h2:last-child,
    .elementor-widget-text-container-modul:has(+ .elementor-widget-accordion-modul .modul-container.distance-no) .modul-container .widget-text:not(.image) .text-container .inner > h2:last-child {
        margin-bottom: 40px;
    }
}
/* <<< FB0916-F2 ENDE */

/* >>> FB0921 START */
/* ---------------------------------------------------------------
   Feedback 21.09.2026 (Agentur + Kundin, Abnahme-Runde 4)
   A) Buchungsleiste bis zum Rand  B) Handschrift-Zeilenabstand
   C) Akkordeon-Fragen kleiner     D) Newsletter-Layer aus
   E) Instagram-Kacheln "Kompakt"
   --------------------------------------------------------------- */

/* A) Buchungsleiste bis zum Bildschirmrand. Das Theme zieht die Leiste
      (.home-booking-container) selbst ueber die volle Breite, das Weiss
      kommt aber erst aus Viomas Widget-Container, und der liegt im
      1600-px-Inner. Ab 1600 px Fensterbreite schien deshalb links und
      rechts das Bild durch. Der Container bekommt das Weiss jetzt selbst,
      die Felder bleiben mittig im 1600-px-Raster. */
.home-booking-container {
    background-color: #FFFFFF;
}

/* B) Handschrift-Banner der Unterseiten (Widget "Handschrift + Bild" ohne
      den Schalter "Neue Optik", z. B. /zimmer-appartements/ und
      /landhaus-averbeck-uebersicht/). Block 7 setzt fuer .modul-container h3
      line-height 1.25; Block G stellt die Schrift zurueck, nicht aber den
      Zeilenabstand, dadurch liefen mehrzeilige Saetze ineinander. Zurueck
      auf den Theme-Wert 2 (= Live-Seite). Der Banner der Startseite
      (.nwr-handwrit) hat eigene Werte und bleibt unberuehrt. */
.modul-container .widget-handwrit-image:not(.nwr-handwrit) h3 {
    line-height: 2;
}

/* C) Akkordeon-Fragen (FAQ, Zimmer, Kulinarik, ...): bisher Vollkorn
      Semibold 25 -> 35 px, neben den leichten Brother-Headlines zu wuchtig.
      Jetzt Vollkorn Medium 20 -> 26 px, der Pfeil rueckt naeher an die Frage
      (Abstand 22 statt 40 px bei 1600). Die Pfeil-Box selbst ist im Theme
      ein 20-px-Border-Box-Span, ihre Groesse haengt nicht am Padding. */
.modul-container .widget-accordion .accordion-container.level-1 h3 {
    font-family: "Vollkorn", VollkornSemiBold, Georgia, serif;
    font-weight: 500;
    font-size: calc(20px + 6 * (100vw - 390px) / 1210);
    line-height: 1.35;
    letter-spacing: .02em;
}
.modul-container .widget-accordion .accordion-container.level-1 h3 .icon {
    margin-left: calc(8px + .9vw);
}
@media screen and (max-width: 390px) {
    .modul-container .widget-accordion .accordion-container.level-1 h3 { font-size: 20px; }
}
@media screen and (min-width: 1600px) {
    .modul-container .widget-accordion .accordion-container.level-1 h3 { font-size: 26px; }
    .modul-container .widget-accordion .accordion-container.level-1 h3 .icon { margin-left: 22px; }
}

/* D) Newsletter-Layer (#info-overlay aus dem Theme-Footer) auf Kundenwunsch
      vorerst aus. Das Theme-JS blendet ihn nach 1000 px Scrollen per
      Inline-Stil ein; display:none mit !important gewinnt gegen den
      Inline-Stil, das JS laeuft ohne Fehler weiter. Wieder aktivieren =
      diesen Absatz entfernen. */
#info-overlay {
    display: none !important;
}

/* E) Instagram-Feed, Kachelgroesse "Kompakt" (Widget-Einstellung, genutzt
      auf der Social Wall): 2 Kacheln auf dem Handy, 4 ab 768 px, 5 ab
      1200 px, 6 ab 1600 px. Im 1600-px-Raster sind die Kacheln damit
      263 px breit statt 397 px bei vier Spalten. Symbol und Abstand
      verkleinern sich mit. Bei 5 Spalten (1200 bis 1599 px) werden die
      Kacheln 11 und 12 ausgeblendet, damit bei 12 Kacheln zwei volle
      Reihen stehen. */
.nwr-insta-grid.cols-compact {
    --nwr-insta-icon: clamp(20px, calc(20px + 14 * (100vw - 390px) / 1210), 34px);
    --nwr-insta-inset: clamp(10px, calc(10px + 8 * (100vw - 390px) / 1210), 18px);
    grid-template-columns: repeat(2, 1fr);
}
@media screen and (max-width: 767px) {
    .nwr-insta-grid.cols-compact .nwr-insta-tile:last-child:nth-child(odd) { display: none; }
}
@media screen and (min-width: 768px) {
    .nwr-insta-grid.cols-compact { grid-template-columns: repeat(4, 1fr); }
}
@media screen and (min-width: 1200px) and (max-width: 1599px) {
    .nwr-insta-grid.cols-compact { grid-template-columns: repeat(5, 1fr); }
    .nwr-insta-grid.cols-compact .nwr-insta-tile:nth-child(n+11) { display: none; }
}
@media screen and (min-width: 1600px) {
    .nwr-insta-grid.cols-compact { grid-template-columns: repeat(6, 1fr); }
}
/* <<< FB0921 ENDE */

/* FB0923-B (23.09.2026, Julia): (a) Buchungsstrecke: kein Strich unter den Abschnitts-Balken (Vioma-Standard-Border).
   (b) Elementor-Editor: Angebots-Slider und Sliderbox sichtbar, obwohl dort kein Frontend-JS laeuft (der Editor setzt
   die Klasse elementor-editor-active per Skript auf den body). Fuer eingeloggte Besucher haengt functions/RefreshStyles.php
   dieselben Regeln als Inline-Style an, weil das Theme keine body-Klassen ausgibt. Gaeste sind nicht betroffen. */
.vsc.vsc-remote .vsc-item-head,
.vsc.vsc-remote .vsc-head { border-bottom: 0 !important; }
body.elementor-editor-active .nwr-angebote.loading,
body.elementor-editor-active .slider-bigbox.loading { opacity: 1; }
body.elementor-editor-active .nwr-angebote.loading .swiper-wrapper { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
body.elementor-editor-active .nwr-angebote.loading .swiper-slide { width: auto; }
body.elementor-editor-active .slider-bigbox.loading .swiper-slide:not(:first-child) { display: none; }
/* (c) Buchungsstrecke, Auswahlfelder: Vioma legt das <select> breiter als seinen Rahmen (.vsc-element-select, overflow hidden),
   um den Browser-Pfeil zu verstecken. Ein Rahmen auf dem <select> selbst verliert dadurch die rechte Linie. Rahmen deshalb
   auf dem Wrapper, das <select> bleibt rahmenlos. */
.vsc.vsc-remote .vsc-element-select { border: 1px solid #154037 !important; border-radius: 0 !important; background: #FFFFFF !important; }
.vsc.vsc-remote .vsc-element-select select { border: 0 !important; }
