/* Quieter editorial layout. Use the real local font faces at readable sizes. */
body {
  font-size: 16px;
  line-height: 1.6;
  font-synthesis: none;
}
button, input, select, textarea { font-synthesis: none; }
strong, b { font-weight: 600; }
h1, h2, h3, h4 { text-wrap: balance; }
p { text-wrap: pretty; }
.hero h1, .portfolio-hero h1, .configured-page-intro h1 {
  font-size: clamp(2.65rem, 5.2vw, 5.2rem);
  line-height: 1.1;
  letter-spacing: -.04em;
}
.intro h2, .section-heading h2, .service h2, .portfolio-intro h2,
.portfolio-world__heading h2, .service-portfolio h2, .inspiration h2 {
  font-size: clamp(2.1rem, 3.8vw, 3.6rem);
  line-height: 1.15;
  letter-spacing: -.035em;
}
.hero, .portfolio-hero {
  min-height: 660px;
  padding-block: 100px;
}
.hero-content, .portfolio-hero__content { max-width: 850px; }
.hero-content > p:not(.eyebrow), .portfolio-hero__content > p:not(.eyebrow) {
  max-width: 52ch;
  font-size: 18px;
  line-height: 1.7;
}
.hero-actions { gap: 28px; margin-top: 32px; }
.eyebrow { font-size: 12px; letter-spacing: .16em; margin-bottom: 20px; }
.section, .portfolio-world, .service-portfolio { padding-block: 96px; }
.intro, .service, .portfolio-intro { gap: 7vw; }
.intro-copy, .portfolio-intro__copy { padding-top: 0; max-width: 55ch; }
.intro-copy .lead, .portfolio-intro__copy .lead { font-size: 21px; line-height: 1.6; }
.intro-copy .text-link { margin-top: 12px; }
.section-heading { margin-bottom: 36px; gap: 28px; }
.section-heading > p { font-size: 16px; max-width: 42ch; }
.products .section-heading { display: block; }
.products .product-grid { gap: 24px; }
.products .product-card { height: 390px; }
.products .product-card h3 { font-size: 28px; line-height: 1.25; margin: 0 0 18px; }
.products .product-card a { font-size: 14px; line-height: 1.6; }
.products .product-card > div { bottom: 28px; }
.catalog-title-row h3 { font-size: 25px; line-height: 1.35; }
.catalog-brand, .model-meta, .model-features span, .catalog-source-note {
  font-size: 12px;
  line-height: 1.55;
}
.catalog-brand, .model-meta { letter-spacing: .08em; }
.catalog-filters button, .model-select { font-size: 14px; }
.catalog-block + .catalog-block { margin-top: 64px; padding-top: 56px; }
.model-content > p { font-size: 14px; line-height: 1.7; }
.model-content h4 { font-size: 24px; line-height: 1.3; }
.benefit-grid { border-left: 0; column-gap: 28px; }
.benefit-grid article { min-height: 210px; padding: 28px 0; border-right: 0; }
.benefit-grid article > span { font-size: 30px; margin: 0 0 24px; }
.benefit-grid h3 { margin: 0 0 12px; line-height: 1.4; }
.benefit-grid p { font-size: 15px; line-height: 1.7; margin-bottom: 0; }
.inspiration { height: 500px; }
.service li { gap: 24px; padding-block: 24px; }
.service li strong { line-height: 1.4; }
.service li small { font-size: 15px; line-height: 1.6; }
.seo-faq { padding-block: 80px; }
.seo-faq .section-heading { margin-bottom: 28px; }
.seo-faq details { max-width: 960px; }
.seo-faq summary { padding-block: 21px; font-size: 17px; line-height: 1.6; }
.seo-faq-answer { max-width: 76ch; padding-bottom: 24px; }
.seo-faq-answer p { line-height: 1.75; }
.seo-faq-answer .text-link { font-size: 14px; }
.portfolio-world__heading { gap: 6vw; margin-bottom: 44px; }
.portfolio-world__heading > div { padding: 0; }
.portfolio-world__heading > p { max-width: 45ch; }
.feature-card__copy p, .profile-panel p, .door-showcase__copy p,
.railing-grid p, .hella-grid p, .service-portfolio__grid p {
  font-size: 15px;
  line-height: 1.7;
}
.feature-card__copy h3, .profile-panel h3, .door-showcase__copy h3,
.railing-grid h3, .hella-grid h3 { line-height: 1.3; letter-spacing: -.02em; }
.feature-card__copy small, .portfolio-card small, .railing-grid small,
.door-showcase figcaption span, .hella-grid span { font-size: 12px; letter-spacing: .1em; }
.profile-list span, .profile-panel ul, .door-showcase__copy ul,
.compliance-band p, .compliance-band a, .hella-additional p { font-size: 14px; }
.portfolio-jump a { font-size: 14px; }
.service-portfolio__intro { display: block; max-width: 800px; }
.service-portfolio__intro .eyebrow { margin-bottom: 20px; }
.service-portfolio__grid { margin-top: 44px; border-left: 0; gap: 28px; }
.service-portfolio__grid article { min-height: 220px; padding: 28px 0; border-right: 0; }
.service-portfolio__grid h3 { margin-top: 0; line-height: 1.4; }
.service-portfolio__cta { margin-top: 36px; }
.configured-page-intro { padding-block: 56px; }
.configured-page-intro h1 { max-width: 960px; margin-bottom: 20px; }
.configured-page-intro > p:last-child { max-width: 64ch; font-size: 17px; }
.configured-contact-info address { margin-top: 22px; }
.configured-subtle, .configured-notice, .configured-field, .configured-privacy,
.configured-details, .configured-cart-summary dl > div { font-size: 14px; }
.configured-field input, .configured-field select, .configured-field textarea { font-size: 16px; }
.configured-contact-card { padding: 32px; }
.configured-contact-layout { gap: 48px; }
.configured-message-counter { font-size: 13px; }
.footer-main > div:not(:first-child) { font-size: 14px; }
.footer-main h4 { font-size: 12px; letter-spacing: .12em; }
.footer-bottom { font-size: 12px; gap: 16px; margin-top: 44px; }

