/* Shared type system: expressive headings, comfortable reading, clear UI. */
:root {
  --body: 'DM Sans', Arial, sans-serif;
  --display: 'Plus Jakarta Sans', Arial, sans-serif;
  --muted: #4b656d;
}
body { font-size: 16px; line-height: 1.7; }
h1, h2, h3, .brand > span {
  font-family: var(--display);
  font-weight: 600;
  letter-spacing: -.035em;
}
h1, h2 { line-height: 1.13; }
h3 { line-height: 1.35; letter-spacing: -.025em; }
.home-page h2 { font-weight: 600; letter-spacing: -.04em; line-height: 1.15; }
.brand > span { font-weight: 700; letter-spacing: -.035em; }
.brand small { font-family: var(--body); letter-spacing: .055em; }
.desktop-nav { font-size: 14px; font-weight: 500; gap: 24px; }
.button, .home-page .button { font-size: 14px; font-weight: 600; letter-spacing: -.01em; }
.topline { font-size: 11px; letter-spacing: .06em; }
.eyebrow, .micro, .home-page .eyebrow { font-size: 12px; font-weight: 600; letter-spacing: .075em; line-height: 1.5; }
.section-heading > div > p, .home-page .section-heading > p,
.home-page .collection-intro p, .business-copy > p:not(.lede),
.story-copy > p:not(.lede), .setup-steps p, .home-finale p,
.faq p, .product-summary > p:not(.tagline), .contact-aside p,
.contact-aside li p, .prose p, .planning p, .cta-band p {
  font-size: 16px; line-height: 1.8;
}
.home-page .business-copy .lede { font-size: 21px; line-height: 1.6; }
.faq summary, .home-faq .faq summary { font-size: 16px; font-weight: 500; line-height: 1.6; }
.home-page .product-info h3, .product-info h3 { font-size: 19px; font-weight: 600; letter-spacing: -.025em; line-height: 1.4; }
.product-info .micro, .home-product-grid .product-info .micro { font-size: 11px; letter-spacing: .05em; line-height: 1.5; }
.product-label { font-size: 11px; }
.image-link, .inline-link, .index-all, .carousel-bottom, .catalogue-meta,
.breadcrumbs, .filter-select, .comparison-selects label { font-size: 13px; }
.machine-index > button { font-family: var(--display); font-size: 19px; font-weight: 500; letter-spacing: -.025em; }
.index-number { font-family: var(--body); font-size: 12px; color: #527078; }
.stage-caption, .business-visual-label, .story-note > span { font-size: 11px; letter-spacing: .06em; }
.stage-details .micro { font-size: 12px; }
.stage-details h3 { font-size: 24px; font-weight: 600; }
.stage-details > a { font-size: 13px; }
.story-note p, .business-visual-bottom, .business-visual-bottom > span:first-child { font-size: 14px; letter-spacing: 0; }
.setup-steps h3 { font-weight: 600; font-size: 23px; letter-spacing: -.025em; }
.setup-steps > div > span { font-size: 12px; }
.home-finale h2 { line-height: 1.08; }
.finale-action { font-size: 16px; font-weight: 500; }
.calculator-inputs label, .enquiry-form > label, .field-pair label { font-size: 14px; line-height: 1.5; }
input:not([type=range],[type=checkbox]), select, textarea,
.enquiry-form .field-pair input, .filter-select select, .comparison-selects select { font-size: 16px; }
.form-intro, .enquiry-form .consent, .small-note { font-size: 13px !important; line-height: 1.75; }
.form-error, .form-success p, #toast { font-size: 14px; }
.quick-spec dt, .gallery-caption, .sticky-enquiry .micro { font-size: 12px; letter-spacing: .02em; }
.quick-spec dd, .comparison-table, .calculator-results > p,
.calculator-results dl > div, .contact-aside li { font-size: 15px; }
.calculator-results h2 { font-family: var(--display); letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.comparison-table h3 { font-size: 18px; }

/* Give the larger type its own space above the complete, uncropped film. */
.cinema-hero { min-height: max(100svh, calc(510px + 33.333333vw + 72px)); }
.cinema-hero .hero-top { padding-top: max(132px, calc((100svh - 33.333333vw - 310px) / 2)); }
.cinema-hero .hero-title h1 { font-size: clamp(46px, 4.5vw, 68px); font-weight: 600; line-height: 1.1; letter-spacing: -.045em; }
.cinema-hero .hero-title .eyebrow { font-size: 12px; letter-spacing: .08em; }
.cinema-hero .hero-intro p { font-size: 16px; line-height: 1.75; color: #3c6068; }
.cinema-hero .hero-intro .button { font-size: 14px; }
.cinema-hero .hero-foot { font-size: 12px; min-height: 72px; }
.cinema-hero .hero-film { bottom: 72px; }
.cinema-hero .film-caption { bottom: -62px; }
.cinema-hero .film-caption button, .cinema-hero .discover-link { font-size: 12px; }
.range-ribbon span:first-child { font-size: 14px; }
.range-ribbon a { font-size: 17px; letter-spacing: -.015em; }

@media (max-width: 1150px) {
  .desktop-nav { font-size: 13px; gap: 18px; }
  .nav-inner { gap: 20px; }
  .machine-index > button { font-size: 17px; }
}
@media (max-width: 900px) {
  .home-page .section-heading > p { max-width: 320px; }
  .machine-index > button { font-size: 16px; }
  .range-ribbon a { font-size: 15px; }
  .stage-details h3 { font-size: 22px; }
}
@media (max-width: 600px) {
  body { font-size: 15px; }
  .home-page h2 { font-size: 35px; }
  .home-page .brand > span, .brand > span { font-size: 12px; }
  .brand small, .home-page .brand small { font-size: 6px; }
  .nav-quote, .home-page .nav-quote { font-size: 12px; padding: 9px 10px; }
  .topline { font-size: 9px; }
  .button, .home-page .button { font-size: 14px; }
  .cinema-hero { min-height: calc(535px + 33.333333vw + 90px); }
  .cinema-hero .hero-top { padding-top: 128px; }
  .cinema-hero .hero-title h1 { font-size: clamp(35px, 10vw, 58px); line-height: 1.12; letter-spacing: -.045em; }
  .cinema-hero .hero-title .eyebrow { font-size: 10px; letter-spacing: .055em; }
  .cinema-hero .hero-intro p { font-size: 15px; max-width: 355px; }
  .cinema-hero .hero-intro .button { font-size: 13px; padding: 13px 16px; gap: 12px; }
  .cinema-hero .hero-film { bottom: 90px; }
  .cinema-hero .hero-foot { min-height: 90px; font-size: 11px; padding-right: calc(5.5% + 110px); }
  .cinema-hero .discover-link { font-size: 11px; }
  .cinema-hero .film-caption { bottom: -70px; }
  .cinema-hero .film-caption button { font-size: 11px; }
  .home-page .eyebrow, .eyebrow, .micro { font-size: 11px; }
  .home-page .section-heading > p, .home-page .collection-intro p,
  .business-copy > p:not(.lede), .story-copy > p:not(.lede), .setup-steps p,
  .home-finale p, .faq p, .page-heading .lede, .prose p { font-size: 15px; }
  .home-page .business-copy .lede { font-size: 19px; }
  .machine-index > button { font-size: 14px; letter-spacing: -.025em; }
  .index-number { font-size: 11px; }
  .index-all, .carousel-bottom { font-size: 12px; }
  .stage-caption { font-size: 10px; }
  .stage-caption > span:last-child { font-size: 9px; }
  .stage-details .micro { font-size: 11px; }
  .stage-details h3 { font-size: 21px; }
  .stage-details > a { font-size: 0; }
  .home-product-grid .product-info h3, .product-info h3 { font-size: 16px; line-height: 1.4; }
  .home-product-grid .product-info .micro, .product-info .micro { font-size: 10px; letter-spacing: .025em; }
  .product-label { font-size: 10px; }
  .business-visual-bottom { font-size: 11px; }
  .business-visual-bottom > span:first-child { font-size: 13px; }
  .faq summary, .home-faq .faq summary { font-size: 15px; }
  .home-finale h2 { font-size: clamp(46px, 12.5vw, 70px); }
  .breadcrumbs, .catalogue-meta, .comparison-selects label span { font-size: 11px; }
  .comparison-table h3 { font-size: 16px; }
  .comparison-table .button { font-size: 12px; }
  .comparison-table { min-width: 740px; }
  .sticky-enquiry strong { font-size: 13px; }
  .sticky-enquiry .micro { font-size: 10px; }
}
@media (max-width: 360px) {
  .brand > span, .home-page .brand > span { font-size: 10px; }
  .brand small, .home-page .brand small { font-size: 5px; }
  .cinema-hero { min-height: calc(565px + 33.333333vw + 90px); }
  .cinema-hero .hero-title .eyebrow { font-size: 9px; }
  .cinema-hero .hero-intro .actions { flex-direction: column; }
  .machine-index > button { font-size: 13px; }
  .home-product-grid .product-info h3, .product-info h3 { font-size: 15px; }
  .home-product-grid .product-info, .product-grid .product-info { flex-wrap: wrap; }
}
