/* Shared functional type scale. Loaded only on approved non-article pages.
   Deliberately additive: original layouts, icons, covers and interaction code stay intact.
   Important declarations override the legacy template-specific typography. */
@font-face{font-family:Montserrat;src:url('assets/Montserrat-Bold.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
html:root{
  --wb-type-h1:52px;--wb-type-h2:38px;--wb-type-h3:22px;
  --wb-type-body:16px;--wb-type-small:14px;--wb-type-caption:12px;
  --wb-type-control:14px;--wb-type-input:16px;
}
html:root body{font-family:Montserrat,Arial,sans-serif;font-size:var(--wb-type-body);line-height:1.7}
html:root body h1{
  font-family:Montserrat,Arial,sans-serif!important;font-size:var(--wb-type-h1)!important;
  font-weight:700!important;line-height:1.14!important;letter-spacing:-.035em!important;
  text-transform:none!important;overflow-wrap:break-word;hyphens:none!important;
}
html:root body h2{
  font-size:var(--wb-type-h2)!important;font-weight:400!important;
  line-height:1.2!important;letter-spacing:-.025em!important;text-transform:none;
}
html:root body h3{
  font-size:var(--wb-type-h3)!important;font-weight:500!important;
  line-height:1.35!important;letter-spacing:-.015em!important;text-transform:none;
}
/* Paragraphs share a readable size; secondary roles are set below. Cover lettering is artwork. */
html:root body p:where(:not(.report-cover p):not(.guide-art p)){
  font-size:var(--wb-type-body)!important;line-height:1.7!important;
}
html:root body :is(.copy-section,.wb-content,.wb-sec,.wb-inhalt,.text-section-main,.wb-nwseite__sektion) li{
  font-size:var(--wb-type-body);line-height:1.7;
}
html:root body :is(.hero-region,.wb-hero__sub,.copy-teaser,.copy-funnel-intro,.wb-nwseite__lead){
  font-size:var(--wb-type-body)!important;line-height:1.7!important;font-weight:400!important;
}
html:root body :is(.section-label,.eyebrow,.ak-eyebrow,.wb-mb__kicker,.wissen-card__kategorie,.was-micro-label,.was-micro-sublabel,.was-journey-market-label){
  font-size:var(--wb-type-caption)!important;line-height:1.5!important;font-weight:500!important;letter-spacing:.1em!important;
}
html:root body :is(.valuation-small,.response,.role,.location-proof,.wb-micro,.guide-description,.wb-mb__details,.wb-kontakt__sub,.callback-note){
  font-size:var(--wb-type-small)!important;line-height:1.6!important;font-weight:400;
}
html:root body .mobile-copy-people article>h3+p{font-size:var(--wb-type-small)!important;line-height:1.6!important}
html:root body :is(.page-crumb,.breadcrumb,.location-source,.guide-meta,.guide-number,.copy-step-number,.wb-mb__mikro,.demo-note,.wissen-card__meta,.wissen-count,.speech-status){
  font-size:var(--wb-type-caption)!important;line-height:1.6!important;
}
html:root body :is(.copy-questions,.wb-faq) summary{font-size:var(--wb-type-body)!important;line-height:1.5!important;font-weight:500}
html:root body .valuation-details>summary{font-size:var(--wb-type-control)!important;line-height:1.5!important}
html:root body :is(.wb-karte-kennzahl__label,.wb-karte-kennzahl__zusatz,.wb-karte-orte__anker,.wb-karte-orte__anzahl){font-size:var(--wb-type-caption)!important;line-height:1.6!important}
html:root body :is(.wb-karte-orte__griff,.location-links,.text-link,.wissen-card__link,.wb-kontaktseite__zweit){font-size:var(--wb-type-small)!important;line-height:1.5!important}
html:root body .location-directory a{font-size:var(--wb-type-body)!important;line-height:1.5!important}
html:root body .location-directory span{font-size:var(--wb-type-caption)!important;line-height:1.5!important}
/* Card titles retain their own hierarchy beneath section headings. */
html:root body.page-ratgeber .guide-row h2{font-size:18px!important;line-height:1.4!important;font-weight:500!important;letter-spacing:0!important;text-transform:none!important;min-height:4.2em}
html:root body.page-ratgeber .guide-description{font-size:var(--wb-type-body)!important}
html:root body.page-wissen .wissen-card__title{font-size:var(--wb-type-h3)!important;line-height:1.35!important;font-weight:500!important;min-height:4.05em}
html:root body.page-wissen .wb-mb__titel{font-size:var(--wb-type-h2)!important;line-height:1.2!important;font-weight:400!important}
html:root body.page-wissen .wissen-card__excerpt{font-size:var(--wb-type-body)!important}
/* Controls have one type size; inputs stay at 16px on mobile to avoid focus zoom. */
html:root body .kontur-button,
html:root body :is(.solid-button,.wb-btn,.submit-button,.wissen-filter__btn,.wb-mb__knopf){
  font-family:Montserrat,Arial,sans-serif!important;font-size:var(--wb-type-control)!important;
  font-weight:500!important;line-height:1.5!important;letter-spacing:0!important;
}
html:root body .kontur-button .kontur-label{font:inherit!important}
html:root body :is(.local-form,.contact-form,.pop-up-form,.wb-form) label{font-size:var(--wb-type-small)!important;line-height:1.5!important;font-weight:500}
html:root body input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=submit]):not([type=button]),
html:root body select,html:root body textarea{
  font-family:Montserrat,Arial,sans-serif!important;font-size:var(--wb-type-input)!important;
  line-height:1.5!important;font-weight:400!important;letter-spacing:0!important;
}
html:root body :is(input,textarea)::placeholder{font-size:inherit!important;font-weight:400!important;letter-spacing:0!important}
html:root body :is(.consent span,.consent-label,.wb-mb__opt,.fine){font-size:var(--wb-type-caption)!important;line-height:1.6!important;font-weight:400!important}
html:root body :is(.form-result,#contact-error){font-size:var(--wb-type-small)!important;line-height:1.6!important}
/* Header and footer keep their layouts, with matching utility text. */
html:root body :is(.header-contact,.header-call){font-size:var(--wb-type-control)!important;line-height:1.5!important}
html:root body :is(.wb-original-footer,.wb-footer,.content-footer) :is(a,p,.footer-legal){font-size:var(--wb-type-caption)!important;line-height:1.6!important}
html:root body #kontakt.abschluss-kontor :is(.ak-lede,address){font-size:var(--wb-type-body)!important;line-height:1.7!important}
html:root body #kontakt.abschluss-kontor h2{font-size:var(--wb-type-h2)!important;line-height:1.2!important;letter-spacing:-.025em!important}
html:root body #kontakt.abschluss-kontor .ak-phone{font-size:var(--wb-type-h3)!important;line-height:1.4!important}
/* Dialog titles and funnel questions are UI headings, smaller than page sections. */
html:root body #gespraechVereinbarenModal .modal-content>h2,
html:root body .content-dialog h2,
html:root body #wb-funnel .wb-step__frage,
html:root body #wb-search-stage #weserburg-adaptive-search .was-journey-h2,
html:root body .step h2{font-size:28px!important;line-height:1.3!important;font-weight:500!important;letter-spacing:-.02em!important}
html:root body #gespraechVereinbarenModal :is(.modal-subtitle,.kontakt-datenschutz,.consent-label){font-size:var(--wb-type-small)!important;line-height:1.6!important}
html:root body #gespraechVereinbarenModal :is(input,select){font-size:var(--wb-type-input)!important}
html:root body #gespraechVereinbarenModal .kontur-button{font-size:var(--wb-type-control)!important}
html:root body #footerInfoOverlay .fio-heading{font-size:24px!important;line-height:1.25!important;font-weight:500!important}
html:root body #footerInfoOverlay .fio-text{font-size:var(--wb-type-small)!important;line-height:1.6!important}
html:root body #footerInfoOverlay .fio-subheading{font-size:var(--wb-type-caption)!important;line-height:1.5!important}
html:root body #wb-search-stage #weserburg-adaptive-search .was-result-headline{font-size:var(--wb-type-h2)!important;font-weight:500!important;line-height:1.25!important}
html:root body #wb-search-stage #weserburg-adaptive-search :is(.was-block-title,.was-journey-cta-title,.was-journey-h3){font-size:18px!important;font-weight:500!important;line-height:1.4!important;letter-spacing:0!important;text-transform:none!important}
html:root body #wb-search-stage #weserburg-adaptive-search :is(.was-block-text,.was-journey-market-a,.was-journey-market-bullet-txt,.was-journey-market-strong){font-size:var(--wb-type-body)!important;line-height:1.7!important}
html:root body #wb-search-stage #weserburg-adaptive-search :is(.was-ai-note,.was-journey-value-hint,.was-journey-email-hint,.was-journey-cta-micro,.was-journey-cta-micro--booking,.was-journey-book-hint,.was-journey-dsgvo-label,.was-journey-dsgvo-text,.was-journey-dsgvo-link){font-size:var(--wb-type-caption)!important;line-height:1.6!important}
html:root body #wb-search-stage #weserburg-adaptive-search .was-journey-cta-sub{font-size:var(--wb-type-small)!important;line-height:1.6!important}
html:root body #wb-search-stage #weserburg-adaptive-search :is(.was-micro-sublabel,.was-micro-label,.was-journey-email-label,.was-journey-value-label,.was-journey-market-label){font-size:var(--wb-type-caption)!important;line-height:1.5!important;letter-spacing:.08em!important;font-weight:500!important}
html:root body #wb-search-stage #weserburg-adaptive-search .kontur-button{font-size:var(--wb-type-control)!important;font-weight:500!important;line-height:1.5!important}
html:root body #wb-search-stage #weserburg-adaptive-search :is(input,select),
html:root body #wb-search-stage #weserburg-adaptive-search .was-journey-micro .was-micro-qm-shell .was-micro-qm-suffix{font-size:var(--wb-type-input)!important;font-weight:400!important;line-height:1.5!important}
html:root body #wb-search-stage #weserburg-adaptive-search .wb-slot-date{font-size:var(--wb-type-caption)!important;font-weight:500!important;line-height:1.5!important}
html:root body #wb-search-stage #weserburg-adaptive-search .wb-slot-time{font-size:20px!important;font-weight:500!important;line-height:1.3!important}
/* Keep the agreed symmetric cards; allow the larger, consistent labels to breathe. */
html:root body #wb-search-stage #weserburg-adaptive-search .was-journey-micro .was-micro-objekt-tiles{gap:12px}
@media(max-width:1100px) and (min-width:761px){html:root body .header-call{font-size:12px!important}}
@media(max-width:760px){
  html:root{--wb-type-h1:32px;--wb-type-h2:28px;--wb-type-h3:20px}
  html:root body h1{line-height:1.18!important;letter-spacing:-.03em!important;overflow-wrap:anywhere}
  html:root body :is(.guide-row h2,.wissen-card__title){min-height:0!important}
  html:root body #gespraechVereinbarenModal .modal-content>h2,
  html:root body .content-dialog h2,html:root body #wb-funnel .wb-step__frage,
  html:root body #wb-search-stage #weserburg-adaptive-search .was-journey-h2,html:root body .step h2{font-size:24px!important}
  html:root body #kontakt.abschluss-kontor .ak-office{display:block}
  html:root body #kontakt.abschluss-kontor .ak-office .ak-eyebrow{margin-bottom:10px}
}
@media(max-width:360px){html:root{--wb-type-h1:26px;--wb-type-h2:26px}}

html:root body :is(#ai-hint,.search-meta a){font-size:var(--wb-type-small)!important;line-height:1.5!important}

html:root body #gespraechVereinbarenModal .pop-up-form .wpcf7-form-control-wrap::before{font-size:var(--wb-type-caption)!important;line-height:1.5!important;font-weight:500!important;letter-spacing:.1em!important}

html:root body.page-ratgeber .guide-row .kontur-button,
html:root body.page-wissen .wb-mb .kontur-button{font-size:var(--wb-type-control)!important;line-height:1.5!important}
html:root body.page-wissen .wb-mb__beschreibung{font-size:var(--wb-type-body)!important;line-height:1.7!important}