/* Tiny display labels and synthetic bold made fine details hard to read. */
.configurator-switch small, .model-picker-label, .door-group-label,
.door-start-facts span, .door-card-copy small, .door-card-copy strong,
.construction-option b, .construction-option small, .construction-option strong,
.delivery-service-note span, .window-mounting-options .list-option small,
.color-mode-options button small, .color-rule-note, .color-option span small,
.buildability-head span, .buildability-values small, .buildability-card p,
.summary dl, .summary > p:first-child, .price-row small, .hint, .price-note {
  font-size: 12px;
  line-height: 1.55;
}
.door-brand-heading span { font-weight: 700; }
.configurator-switch b, .door-card-copy b, .construction-option b,
.door-group-label, .color-mode-options button b, .delivery-service-note strong {
  line-height: 1.4;
}

/* Keep text on its natural pixel grid; image-only product zooms still work. */
.reveal, .config-step.active, .portfolio-world, .portfolio-intro,
.service-portfolio, .model-card, .model-card:hover {
  opacity: 1;
  transform: none;
  animation: none;
  transition: border-color .2s ease;
  will-change: auto;
}
.config-cart-status:not(:empty) {
  left: 16px;
  right: 16px;
  margin-inline: auto;
  transform: none;
}

@media (max-width: 1050px) {
  .hero, .portfolio-hero { min-height: 600px; }
  .benefit-grid, .service-portfolio__grid { column-gap: 24px; }
}
@media (max-width: 720px) {
  .hero, .portfolio-hero { min-height: 570px; padding-block: 76px; }
  .hero h1, .portfolio-hero h1, .configured-page-intro h1 {
    font-size: clamp(2.4rem, 10vw, 3.5rem);
    line-height: 1.12;
  }
  .hero-content > p:not(.eyebrow), .portfolio-hero__content > p:not(.eyebrow) { font-size: 16px; }
  .hero-actions { gap: 24px; }
  .section, .portfolio-world, .service-portfolio { padding-block: 64px; }
  .intro, .service, .portfolio-intro { gap: 32px; }
  .intro-copy .lead, .portfolio-intro__copy .lead { font-size: 19px; }
  .products .product-card, .products .product-card:first-child { height: 360px; }
  .products .product-grid { gap: 20px; }
  .products .product-card h3 { font-size: 27px; }
  .catalog-title-row h3 { font-size: 21px; }
  .catalog-block + .catalog-block { margin-top: 48px; padding-top: 44px; }
  .benefit-grid article { min-height: auto; }
  .benefit-grid article > span { margin-bottom: 16px; }
  .inspiration { height: 420px; }
  .portfolio-world__heading { gap: 24px; margin-bottom: 32px; }
  .service-portfolio__grid article { min-height: auto; }
  .service-portfolio__grid h3 { margin-top: 0; }
  .configured-page-intro { padding-block: 44px; }
  .configured-contact-card { padding: 24px 20px; }
  .configured-contact-layout { gap: 32px; }
  .configured-page-intro > p:last-child { font-size: 16px; }
}
