/*
 * Reethaus Nordlicht – central content system
 *
 * This file is the single source of truth for standard content typography,
 * actions, editorial quotes and separators. Enfold content remains in ALB;
 * the selectors only style semantic tags and named module classes.
 *
 * Approved exceptions:
 * - H6 is the handwritten editorial accent.
 * - Eyebrows, media uplines, category/meta text and form labels stay compact.
 * - Calendar headings and fields keep their operational scale.
 * - Homepage review copy keeps its approved light display treatment.
 * - Editorial quotes use the script face; review quotes do not.
 * - Header/menu, footer "Meerzeit" and module microcopy keep component roles.
 */

body.rn-noir-site {
  font-family: var(--rn-text) !important;
  font-synthesis: none;
}

/* Native ALB heading and paragraph defaults. Named modules may override these
 * tokens through their semantic component classes, never through generated
 * Enfold IDs. */
body.rn-noir-site #main .avia_textblock :where(h1, h2, h3, h4, h5) {
  margin-top: 0 !important;
  color: inherit;
  font-family: var(--rn-display) !important;
  font-synthesis: none;
}

body.rn-noir-site #main .avia_textblock :where(h1) {
  margin-bottom: 18px !important;
  font-size: var(--rn-h1-size) !important;
  font-weight: 500 !important;
  line-height: var(--rn-h1-line) !important;
  letter-spacing: var(--rn-h1-track) !important;
  text-transform: uppercase !important;
}

body.rn-noir-site #main .avia_textblock :where(h2) {
  margin-bottom: 12px !important;
  font-size: var(--rn-h2-size) !important;
  font-weight: 500 !important;
  line-height: var(--rn-h2-line) !important;
  letter-spacing: var(--rn-h2-track) !important;
  text-transform: uppercase !important;
}

body.rn-noir-site #main .avia_textblock :where(h3) {
  margin-bottom: 14px !important;
  font-size: var(--rn-h3-size) !important;
  font-weight: 400 !important;
  line-height: var(--rn-h3-line) !important;
  letter-spacing: var(--rn-h3-track) !important;
  text-transform: uppercase !important;
}

body.rn-noir-site #main .avia_textblock :where(h4) {
  margin-bottom: 12px !important;
  font-size: var(--rn-h4-size) !important;
  font-weight: 400 !important;
  line-height: var(--rn-h4-line) !important;
  letter-spacing: normal !important;
  text-transform: uppercase !important;
}

body.rn-noir-site #main .avia_textblock :where(h5) {
  margin-bottom: 10px !important;
  font-size: var(--rn-h5-size) !important;
  font-weight: 500 !important;
  line-height: 1.25 !important;
  letter-spacing: .04em !important;
  text-transform: uppercase !important;
}

body.rn-noir-site #main .avia_textblock :where(h6),
body.rn-noir-site #main .avia_textblock :where(h6 *) {
  margin-top: 0 !important;
  margin-bottom: 10px !important;
  font-family: var(--rn-script) !important;
  font-size: var(--rn-h6-size) !important;
  font-style: normal !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: 1.35 !important;
  text-transform: none !important;
}

body.rn-noir-site #main .avia_textblock > :where(p),
body.rn-noir-site #main .avia_textblock > :where(ul, ol) > li {
  font-family: var(--rn-text) !important;
  font-size: var(--rn-copy-size) !important;
  font-weight: 400 !important;
  line-height: var(--rn-copy-line) !important;
}

body.rn-noir-site #main .avia_textblock > :where(p) {
  margin-top: 0 !important;
  margin-bottom: 1.25em !important;
}

/* Explicit editorial roles. */
body.rn-noir-site #main .avia_textblock .eyebrow {
  margin: 0 0 26px !important;
  font-size: var(--rn-eyebrow-size) !important;
  font-weight: 600 !important;
  letter-spacing: var(--rn-eyebrow-track) !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}

body.rn-noir-site #main .avia_textblock .hero-lead {
  max-width: 690px;
  font-size: var(--rn-lead-size) !important;
  font-weight: 400 !important;
  line-height: var(--rn-lead-line) !important;
}

body.rn-noir-site #main .avia_textblock.large-copy :where(h4) {
  font-size: var(--rn-display-lead-size) !important;
  font-weight: 300 !important;
  line-height: var(--rn-display-lead-line) !important;
  text-transform: none !important;
}

