:root{--ink:#172622;--deep:#102c25;--green:#1c4a3e;--sage:#dce9df;--cream:#f5f2e9;--sun:#f4b942;--paper:#fffdf8;--muted:#63706b;--line:#d9ded8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:"DM Sans",sans-serif}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin-top:0}.offer-bar{background:var(--deep);color:white;text-align:center;padding:10px 20px;font-size:13px;letter-spacing:.01em}.offer-bar>span{color:var(--sun);font-weight:700;text-transform:uppercase;font-size:11px;letter-spacing:.1em;margin-right:12px}.offer-bar a{font-weight:700;margin-left:14px;border-bottom:1px solid #ffffff80}.site-header{height:86px;display:flex;align-items:center;padding:0 clamp(24px,5vw,80px);gap:40px;background:var(--paper);position:relative;z-index:20}.brand{display:flex;align-items:center;gap:12px;margin-right:auto}.brand-mark{width:42px;height:42px;display:block;position:relative;border:3px solid var(--green);border-top:none;border-radius:2px}.brand-mark:before{content:"";position:absolute;width:27px;height:27px;border-left:4px solid var(--sun);border-top:4px solid var(--sun);transform:rotate(45deg);left:4px;top:-12px}.brand-mark i{position:absolute;background:var(--green);width:3px;height:18px;left:18px;top:11px}.brand strong{font:800 25px/1 "Manrope";letter-spacing:.12em}.brand small{display:block;font:700 8px/1.5 "Manrope";letter-spacing:.22em}.site-header nav{display:flex;gap:28px;font-size:14px;font-weight:600}.site-header nav a{position:relative}.site-header nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-7px;height:2px;background:var(--sun);transition:.25s}.site-header nav a:hover:after{right:0}.header-actions{display:flex;align-items:center;gap:22px}.phone{font-weight:700;font-size:14px}.phone span{display:none}.button{display:inline-flex;justify-content:center;align-items:center;gap:14px;padding:14px 22px;border:0;font:700 14px "DM Sans";cursor:pointer;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.button-dark{background:var(--deep);color:white}.button-sun{background:var(--sun);color:var(--deep)}.menu-button{display:none;background:none;border:0;padding:10px}.hero{min-height:680px;position:relative;display:flex;align-items:center;overflow:hidden}.hero-bg,.hero-shade{position:absolute;inset:0}.hero-bg{background:url("assets/sol-hero-home.png") center/cover no-repeat}.hero-shade{background:linear-gradient(90deg,rgba(6,24,20,.9) 0%,rgba(6,24,20,.6) 40%,rgba(6,24,20,.08) 72%)}.hero-content{position:relative;color:white;z-index:2;width:min(650px,90%);margin-left:clamp(24px,8vw,145px);padding:70px 0}.eyebrow{display:flex;align-items:center;gap:12px;font-size:11px;text-transform:uppercase;letter-spacing:.18em;font-weight:800;margin-bottom:24px}.eyebrow span{width:32px;height:2px;background:var(--sun)}.hero h1{font:700 clamp(50px,6vw,88px)/.98 "Manrope";letter-spacing:-.055em;margin-bottom:25px}.hero-content>p:not(.eyebrow){font-size:19px;line-height:1.6;max-width:540px;color:#e0e9e5}.hero-buttons{display:flex;align-items:center;gap:28px;margin:36px 0 48px}.text-link{font-size:14px;font-weight:700;border-bottom:1px solid #ffffff70;padding-bottom:4px}.hero-trust{display:flex;align-items:center;gap:15px}.avatars{display:flex}.avatars span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#d4c5ad;color:var(--deep);font-size:10px;border:2px solid white;margin-left:-8px}.avatars span:first-child{margin-left:0}.hero-trust strong{display:block;font-size:13px}.hero-trust small{display:block;color:#cbd5d1;margin-top:3px}.stars{color:var(--sun);letter-spacing:1px;margin-left:5px}.hero-card{position:absolute;z-index:3;right:0;bottom:0;background:var(--paper);padding:22px 30px;display:flex;align-items:center;gap:15px;min-width:390px}.hero-card .icon{width:42px;height:42px;background:var(--sage);display:grid;place-items:center;color:var(--green);font-size:26px}.hero-card small,.hero-card strong{display:block}.hero-card small{font-size:11px;color:var(--muted);margin-bottom:4px}.hero-card strong{font-size:14px}.hero-card b{margin-left:auto}.intro,.faq{padding:120px clamp(24px,8vw,145px);display:grid;grid-template-columns:1.3fr .7fr;gap:10vw;align-items:end}.intro h2,.section-heading h2,.faq h2,.quote-copy h2{font:600 clamp(38px,4.2vw,64px)/1.08 "Manrope";letter-spacing:-.045em;margin:0}.intro h2 em,.section-heading h2 em,.faq h2 em,.quote-copy h2 em{font-weight:500;color:var(--green)}.intro-copy{padding-bottom:5px}.intro-copy p{font-size:17px;line-height:1.75;color:var(--muted)}.line-link{display:inline-flex;gap:28px;border-bottom:1px solid var(--ink);font-weight:700;padding:8px 0}.products{padding:0 clamp(24px,5vw,80px) 120px;display:grid;grid-template-columns:1fr 1fr;gap:22px}.product-card{background:var(--cream);overflow:hidden}.product-visual{height:430px;position:relative}.window-visual{background:linear-gradient(#d6e6e8 0 50%,#9cb0a2 50%);display:grid;place-items:center}.window-visual:before{content:"";position:absolute;width:70%;height:45%;background:linear-gradient(160deg,#536b61,#a5b4a8);bottom:0;clip-path:polygon(0 100%,100% 35%,100% 100%)}.window-frame{width:68%;height:77%;border:18px solid #e9e5d9;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;box-shadow:0 20px 40px #17262225;z-index:1}.window-frame span{border:4px solid #414d48;background:linear-gradient(145deg,#c9e2e8aa,#71918880)}.door-visual{background:#d8d0c1;display:grid;place-items:center}.door{height:83%;width:45%;background:#b97d4d;border:14px solid #f1e9db;box-shadow:0 18px 40px #30251f35;position:relative}.door:before{content:"";position:absolute;inset:10%;border:2px solid #845231}.door i{position:absolute;right:12%;top:50%;width:7px;height:22px;background:#d8b87a}.plant{position:absolute;right:12%;bottom:8%;font-size:90px;color:#6d7f69}.product-copy{display:flex;align-items:flex-start;padding:30px 35px 36px;gap:25px}.product-copy>span{font-size:11px;color:var(--muted)}.product-copy h3{font:700 30px "Manrope";margin-bottom:7px}.product-copy p{color:var(--muted);margin:0}.product-copy a{margin-left:auto;width:46px;height:46px;border:1px solid #aab3ad;display:grid;place-items:center;font-size:20px;transition:.2s}.product-copy a:hover{background:var(--sun);border-color:var(--sun)}.numbers{background:var(--deep);color:white;display:grid;grid-template-columns:repeat(4,1fr);padding:55px clamp(24px,8vw,145px)}.numbers>div{display:flex;align-items:center;gap:18px;border-right:1px solid #ffffff20;padding-left:35px}.numbers>div:first-child{padding-left:0}.numbers>div:last-child{border:0}.numbers strong{font:600 clamp(30px,3vw,46px) "Manrope";color:var(--sun)}.numbers span{font-size:12px;line-height:1.45;color:#c7d0cd}.process{padding:120px clamp(24px,8vw,145px);background:var(--cream)}.section-heading{display:grid;grid-template-columns:1fr .55fr;gap:10vw;align-items:end}.section-heading>p{line-height:1.7;color:var(--muted)}.steps{display:grid;grid-template-columns:repeat(3,1fr);margin-top:70px;border-top:1px solid #cdd2cc}.steps article{padding:35px 45px 10px 0;border-right:1px solid #cdd2cc;position:relative}.steps article+article{padding-left:45px}.steps article:last-child{border-right:0}.steps article>span{font-size:11px;color:var(--muted)}.step-icon{width:58px;height:58px;border:1px solid #b6c1b9;border-radius:50%;display:grid;place-items:center;margin:45px 0 25px;font-size:24px;color:var(--green)}.steps h3{font:700 23px "Manrope"}.steps p{color:var(--muted);line-height:1.7;font-size:14px}.testimonial{text-align:center;padding:110px clamp(24px,12vw,220px);background:var(--sage)}.quote-mark{font:100 80px Georgia;color:var(--green);height:50px}.testimonial blockquote{font:500 clamp(27px,3vw,44px)/1.4 "Manrope";letter-spacing:-.025em;margin:20px auto 45px;max-width:1000px}.customer{display:flex;align-items:center;justify-content:center;gap:13px;text-align:left}.customer>span{width:45px;height:45px;border-radius:50%;background:var(--green);color:white;display:grid;place-items:center;font-size:11px}.customer strong,.customer small{display:block}.customer small{color:var(--muted);font-size:11px;margin-top:3px}.customer b{color:#b2780b;margin-left:18px;letter-spacing:2px}.faq{align-items:start}.faq>div:first-child>p:not(.eyebrow){color:var(--muted);line-height:1.7;max-width:420px;margin:30px 0 20px}.accordions{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer;padding:24px 45px 24px 0;font-weight:700;position:relative}summary::-webkit-details-marker{display:none}summary span:before,summary span:after{content:"";position:absolute;right:5px;top:31px;width:14px;height:2px;background:var(--green)}summary span:after{transform:rotate(90deg);transition:.2s}details[open] summary span:after{transform:rotate(0)}details p{color:var(--muted);line-height:1.7;padding:0 45px 24px 0;font-size:14px}.quote-section{background:var(--green);color:white;padding:110px clamp(24px,8vw,145px);display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw}.quote-copy>p:not(.eyebrow){color:#c9d7d2;line-height:1.7;max-width:440px;margin:28px 0 40px}.quote-copy h2 em{color:var(--sun)}.contact-detail{display:flex;align-items:center;gap:14px;margin:20px 0}.contact-detail>span{width:40px;height:40px;border:1px solid #ffffff40;display:grid;place-items:center}.contact-detail small,.contact-detail a{display:block}.contact-detail small{font-size:10px;color:#b7cac3}.contact-detail a{font-weight:700;margin-top:3px}.quote-form{background:white;color:var(--ink);padding:38px 42px}.form-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.form-heading span{font:700 20px "Manrope"}.form-heading b{font-size:10px;color:var(--green);background:var(--sage);padding:7px 10px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.quote-form label{display:block;font-size:12px;font-weight:700;margin-bottom:18px}.quote-form input,.quote-form select,.quote-form textarea{width:100%;margin-top:8px;border:1px solid #ccd2ce;border-radius:0;padding:13px 14px;font:400 14px "DM Sans";color:var(--ink);background:white;outline:none}.quote-form input:focus,.quote-form select:focus,.quote-form textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px #1c4a3e12}.quote-form textarea{resize:vertical}.quote-form label small{display:none;color:#a43333;margin-top:5px}.quote-form label.invalid small{display:block}.quote-form label.invalid input,.quote-form label.invalid select{border-color:#a43333}.submit{width:100%;padding:17px}.privacy{text-align:center!important;color:var(--muted)!important;font-size:10px!important;margin:12px 0 0!important}.success{display:none;background:var(--sage);padding:18px;margin-top:18px;gap:14px;align-items:center}.success.show{display:flex}.success>span{width:34px;height:34px;background:var(--green);color:white;display:grid;place-items:center;border-radius:50%}.success strong{font-size:13px}.success p{margin:4px 0 0;font-size:11px;color:var(--muted)}footer{background:#091b17;color:white;padding:70px clamp(24px,8vw,145px) 25px}.footer-main{display:grid;grid-template-columns:1.5fr .6fr 1fr 1fr;gap:60px}.brand-light .brand-mark{border-color:white}.brand-light .brand-mark i{background:white}.footer-main>div>p{color:#93a49e;margin-top:22px}.footer-main>div:not(:first-child){display:flex;flex-direction:column;gap:12px;font-size:13px}.footer-main>div>strong{color:var(--sun);font-size:11px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:8px}.footer-main>div>a:not(.button),.footer-main>div>span{color:#bdc9c5}.footer-cta .button{color:var(--deep)!important}.footer-bottom{border-top:1px solid #ffffff18;margin-top:55px;padding-top:22px;display:flex;justify-content:space-between;color:#758b84;font-size:11px}
@media(max-width:1000px){.site-header nav,.header-actions .phone{display:none}.menu-button{display:block}.menu-button span{display:block;width:24px;height:2px;background:var(--ink);margin:6px}.site-header nav.open{display:flex;position:absolute;top:86px;left:0;right:0;background:var(--paper);padding:25px;flex-direction:column;box-shadow:0 12px 25px #0002}.hero{min-height:640px}.intro,.faq{grid-template-columns:1fr;gap:45px}.products{grid-template-columns:1fr}.numbers{grid-template-columns:1fr 1fr;gap:30px}.numbers>div{border:0;padding:0}.quote-section{grid-template-columns:1fr}.footer-main{grid-template-columns:1fr 1fr}.footer-main>div:first-child{grid-column:1/-1}}
@media(max-width:680px){.offer-bar{font-size:11px}.offer-bar>span{display:none}.site-header{height:72px;padding:0 20px}.site-header nav.open{top:72px}.header-actions{display:none}.brand-mark{width:35px;height:35px}.brand-mark:before{width:22px;height:22px}.brand-mark i{left:14px}.hero{min-height:690px;align-items:flex-start}.hero-bg{background-position:62% center}.hero-shade{background:linear-gradient(90deg,rgba(6,24,20,.92),rgba(6,24,20,.42))}.hero-content{margin:0;padding:80px 24px}.hero h1{font-size:49px}.hero-content>p:not(.eyebrow){font-size:16px}.hero-buttons{align-items:flex-start;flex-direction:column;gap:20px}.hero-card{min-width:0;width:100%;padding:16px 22px}.intro,.faq,.process,.quote-section{padding:80px 24px}.products{padding:0 20px 80px}.product-visual{height:320px}.numbers{grid-template-columns:1fr 1fr;padding:45px 24px}.numbers>div{display:block}.numbers span{display:block;margin-top:5px}.section-heading{grid-template-columns:1fr;gap:30px}.steps{grid-template-columns:1fr}.steps article,.steps article+article{padding:30px 0;border-right:0;border-bottom:1px solid #cdd2cc}.step-icon{margin:25px 0}.testimonial{padding:80px 24px}.customer b{display:none}.field-row{grid-template-columns:1fr}.quote-form{padding:28px 20px}.form-heading b{display:none}.footer-main{grid-template-columns:1fr}.footer-main>div:first-child{grid-column:auto}.footer-bottom{flex-direction:column;gap:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Product photography + project gallery */
.products{grid-template-columns:repeat(2,1fr)}
.garage-card{grid-column:1/-1}
.product-gallery-trigger{width:100%;height:430px;padding:0;border:0;display:block;position:relative;overflow:hidden;background:var(--deep);cursor:pointer}
.product-photo{width:100%;height:100%;display:block;object-fit:cover;transition:transform .6s ease}
.product-gallery-trigger:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(6,24,20,.52))}
.product-gallery-trigger:hover .product-photo{transform:scale(1.035)}
.view-gallery{position:absolute;z-index:2;right:24px;bottom:22px;background:var(--paper);padding:11px 14px;font-size:12px;font-weight:700;display:flex;gap:18px;align-items:center}
.view-gallery b{font-size:16px}.circle-action{margin-left:auto;flex:none;width:46px;height:46px;border:1px solid #aab3ad;background:transparent;display:grid;place-items:center;font-size:20px;cursor:pointer;transition:.2s}
.circle-action:hover{background:var(--sun);border-color:var(--sun)}
.product-copy .quote-action{margin-left:auto;align-self:center;width:auto;height:auto;border:0;border-bottom:1px solid var(--ink);display:flex;align-items:center;gap:14px;padding:7px 0;font-size:12px;font-weight:700;white-space:nowrap}.product-copy .quote-action:hover{background:transparent;border-color:var(--sun);color:var(--green)}.quote-action b{font-size:17px}
.gallery-modal[hidden]{display:none}.gallery-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px}
.gallery-backdrop{position:absolute;inset:0;background:rgba(3,15,12,.88);backdrop-filter:blur(8px)}
.gallery-panel{position:relative;width:min(1100px,100%);max-height:94vh;overflow:auto;background:var(--paper);padding:24px}
.gallery-top,.gallery-bottom{display:flex;align-items:center;justify-content:space-between}.gallery-top{padding:4px 2px 20px}
.gallery-top p{margin:0 0 4px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.15em;font-weight:800}.gallery-top h2{font:700 27px "Manrope";margin:0}
.gallery-close{border:0;background:transparent;font:300 38px/1 "DM Sans";cursor:pointer}.gallery-stage{height:min(64vh,650px);position:relative;background:#e9ece8;display:grid;place-items:center}
.gallery-stage img{width:100%;height:100%;object-fit:contain}.gallery-arrow{position:absolute;z-index:2;top:50%;transform:translateY(-50%);width:46px;height:46px;border:0;background:var(--paper);font-size:18px;cursor:pointer;box-shadow:0 5px 20px #0002}
.gallery-arrow.previous{left:16px}.gallery-arrow.next{right:16px}.gallery-bottom{padding:16px 2px 5px}.gallery-caption{margin:0;font-weight:600}.gallery-count{font-size:12px;color:var(--muted)}
.gallery-thumbnails{display:flex;gap:8px;overflow-x:auto;padding-top:10px}.gallery-thumbnails button{padding:0;border:3px solid transparent;background:none;width:80px;height:56px;flex:none;cursor:pointer}.gallery-thumbnails button.active{border-color:var(--sun)}
.gallery-thumbnails img{width:100%;height:100%;object-fit:cover;display:block}body.gallery-open{overflow:hidden}
.submit:disabled{cursor:wait;opacity:.7;transform:none}.success.error{background:#f7dddd}.success.error>span{background:#9f3434}
@media(max-width:1000px){.garage-card{grid-column:auto}}
@media(max-width:680px){.products{grid-template-columns:1fr}.product-gallery-trigger{height:320px}.gallery-modal{padding:0}.gallery-panel{max-height:100vh;min-height:100vh;padding:18px}.gallery-stage{height:62vh}.gallery-arrow{width:40px;height:40px}}

/* Compact review cards */
.reviews{padding:100px clamp(24px,8vw,145px);background:var(--cream)}
.reviews-heading{display:grid;grid-template-columns:1fr .65fr;gap:8vw;align-items:end;margin-bottom:50px}.reviews-heading h2{font:600 clamp(38px,4.2vw,62px)/1.08 "Manrope";letter-spacing:-.045em;margin:0}.reviews-heading h2 em{font-weight:500;color:var(--green)}.reviews-heading>p{color:var(--muted);line-height:1.7;max-width:430px}
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.review-grid article{background:var(--paper);padding:30px;display:flex;flex-direction:column;min-height:265px;border-top:3px solid var(--sun)}.review-stars{color:#b2780b;letter-spacing:2px;font-size:13px}.review-grid article>p{font:500 17px/1.65 "Manrope";margin:25px 0 28px}.review-grid article>div:last-child{margin-top:auto}.review-grid strong,.review-grid small{display:block}.review-grid small{color:var(--muted);font-size:11px;margin-top:5px}

/* Scrollable square gallery grid; clicking a tile expands it in place. */
.gallery-panel{height:min(850px,94vh);display:flex;flex-direction:column}.gallery-intro{color:var(--muted);font-size:13px;margin:0 0 18px}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;overflow-y:auto;padding-right:5px}.gallery-grid button{position:relative;aspect-ratio:1;padding:0;border:0;background:#e9ece8;cursor:pointer;overflow:hidden;transition:all .25s}.gallery-grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}.gallery-grid button:hover img{transform:scale(1.03)}.gallery-grid button span{position:absolute;left:0;right:0;bottom:0;padding:25px 12px 10px;color:white;text-align:left;font:700 11px "DM Sans";background:linear-gradient(transparent,rgba(3,15,12,.82))}.gallery-grid button.expanded{grid-column:1/-1;aspect-ratio:16/9}.gallery-grid button.expanded img{object-fit:contain;background:#172622}
@media(max-width:800px){.reviews-heading{grid-template-columns:1fr}.review-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.reviews{padding:75px 24px}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-grid button.expanded{aspect-ratio:1}.gallery-intro{font-size:12px}}

/* Keep uploaded portrait photos contained in predictable card and gallery cells. */
.products{align-items:start}.product-card{min-width:0;position:relative;isolation:isolate}.product-gallery-trigger{height:auto;aspect-ratio:4/3;contain:layout paint}.product-photo{position:absolute;inset:0;max-width:100%;object-position:center center}.product-copy{position:relative;z-index:2;min-width:0}.product-copy>div{min-width:0}
.gallery-grid{grid-auto-flow:row;grid-auto-rows:auto;align-items:start;gap:16px}.gallery-grid button{display:block;width:100%;min-width:0;aspect-ratio:3/4;isolation:isolate;background:#e7e9e5}.gallery-grid img{position:absolute;inset:0;max-width:100%;object-fit:contain}.gallery-grid button:hover img{transform:none}.gallery-grid button span{display:none}
.gallery-grid button.expanded{aspect-ratio:3/4;max-width:700px;justify-self:center}.gallery-grid button.expanded img{object-fit:contain;background:#172622}
@media(max-width:1100px){.products{grid-template-columns:1fr}.garage-card{grid-column:auto}.product-gallery-trigger{aspect-ratio:16/10}}
@media(max-width:680px){.product-gallery-trigger{height:auto;aspect-ratio:4/3}.product-copy{padding:24px 20px 28px;gap:15px}.product-copy .quote-action{font-size:11px}.view-gallery{right:14px;bottom:14px}.gallery-grid{gap:10px}}

/* Final gallery layout: natural portrait images with no cropping or overlap. */
.gallery-panel{height:min(900px,94vh);overflow:hidden}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;overflow-y:auto;align-content:start;align-items:start;padding:0 8px 24px 0}
.gallery-grid figure{position:relative;display:block;width:100%;height:auto;min-width:0;margin:0;padding:0;border:2px solid transparent;background:#eceeea;cursor:zoom-in;overflow:hidden}
.gallery-grid figure:focus-visible{outline:3px solid var(--sun);outline-offset:2px}
.gallery-grid figure img{position:static;display:block;width:100%;height:auto;max-width:100%;aspect-ratio:auto;object-fit:initial;background:transparent;transform:none}
.gallery-grid figure.expanded{grid-column:1/-1;width:min(100%,700px);max-width:700px;justify-self:center;cursor:zoom-out;border-color:var(--sun)}
.gallery-grid figure.expanded img{position:static;width:100%;height:auto;object-fit:initial;background:transparent}
@media(max-width:850px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}
@media(max-width:520px){.gallery-grid{grid-template-columns:1fr}.gallery-grid figure.expanded{grid-column:auto}}

/* Full-size gallery: the panel scrolls, while image rows keep their natural height. */
.gallery-panel{display:block;width:min(1200px,96vw);height:94vh;max-height:94vh;overflow-y:auto;overflow-x:hidden;padding:28px}
.gallery-top{position:relative}.gallery-close{position:sticky;top:0;z-index:5}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:max-content;gap:24px;overflow:visible;height:auto;max-height:none;padding:0 4px 32px;align-items:start;align-content:start}
.gallery-grid figure{display:block;position:relative;width:100%;height:auto;min-height:0;aspect-ratio:auto;margin:0;overflow:visible;background:transparent;border:0}
.gallery-grid figure img{display:block;position:static;width:100%;height:auto;max-width:100%;max-height:none;aspect-ratio:auto;object-fit:contain;transform:none;border:1px solid var(--line);background:#f0f1ee}
.gallery-grid figure.expanded{grid-column:1/-1;width:min(100%,800px);max-width:800px;height:auto;aspect-ratio:auto;overflow:visible}
.gallery-grid figure.expanded img{display:block;position:static;width:100%;height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}
@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.gallery-panel{width:100vw;height:100vh;max-height:100vh;padding:20px}.gallery-grid{grid-template-columns:1fr;gap:24px}.gallery-grid figure.expanded{grid-column:auto;width:100%}}

/* Product galleries now lead directly out of the hero. */
.hero+.products{padding-top:90px}
