:root { --navy:#082d63; --navy-deep:#031a3b; --aqua:#08abc6; --aqua-dark:#008ca8; --ice:#f3f8fb; --sand:#eee7dc; --line:#d7e4eb; --white:#fff; --muted:#52677f; --shadow:0 18px 45px rgba(5,39,77,.13); --shell:1180px; }
* { box-sizing:border-box; }
html { overflow-x:clip; scroll-behavior:smooth; scroll-padding-top:90px; }
body { margin:0; overflow-x:clip; color:var(--navy-deep); background:var(--white); font-family:"Segoe UI",Arial,sans-serif; -webkit-font-smoothing:antialiased; }
body.menu-locked,body.dialog-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
img { max-width:100%; display:block; }
button { font:inherit; }
.shell { width:min(calc(100% - 48px),var(--shell)); margin:0 auto; }
.skip-link { position:fixed; left:12px; top:-80px; z-index:100; padding:10px 16px; background:var(--navy); color:white; }
.skip-link:focus { top:12px; }
.site-header { position:relative; z-index:20; background:rgba(255,255,255,.97); }
.utility-bar { border-bottom:1px solid #e0e9ef; background:#f8fbfd; font-size:12px; color:#24415f; }
.utility-bar__inner { min-height:35px; display:flex; align-items:center; justify-content:space-between; }
.utility-bar__contact,.utility-bar__social { display:flex; align-items:center; gap:28px; }
.utility-bar__contact a,.utility-bar__social a { transition:color .2s; }
.utility-bar__contact a:hover,.utility-bar__social a:hover { color:var(--aqua-dark); }
.utility-bar__social { gap:16px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.07em; }
.site-header__inner { min-height:76px; display:flex; align-items:center; justify-content:space-between; }
.brand { display:inline-flex; align-items:baseline; font-size:31px; font-weight:900; letter-spacing:-.045em; }
.brand__go { color:var(--aqua); }
.brand__pools { color:var(--navy); margin-left:5px; }
.site-nav { display:flex; align-items:center; gap:32px; font-size:14px; font-weight:650; }
.site-nav a { position:relative; padding:29px 0 25px; }
.site-nav a::after { content:""; position:absolute; left:0; right:0; bottom:18px; height:2px; background:var(--aqua); transform:scaleX(0); transform-origin:left; transition:transform .2s ease; }
.site-nav a:hover::after,.site-nav a:focus-visible::after,.site-nav a.is-active::after { transform:scaleX(1); }
.menu-button { display:none; border:0; background:transparent; color:var(--navy); cursor:pointer; }

.hero { min-height:570px; position:relative; overflow:hidden; background:url('../images/hero.jpg') center 57%/cover no-repeat; }
.hero::before { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(239,250,253,.99) 0,rgba(238,249,252,.9) 34%,rgba(3,31,65,.1) 63%,rgba(3,31,65,.04)); }
.hero::after { content:""; position:absolute; inset:auto 0 0; height:130px; background:linear-gradient(180deg,transparent,rgba(3,27,59,.16)); }
.hero__inner { min-height:570px; position:relative; z-index:2; display:flex; align-items:center; }
.hero__copy { max-width:585px; padding:55px 0 70px; }
.eyebrow,.kicker { margin:0 0 13px; color:var(--aqua-dark); font-size:12px; font-weight:800; letter-spacing:.13em; }
.hero h1 { margin:0; color:var(--navy); font-size:clamp(56px,5.6vw,82px); line-height:.91; letter-spacing:-.055em; }
.hero__copy>p:not(.eyebrow) { max-width:545px; margin:25px 0 0; font-size:19px; line-height:1.55; color:#173d64; }
.hero__actions { display:flex; gap:17px; margin-top:30px; }
.button { min-height:50px; padding:0 31px; border-radius:5px; display:inline-flex; align-items:center; justify-content:center; font-size:14px; font-weight:800; transition:transform .2s,box-shadow .2s,background .2s; }
.button:hover { transform:translateY(-2px); }
.button--primary { background:linear-gradient(135deg,#13bcd4,#00a2c1); color:white; box-shadow:0 12px 24px rgba(0,166,199,.24); }
.button--primary:hover { box-shadow:0 16px 30px rgba(0,148,180,.3); }
.button--secondary { border:2px solid var(--aqua-dark); color:var(--navy); background:rgba(255,255,255,.88); }
.button--light { color:var(--navy); background:white; box-shadow:0 12px 25px rgba(2,27,59,.15); }
.hero__scroll { position:absolute; z-index:3; right:30px; bottom:26px; display:flex; align-items:center; gap:10px; color:white; font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.hero__scroll i { width:31px; height:31px; border:1px solid rgba(255,255,255,.65); border-radius:50%; display:grid; place-items:center; font-style:normal; }

.trust-strip { position:relative; z-index:4; background:white; box-shadow:0 -10px 35px rgba(0,41,79,.08); }
.trust-strip__grid { min-height:104px; display:grid; grid-template-columns:repeat(4,1fr); align-items:center; }
.trust-strip article { min-height:55px; padding:0 27px; display:flex; align-items:center; gap:16px; border-right:1px solid var(--line); }
.trust-strip article:last-child { border-right:0; }
.trust-strip__icon { width:38px; flex:0 0 auto; color:var(--aqua); font-size:32px; line-height:1; text-align:center; }
.trust-strip strong,.trust-strip small { display:block; }
.trust-strip strong { color:var(--navy); font-size:14px; line-height:1.2; }
.trust-strip small { margin-top:4px; color:var(--muted); font-size:10px; line-height:1.35; }

.section { padding:88px 0; }
.services { background:linear-gradient(155deg,#f9fcfd,#edf7fb); }
.section-heading { margin-bottom:34px; display:flex; align-items:flex-end; justify-content:space-between; gap:60px; }
.section-heading h2,.company h2,.process h2,.contact h2 { margin:0; color:var(--navy); font-size:clamp(34px,3.25vw,48px); line-height:1.05; letter-spacing:-.045em; }
.section-heading>p { max-width:500px; margin:0 0 4px; color:var(--muted); font-size:14px; line-height:1.65; }
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.service-card { overflow:hidden; border-radius:7px; background:white; box-shadow:var(--shadow); transition:transform .25s,box-shadow .25s; }
.service-card:hover { transform:translateY(-6px); box-shadow:0 24px 48px rgba(5,39,77,.17); }
.service-card>img { width:100%; height:180px; object-fit:cover; }
.service-card:nth-child(1)>img { object-position:center 40%; }
.service-card:nth-child(2)>img { object-position:center 56%; }
.service-card__body { padding:21px 20px 22px; }
.service-card__index { color:var(--aqua-dark); font-size:11px; font-weight:800; letter-spacing:.12em; }
.service-card h3 { min-height:44px; margin:9px 0 10px; color:var(--navy); font-size:18px; line-height:1.2; }
.service-card p { min-height:82px; margin:0; color:var(--muted); font-size:13px; line-height:1.55; }
.service-card a { margin-top:18px; display:flex; align-items:center; justify-content:space-between; color:var(--navy); font-size:12px; font-weight:800; }
.service-card a span { width:26px; height:26px; border:1px solid var(--navy); border-radius:50%; display:grid; place-items:center; }

.membranes { background:linear-gradient(145deg,#eaf5f8,#f7fbfc 54%,#e9f2f6); }
.membrane-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.membrane-card { padding:0; overflow:hidden; border:1px solid rgba(8,45,99,.11); border-radius:9px; color:inherit; background:white; box-shadow:0 12px 34px rgba(5,39,77,.09); text-align:left; cursor:pointer; transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease; }
.membrane-card:hover,.membrane-card:focus-visible { transform:translateY(-5px); border-color:rgba(0,140,168,.48); box-shadow:0 24px 50px rgba(5,39,77,.17); outline:none; }
.membrane-card__media { height:238px; position:relative; overflow:hidden; display:block; background:#d9e9ee; }
.membrane-card__media::after { content:""; position:absolute; inset:45% 0 0; background:linear-gradient(180deg,transparent,rgba(2,25,57,.34)); }
.membrane-card__media img { width:100%; height:100%; object-fit:cover; transition:transform .55s ease; }
.membrane-card:hover .membrane-card__media img { transform:scale(1.035); }
.membrane-card__number { width:38px; height:38px; position:absolute; z-index:2; left:18px; bottom:16px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.65); border-radius:50%; color:white; background:rgba(3,26,59,.32); backdrop-filter:blur(7px); font-size:10px; font-weight:800; }
.membrane-card__body { min-height:184px; padding:23px 25px 24px; display:flex; flex-direction:column; align-items:flex-start; }
.membrane-card__meta { margin-bottom:11px; color:var(--aqua-dark); font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.membrane-card__body strong { color:var(--navy); font-size:25px; line-height:1.05; letter-spacing:-.035em; }
.membrane-card__body>span:not(.membrane-card__meta) { margin-top:11px; color:var(--muted); font-size:13px; line-height:1.55; }
.membrane-card__body i { width:100%; margin-top:auto; padding-top:18px; display:flex; align-items:center; justify-content:space-between; color:var(--navy); font-size:12px; font-style:normal; font-weight:800; }
.membrane-card__body i b { width:28px; height:28px; display:grid; place-items:center; border:1px solid var(--navy); border-radius:50%; font-weight:500; }
.membranes__note { margin-top:29px; padding-top:24px; display:flex; align-items:flex-start; justify-content:space-between; gap:40px; border-top:1px solid rgba(8,45,99,.15); }
.membranes__note p { max-width:720px; margin:0; color:var(--muted); font-size:12px; line-height:1.6; }
.membranes__note a { flex:0 0 auto; color:var(--aqua-dark); font-size:12px; font-weight:800; }

.collection-modal { position:fixed; z-index:1000; inset:0; padding:24px; display:grid; place-items:center; }
.collection-modal[hidden] { display:none; }
.collection-modal__backdrop { position:absolute; inset:0; background:rgba(1,15,35,.82); backdrop-filter:blur(6px); }
.collection-dialog { width:min(1040px,100%); max-height:calc(100vh - 48px); position:relative; z-index:1; overflow:auto; border-radius:11px; background:white; box-shadow:0 35px 90px rgba(0,0,0,.38); }
.collection-dialog__close { width:44px; height:44px; position:absolute; z-index:3; top:15px; right:15px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.55); border-radius:50%; color:white; background:rgba(2,23,52,.42); backdrop-filter:blur(8px); font-size:27px; line-height:1; cursor:pointer; }
.collection-dialog__media { height:390px; position:relative; overflow:hidden; background:#dcebf0; }
.collection-dialog__media::after { content:""; position:absolute; inset:55% 0 0; background:linear-gradient(180deg,transparent,rgba(1,21,48,.28)); pointer-events:none; }
.collection-dialog__media img { width:100%; height:100%; object-fit:cover; }
.collection-dialog__arrow { width:48px; height:48px; position:absolute; z-index:2; top:50%; display:grid; place-items:center; transform:translateY(-50%); border:1px solid rgba(255,255,255,.72); border-radius:50%; color:white; background:rgba(2,23,52,.4); backdrop-filter:blur(8px); font-size:20px; cursor:pointer; }
.collection-dialog__arrow--prev { left:19px; }
.collection-dialog__arrow--next { right:19px; }
.collection-dialog__copy { padding:31px 42px 38px; position:relative; }
.collection-dialog__counter { position:absolute; top:34px; right:42px; margin:0; color:#91a4b5; font-size:11px; font-weight:800; letter-spacing:.12em; }
.collection-dialog__copy .kicker { margin-bottom:9px; }
.collection-dialog__copy h2 { margin:0; color:var(--navy); font-size:42px; line-height:1; letter-spacing:-.045em; }
.collection-dialog__copy h3 { margin:13px 0 0; color:#244866; font-size:18px; font-weight:650; }
.collection-dialog__copy>p:not(.kicker):not(.collection-dialog__counter) { max-width:760px; margin:18px 0 0; color:var(--muted); font-size:14px; line-height:1.65; }
.collection-dialog__spec { margin-top:21px; display:inline-flex; padding:8px 12px; border-radius:99px; color:var(--navy); background:#edf6f8; font-size:11px; font-weight:800; }
.collection-dialog__actions { margin-top:26px; display:flex; align-items:center; gap:27px; }

.company { overflow:hidden; background:white; }
.company__grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(380px,.9fr); align-items:center; gap:75px; }
.company__media { min-height:530px; position:relative; }
.company__main-photo { width:82%; height:470px; margin:0; overflow:hidden; border-radius:7px; box-shadow:var(--shadow); }
.company__main-photo img { width:100%; height:100%; object-fit:cover; }
.company__detail-photo { width:43%; height:235px; position:absolute; right:0; bottom:0; margin:0; overflow:hidden; border:8px solid white; border-radius:7px; box-shadow:var(--shadow); }
.company__detail-photo img { width:100%; height:100%; object-fit:cover; }
.company__badge { position:absolute; left:32px; bottom:3px; min-width:185px; padding:17px 20px; display:flex; align-items:center; gap:13px; color:white; background:var(--navy); border-radius:5px; box-shadow:0 16px 35px rgba(3,26,59,.22); }
.company__badge strong { font-size:38px; line-height:1; }
.company__badge span { font-size:10px; line-height:1.35; text-transform:uppercase; letter-spacing:.05em; }
.company__copy h2 { max-width:520px; }
.company__copy>p { color:var(--muted); font-size:15px; line-height:1.7; }
.company__copy .company__lead { margin-top:25px; color:#153b65; font-size:18px; font-weight:600; }
.check-list { margin:26px 0 29px; padding:0; list-style:none; }
.check-list li { position:relative; padding:11px 0 11px 31px; border-bottom:1px solid var(--line); color:#264764; font-size:13px; }
.check-list li::before { content:"✓"; position:absolute; left:0; color:var(--aqua-dark); font-weight:900; }
.text-link { display:inline-flex; align-items:center; gap:12px; color:var(--aqua-dark); font-size:13px; font-weight:800; }

.projects { background:#f5f9fb; }
.section-heading--compact { align-items:flex-end; }
.project-grid { display:grid; grid-template-columns:1.15fr .85fr .85fr; grid-template-rows:240px 240px; gap:15px; }
.project-card { position:relative; overflow:hidden; margin:0; border-radius:7px; background:#dceaf0; }
.project-card--large { grid-row:span 2; }
.project-card--wide { grid-column:span 2; }
.project-card img { width:100%; height:100%; object-fit:cover; transition:transform .55s ease; }
.project-card:hover img { transform:scale(1.035); }
.project-card::after { content:""; position:absolute; inset:35% 0 0; background:linear-gradient(180deg,transparent,rgba(2,23,52,.78)); }
.project-card figcaption { position:absolute; z-index:2; left:20px; right:20px; bottom:18px; display:flex; align-items:flex-end; gap:13px; color:white; }
.project-card figcaption span { width:30px; height:30px; border:1px solid rgba(255,255,255,.6); border-radius:50%; display:grid; place-items:center; flex:0 0 auto; font-size:10px; }
.project-card figcaption strong { font-size:14px; line-height:1.25; }

.process { color:white; background:var(--navy-deep); }
.process .kicker { color:#66d7e9; }
.process__heading { margin-bottom:45px; display:flex; align-items:flex-end; justify-content:space-between; }
.process h2 { color:white; }
.process__steps { margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); list-style:none; }
.process__steps li { min-height:220px; padding:4px 28px 15px; border-left:1px solid rgba(255,255,255,.17); }
.process__steps li:first-child { padding-left:0; border-left:0; }
.process__steps li>span { display:block; margin-bottom:48px; color:#58cfe2; font-size:12px; font-weight:800; letter-spacing:.1em; }
.process__steps h3 { margin:0 0 12px; font-size:18px; }
.process__steps p { margin:0; color:#b9c7d8; font-size:13px; line-height:1.62; }

.contact { padding:90px 0; position:relative; overflow:hidden; color:white; background:linear-gradient(105deg,rgba(3,30,66,.96),rgba(6,57,91,.91)),url('../images/hero.jpg') center 62%/cover no-repeat; }
.contact::after { content:""; position:absolute; width:440px; height:440px; right:-170px; bottom:-260px; border:1px solid rgba(255,255,255,.18); border-radius:50%; box-shadow:0 0 0 70px rgba(255,255,255,.03),0 0 0 140px rgba(255,255,255,.025); }
.contact__grid { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1fr) 380px; align-items:center; gap:95px; }
.contact .kicker { color:#69d9e9; }
.contact h2 { color:white; }
.contact__copy>p:not(.kicker) { max-width:650px; margin:24px 0 0; color:#c5d4e2; font-size:15px; line-height:1.65; }
.contact__actions { display:flex; gap:14px; margin-top:28px; }
.contact-card { padding:31px 34px; display:grid; gap:24px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.22); border-radius:7px; backdrop-filter:blur(12px); font-style:normal; }
.contact-card p { margin:0; display:grid; gap:5px; }
.contact-card span { color:#72d9e9; font-size:10px; font-weight:800; letter-spacing:.13em; }
.contact-card a { width:max-content; max-width:100%; color:white; font-size:14px; line-height:1.45; }
.contact-card a:hover { color:#8be4f0; }

.site-footer { color:#d8e4ee; background:#02142f; }
.site-footer__top { min-height:145px; display:grid; grid-template-columns:1fr 1.2fr 1fr; align-items:center; gap:50px; }
.brand--footer { font-size:28px; }
.brand--footer .brand__pools { color:white; }
.site-footer__top>p { margin:0; color:#aebfd0; font-size:13px; line-height:1.55; }
.site-footer__social { display:flex; justify-content:flex-end; gap:22px; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.site-footer__bottom { min-height:58px; display:flex; align-items:center; justify-content:space-between; border-top:1px solid rgba(255,255,255,.12); }
.site-footer__bottom p { margin:0; color:#7f94a9; font-size:10px; }
.site-footer__bottom nav { display:flex; gap:26px; color:#9db0c1; font-size:10px; }

@media (max-width:1050px) {
    .site-nav { gap:25px; }
    .trust-strip article { padding-inline:15px; }
    .service-grid { grid-template-columns:repeat(2,1fr); }
    .service-card p { min-height:auto; }
    .membrane-card__media { height:210px; }
    .company__grid { gap:42px; }
    .contact__grid { gap:48px; }
}

@media (max-width:820px) {
    html { scroll-padding-top:72px; }
    .shell { width:min(calc(100% - 32px),var(--shell)); }
    .utility-bar { display:none; }
    .site-header { position:sticky; top:0; box-shadow:0 4px 18px rgba(7,40,76,.08); }
    .site-header__inner { min-height:72px; }
    .brand { font-size:28px; }
    .menu-button { width:48px; height:48px; display:flex; align-items:center; justify-content:center; }
    .menu-button__label { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
    .menu-button__icon { width:28px; display:grid; gap:6px; }
    .menu-button__icon i { display:block; height:2px; background:var(--navy); transition:transform .2s,opacity .2s; }
    .menu-open .menu-button__icon i:first-child { transform:translateY(8px) rotate(45deg); }
    .menu-open .menu-button__icon i:nth-child(2) { opacity:0; }
    .menu-open .menu-button__icon i:last-child { transform:translateY(-8px) rotate(-45deg); }
    .site-nav { position:fixed; inset:72px 0 0; padding:35px 27px; display:flex; flex-direction:column; align-items:flex-start; gap:0; background:rgba(255,255,255,.99); transform:translateX(100%); transition:transform .25s ease; }
    .menu-open .site-nav { transform:translateX(0); }
    .site-nav a { width:100%; padding:17px 0; border-bottom:1px solid var(--line); font-size:22px; }
    .site-nav a::after { display:none; }

    .hero { min-height:635px; background-position:62% center; }
    .hero::before { background:linear-gradient(180deg,rgba(239,250,253,.99) 0,rgba(239,250,253,.9) 50%,rgba(3,31,65,.22) 100%); }
    .hero__inner { min-height:635px; align-items:flex-start; }
    .hero__copy { width:100%; padding-top:55px; }
    .hero h1 { font-size:clamp(47px,13.5vw,68px); }
    .hero__copy>p:not(.eyebrow) { font-size:16px; }
    .hero__actions { display:grid; gap:10px; }
    .button { width:100%; }
    .hero__scroll { display:none; }

    .trust-strip { padding:22px 0; }
    .trust-strip__grid { grid-template-columns:repeat(2,1fr); row-gap:20px; }
    .trust-strip article { padding:0 12px; border-right:1px solid var(--line); }
    .trust-strip article:nth-child(2),.trust-strip article:nth-child(4) { border-right:0; }
    .trust-strip__icon { width:29px; font-size:26px; }
    .trust-strip strong { font-size:12px; }
    .trust-strip small { font-size:9px; }

    .section { padding:60px 0; }
    .section-heading { display:block; }
    .section-heading>p { margin-top:16px; }
    .section-heading h2,.company h2,.process h2,.contact h2 { font-size:34px; }
    .service-grid { grid-template-columns:repeat(4,minmax(255px,1fr)); gap:13px; overflow-x:auto; padding:0 16px 22px; margin-inline:-16px; scroll-snap-type:x mandatory; scrollbar-width:none; }
    .service-grid::-webkit-scrollbar { display:none; }
    .service-card { scroll-snap-align:start; }
    .service-card>img { height:165px; }

    .membrane-grid { grid-template-columns:repeat(8,minmax(285px,82vw)); gap:13px; overflow-x:auto; padding:0 16px 22px; margin-inline:-16px; scroll-snap-type:x mandatory; scrollbar-width:none; }
    .membrane-grid::-webkit-scrollbar { display:none; }
    .membrane-card { scroll-snap-align:center; }
    .membrane-card__media { height:190px; }
    .membrane-card__body { min-height:188px; padding:21px; }
    .membranes__note { display:block; }
    .membranes__note a { margin-top:14px; display:inline-flex; }

    .collection-modal { padding:14px; }
    .collection-dialog { max-height:calc(100vh - 28px); }
    .collection-dialog__media { height:265px; }
    .collection-dialog__arrow { width:42px; height:42px; }
    .collection-dialog__copy { padding:27px 25px 31px; }
    .collection-dialog__counter { top:30px; right:25px; }
    .collection-dialog__copy h2 { padding-right:65px; font-size:34px; }
    .collection-dialog__copy h3 { font-size:16px; }
    .collection-dialog__actions { align-items:stretch; flex-direction:column; gap:20px; }
    .collection-dialog__actions .text-link { justify-content:center; }

    .company__grid { display:block; }
    .company__media { min-height:435px; margin-bottom:52px; }
    .company__main-photo { height:390px; }
    .company__detail-photo { height:190px; }
    .company__badge { left:18px; bottom:-2px; }
    .company__copy .company__lead { font-size:17px; }

    .project-grid { grid-template-columns:86% 86% 86% 86%; grid-template-rows:300px; gap:12px; overflow-x:auto; padding:0 16px 15px; margin-inline:-16px; scroll-snap-type:x mandatory; scrollbar-width:none; }
    .project-grid::-webkit-scrollbar { display:none; }
    .project-card,.project-card--large,.project-card--wide { grid-row:auto; grid-column:auto; scroll-snap-align:center; }

    .process__heading { display:block; }
    .process__steps { margin-top:38px; grid-template-columns:repeat(2,1fr); gap:32px 0; }
    .process__steps li { min-height:auto; padding:0 22px; }
    .process__steps li:nth-child(odd) { padding-left:0; border-left:0; }
    .process__steps li>span { margin-bottom:18px; }

    .contact { padding:65px 0; }
    .contact__grid { grid-template-columns:1fr; gap:40px; }
    .contact__actions { display:grid; }
    .contact-card { padding:27px; }
    .site-footer__top { padding:40px 0 32px; display:flex; flex-wrap:wrap; gap:24px; }
    .site-footer__top>p { width:100%; order:3; }
    .site-footer__social { margin-left:auto; }
    .site-footer__bottom { padding:20px 0; flex-direction:column; justify-content:center; gap:14px; text-align:center; }
    .site-footer__bottom nav { flex-wrap:wrap; justify-content:center; }
}

@media (max-width:480px) {
    .shell { width:min(calc(100% - 28px),var(--shell)); }
    .hero { min-height:610px; background-position:65% center; }
    .hero__inner { min-height:610px; }
    .hero h1 { font-size:49px; }
    .eyebrow { font-size:10px; }
    .hero__copy>p:not(.eyebrow) { margin-top:19px; font-size:15px; line-height:1.47; }
    .trust-strip article { gap:7px; }
    .trust-strip strong { font-size:11px; }
    .section { padding:52px 0; }
    .section-heading h2,.company h2,.process h2,.contact h2 { font-size:30px; }
    .company__media { min-height:370px; }
    .company__main-photo { width:92%; height:335px; }
    .company__detail-photo { width:43%; height:145px; border-width:5px; }
    .company__badge { min-width:160px; padding:14px 16px; }
    .company__badge strong { font-size:31px; }
    .company__badge span { font-size:8px; }
    .membrane-card__media { height:175px; }
    .membrane-card__body strong { font-size:22px; }
    .collection-dialog__media { height:215px; }
    .collection-dialog__close { top:10px; right:10px; }
    .collection-dialog__arrow { width:38px; height:38px; }
    .collection-dialog__arrow--prev { left:12px; }
    .collection-dialog__arrow--next { right:12px; }
    .collection-dialog__copy h2 { font-size:30px; }
    .project-grid { grid-template-columns:91% 91% 91% 91%; grid-template-rows:255px; }
    .process__steps { grid-template-columns:1fr; }
    .process__steps li { padding:0 0 25px; border-left:0; border-bottom:1px solid rgba(255,255,255,.15); }
    .process__steps li:last-child { border-bottom:0; }
    .contact-card { padding:23px; }
    .site-footer__bottom nav { gap:12px 19px; }
}

@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto}*,*::before,*::after{transition:none!important} }