/* One editorial quote treatment for Rügen, Impressionen and future ALB pages. */
body.rn-noir-subpage #main .avia_textblock blockquote {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--rn-warm-light) !important;
  font-family: var(--rn-script) !important;
  font-size: var(--rn-quote-size) !important;
  font-style: normal !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  line-height: var(--rn-quote-line) !important;
  text-transform: none !important;
}

body#top.rn-noir-subpage #main .avia_textblock blockquote :where(p, h2, h3, h4, h5, h6, span, em, strong) {
  margin: 0 !important;
  padding: 0 !important;
  color: inherit !important;
  font: inherit !important;
  letter-spacing: inherit !important;
  line-height: inherit !important;
  text-transform: none !important;
}

/* Shared ALB and module CTA language. Pills remain exclusive to header/menu. */
body.rn-noir-site #main :where(a.avia-button),
body.rn-noir-site #main :where(
  .rnbg-search__submit,
  .rnbg-more,
  .rnbr-submit,
  .rna-accordion__link,
  .rnarr-package__bottom a,
  .rnarr-package__bottom button,
  .rnarr-card__footer a,
  .rnarr-card__footer button
) {
  min-height: 52px;
  padding: 0 26px !important;
  border-width: 1px !important;
  border-style: solid !important;
  border-radius: 0 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 22px;
  font-family: var(--rn-text) !important;
  font-size: var(--rn-cta-size) !important;
  font-weight: 600 !important;
  letter-spacing: var(--rn-cta-track) !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
}

/* The two accordion implementations share one separator system. */
body.rn-noir-site #main :where(.rna-accordion--compact, .rna-accordion--full) {
  --rna-line: var(--rn-line);
}

body.rn-noir-site #main :where(.rna-accordion--compact, .rna-accordion--full) .rna-accordion__item {
  border-top: 1px solid var(--rn-line) !important;
  border-right: 0 !important;
  border-bottom: 0 !important;
  border-left: 0 !important;
}

body.rn-noir-site #main :where(.rna-accordion--compact, .rna-accordion--full) .rna-accordion__item:last-of-type {
  border-bottom: 1px solid var(--rn-line) !important;
}

body.rn-noir-subpage #main .av_toggle_section {
  border-bottom: 1px solid var(--rn-line) !important;
}

body.rn-noir-subpage #main .av_toggle_section .single_toggle {
  border-top: 1px solid var(--rn-line) !important;
}

body.rn-noir-subpage #main .av_toggle_section :where(.toggler, .toggle_content) {
  border: 0 !important;
  background: transparent !important;
}

body.rn-noir-subpage #main .av_toggle_section .toggler {
  padding: 27px 54px 27px 0 !important;
  color: var(--rn-paper) !important;
  font-family: var(--rn-display) !important;
  font-size: var(--rn-h4-size) !important;
  font-weight: 400 !important;
  letter-spacing: normal !important;
  line-height: var(--rn-h4-line) !important;
  text-transform: uppercase !important;
}

body.rn-noir-subpage #main .av_toggle_section .toggle_content {
  padding: 0 0 30px !important;
}

body.rn-noir-subpage #main .av_toggle_section .toggle_content :where(p, li) {
  font-family: var(--rn-text) !important;
  font-size: var(--rn-copy-size) !important;
  line-height: var(--rn-copy-line) !important;
}

/* Gäste-Guide preview: follows the central type scale while retaining its
 * search/filter behaviour and editable category colours. */
body.rn-noir-subpage #main .rnbg-guide__intro h2 {
  font-size: var(--rn-h2-size) !important;
  font-weight: 500 !important;
  line-height: var(--rn-h2-line) !important;
  letter-spacing: var(--rn-h2-track) !important;
}

body.rn-noir-subpage #main .rnbg-card h3 {
  font-size: var(--rn-h3-size) !important;
  font-weight: 400 !important;
  line-height: var(--rn-h3-line) !important;
  letter-spacing: var(--rn-h3-track) !important;
}

body.rn-noir-subpage #main .rnbg-card__copy {
  min-height: 300px;
  padding: 30px;
}

body.rn-noir-subpage #main .rnbg-card__excerpt {
  font-size: var(--rn-copy-size) !important;
  line-height: var(--rn-copy-line) !important;
}

body.rn-noir-subpage #main .rnbg-card__link {
  font-size: var(--rn-cta-size) !important;
  font-weight: 600 !important;
  letter-spacing: var(--rn-cta-track) !important;
}

