/* Shared public-site presentation. Product photographs and technical content stay intact. */
body.fh-site {
  --ink:#172923;
  --muted:#586a62;
  --line:#dbe5df;
  --paper:#f7f9f7;
  --charcoal:#172923;
  --cyan:#176c65;
  --mint:#edf3ef;
  --radius:8px;
  --fh-surface:#edf3ef;
  --fh-gutter:clamp(20px,5vw,72px);
  background:#fff;
  color:var(--ink);
  line-height:1.65;
}

/* The same stable white header on every public route, including before scrolling. */
body.fh-site .site-header[data-header],
body.fh-site .site-header[data-header].is-scrolled,
body.fh-site .site-header[data-header].is-open {
  background:#fff;
  color:var(--ink);
  box-shadow:0 1px 0 var(--line);
  backdrop-filter:none;
}
body.fh-site .site-header[data-header] .brand,
body.fh-site .site-header[data-header] .site-nav { color:var(--ink); }
body.fh-site .site-header[data-header] .brand-mark { border-color:#9cafa5; border-radius:7px; }
body.fh-site .site-header[data-header] .product-menu { color:var(--ink); }
body.fh-site .product-menu-description { color:var(--muted); }

/* All primary introductions share the same surface, type scale and side gutters. */
body.fh-site .fh-hero,
body.fh-site :is(.page-hero,.hero,.product-review-hero,.selection-hero,.application-intro,.led-strips-hero).fh-hero {
  position:relative;
  display:block;
  min-height:0;
  overflow:visible;
  margin:0;
  padding-block:132px 56px;
  padding-inline:max(var(--fh-gutter),calc((100% - var(--max))/2));
  background:var(--fh-surface);
  color:var(--ink);
  border-block-end:1px solid var(--line);
}
body.fh-site .fh-hero::before,
body.fh-site .fh-hero::after,
body.fh-site .fh-hero .hero-scrim { display:none; }
body.fh-site .fh-hero.fh-hero--media {
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
  align-items:center;
  gap:clamp(28px,4.5vw,64px);
}
body.fh-site .fh-hero .fh-hero-copy {
  position:relative;
  z-index:1;
  order:1;
  width:100%;
  max-width:800px;
  min-width:0;
  margin:0;
}
body.fh-site .fh-hero h1,
body.fh-site :is(.page-hero,.hero,.product-review-hero,.selection-hero,.application-intro,.led-strips-hero).fh-hero h1 {
  max-width:23ch;
  margin:14px 0 20px;
  color:var(--ink);
  font-size:clamp(34px,4vw,52px);
  font-weight:720;
  line-height:1.12;
  letter-spacing:-.035em;
  text-wrap:balance;
  overflow-wrap:break-word;
}
body.fh-site .fh-hero .fh-hero-copy >p:not(.eyebrow),
body.fh-site .fh-hero >p:not(.eyebrow),
body.fh-site .fh-hero .selection-lead {
  width:auto;
  max-width:65ch;
  margin-block:0 20px;
  color:var(--muted);
  font-size:16px;
  line-height:1.75;
}
body.fh-site .fh-hero .eyebrow {
  margin-block:0 12px;
  color:var(--cyan);
  font-size:11px;
  line-height:1.5;
  letter-spacing:.1em;
}
body.fh-site .fh-hero .breadcrumb {
  margin-block:0 26px;
  color:var(--muted);
  font-size:13px;
  line-height:1.6;
}
body.fh-site .fh-hero .breadcrumb a { color:#365a4d; }
body.fh-site .fh-hero .breadcrumb a:hover { color:var(--cyan); }
body.fh-site .fh-hero :is(.hero-actions,.page-hero-actions,.selection-actions,.led-strips-actions) {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px 22px;
  margin-block-start:26px;
}
body.fh-site .fh-hero .hero-capabilities {
  max-width:560px;
  margin-block:22px;
  color:#385448;
  font-size:14px;
  font-weight:600;
}
body.fh-site .fh-hero .hero-brief-note,
body.fh-site .fh-hero .selection-order {
  margin-block-start:18px;
  color:var(--muted);
  font-size:13px;
  line-height:1.6;
}
body.fh-site .fh-hero .fh-hero-visual {
  position:relative;
  order:2;
  width:100%;
  min-width:0;
  margin:0;
  padding:16px;
  border:1px solid #d5e0d9;
  border-radius:10px;
  background:#fff;
}
body.fh-site .fh-hero .fh-hero-visual img {
  position:static;
  inset:auto;
  display:block;
  width:100%;
  height:360px;
  max-height:none;
  margin:0;
  padding:0;
  border:0;
  border-radius:4px;
  aspect-ratio:auto;
  opacity:1;
  transform:none;
  background:transparent;
  object-fit:contain!important;
  object-position:center!important;
}
body.fh-site .fh-hero .fh-hero-visual figcaption {
  margin-block:10px 0;
  padding:0;
  color:var(--muted);
  font-size:12px;
  line-height:1.6;
  text-align:start;
}
/* The strip page already has a breadcrumb followed by its own split grid. */
body.fh-site .led-strips-hero.fh-hero.fh-hero--media { display:block; }
body.fh-site .fh-hero .led-strips-hero-grid {
  grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);
  gap:clamp(28px,4.5vw,64px);
  margin-block-start:0;
}
body.fh-site .fh-hero .led-strips-tags { margin-block-start:22px; }

/* Older product-route links use the same light current-family treatment. */
body.fh-site .product-routebar {
  border-color:var(--line);
  background:var(--paper);
  box-shadow:none;
  backdrop-filter:none;
}
body.fh-site .product-routebar a { border-color:var(--line); border-radius:6px; color:#385448; }
body.fh-site .product-routebar a:hover,
body.fh-site .product-routebar a.is-active { border-color:#bad1c7; background:#e6efea; color:var(--ink); }
body.fh-site .product-routebar a span,
body.fh-site .led-strips-jump a { color:var(--cyan); }

/* Common actions: a dark primary button and a bordered secondary button. */
body.fh-site .button {
  min-height:46px;
  padding:12px 20px;
  border:1px solid transparent;
  border-radius:7px;
  font-size:14px;
  font-weight:680;
  line-height:1.45;
}
body.fh-site .button:hover { transform:none; }
body.fh-site .button.button-dark {
  border-color:var(--ink);
  background:var(--ink);
  color:#fff;
}
body.fh-site .button.button-dark:hover { border-color:#255447; background:#255447; }
body.fh-site .button.button-light,
body.fh-site .fh-hero .button.button-light {
  border-color:#a9bdb1;
  background:#fff;
  color:#254b3b;
}
body.fh-site .button.button-light:hover { border-color:#719b87; background:#f5f8f5; }
body.fh-site .hero-text-link,
body.fh-site .fh-hero .hero-text-link,
body.fh-site .fh-hero .text-link { color:var(--cyan); border-color:#9ebeb0; }
body.fh-site :is(.button,.text-link,.hero-text-link):focus-visible { outline:3px solid #438c74; outline-offset:4px; }

/* Shared reading rhythm and quiet cards, without changing page-specific grids. */
body.fh-site main >.section-pad:not(.fh-hero):not(.family-scope-band):not(.led-strips-jump) {
  padding-block:clamp(40px,4.5vw,64px);
}
body.fh-site main .section-heading { margin-block-end:28px; }
body.fh-site main .section-heading h2,
body.fh-site main :is(.sample-section,.application-story-copy,.family-assembly-intro,.family-component-next)>h2,
body.fh-site main .cta h2,
body.fh-site main .lead-band h2 {
  color:var(--ink);
  font-size:clamp(28px,3.1vw,40px);
  line-height:1.2;
  letter-spacing:-.025em;
  text-wrap:balance;
}
body.fh-site main .section-heading>p:not(.eyebrow) { color:var(--muted); line-height:1.75; }
body.fh-site :is(.product-card,.official-product-card,.series-card,.format-card,.product-variant,.inspiration-card,.led-strips-path-card,.faq-item),
body.fh-site .family-choice-grid>a {
  border-color:var(--line);
  border-radius:9px;
  background:#fff;
  box-shadow:none;
}
body.fh-site :is(.product-card,.official-product-card,.series-card,.format-card,.inspiration-card):hover,
body.fh-site .family-choice-grid>a:hover { border-color:#93b4a3; box-shadow:none; transform:none; }
body.fh-site :is(.product-card,.official-product-card,.series-card,.format-card,.product-variant) h3 { color:var(--ink); line-height:1.3; }
body.fh-site :is(.product-card,.official-product-card,.series-card,.format-card,.product-variant) p { color:var(--muted); line-height:1.7; }
body.fh-site .faq-item summary { color:var(--ink); line-height:1.5; }
body.fh-site .faq-item p { color:var(--muted); line-height:1.75; }

/* Keep specification tables semantic and horizontally scrollable where required. */
body.fh-site :is(.technical-table-wrap,.led-data-wrap) { border-color:var(--line); border-radius:8px; background:#fff; }
body.fh-site :is(.technical-table,.led-data-table) { color:var(--ink); background:#fff; }
body.fh-site :is(.technical-table,.led-data-table) caption {
  padding:13px 16px;
  color:#2d5845;
  background:var(--fh-surface);
  font-size:14px;
  font-weight:680;
  line-height:1.5;
  text-align:start;
}
body.fh-site :is(.technical-table,.led-data-table) :is(th,td) { border-color:var(--line); line-height:1.6; }
body.fh-site :is(.technical-table-section,.led-table-group) th { color:#2d5845; background:#edf3ef; }
body.fh-site .specification-table th[scope="row"] { background:#f6f8f6; }
body.fh-site main .cta,
body.fh-site main .lead-band,
body.fh-site main .led-strips-quote { background:var(--fh-surface); color:var(--ink); }
body.fh-site main :is(.cta,.lead-band,.led-strips-quote) p:not(.eyebrow) { color:var(--muted); }

/* Former dark reading sections share the same light surfaces as the catalogue. */
body.fh-site main .process-section,
body.fh-site main .technical-options-section { background:var(--paper); color:var(--ink); }
body.fh-site .process-section .section-heading h2,
body.fh-site .process-section .process-step h3,
body.fh-site .process-section .project-brief h3 { color:var(--ink); }
body.fh-site .process-section .process-grid { border-color:var(--line); background:var(--line); }
body.fh-site .process-section .process-step { background:#fff; color:var(--ink); }
body.fh-site .process-section .process-step span { color:var(--cyan); }
body.fh-site .process-section .process-step p { color:var(--muted); }
body.fh-site .process-section .project-brief { border-color:var(--line); background:#fff; color:var(--ink); }
body.fh-site .process-section .project-brief li { color:var(--muted); }
body.fh-site .process-section .project-brief li::before { background:var(--cyan); }
body.fh-site .process-section :is(.buyer-documentation-note,.documentation-boundary) {
  border-color:var(--line);
  background:var(--fh-surface);
  color:var(--muted);
}
body.fh-site .process-section :is(.buyer-documentation-note,.documentation-boundary) strong { color:var(--ink); }
body.fh-site .technical-options-section :is(h2,h3,h4,strong,summary) { color:var(--ink); }
body.fh-site .technical-options-section p,
body.fh-site .technical-options-section .technical-options-summary p { color:var(--muted); }
body.fh-site .technical-options-section dt { color:var(--cyan); }
body.fh-site .technical-options-section dd { color:var(--ink); }
body.fh-site .technical-options-section a:not(.button),
body.fh-site .technical-options-section .technical-options-summary .text-link { color:var(--cyan); }
body.fh-site .technical-options-section :is(.light-entry-guide,.panel-structure-guide,.technical-disclosure) {
  border-color:var(--line);
  background:#fff;
  color:var(--ink);
}
body.fh-site .technical-options-section :is(.technical-specification,.technical-specification-heading,.technical-disclosure>summary,.light-entry-guide header,.panel-structure-guide header) { border-color:var(--line); }
body.fh-site .technical-options-section .technical-specification-heading { background:var(--fh-surface); }
body.fh-site .technical-options-section .technical-disclosure>summary::after { border-color:#a9bdb1; color:var(--ink); }
body.fh-site .product-sample-records .frameless-proof-grid figcaption strong { color:var(--ink); }
body.fh-site .product-sample-records .frameless-proof-grid figcaption p { color:var(--muted); }
body.fh-site .fh-hero .fh-hero-copy >p:is(.hero-brief-note,.selection-order) { margin-block-start:18px; margin-block-end:0; }
body.fh-site .fh-application-content >.inspiration-gallery { margin-block-start:0; }

/* One footer shell and contact treatment throughout the public catalogue. */
body.fh-site .site-footer {
  display:grid;
  grid-template-columns:minmax(220px,1fr) minmax(260px,1.15fr) minmax(230px,1fr);
  align-items:start;
  gap:32px 46px;
  padding-block:44px;
  padding-inline:max(var(--fh-gutter),calc((100% - var(--max))/2));
  border-block-start:1px solid var(--line);
  background:#f3f6f3;
  color:var(--muted);
  font-size:13px;
  line-height:1.75;
}
body.fh-site .footer-brand { max-width:330px; gap:8px; }
body.fh-site .footer-brand strong { color:var(--ink); font-size:18px; line-height:1.4; }
body.fh-site .footer-nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px 18px; }
body.fh-site .site-footer a { color:#345448; font-size:13px; font-weight:600; }
body.fh-site .site-footer a:hover,
body.fh-site .site-footer a[aria-current="page"] { color:var(--cyan); text-decoration:underline; text-underline-offset:4px; }
body.fh-site .footer-contact { justify-items:start; text-align:start; gap:8px; }
body.fh-site .footer-languages { grid-column:1 / -1; flex-wrap:wrap; gap:8px 16px; margin-block-start:8px; }
body.fh-site .site-footer>p { grid-column:1 / -1; margin:0; padding-block-start:16px; border-block-start:1px solid var(--line); font-size:12px; }
body.fh-site .success-panel { border:1px solid var(--line); box-shadow:none; background:#fff; }
body.fh-site .success-panel h1 { color:var(--ink); font-size:clamp(34px,4vw,52px); line-height:1.12; }
/* Pale labels keep the remaining dark accent panels readable. */
body.fh-site .contact-panel .contact-label,
body.fh-site .method-directory .detail-number { color:#b9d8c9; }

html[dir="rtl"] body.fh-site .fh-hero h1,
html[dir="rtl"] body.fh-site main .section-heading h2 { letter-spacing:0; }
html[dir="rtl"] body.fh-site .fh-hero .eyebrow { letter-spacing:0; }

@media(min-width:761px) and (max-width:1000px) {
  body.fh-site .site-header[data-header] { gap:18px; padding-inline:20px; }
  body.fh-site .site-header[data-header] .brand { min-width:145px; }
  body.fh-site .site-header[data-header] .site-nav { gap:16px; font-size:13px; }
  body.fh-site .fh-hero.fh-hero--media { grid-template-columns:minmax(0,1fr) minmax(0,.9fr); gap:28px; }
  body.fh-site .fh-hero .fh-hero-visual img { height:320px; }
  body.fh-site .site-footer { grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); }
  body.fh-site .footer-contact { grid-column:2; }
}
@media(max-width:760px) {
  body.fh-site .site-header[data-header] .site-nav { background:#fff; color:var(--ink); }
  body.fh-site .fh-hero,
  body.fh-site :is(.page-hero,.hero,.product-review-hero,.selection-hero,.application-intro,.led-strips-hero).fh-hero {
    padding-block:112px 36px;
  }
  body.fh-site .fh-hero.fh-hero--media,
  body.fh-site .fh-hero .led-strips-hero-grid { grid-template-columns:minmax(0,1fr); gap:28px; }
  body.fh-site .led-strips-hero.fh-hero.fh-hero--media { display:block; }
  body.fh-site .fh-hero h1,
  body.fh-site :is(.page-hero,.hero,.product-review-hero,.selection-hero,.application-intro,.led-strips-hero).fh-hero h1 {
    max-width:24ch;
    font-size:34px;
    line-height:1.15;
    letter-spacing:-.025em;
  }
  body.fh-site .fh-hero .breadcrumb { margin-block-end:22px; font-size:12px; }
  body.fh-site .fh-hero .fh-hero-visual { padding:12px; }
  body.fh-site .fh-hero .fh-hero-visual img { height:250px; }
  body.fh-site .fh-hero .hero-capabilities { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px 16px; font-size:13px; }
  body.fh-site .fh-hero .fh-hero-copy >p:not(.eyebrow),
  body.fh-site .fh-hero >p:not(.eyebrow) { font-size:16px; line-height:1.7; }
  body.fh-site .fh-hero .page-hero-actions .button { min-width:0; }
  body.fh-site main .section-heading h2,
  body.fh-site main .cta h2,
  body.fh-site main .lead-band h2 { font-size:28px; }
  body.fh-site .site-footer { grid-template-columns:minmax(0,1fr); gap:26px; padding-block:34px; }
  body.fh-site .footer-contact { grid-column:auto; }
  body.fh-site .footer-nav { max-width:440px; }
}
@media(prefers-reduced-motion:reduce) {
  body.fh-site .button,
  body.fh-site .site-header[data-header] { transition:none; }
}
@media print {
  body.fh-site { background:#fff; color:#111; }
  body.fh-site .fh-hero,
  body.fh-site :is(.page-hero,.hero,.product-review-hero,.selection-hero,.application-intro,.led-strips-hero).fh-hero { padding:0 0 20px; background:#fff; border:0; }
  body.fh-site .fh-hero .fh-hero-visual { display:none; }
  body.fh-site .fh-hero.fh-hero--media { display:block; }
}
