/* Shared content and mobile refinements; loaded after the page-specific styles. */
html { -webkit-text-size-adjust: 100%; }
.fw-header { gap: 12px; }
.fw-brand { min-width: 0; }
.fw-menu > summary { display: flex; align-items: center; min-height: 44px; padding: 8px 14px; }
.fw-menu nav { max-height: min(72vh,720px); max-height: min(72dvh,720px); }
.fw-footer nav a { display: inline-flex; align-items: center; min-height: 44px; }
#fw-content .fw-page-heading { max-width: 1344px; margin: 28px auto 16px; padding: 0 24px; color: #203b4e; font-size: clamp(30px,4vw,46px); line-height: 1.2; }
#fw-content .fw-gallery-model-info { padding: 16px 18px; border-left: 3px solid #ac8149; background: #f4eee3; color: #243640; }
#fw-content .fdwm-card-copy .fw-partner-description { color: #344d59; font-size: 16px; line-height: 1.6; }
#fw-content .fw-promotions { max-width: 1344px; margin: 24px auto 36px; padding: 28px; border: 1px solid #dacbb6; border-radius: 18px; background: #fffaf0; color: #243640; }
#fw-content .fw-promotions h2 { color: #203b4e; font-size: clamp(25px,3vw,34px); line-height: 1.25; margin: 0 0 12px; }
#fw-content .fw-promotions-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin-top: 24px; }
#fw-content .fw-promotion { min-width: 0; border-radius: 12px; border: 1px solid #d8c8b1; background: #fffdf9; overflow: hidden; }
#fw-content .fw-promotion-image { display: block; }
#fw-content .fw-promotion img { display: block; width: 100%; height: auto; }
#fw-content .fw-promotion-copy { padding: 22px; }
#fw-content .fw-promotion h3 { color: #203b4e; font-size: 24px; line-height: 1.3; margin: 12px 0; }
#fw-content .fw-promotion p { font-size: 16px; line-height: 1.65; }
#fw-content .fw-promotion-date { margin: 0; color: #79512c; font-weight: 700; }
#fw-content .fw-action-link, #fw-content .fw-voucher-cta { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; gap: 12px; padding: 12px 18px; border-radius: 8px; background: #203b4e; color: #fff; font-size: 16px; font-weight: 700; line-height: 1.4; text-decoration: none; }
#fw-content .fw-voucher-cta { background: #dfbc79; color: #102630; }
#fw-content .fdw-v3-voucher { grid-template-columns: minmax(160px,.7fr) minmax(0,1fr) minmax(180px,.85fr) 44px; gap: 24px; }
#fw-content .fdw-v3-voucher-request { min-width: 0; }
#fw-content .fdw-v3-voucher-request p { display: block; color: #d1dfe3; font-size: 16px; line-height: 1.65; margin: 0 0 16px; }
#fw-content .fw-voucher-notice { padding: 20px; border: 1px solid #c8d7db; border-left: 4px solid #b58043; border-radius: 10px; background: #f3f7f8; color: #203b4e; margin: 0 0 24px; }
#fw-content .fw-voucher-notice p { margin: 8px 0 0; font-size: 16px; }
#fw-content #ft-nachricht { min-height: 190px; resize: vertical; }
#fw-content .fdw-button, #fw-content .fdww-button { min-width: 0; }
#fw-content .fdw-cta__actions, #fw-content .fdww-cta__actions { min-width: 0; }
#fw-content .fdw-lightbox__dialog { height: min(90vh,900px); height: min(90dvh,900px); max-width: 100%; }
#fw-content .fdw-lightbox figure { min-width: 0; min-height: 0; }
#fw-content .fdw-lightbox figcaption { overflow-wrap: anywhere; }

@media screen and (max-width: 1100px) {
  #fw-content .fdw-v3-voucher { grid-template-columns: minmax(180px,.7fr) minmax(0,1fr) 44px; align-items: start; }
  #fw-content .fdw-v3-voucher-visual { grid-column: 1; grid-row: 1 / 3; }
  #fw-content .fdw-v3-voucher-copy { grid-column: 2; }
  #fw-content .fdw-v3-voucher-request { grid-column: 2; }
  #fw-content .fdw-v3-voucher-arrow { grid-column: 3; grid-row: 1; }
}

