/* Barlow is a licensed, open-source alternative to the reference site's Tridonic-Metric. */
@font-face {
  font-family: 'Barlow';
  src: url('assets/fonts/barlow-latin-400.woff2') format('woff2');
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: 'Barlow';
  src: url('assets/fonts/barlow-latin-500.woff2') format('woff2');
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: 'Barlow';
  src: url('assets/fonts/barlow-latin-600.woff2') format('woff2');
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: 'Barlow';
  src: url('assets/fonts/barlow-latin-700.woff2') format('woff2');
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}
/* Shared type scale. Keep page-specific layouts and imagery in their own sheets. */
:root {
  --font-sans: 'Barlow', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --font-editorial: var(--font-sans);
  --type-display: clamp(2.125rem, 1.25rem + 4vw, 4.75rem);
  --type-section: clamp(2rem, 3.15vw, 2.875rem);
  --type-feature: clamp(1.875rem, 2.6vw, 2.375rem);
  --type-card: 1.5rem;
  --type-body: 1.0625rem;
  --type-small: .875rem;
  --type-caption: .75rem;
  --text-leading: 1.65;
  --section-space: clamp(3.75rem, 6.2vw, 6rem);
}
body { font-family:var(--font-sans); font-weight:400; font-variant-numeric:lining-nums; font-size:var(--type-body); line-height:var(--text-leading); -webkit-text-size-adjust:100%; text-size-adjust:100%; }
button,input,select,textarea { font-family:inherit; }
button,strong,b { font-weight:700; }
h1,h2,h3,h4,h5,h6 { font-family:var(--font-sans); font-weight:700; text-wrap:balance; }
p { text-wrap:pretty; }
.cinema-hero h1,.cover-copy h1 { font-family:var(--font-sans); font-weight:700; font-size:var(--type-display); line-height:1.08; letter-spacing:-.015em; }
.cover-copy h1 { font-size:clamp(2.75rem, 1.75rem + 3.3vw, 4.75rem); }
.cinema-hero h1 em,.cover-copy h1 em,.editorial-title em,.brand-intro h2 em,.footer-conversation h2 em {
  font-family:var(--font-editorial); font-style:normal; font-weight:inherit; letter-spacing:inherit; line-height:inherit;
}
.section h2,.quality-content h2,.range-heading h2,.section .brand-intro h2,.brand-intro h2 {
  font-size:var(--type-section); line-height:1.16; letter-spacing:-.015em; font-weight:700; margin:0 0 1.5rem;
}
.section,.quality-section,.company-section { padding-block:var(--section-space); }
.section p { line-height:var(--text-leading); }
.navlinks>a { font-size:1rem; font-weight:700; line-height:1.5; }
.eyebrow,.section-label,.section .eyebrow,.brand-intro .section-label,.company-section .section-label,.quality-content .section-label,.micro {
  font-size:var(--type-caption); font-weight:500; line-height:1.5; letter-spacing:.12em;
}
.button,.button.small,.cinema-actions .cinema-primary,.cinema-secondary,.plain-link,.text-link,.cover-link,
.quality-content>.plain-link,.company-section .plain-link,.explorer-content .plain-link,.logo-marquee-controls>.plain-link {
  font-size:1rem; line-height:1.5; letter-spacing:0; font-weight:700; min-height:44px;
}
.plain-link,.text-link { padding-top:8px; padding-bottom:8px; }
.cover-breadcrumb { font-size:var(--type-small); line-height:1.5; }
.cover-copy { max-width:510px; }
.cover-copy p { font-size:1.125rem; line-height:1.6; max-width:40ch; margin-bottom:1.5rem; }
.cover-copy h1 { margin-bottom:1.5rem; }
.cover-inner { padding-bottom:3rem; }
.cinema-eyebrow { font-size:var(--type-caption); letter-spacing:.12em; line-height:1.6; }
.cinema-content>p { font-size:1.125rem; line-height:1.65; max-width:43ch; margin-bottom:2rem; }
.cinema-brands>span { font-size:var(--type-caption); letter-spacing:.08em; line-height:1.6; }
.cinema-brands>div { flex-wrap:wrap; }
.page-index .company-section h2.editorial-title { font-size:clamp(2.75rem,4.5vw,4rem); font-weight:700; line-height:1.1; letter-spacing:-.015em; }
.page-index .company-copy>p:first-child { font-size:clamp(1.25rem,1.6vw,1.4375rem); line-height:1.6; letter-spacing:-.012em; max-width:43ch; }
.page-index .company-copy>p+p { font-size:1rem; line-height:1.8; color:#c4cabf; max-width:58ch; margin-bottom:1.25rem; }
.company-copy dl { margin-top:2rem; gap:2rem; }
.company-copy dt { font-size:var(--type-caption); line-height:1.5; letter-spacing:.06em; margin-bottom:.5rem; }
.company-copy dd { font-size:var(--type-small); line-height:1.6; }
.quality-content>p { font-size:1.0625rem; max-width:46ch; line-height:1.65; }
.quality-steps summary { font-size:1.125rem; font-weight:700; line-height:1.5; padding-block:1.125rem; }
.quality-steps p { font-size:1.0625rem; line-height:1.65; max-width:48ch; margin-bottom:1.5rem; }
.advantages { gap:2.5rem; margin-top:3rem; }
.advantages h3 { font-size:1.25rem; font-weight:700; line-height:1.4; letter-spacing:-.015em; margin-bottom:.75rem; }
.advantages p { font-size:1.0625rem; line-height:1.65; max-width:34ch; }
.brand-intro { gap:2rem; padding-bottom:2rem; margin-bottom:1.5rem; }
.brand-intro h2,.section .brand-intro h2 { margin:0; }
.brand-intro>p { font-size:1.0625rem; line-height:1.7; }
.logo-link-hint { font-size:var(--type-caption); }
.logo-motion-toggle { font-size:var(--type-small); }
.product-selection { padding-top:2.5rem; padding-bottom:3.75rem; }
.explorer-tab { font-size:1rem; line-height:1.5; font-weight:700; padding-block:1rem; }
.explorer-content h2 { font-size:var(--type-feature); font-weight:700; line-height:1.2; letter-spacing:-.025em; margin:0 0 1.25rem; }
.explorer-content .section-label { font-size:var(--type-caption); letter-spacing:.1em; margin-bottom:1rem; }
.explorer-content>p { font-size:1.0625rem; line-height:1.65; max-width:43ch; margin-bottom:1.5rem; }
.explorer-content dl { font-size:.9375rem; line-height:1.7; margin-bottom:1.5rem; padding-top:1.5rem; }
.explorer-content dt { font-weight:500; }
.explorer-content dd { line-height:1.7; }
.range-note,.image-note,.dialog-details .image-note { font-size:var(--type-caption)!important; line-height:1.7; max-width:90ch; color:#62695e!important; }
.compact-heading { margin-bottom:2rem; }
.compact-heading h2 { margin-bottom:.75rem; }
.compact-heading p { font-size:1.0625rem; max-width:60ch; }
.filter { font-size:var(--type-small); line-height:1.5; padding:11px 17px; min-height:44px; }
.result-count { font-size:var(--type-small); }
.product-card { display:flex; flex-direction:column; }
.product-copy { flex:1; display:flex; flex-direction:column; padding:1.75rem; }
.product-copy .micro { font-size:var(--type-caption); line-height:1.6; letter-spacing:.08em; }
.product-copy h3 { font-size:var(--type-card); font-weight:700; line-height:1.3; letter-spacing:-.015em; margin:1rem 0 .875rem; }
.product-copy p { font-size:1.0625rem; line-height:1.65; min-height:0; margin-bottom:1.5rem; }
.product-copy .tags { margin-top:auto; margin-bottom:1rem; }
.tags span { font-size:var(--type-caption); line-height:1.5; }
.product-copy .text-link { align-self:flex-start; }
.sourcing-callout>div { max-width:62ch; }
.sourcing-callout p { font-size:1.0625rem; line-height:1.65; }
.manufacturer { display:flex; flex-direction:column; }
.manufacturer h3 { font-size:1.125rem; font-weight:700; line-height:1.5; letter-spacing:-.012em; margin-bottom:.625rem; }
.manufacturer p { font-size:.9375rem; line-height:1.7; margin-bottom:1.5rem; max-width:36ch; }
.manufacturer-link { position:static; display:block; font-size:var(--type-small); line-height:1.5; margin-top:auto; }
.faq-full { max-width:960px; }
.faq-list summary { font-size:1.125rem; font-weight:700; line-height:1.5; padding-block:1.5rem; gap:2rem; }
.faq-list details p { font-size:1.0625rem; line-height:1.8; max-width:65ch; margin:0 2.5rem 1.75rem 0; }
.contact-layout { gap:clamp(3rem,6vw,6rem); }
.contact-layout>div>p { max-width:39ch; font-size:1.0625rem; }
.contact-method span { font-size:var(--type-small); line-height:1.5; margin-bottom:.5rem; }
.contact-method a { font-size:1.125rem; line-height:1.5; letter-spacing:-.01em; }
.contact-note { font-size:var(--type-small); line-height:1.8; }
.inquiry-form h2 { font-size:1.75rem; line-height:1.25; letter-spacing:-.025em; margin-bottom:.875rem; }
.inquiry-form>p { font-size:.9375rem; line-height:1.7; margin-bottom:1.75rem; }
.inquiry-form label { font-size:var(--type-small); font-weight:500; line-height:1.5; margin-bottom:1.5rem; }
.inquiry-form input,.inquiry-form select,.inquiry-form textarea { font-size:1rem; line-height:1.5; padding:13px 14px; margin-top:.625rem; }
.inquiry-form input::placeholder,.inquiry-form textarea::placeholder { color:#757c71; opacity:1; }
.inquiry-form .form-note,.form-feedback { font-size:var(--type-small); line-height:1.65; }
.dialog-details h2 { font-size:var(--type-feature); font-weight:700; line-height:1.2; letter-spacing:-.025em; }
.dialog-details h3 { font-size:1rem; line-height:1.5; font-weight:700; margin-top:1.5rem; }
.dialog-details p,.dialog-details li { font-size:1rem; line-height:1.65; }
.dialog-details li+li { margin-top:.5rem; }
.footer-overline,.footer-directory h3 { font-size:var(--type-caption); line-height:1.5; letter-spacing:.12em; }
.footer-conversation h2 { font-family:var(--font-sans); font-weight:700; font-size:clamp(2.75rem,1.5rem + 3.5vw,4.75rem); line-height:1.12; letter-spacing:-.015em; }
.footer-conversation h2 em { letter-spacing:-.015em; }
.footer-invitation-bottom p,.footer-identity>p { font-size:1rem; line-height:1.65; }
.footer-project-link { font-size:1rem; line-height:1.5; font-weight:700; }
.footer-location { font-size:var(--type-caption); line-height:1.7; }
.footer-directory h3 { margin-bottom:1.25rem; }
.footer-explore a { font-size:1rem; line-height:1.5; margin-bottom:.875rem; }
.footer-email-link { font-size:clamp(1.125rem,1.65vw,1.5rem); letter-spacing:-.015em; line-height:1.5; }
.footer-contact-options,.footer-directory p.footer-market { font-size:var(--type-small); line-height:1.65; }
.footer-colophon,.footer-colophon>span { font-size:var(--type-caption); line-height:1.7; }
.footer-top { font-size:var(--type-small); }
@media(max-width:1100px) {
  .product-copy { padding:1.5rem; }
  .product-grid { gap:1.5rem; }
  .product-copy h3 { font-size:1.375rem; }
  .footer-directory { gap:2rem; }
  .footer-contact-options { flex-wrap:wrap; gap:.625rem 1.5rem; }
}
@media(min-width:701px) and (max-width:950px) {
  .manufacturer { padding-inline:1.25rem; }
  .manufacturer h3 { font-size:1rem; }
  .contact-layout { grid-template-columns:1fr; }
  .contact-layout>div { max-width:600px; }
  .inquiry-form { max-width:720px; width:100%; }
  .form-grid { grid-template-columns:1fr 1fr; gap:1rem; }
}
@media(max-width:700px) {
  :root { --type-feature:1.875rem; --section-space:3.75rem; }
  .navlinks>a { font-size:1rem; }
  .cover-copy p { font-size:1rem; max-width:38ch; }
  .cover-breadcrumb { font-size:.8125rem; flex-wrap:wrap; gap:.75rem; }
  .cinema-eyebrow { align-items:flex-start; font-size:.75rem; letter-spacing:.065em; max-width:320px; }
  .cinema-eyebrow i { margin-top:.7em; flex-shrink:0; }
  .cinema-content>p { font-size:1rem; max-width:38ch; }
  .cinema-brands { display:block; }
  .cinema-brands>span { font-size:.75rem; max-width:none; margin-bottom:.75rem; }
  .cinema-brands>div { justify-content:flex-start; gap:1.75rem; }
  .cinema-hero { min-height:720px; }
  .cinema-content { padding-top:3.5rem; padding-bottom:9rem; }
  .company-layout { gap:2.5rem; }
  .company-copy dl { flex-wrap:wrap; justify-content:flex-start; gap:1.25rem 2rem; }
  .quality-layout { gap:2.5rem; }
  .quality-steps summary { font-size:1rem; }
  .advantages { gap:2rem; }
  .advantages p { font-size:.9375rem; }
  .brand-intro>p { padding-left:1rem; font-size:1rem; }
  .product-selection { padding-top:1rem; padding-bottom:3rem; }
  .explorer-nav { gap:1.75rem; padding-inline:2px; }
  .explorer-tab { font-size:.9375rem; }
  .explorer-content dl { grid-template-columns:100px minmax(0,1fr); gap:1rem; font-size:.9375rem; }
  .product-copy { padding:1.5rem 0; }
  .product-copy h3 { font-size:1.5rem; }
  .product-grid { row-gap:2rem; }
  .filter-bar { gap:.5rem; }
  .filter { font-size:.875rem; padding:10px 12px; }
  .manufacturer,.manufacturer:first-child,.manufacturer:last-child { padding-block:1.75rem; }
  .manufacturer>p { max-width:100%; margin-bottom:1rem; }
  .manufacturer-link { position:static; font-size:.875rem; }
  .faq-list summary { font-size:1.0625rem; gap:1.25rem; padding-block:1.25rem; }
  .faq-list details p { font-size:1rem; line-height:1.8; margin-right:1.5rem; }
  .contact-layout { gap:2.75rem; }
  .contact-method a { font-size:1.0625rem; }
  .inquiry-form { padding:1.75rem 1.25rem; }
  .inquiry-form h2 { font-size:1.625rem; }
  .form-grid { grid-template-columns:1fr; gap:0; }
  .dialog-details { padding:1.75rem 1.25rem; }
  .footer-invitation { padding-block:2.75rem 2rem; }
  .footer-overline { font-size:.75rem; letter-spacing:.1em; }
  .footer-conversation h2 em { line-height:1.14; }
  .footer-project-link { font-size:.9375rem; }
  .footer-invitation-bottom p { font-size:.9375rem; max-width:35ch; }
  .footer-identity { grid-template-columns:1fr; gap:0; }
  .footer-identity>p { font-size:.9375rem; }
  .footer-location { margin-top:1.25rem; font-size:.75rem; }
  .footer-directory { gap:2rem; }
  .footer-directory h3 { font-size:.75rem; }
  .footer-email-link { font-size:clamp(1rem,4.7vw,1.375rem); }
  .footer-colophon { flex-wrap:wrap; gap:1rem; }
  .footer-colophon>span { font-size:.75rem; max-width:100%; }
  .footer-top { font-size:.875rem; }
}
@media(max-width:370px) {
  .advantages { grid-template-columns:1fr; }
  .cinema-hero { min-height:740px; }
  .cinema-content { padding-top:2.75rem; }
  .explorer-content dl { grid-template-columns:1fr; gap:.375rem; }
  .explorer-content dd { margin-bottom:.875rem; }
  .cover-inner { min-height:600px; }
  .footer-contact-options { align-items:flex-start; flex-direction:column; }
}
