html { scroll-padding-top:100px; }
:focus-visible { outline:3px solid var(--lime); outline-offset:6px; }
button,summary { cursor:pointer; }
svg { width:21px; height:21px; flex-shrink:0; }
.site-nav { gap:24px; }
.site-nav a { display:inline-flex; align-items:center; gap:9px; }
.site-nav a[aria-current="page"] { color:var(--lime); }
.inner-page .site-header { background:#071a2ef5; border-bottom-color:var(--line); }
.brand img { height:auto; }
.hero { min-height:850px; }
.hero h1 { font-size:clamp(3.6rem,6.5vw,6.8rem); max-width:970px; line-height:1.05; }
.hero-copy { max-width:670px; }
.hero-shade { background:linear-gradient(90deg,#041222f7 0%,#041222db 35%,#04122244 78%),linear-gradient(0deg,#041222,transparent 45%); }
.visual-caption { position:absolute; bottom:18px; right:24px; color:#d4e1eb; font-size:.72rem; }
.media-caption { position:absolute; bottom:18px; left:20px; right:20px; z-index:2; font-size:.75rem; color:#fff; }
.solution-media img { position:absolute; }
.solution-content { padding:54px 44px; }
.solution h3 { font-size:clamp(2.2rem,3.1vw,3.2rem); }
.solution { min-height:630px; }
.collection-preview { background:#0b2238; padding-top:0; }
.heading-row { display:flex; align-items:end; justify-content:space-between; gap:35px; margin-bottom:40px; }
h2 { font-size:clamp(2rem,3.6vw,3.5rem); letter-spacing:-.045em; line-height:1.12; margin:0 0 24px; }
h3 { line-height:1.3; letter-spacing:-.025em; }
.heading-row h2 { margin-bottom:0; }
.heading-row .text-link { flex-shrink:0; display:flex; align-items:center; gap:9px; }
.preview-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.preview-card { border:1px solid var(--line); background:#081c30; transition:border-color .2s,transform .2s; }
.preview-card:hover { border-color:var(--lime); transform:translateY(-4px); }
.preview-card > img { width:100%; height:260px; object-fit:cover; }
.preview-card > div { padding:28px; position:relative; }
.preview-card span { text-transform:uppercase; color:var(--lime); font-size:.72rem; letter-spacing:.08em; font-weight:800; }
.preview-card h3 { font-size:1.65rem; margin:18px 0 14px; max-width:260px; }
.preview-card p { color:var(--muted); padding-right:15px; }
.preview-card b { font-size:1.45rem; color:var(--lime); }
.fine-print { font-size:.8rem; line-height:1.65; color:#a9bfd1; margin:24px 0 0; }
.contact-card { grid-template-columns:1.2fr 1fr; gap:55px; padding:60px; }
.contact-actions .button { font-size:clamp(.84rem,1.1vw,1rem); gap:12px; }
.contact-actions { min-width:0; }
.footer-links { display:flex; flex-wrap:wrap; gap:24px; border-top:1px solid var(--line); padding-top:24px; margin-top:24px; font-size:.8rem; color:var(--muted); }
.footer-links a:hover { color:var(--lime); }
.bipv-hero { padding-top:146px; padding-bottom:66px; display:grid; grid-template-columns:1.15fr .85fr; gap:45px; align-items:center; }
.breadcrumb { display:block; color:var(--muted); font-size:.8rem; margin:0 0 28px; }
.bipv-hero h1,.page-heading h1 { font-size:clamp(3.8rem,6.5vw,6.3rem); line-height:1.05; letter-spacing:-.06em; margin:0 0 30px; }
h1 em { color:var(--lime); font-style:normal; }
.lead { color:#c4d5e3; font-size:1.16rem; line-height:1.75; max-width:760px; }
.bipv-hero .hero-actions { gap:12px; }
.bipv-hero .button { font-size:.85rem; gap:15px; }
.hero-footnote { margin-top:34px; color:var(--muted); font-size:.82rem; }
.photo { margin:0; }
.photo img { width:100%; object-fit:cover; height:auto; }
.photo figcaption { color:var(--muted); font-size:.76rem; line-height:1.6; padding-top:14px; }
.bipv-hero .photo img { height:660px; object-fit:cover; }
.section-nav { border-block:1px solid var(--line); background:#0c2741; }
.section-nav > div { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 22px; }
.section-nav a { padding:20px 0; color:#d1e0eb; font-size:.84rem; font-weight:700; }
.section-nav a:hover { color:var(--lime); }
.compare-row { display:flex; gap:24px; align-items:center; padding-top:30px; margin-top:34px; border-top:1px solid #c4d1d9; }
.compare-row div { flex:1; }
.compare-row span:not(.compare-arrow) { font-size:.75rem; text-transform:uppercase; letter-spacing:.08em; color:#416378; }
.compare-row strong { display:block; font-size:1.2rem; margin-top:6px; }
.compare-arrow { color:#177eaa; font-size:2rem; }
.finish-layout { display:grid; grid-template-columns:1fr 1fr; gap:76px; align-items:center; }
.finish-preview { background:#0d2c48; border:1px solid var(--line); }
.sample-stage { background:#edf1f2; padding:50px; min-height:380px; display:grid; place-items:center; }
.sample-stage img { height:330px; width:330px; object-fit:contain; box-shadow:0 14px 38px #071a2e22; }
.finish-caption { padding:26px 34px; min-height:173px; }
.finish-caption h3 { font-size:1.6rem; margin:0 0 12px; }
.finish-caption p { color:var(--muted); margin:0; }
.large-number { font-size:clamp(4.5rem,7vw,7rem); color:var(--lime); line-height:1; font-weight:800; letter-spacing:-.07em; margin:0 0 20px; }
.large-number span { font-size:.65em; }
.finish-copy h3 { font-size:2.25rem; margin:0 0 24px; }
.finish-copy > p:not(.large-number) { color:var(--muted); }
.swatches { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:26px; }
.swatch { background:#0b263f; border:1px solid #47627a; padding:8px; color:white; border-radius:3px; }
.swatch img { width:100%; height:58px; object-fit:cover; }
.swatch span { font-size:.76rem; font-weight:700; display:block; padding-top:7px; }
.swatch[aria-pressed="true"] { border:2px solid var(--lime); padding:7px; background:#143740; }
.finish-copy .text-link { display:inline-block; margin-top:22px; }
.applications { background:#0b2743; }
.application-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.application-grid article { border-top:1px solid #536d82; padding-top:20px; }
.application-grid article > span { color:var(--lime); font-size:.8rem; font-weight:800; }
.application-grid h3 { font-size:1.5rem; margin:40px 0 16px; }
.application-grid p { color:var(--muted); font-size:.95rem; }
.inspiration-grid { display:grid; grid-template-columns:1fr 1fr; gap:40px 26px; }
.inspiration-grid .wide { grid-column:1/-1; }
.inspiration-grid img { height:355px; object-fit:cover; }
.inspiration-grid .wide img { height:550px; }
.performance { background:#0a243d; }
.performance-layout { display:grid; grid-template-columns:.7fr 1fr; gap:76px; align-items:center; }
.performance-layout > div > p:not(.section-kicker) { color:var(--muted); }
.performance-layout .photo img { height:680px; }
.warranty-grid { display:grid; grid-template-columns:1fr 1fr; gap:24px; border-block:1px solid var(--line); padding:24px 0; margin-top:28px; }
.warranty-grid strong { display:block; color:var(--lime); font-size:1.65rem; letter-spacing:-.045em; }
.warranty-grid span { display:block; color:var(--muted); font-size:.8rem; margin-top:6px; }
.process-grid { padding:0; margin:0; list-style:none; display:grid; grid-template-columns:repeat(4,1fr); gap:28px; }
.process-grid li { border-top:1px solid #a9bac6; padding-top:20px; }
.process-grid span { color:#096a9d; font-size:.85rem; font-weight:800; }
.process-grid h3 { font-size:1.35rem; margin:30px 0 16px; }
.process-grid p { color:#496275; font-size:.95rem; }
.callout { display:flex; gap:50px; align-items:center; justify-content:space-between; }
.process-grid + .callout,.journey + .callout { background:#e1ebef; padding:36px; margin-top:50px; border-left:4px solid #198cbe; }
.callout h3 { font-size:1.5rem; margin:0 0 12px; }
.callout p { color:#496275; margin-bottom:0; max-width:760px; }
.callout .button { flex-shrink:0; }
.faq-layout { display:grid; grid-template-columns:.6fr 1fr; gap:70px; }
.faq details { border-top:1px solid var(--line); }
.faq details:last-child { border-bottom:1px solid var(--line); }
summary { font-weight:700; padding:24px 30px 24px 0; list-style:none; position:relative; }
summary::-webkit-details-marker { display:none; }
summary::after { content:'+'; position:absolute; right:4px; color:var(--lime); font-size:1.4rem; top:19px; }
details[open] > summary::after { content:'−'; }
details p { color:var(--muted); margin:0 0 28px; }
.page-heading { padding-top:150px; padding-bottom:45px; }
.page-heading h1 { max-width:1000px; }
.catalogue { padding-top:18px; }
.filter-bar { display:flex; flex-wrap:wrap; gap:12px; padding-bottom:24px; border-bottom:1px solid var(--line); }
.filter-bar button { display:inline-flex; align-items:center; gap:8px; border:1px solid #3f617a; color:#d7e5f0; padding:12px 20px; border-radius:30px; background:#0d2944; font-size:.88rem; font-weight:700; }
.filter-bar button[aria-pressed="true"] { background:var(--lime); color:var(--ink); border-color:var(--lime); }
.results-label { color:var(--muted); font-size:.82rem; margin-block:25px; }
.product-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; align-items:start; }
.product-card { background:#0b2742; border:1px solid var(--line); overflow:hidden; }
[hidden] { display:none !important; }
.product-image { position:relative; }
.product-image img { width:100%; height:240px; object-fit:cover; }
.product-image span { position:absolute; left:14px; top:14px; padding:6px 12px; background:#071a2eeb; color:white; font-weight:700; font-size:.7rem; border-radius:3px; }
.product-body { padding:28px; }
.product-body h2 { font-size:1.65rem; margin:0 0 15px; }
.product-hook { color:#e3edf4 !important; font-weight:700; font-size:.9rem; }
.product-body > p { color:var(--muted); font-size:.92rem; }
.product-body details { border-block:1px solid var(--line); margin:24px 0; font-size:.88rem; }
.product-body summary { padding-block:16px; }
.product-body summary::after { top:9px; }
.product-body .text-link { font-size:.86rem; display:inline-block; }
.service-list { padding-top:35px; }
.service-row { display:grid; grid-template-columns:70px 1fr .85fr; gap:44px; padding:58px 0; border-top:1px solid var(--line); }
.service-row:last-child { border-bottom:1px solid var(--line); }
.service-number { color:var(--lime); font-size:1.5rem; font-weight:800; }
.service-row .section-kicker { margin-bottom:17px; }
.service-row h2 { font-size:2.1rem; }
.service-row p:not(.section-kicker),.service-row li { color:var(--muted); }
.service-row ul { margin:22px 0 0; padding-left:20px; }
.service-row li { padding-left:8px; margin-bottom:20px; }
.service-row li::marker { color:var(--lime); }
.journey { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:15px; }
.journey span { font-size:1.12rem; font-weight:800; }
.journey b { color:#177fb4; }
.sector-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:0 32px; }
.sector-grid span { padding:24px 0; border-block-start:1px solid var(--line); font-size:1.1rem; font-weight:700; }
@media (max-width:1100px) {
 .site-nav { gap:18px; font-size:.82rem; }.brand img { width:205px; }
 .bipv-hero { gap:30px; }.bipv-hero h1 { font-size:4.6rem; }.bipv-hero .photo img { height:610px; }
 .contact-card { padding:45px; gap:35px; }.finish-layout,.performance-layout { gap:40px; }
 .product-grid { grid-template-columns:repeat(2,1fr); }.service-row { gap:28px; grid-template-columns:50px 1fr .8fr; }
}
@media (max-width:900px) {
 .site-nav { font-size:1rem; }.site-nav > a { min-height:40px; }.site-nav .nav-cta { justify-content:center; }.site-header { background:#071a2ef5; }
 .hero { min-height:840px; }.hero h1 { font-size:clamp(3.6rem,8vw,5rem); }.hero-content { padding-top:45px; }
 .contact-card { grid-template-columns:1fr; }.bipv-hero { grid-template-columns:1fr; padding-top:118px; }.bipv-hero h1 { font-size:clamp(3.6rem,9vw,5rem); }
 .bipv-hero .photo img { height:480px; object-position:center 45%; }.section-nav > div { justify-content:flex-start; gap:0 24px; }.section-nav a { padding-block:13px; }
 .preview-grid { grid-template-columns:1fr; }.preview-card { display:grid; grid-template-columns:1fr 1fr; }.preview-card > img { height:100%; min-height:285px; }
 .heading-row { align-items:start; flex-direction:column; }.application-grid,.process-grid { grid-template-columns:repeat(2,1fr); }
 .finish-layout,.performance-layout,.faq-layout { grid-template-columns:1fr; }.finish-preview,.finish-copy { max-width:650px; }.sample-stage { min-height:380px; }
 .swatches { grid-template-columns:repeat(6,1fr); }.performance-layout .photo img { height:420px; object-position:center; }
 .inspiration-grid img { height:250px; }.inspiration-grid .wide img { height:390px; }.callout { flex-direction:column; align-items:flex-start; gap:28px; }
 .page-heading { padding-top:120px; }.page-heading h1 { font-size:clamp(3.4rem,8vw,5rem); }.service-row { grid-template-columns:45px 1fr; }.service-row ul { grid-column:2; margin-top:0; }.sector-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:560px) {
 html { scroll-padding-top:88px; }.section-pad { padding:68px 0; }.site-nav { max-height:calc(100dvh - 72px); overflow-y:auto; }
 .hero { min-height:780px; padding-top:105px; padding-bottom:65px; }.hero-content { padding-top:0; }.hero h1 { font-size:clamp(2.85rem,11.6vw,4rem); }
 .eyebrow { font-size:.65rem; letter-spacing:.11em; }.eyebrow span { width:22px; }.hero-proof { margin-top:30px; }.hero-actions { margin-top:28px; }.hero-copy { margin-top:24px; }
 .visual-caption { right:14px; font-size:.65rem; }.section-heading { margin-bottom:40px; gap:10px; }.section-heading h2,.intro h2,.contact h2 { font-size:2.5rem; }.intro-grid { gap:8px; }
 .solution-media { min-height:290px; }.solution-content { padding:32px 22px; }.solution h3 { font-size:2.3rem; }.collection-preview { padding-top:0; }
 .preview-card { display:block; }.preview-card > img { height:240px; min-height:0; }.contact-card { padding:32px 22px; gap:22px; }.contact-actions .button { font-size:.82rem; padding-inline:14px; }
 .bipv-hero { padding-top:105px; padding-bottom:45px; }.bipv-hero h1 { font-size:3.4rem; }.lead { font-size:1.04rem; }.bipv-hero .photo img { height:400px; }
 .section-nav a { font-size:.76rem; padding-block:12px; }.section-nav > div { gap:0 17px; }.compare-row { flex-direction:column; align-items:flex-start; gap:14px; }.compare-arrow { transform:rotate(90deg); }
 .sample-stage { padding:26px; min-height:280px; }.sample-stage img { width:235px; height:235px; }.finish-caption { padding:24px; }.finish-copy h3 { font-size:2rem; }.swatches { grid-template-columns:repeat(3,1fr); }
 .application-grid,.process-grid,.inspiration-grid { grid-template-columns:1fr; }.application-grid h3,.process-grid h3 { margin-top:24px; }.inspiration-grid img,.inspiration-grid .wide img { height:auto; aspect-ratio:1.5; }
 .performance-layout .photo img { height:400px; }.warranty-grid { gap:15px; }.warranty-grid strong { font-size:1.35rem; }.process-grid + .callout,.journey + .callout { padding:24px; }
 .faq-layout { gap:30px; }.faq summary { font-size:.95rem; }.page-heading h1 { font-size:3.15rem; }.filter-bar { gap:9px; }.filter-bar button { font-size:.8rem; padding:10px 14px; }
 .catalogue { padding-top:8px; }.product-grid { grid-template-columns:1fr; }.product-body { padding:25px; }.service-row { grid-template-columns:1fr; gap:14px; padding:38px 0; }.service-row ul { grid-column:1; }.service-row h2 { font-size:2rem; }
 .journey { display:grid; grid-template-columns:1fr auto 1fr; justify-content:start; }.journey b:nth-child(4n) { display:none; }.sector-grid { grid-template-columns:1fr; }
}