@media screen and (max-width: 800px) {
  #fw-content, #fw-content section, #fw-content article, #fw-content fieldset { min-width: 0; }
  #fw-content :is(h1,h2,h3,p,li,dd,legend) { overflow-wrap: anywhere; hyphens: auto; }
  #fw-content :is(.fdw-button,.fdww-button,.fdwb-button,.fdwe-button,.fdwp-button,.fdwm-btn,.fw-action-link) { max-width: 100%; white-space: normal; min-height: 48px; line-height: 1.45; }
  #fw-content .fdwb-button svg { flex: 0 0 20px; }
  #fw-content :is(.fdw-local-nav,.fdww-local-nav) a { white-space: normal; overflow-wrap: anywhere; }
  #fw-content .fw-promotions { margin: 16px 10px 24px; padding: 20px 14px; }
  #fw-content .fw-promotions-grid { grid-template-columns: minmax(0,1fr); gap: 20px; }
  #fw-content .fw-promotion-copy { padding: 18px; }
  #fw-content #fdw-preise :is(h1,h2,h3,p,li,a,button,strong) { overflow-wrap: anywhere !important; hyphens: auto !important; }
  #fw-content #fdw-preise { margin-inline: 10px; }
  #fw-content .fdw-v3-voucher { grid-template-columns: minmax(0,1fr) 44px; width: calc(100% - 32px); padding: 20px; gap: 18px 10px; }
  #fw-content .fdw-v3-voucher-visual { grid-column: 1 / -1; grid-row: auto; margin: 0; }
  #fw-content .fdw-v3-voucher-copy { grid-column: 1 / -1; }
  #fw-content .fdw-v3-voucher-request { grid-column: 1; }
  #fw-content .fdw-v3-voucher-arrow { grid-column: 2; grid-row: auto; align-self: end; }
  #fw-content .fdw-v3-voucher .fw-voucher-cta { padding: 12px; }
  #fw-content #foto-termin-tool :is(input:not([type=checkbox]):not([type=hidden]),select,textarea) { width: 100%; min-width: 0; max-width: 100%; font-size: 16px; }
  #fw-content #foto-termin-tool :is(input[type=date],input[type=time]) { min-inline-size: 0; appearance: auto; }
  #fw-content #foto-termin-tool fieldset { min-inline-size: 0; }
  #fw-content #foto-termin-tool legend { max-width: 100%; white-space: normal; }
  #fw-content #foto-termin-tool .ft-appointment-option label { min-height: 44px; }
  #fw-content .fdw-lightbox { padding: 10px; }
  #fw-content .fdw-lightbox__dialog { height: 94vh; height: 94dvh; padding-top: 54px; }
  #fw-content .fdw-lightbox__close { top: 2px; right: 2px; width: 48px; height: 48px; }
  #fw-content .fdw-faq-modal-body { overflow-wrap: anywhere; }
  #fw-content .fdwb-lightbox__controls button { font-size: 14px; min-height: 44px; }
  #fw-content .fw-kundenportal__button { min-width: 0; max-width: 100%; white-space: normal; line-height: 1.5; text-align: center; }
  #fw-content .fw-native { overflow-wrap: anywhere; }
  .fw-footer { padding: 24px 18px; }
  .fw-footer nav { margin-top: 10px; gap: 4px 18px; }
}

@media screen and (max-width: 430px) {
  .fw-header { padding: 10px 12px; }
  .fw-menu > summary { padding-inline: 10px; }
  .fw-menu nav { right: 8px; width: calc(100vw - 16px); }
  #fw-content .fw-page-heading { padding-inline: 16px; font-size: 30px; }
  #fw-content .fw-voucher-notice { padding: 16px; }
  #fw-content .fw-promotion-copy { padding: 16px; }
  #fw-content .fw-promotion h3 { font-size: 22px; }
  #fw-content .fw-action-link { width: 100%; }
  #fw-content .fdw-v3-voucher-request { grid-column: 1 / -1; }
  #fw-content .fdw-v3-voucher-arrow { display: none; }
  #fw-content .fdw-v3-voucher .fw-voucher-cta { width: 100%; }
  #fw-content :is(.fdw-sheet,.fdw-cta,.fdww-cta,.fdww-goals,.fdww-facts,.fdww-bring) { padding-inline: 16px; }
  #fw-content :is(.fdw-editorial__body,.fdww-editorial__body,.fdw-sheet__copy) { min-width: 0; }
  #fw-content :is(.fdw-sheet__copy h2,.fdww-goals h2) { font-size: 25px; }
  #fw-content .fw-gallery-model-info { padding: 14px; }
  #fw-content .fw-native :is(h1,h2) { font-size: 27px; overflow-wrap: anywhere; }
}

