/* ---------------------------------------------------------------------------
 * overrides.css — PER-PROJECT customization layer.
 * ---------------------------------------------------------------------------*/
.os-header-top-menu .menu-item>a {color: #f9f9f9 !important;}
.isSticky .os-header-top-menu .menu-item>a {color: #333 !important;}
.layover-active .os-header-top-menu .menu-item>a {color: #f9f9f9 !important;}

.os-stage__a-content {align-items: flex-start;text-align: left;margin: auto auto 1rem 4rem;width: calc(100% - 4rem);}
.os-stage__text h1 {font-size: 6rem; line-height: 8rem;}
.os-stage__text h2 {margin-left: 4rem;line-height: 4rem;}
.os-stage__text p {margin-left: 6rem;}

/* Gilt fuer JEDE hervorgehobene Passage. Frueher reichte #custom_font, weil es
   nur eine gab; bei bis zu vier Passagen traegt die id nur noch die erste
   (mehrfach vergeben waere sie ungueltig), die Klasse dagegen alle. */
#custom_font,
.os-zitat .os-zitat__highlight {font-family: 'Destiny Signature';font-size: 6rem;line-height: 8rem;}

:is(.swiper-button-prev,.swiper-button-next,.ss-prev,.ss-next,.ts-prev,.ts-next,.os-gallery__prev,.os-gallery__next,.os-service-gallery__prev,.os-service-gallery__next,.os-slider-nav__prev,.os-slider-nav__next,.os-slider-half-img__btn--prev,.os-slider-half-img__btn--next,.os-slider-stage-full__prev,.os-slider-stage-full__next,.spml-stagecards-prev,.spml-stagecards-next,.parallax-swiper-prev,.parallax-swiper-next,.square-swiper-button-prev,.square-swiper-button-next,.zimmer-slider__prev,.zimmer-slider__next,.zimmer-swiper__prev,.zimmer-swiper__next,.os-about__nav--prev,.os-about__nav--next,.images-carousel__prev,.images-carousel__next,.os-stage__slider-prev,.os-stage__slider-next) {
    border: #00000000 !important;
    background: #00000000 !important;
}
/* ---------------------------------------------------------------------------
 * Keine runden Ecken — außer an Buttons.
 *
 * Die Kante ist Teil der Bildsprache dieser Seite. Statt 156 Regeln in 41
 * Dateien anzufassen, wird der Radius hier zentral genullt und danach gezielt
 * zurückgegeben.
 *
 * !important ist hier nötig, nicht bequem: der Universalselektor hat
 * Spezifität 0, jede Klassenregel im Theme schlüge ihn sonst. Die Ausnahmen
 * darunter sind Klassenselektoren und gewinnen deshalb gegen das * trotz
 * gleicher Wichtigkeit.
 *
 * Drei Ausnahmen:
 *   1. Alles im #mainheader behält seine Rundungen — Icons, Buttons, Submenu,
 *      Suche. Das ist keine Neudeklaration, sondern ein Ausschluss: die Regel
 *      greift dort gar nicht erst, also gilt weiter, was das Theme gesetzt hat.
 *   2. Buttons bleiben Pillen.
 *   3. Was ein KREIS ist, bleibt Kreis — Slider-Pfeile, Social-Icons, Dots.
 *      Ein Kreis ist eine Form, keine abgerundete Ecke.
 *
 * :where() um das :not() ist der Grund, warum das aufgeht: es setzt die
 * Spezifität des Ausschlusses auf 0. Ohne das läge der Selektor bei (1,0,0)
 * — wegen der ID — und würde die Klassen-Ausnahmen darunter überstimmen.
 * ---------------------------------------------------------------------------*/
:root {
  --os-radius: 0px;
  --os-btn-radius: 99px;
}

:where(:not(#mainheader, #mainheader *)),
:where(:not(#mainheader, #mainheader *))::before,
:where(:not(#mainheader, #mainheader *))::after {
  border-radius: 0 !important;
}

/* Formularfelder tragen im Theme eigene !important-Regeln mit Spezifität,
   gegen die der Universalselektor nicht ankommt — hier gleichrangig genullt.
   Sie liegen nie im Header, der Ausschluss oben spielt hier also keine Rolle. */
.wpforms-field-container textarea,
.wpforms-field-container input,
.wpforms-field-container select {
  border-radius: 0 !important;
}

/* 1 — Buttons */
.btnholder,
a.spmlbutton,
button.spmlbutton,
.wp-block-button__link,
.wpforms-submit,
.wpcf7-submit,
input[type="submit"],
button[type="submit"] {
  border-radius: var(--os-btn-radius) !important;
}

/* 2 — echte Kreise */
.swiper-button-prev,
.swiper-button-next,
.swiper-pagination-bullet,
.ss-prev,
.ss-next,
.ts-prev,
.ts-next,
.os-gallery__prev,
.os-gallery__next,
.os-service-gallery__prev,
.os-service-gallery__next,
.os-slider-nav__prev,
.os-slider-nav__next,
.os-slider-half-img__btn--prev,
.os-slider-half-img__btn--next,
.os-slider-half-img__scroll-hint,
.os-slider-stage-full__prev,
.os-slider-stage-full__next,
.spml-stagecards-prev,
.spml-stagecards-next,
.parallax-swiper-prev,
.parallax-swiper-next,
.square-swiper-button-prev,
.square-swiper-button-next,
.zimmer-slider__prev,
.zimmer-slider__next,
.zimmer-slider__dots button,
.zimmer-swiper__prev,
.zimmer-swiper__next,
.os-about__nav--prev,
.os-about__nav--next,
.os-about__step-number,
.os-icons-slider__icon-wrap,
.os-icons-slider__pagination .swiper-pagination-bullet,
.social-list a,
.level-bullet,
.os-popup__close,
.os-popup-reminder,
.os-search__field-icon,
.osacc-cursor,
.f-button {
  border-radius: 50% !important;
}

/* ---------------------------------------------------------------------------
 * Slider-Pfeile in Weiß, ohne Hover-Effekt.
 * Gilt für: Zimmer-Masonry, Slider Stage Full und die Galerie im Zimmer-Popup
 * (die der Angebote-Popup mitbenutzt).
 *
 * Es genügt color: das Theme zeichnet jeden Pfeil als ::before mit einer Maske
 * in currentColor und blendet das eingebettete <img> aus. Die frühere
 * Masken-Konstruktion für die <img>-Variante ist damit hinfällig.
 * ---------------------------------------------------------------------------*/
.zimmer-masonry .zimmer-slider__btn,
.zimmer-popup__media .zimmer-slider__btn,
.os-slider-stage-full__nav {
  color: #f9f9f9 !important;
}

/* Kein Hover. Die globale Regel in opensmjle.styles.css setzt Farbe, Rand und
   Hintergrund mit !important — hier gleichrangig und später im Cascade wieder
   auf den Ruhezustand gesetzt. */
.zimmer-masonry .zimmer-slider__prev:hover,
.zimmer-masonry .zimmer-slider__next:hover,
.zimmer-masonry .zimmer-slider__btn:focus-visible,
.zimmer-popup__media .zimmer-slider__prev:hover,
.zimmer-popup__media .zimmer-slider__next:hover,
.zimmer-popup__media .zimmer-slider__btn:focus-visible,
.os-slider-stage-full .os-slider-stage-full__prev:hover,
.os-slider-stage-full .os-slider-stage-full__next:hover,
.os-slider-stage-full .os-slider-stage-full__nav:focus-visible {
  color: #f9f9f9 !important;
  border-color: transparent !important;
  background: transparent !important;
  opacity: 1 !important;
}

/* Mobil: dieselben Regeln wie oben, kleiner skaliert fuer den schmalen
   Bildschirm — die Bühne rueckt kaum noch ein, die grosse Zierschrift bleibt
   lesbar statt den Screen zu sprengen. */
@media (max-width: 767px) {
  .os-stage__a-content {
    align-items: flex-start;
    text-align: left;
    /* margin-left:auto statt eines festen Randes: die Box zentriert sich
       seitlich, statt links anzuschlagen. width muss trotzdem unter 100%
       bleiben -- sonst ragt sie (aus block-styles.css) ueber den Rahmen der
       .os-stage__a overflow:hidden setzt, und schneidet die Ueberschrift
       rechts ab ("Zimmerkategorien" wurde zu "Zimmerkategori"). */
    margin: auto auto 6rem auto;
    width: calc(100% - 8px);
  }
  .os-stage__text h1 {
    font-size: 3.3rem;
    line-height: 4rem;
  }
  .os-stage__text {
    padding: 0;
  }
  #custom_font,
  .os-zitat .os-zitat__highlight {
    font-family: 'Destiny Signature';
    font-size: 3rem;
    line-height: 4rem;
  }
}

/* ---------------------------------------------------------------------------
 * Zimmer-Icons (Ausstattung): einige SVGs tragen die Farbe fest auf dem
 * <path>, nicht auf dem <svg> -- eine Regel nur auf ".zimmer-icon svg" (siehe
 * os-rooms-masonry/block-styles.css) greift dort nicht durch, das Icon bleibt
 * farblos. Direkt auf dem <path> gesetzt schlaegt die CSS-Regel das
 * Praesentationsattribut. Gilt fuer alle Blocks, die .zimmer-icon nutzen
 * (Masonry, Tabelle, Slider, Popup).
 * ---------------------------------------------------------------------------*/
.zimmer-icon svg path {
  fill: var(--main-color);
}