body.rn-noir-subpage #main .rnbg-filters button {
  color: var(--rnbg-category-color, #111) !important;
}

body.rn-noir-subpage #main .rnbg-search__submit,
body.rn-noir-subpage #main .rnbg-more {
  border-color: var(--rn-warm) !important;
  background: var(--rn-warm) !important;
  color: #111 !important;
}

body.rn-noir-subpage #main .rnbg-results-head,
body.rn-noir-subpage #main .rnbg-card__link {
  border-color: var(--rn-line) !important;
}

/* Booking request is a component, but its type is sourced from the same CD. */
body#top.rn-noir-page #start .rnva-availability,
body#top.rn-noir-page #start .rnva-field b {
  font-family: var(--rn-text) !important;
}

body#top.rn-noir-page #start .rnva-availability__submit {
  border-color: #c8c2b8 !important;
  background: var(--rn-paper) !important;
  color: #111 !important;
  font-family: var(--rn-text) !important;
}

body#top.rn-noir-page #start .rnva-availability__submit * {
  color: #111 !important;
}

body#top.rn-noir-page #start .rnva-availability__direct {
  border-color: #111 !important;
  background: #111 !important;
  color: #fff !important;
  font-family: var(--rn-text) !important;
}

body#top.rn-noir-page #start .rnva-availability__direct * {
  color: #fff !important;
}

body.rn-noir-subpage #main .rnbr-booking h2 {
  font-family: var(--rn-display) !important;
  font-size: var(--rn-h2-size) !important;
  font-weight: 500 !important;
  line-height: var(--rn-h2-line) !important;
  letter-spacing: var(--rn-h2-track) !important;
  text-transform: uppercase !important;
}

body.rn-noir-subpage #main .rnbr-booking__intro {
  font-size: var(--rn-lead-size) !important;
  line-height: var(--rn-lead-line) !important;
}

body.rn-noir-subpage #main .rnbr-submit {
  border-color: #111 !important;
  background: #111 !important;
  color: #fff !important;
}

/* Arrangement editor surface. The first #entdecken contains the package
 * stack; the following semantic section is the ALB surface requested by the
 * editor. Its stored colour is #f7f4ed. */
body.rn-noir-subpage.page-id-2534 #main #entdecken:not(:has(.rnarr-stack)) {
  border-top: 1px solid rgba(17, 17, 17, .14) !important;
  border-bottom: 1px solid rgba(17, 17, 17, .14) !important;
  background-color: #f7f4ed !important;
  color: #111 !important;
}

body.rn-noir-subpage.page-id-2534 #main #entdecken:not(:has(.rnarr-stack)) :where(h1, h2, h3, h4, h5) {
  color: #111 !important;
}

body.rn-noir-subpage.page-id-2534 #main #entdecken:not(:has(.rnarr-stack)) :where(h6, .hero-script, .hero-script *) {
  color: #9b8357 !important;
  -webkit-text-fill-color: #9b8357 !important;
}

body.rn-noir-subpage.page-id-2534 #main #entdecken:not(:has(.rnarr-stack)) .eyebrow {
  color: #655f55 !important;
}

body.rn-noir-subpage.page-id-2534 #main #entdecken:not(:has(.rnarr-stack)) .headline h2 + h2,
body.rn-noir-subpage.page-id-2534 #main #entdecken:not(:has(.rnarr-stack)) .headline h2 + h2 * {
  color: #9b8357 !important;
}

@media (max-width: 767px) {
  body#top.rn-noir-subpage {
    --rn-h1-size: clamp(42px, 12vw, 54px);
    --rn-h2-size: clamp(36px, 10.4vw, 48px);
    --rn-h3-size: clamp(19px, 6vw, 25px);
    --rn-display-lead-size: clamp(22px, 6.8vw, 29px);
    --rn-quote-size: clamp(36px, 11vw, 48px);
  }

  body.rn-noir-site #main :where(a.avia-button),
  body.rn-noir-site #main :where(.rnbg-search__submit, .rnbg-more, .rnbr-submit) {
    min-height: 54px;
  }

  body.rn-noir-subpage #main .rnbg-card__copy {
    min-height: 0;
    padding: 24px 20px;
  }

  body.rn-noir-subpage #main .av_toggle_section .toggler {
    padding: 23px 44px 23px 0 !important;
  }
}