@media screen and (max-height: 500px) and (orientation: landscape) {
  .fw-menu nav { max-height: 64vh; max-height: 64dvh; }
  #fw-content :is(.fdw-lightbox__dialog,.fdwb-lightbox__dialog) { height: 94vh; height: 94dvh; }
  #fw-content .fdw-faq-modal-body { padding: 16px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  #fw-content *, #fw-content *::before, #fw-content *::after { scroll-behavior: auto !important; }
}

@media print {
  .fw-header, .fw-footer, .fw-skip, .fw-preview { display: none; }
  #fw-content .fw-promotions { border: 0; padding: 0; }
  #fw-content .fw-promotions-grid { grid-template-columns: minmax(0,1fr); }
  #fw-content .fw-promotion { break-inside: avoid; }
  #fw-content .fw-action-link { display: none; }
}

/* Akzentfarben Gold/Bordeaux und Lesbarkeit auf der Startseite · 08.10.2026 */
.fdw-v3 .fdw-v3-about h2 em, .fdw-v3 .fdw-v3-journey h2 em { color: #7a1f2b; }
.fdw-v3 .fdw-v3-intro h1 em, .fdw-v3 .fdw-v3-promises h2 em, .fdw-v3 .fdw-v3-contact h2 em { color: #d8b66b; }
.fdw-v3 .fdw-v3-about .fdw-v3-section-kicker, .fdw-v3 .fdw-v3-journey .fdw-v3-section-kicker { color: #7a1f2b; }
.fdw-v3 .fdw-v3-about .fdw-v3-section-kicker::before, .fdw-v3 .fdw-v3-journey .fdw-v3-section-kicker::before { background: #ac8149; }
.fdw-v3 .fdw-v3-text-link { color: #7a1f2b; }
@media (min-width: 761px) {
  .fdw-v3 .fdw-v3-kicker, .fdw-v3 .fdw-v3-section-kicker, .fdw-v3 .fdw-v3-primary, .fdw-v3 .fdw-v3-secondary, .fdw-v3 .fdw-v3-discover, .fdw-v3 .fdw-v3-text-link, .fdw-v3 .fdw-v3-about-caption span, .fdw-v3 .fdw-v3-values { font-size: 12px; }
}

/* ============================================================
   Marine & Verlauf statt Nachtblau · 09.10.2026
   Palette aus dem Kundenportal: Marine #004062 · Petrol #0b5d7c · Petrol hell #2f7e8d
   Verlauf 110°. Nur dunkle Flächen – helle Hintergründe bleiben warm (Elfenbein).
   ============================================================ */
/* Kopf, Menü, Fuß */
.fw-header { background: #004062; border-bottom-color: #2f7e8d; }
.fw-menu summary { border-color: #6fa3b8; }
.fw-menu nav { background: #0b5d7c; box-shadow: 0 15px 35px rgba(0, 47, 73, 0.35); }
.fw-menu nav a:hover, .fw-menu nav [aria-current] { background: #2f7e8d; }
.fw-footer { background: #004062; }
.privacy-modal { background: rgba(0, 47, 73, 0.8); }

/* Startseite */
#fw-content .fdw-v3 { --fdw-night: #004062; --fdw-night-soft: #0b5d7c; }
#fw-content .fdw-v3 .fdw-v3-hero,
#fw-content .fdw-v3 .fdw-v3-promises,
#fw-content .fdw-v3 .fdw-v3-contact { background: linear-gradient(110deg, #004062 0%, #0b5d7c 55%, #1d6b7c 100%); }
#fw-content .fdw-v3 .fdw-v3-quote-band { background: #0b5d7c; }
#fw-content .fdw-v3 .fdw-v3-voucher { background: #004062; }
#fw-content .fdw-v3 .fdw-v3-voucher:hover, #fw-content .fdw-v3 .fdw-v3-voucher:focus-visible { background: #0b5d7c; }
#fw-content .fdw-v3 .fdw-v3-windows { background: #0b5d7c; }
#fw-content .fdw-v3 .fdw-v3-shade { background: linear-gradient(180deg, rgba(0, 47, 73, 0.18), rgba(0, 47, 73, 0.22) 45%, rgba(0, 47, 73, 0.9)), linear-gradient(90deg, rgba(0, 47, 73, 0.25), transparent 65%); }
#fw-content .fdw-v3 .fdw-v3-window:hover .fdw-v3-shade, #fw-content .fdw-v3 .fdw-v3-window:focus-visible .fdw-v3-shade { background: linear-gradient(180deg, rgba(0, 47, 73, 0.01), rgba(0, 47, 73, 0.08) 46%, rgba(0, 47, 73, 0.92)); }
@media screen and (max-width: 760px) { #fw-content .fdw-v3 .fdw-v3-number { background: rgba(0, 47, 73, 0.88); } }

/* Fotografie-Übersicht: Steuerleiste des Karussells */
#fw-content #fw-photo-carousel .fw-footer { background: linear-gradient(110deg, #004062 0%, #0b5d7c 55%, #1d6b7c 100%); color: #f2eee5; }
#fw-content #fw-photo-carousel .fw-footer .fw-hint, #fw-content #fw-photo-carousel .fw-footer .fw-progress { color: rgba(255, 255, 255, 0.82); }
#fw-content #fw-photo-carousel .fw-footer .fw-control { color: #fff; border-color: rgba(255, 255, 255, 0.45); }

/* Lesbarkeit auf dem Verlauf */
#fw-content .fdw-v3 .fdw-v3-scroll { min-height: 24px; color: rgba(255, 255, 255, 0.85) !important; font-size: 12px; }
#fw-content .fdw-v3 .fdw-v3-promise-card p { color: rgba(255, 255, 255, 0.88); }
#fw-content .fdw-v3 .fdw-v3-contact-side p { color: rgba(255, 255, 255, 0.9); }
#fw-content .fdw-v3 .fdw-v3-contact-side .fdw-v3-contact-note { color: #f3e0b5 !important; font-size: 12px !important; }
#fw-content .fdw-v3 .fdw-v3-section-kicker--light { color: #a6ece9; }

/* Ortsbegriffe (13.10.2026): zusätzlicher Ortssatz nach der Einleitung */
#fw-content #fw-photo-carousel .fw-intro--ort { margin-top: 0.55rem; font-size: clamp(0.98rem, 1.2vw, 1.12rem); }
#fw-content .u-hero .u-lead--ort { margin-top: 10px; font-size: clamp(15px, 1.05vw, 17px); color: rgba(242, 238, 229, 0.72); }
#fw-content .fdw-v3 .fdw-v3-intro > .fdw-v3-hero-audience { font-size: clamp(16px, 1.45vw, 20px); font-weight: 600; line-height: 1.5; max-width: 34ch; }
@media (max-width: 620px) { #fw-content .fdw-v3-region-map li { flex-direction: column; align-items: flex-start; gap: 5px; } #fw-content .fdw-v3-region-map li span { text-align: left; } }

/* Mindestschriftgröße 12 px (30.10.2026): alle bisher kleineren Beschriftungen, Knöpfe und Hinweise */
#fw-content :is(
  .compact-faq-filters button,
  .fdw-achse span,
  .fdw-ang-badge,
  .fdw-ang-ckicker,
  .fdw-ang-cta,
  .fdw-ang-label,
  .fdw-ang-more summary,
  .fdw-ang-orgs,
  .fdw-fuss,
  .fdw-fuss a,
  .fdw-info-downloads.fdwp-no-print a,
  .fdw-jetzt-lbl,
  .fdw-kicker,
  .fdw-lbl,
  .fdw-legende span,
  .fdw-v3-contact-note,
  .fdw-v3-region-cta,
  .fdw-v3-region-map span,
  .fdw-wetter-kritisch,
  .fdw-wetter-legende span,
  .fdwb-button.fdwb-button--blue.fdwb-no-print,
  .fdwb-button.fdwb-button--gold,
  .fdwb-button.fdwb-button--light,
  .fdwb-final-cta__link,
  .fdwb-image-panel__caption span,
  .fdwb-industry-box p,
  .fdwb-output__label,
  .fdwb-print-button,
  .fdwb-result-box__mark,
  .fdwb-service__header p,
  .fdwb-value-box__label,
  .fdwm-contact-direct span,
  .fdwp-button.fdwp-button--blue.fdwp-no-print,
  .fdwp-button.fdwp-button--gold,
  .fdwp-button.fdwp-button--light.fdwp-no-print,
  .fdwp-cta,
  .fdwp-details,
  .fdwp-download-modell,
  .fdwp-print-button,
  .fdwp-zusatzkarte a,
  .fw-button,
  .fw-button.fw-accent,
  .fw-compare-label.fw-compare-label--after,
  .fw-compare-label.fw-compare-label--before,
  .fw-jump,
  .fw-kundenportal__button,
  .fw-actions .fw-link,
  .fw-number,
  .fw-offer-badge,
  .fw-table th,
  .u-btn,
  .u-btn.u-btn--light,
  .u-link
) { font-size: 12px; }
@media (min-width: 761px) {
  #fw-content :is(
    .fdw-v3-about-caption span,
    .fdw-v3-kicker,
    .fdw-v3-primary,
    .fdw-v3-print-go,
    .fdw-v3-print-more small,
    .fdw-v3-process > span,
    .fdw-v3-quote-band.compact-home-quote footer,
    .fdw-v3-scroll,
    .fdw-v3-secondary,
    .fdw-v3-section-kicker,
    .fdw-v3-section-kicker.fdw-v3-section-kicker--light,
    .fdw-v3-values span,
    .fdw-v3-voucher-copy span,
    .fdw-wetter-hinweis,
    .fdwe-status,
    .fw-progress span
  ) { font-size: 12px; }
}
@media (max-width: 760px) {
  #fw-content :is(
    .fdw-v3-print-go,
    .fdw-v3-print-more small,
    .fdwe-status,
    .fw-hint-touch,
    .fw-progress span,
    .u-kicker,
    .u-kicker.fdw-faq-kicker
  ) { font-size: 12px; }
}

/* ============================================================
   Gold als Akzent (30.10.2026) – nur Details: Linien, Kanten, Unterstreichungen, Nummern
   Auf Marine: Gold #d8b66b (kleiner Text #f3e0b5) · auf Hell: Linien #ac8149, Text #7d5f28
   ============================================================ */
::selection { background: rgba(216, 182, 107, 0.5); color: #16242c; }
.fw-header { border-bottom-color: rgba(216, 182, 107, 0.7); }
.fw-footer { border-top: 1px solid rgba(216, 182, 107, 0.7); }
.fw-footer a { text-decoration-color: rgba(216, 182, 107, 0.75); text-underline-offset: 4px; }
.fw-footer a:hover, .fw-footer a:focus-visible { color: #f3e0b5; text-decoration-color: #d8b66b; }

/* Startseite: Linien an den Kickern, Unterstreichungen der Textlinks */
#fw-content .fdw-v3 :is(.fdw-v3-kicker, .fdw-v3-section-kicker--light)::before { background: #d8b66b; }
#fw-content .fdw-v3 .fdw-v3-text-link { border-bottom-color: #ac8149; }
#fw-content .fdw-v3 .fdw-v3-text-link:hover, #fw-content .fdw-v3 .fdw-v3-text-link:focus-visible { border-bottom-color: currentColor; }
#fw-content .fdw-v3 .fdw-v3-secondary { border-bottom-color: #d8b66b; }
#fw-content .fdw-v3 .fdw-v3-secondary:hover, #fw-content .fdw-v3 .fdw-v3-secondary:focus-visible { border-bottom-color: #f3e0b5; }

/* Impressum und Datenschutz (fw-native): eckige Karte, Goldlinie unter der Überschrift */
#fw-content .fw-native { border: 1px solid #d9d1c3; border-radius: 2px; color: #16242c; }
#fw-content .fw-native h1 { color: #16242c; }
#fw-content .fw-native h1::after { content: ""; display: block; width: 72px; height: 3px; margin-top: 0.4em; background: #ac8149; }
#fw-content .fw-action-link, #fw-content .fw-voucher-cta { border-radius: 0; }
#fw-content .fw-voucher-cta { font-size: 12px; font-weight: 800; letter-spacing: 0.14em; text-transform: uppercase; }
