/* PPF — Atelier lumière. Tokens and components shared by all public pages. */
:root{--paper:#faf8f2;--ink:#1c2923;--muted:#536058;--card:#f0eee5;--line:#d6dcd2;--accent:#176743;--accent2:#0d5133;--sage:#e5ebdf;--clay:#a45837;--serif:"Playfair Display",Georgia,serif;--sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;--radius:6px;--ease:180ms ease}
*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:110px;-webkit-text-size-adjust:100%}body{margin:0;color:var(--ink);background:var(--paper);font:400 16px/1.7 var(--sans)}body.menu-open{overflow:hidden}img,video{max-width:100%;height:auto;display:block}a{color:inherit;text-underline-offset:5px}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:hover{color:var(--accent)}:focus-visible{outline:3px solid var(--accent);outline-offset:5px}a,button{touch-action:manipulation}[hidden]{display:none!important}.container{width:min(1120px,calc(100% - 64px));margin:auto}.container-wide{width:min(1360px,calc(100% - 80px));margin:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:16px;top:-100px;z-index:150;background:white;padding:10px 18px}.skip-link:focus{top:10px}
h1,h2,h3{font-family:var(--serif);line-height:1.14;letter-spacing:-.035em;font-weight:600;margin:0 0 24px}h1{font-size:clamp(2.4rem,4.2vw,4.25rem);max-width:19ch}h2{font-size:clamp(2rem,3.5vw,3.4rem);max-width:22ch}h3{font-size:1.55rem}em{font-weight:500;color:var(--accent)}p{margin:0 0 20px}li{margin-bottom:6px}.eyebrow{font:600 11px/1.6 var(--sans);text-transform:uppercase;letter-spacing:.16em;color:var(--accent);margin:0 0 20px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:14px 22px;border:1px solid transparent;border-radius:var(--radius);font-size:14px;line-height:1.3;font-weight:600;text-decoration:none;text-align:center;transition:background-color var(--ease),color var(--ease)}.btn-green{background:var(--accent);color:white}.btn-green:hover{background:var(--accent2);color:white}.btn-dark,.btn-outline{border-color:var(--accent);color:var(--accent);background:transparent}.btn-dark:hover,.btn-outline:hover{background:var(--sage);color:var(--accent2)}.text-link{display:inline-block;color:var(--accent);font-size:14px;font-weight:600;min-height:44px;padding:10px 0}.hero-actions,.cta-actions{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 14px}
/* Familiar visible navigation on desktop, a compact modal menu on mobile. */
.site-header{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:26px;padding:14px max(32px,calc((100vw - 1360px)/2));min-height:100px;background:var(--paper);border-bottom:1px solid var(--line)}.brand{display:block;margin-right:auto;flex-shrink:0}.brand img{width:244px;height:auto}.brand span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.desktop-nav{display:flex;gap:24px;align-items:center}.desktop-nav a{font-size:14px;font-weight:500;display:flex;align-items:center;min-height:44px;text-decoration:none}.desktop-nav a[aria-current=page]{box-shadow:0 2px var(--accent);color:var(--accent)}.header-cta{background:var(--accent);color:white;padding:13px 20px;min-height:46px;border-radius:var(--radius);font-size:13px;font-weight:600;text-decoration:none;text-align:center}.header-cta:hover{background:var(--accent2);color:white}.menu-toggle{display:none}.menu-toggle,.menu-close{border:1px solid var(--line);background:transparent;border-radius:5px;min-height:44px;padding:8px 12px;color:var(--ink)}.site-menu{position:fixed;inset:0;z-index:100;background:var(--paper);overflow-y:auto;padding:28px max(24px,6vw);display:flex;flex-direction:column}.menu-close{align-self:flex-end}.menu-panel{padding:30px 0;flex:1}.menu-list{max-width:800px}.menu-list a{display:block;padding:12px 0;border-bottom:1px solid var(--line);font:500 clamp(1.5rem,4vw,3rem)/1.2 var(--serif);text-decoration:none}.menu-meta{display:flex;flex-wrap:wrap;gap:16px;font-size:14px}.breadcrumb{font-size:12px;padding-top:24px;color:var(--muted)}.breadcrumb span{padding-left:5px}
/* Hero: retain the full real vertical photograph, never force a synthetic panorama. */
.hero-home{padding:28px 0 40px}.home-layout{width:min(1360px,calc(100% - 80px));margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4.5vw,70px);align-items:center}.home-copy{padding:20px 0}.home-copy h1{font-size:clamp(3rem,4.8vw,4.8rem);line-height:1.06;max-width:16ch;margin-bottom:30px}.home-copy h1 em{font-size:.83em;letter-spacing:-.04em;display:inline-block;padding-top:8px}.home-lead{font-size:clamp(1rem,1.4vw,1.15rem);max-width:38ch;color:var(--muted)}.home-signature{margin-top:30px;padding-top:18px;border-top:1px solid var(--line);display:flex;flex-direction:column;font-size:12px;color:var(--muted)}.home-signature span:first-child{font-size:18px;font-family:var(--serif);color:var(--ink)}.home-photo{margin:0;position:relative;padding-top:12px;border-top:2px solid var(--accent)}.home-photo img{width:100%;height:min(660px,72svh);min-height:450px;object-fit:cover;object-position:center 46%}.home-photo figcaption{display:flex;justify-content:space-between;gap:12px;font-size:11px;padding-top:12px;color:var(--muted)}.home-photo figcaption a{font-weight:600;color:var(--accent)}.services-home{padding:0 0 36px;border-bottom:1px solid var(--line)}.service-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;padding-top:30px;border-top:1px solid var(--line)}.service-cards article{position:relative;padding-left:55px}.service-number{position:absolute;left:0;top:0;font:400 36px/1 var(--serif);color:var(--clay)}.service-cards h2{font-size:1.45rem;letter-spacing:-.02em;margin-bottom:12px}.service-cards h2 a{text-decoration:none}.service-cards p{font-size:14px;color:var(--muted);margin-bottom:2px}.service-cards .text-link{font-size:12px}.service-secondary{display:flex;flex-wrap:wrap;gap:10px 26px;font-size:12px;margin-top:28px;padding-top:18px;border-top:1px solid var(--line)}.service-secondary a{padding:6px 0}
section{padding:72px 0}.section-head{margin-bottom:34px}.section-head p{max-width:65ch;color:var(--muted)}.split,.hero-grid,.split-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,70px)}.split-heading{align-items:end}.split-heading h2{margin-bottom:0}.split-heading p{max-width:48ch}.hero{padding:48px 0 60px}.hero-grid{align-items:center}.hero p{max-width:62ch;color:var(--muted)}.hero-card{background:var(--sage);padding:32px;border-top:2px solid var(--accent);border-radius:0}.hero-card h2{font:600 18px/1.4 var(--sans);letter-spacing:0;margin-bottom:16px}.hero-card ul{padding-left:20px;color:var(--muted);margin:0;font-size:15px}.hero-card>img{max-width:230px;margin-bottom:24px}.chip,.case-tags span{display:inline-block;background:var(--sage);border:1px solid var(--line);font-size:12px;padding:6px 12px;border-radius:40px}.case-tags,.proof{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.service-photo{margin:0}.service-photo img{width:100%;max-height:480px;object-fit:cover;object-position:center 40%}.service-photo figcaption{font-size:12px;padding-top:10px;color:var(--muted)}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.card{border-top:1px solid var(--line);padding:24px 0;min-width:0}.card p{font-size:15px;color:var(--muted)}.card h3{font-size:1.4rem}.row{display:grid;grid-template-columns:200px 1fr;gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}.row strong{font-weight:600}.row div{color:var(--muted)}.dark,.band-warm,.method,.evidence-link{background:var(--sage)}.dark h2{color:var(--ink)}.dark .btn-outline{border-color:var(--accent)}.cta-box{background:var(--paper);padding:32px;border:1px solid var(--line);border-top:2px solid var(--accent)}.cta-box h2{font-size:2rem}.cta-box p{color:var(--muted)}.contact-lines{display:grid;gap:10px;margin:22px 0}.contact-line{padding:12px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.step{display:flex;gap:18px;padding:18px 0;border-top:1px solid #bdc9ba;font-size:14px}.step b{color:var(--clay);font:400 32px/1.2 var(--serif)}.step strong{font-size:17px}.split .steps{grid-template-columns:1fr;gap:6px}.work-list{columns:2;padding-left:20px;column-gap:30px;font-size:15px}.work-list li{break-inside:avoid}
/* Real before/after photos: no pixel overlay between different camera positions. */
.portfolio{background:var(--paper)}.comparison{margin:28px 0}.comparison-controls{display:flex;gap:4px;padding:4px;width:fit-content;max-width:100%;background:var(--sage);margin-bottom:20px;border-radius:6px}.comparison-controls button{border:0;background:transparent;min-height:44px;padding:10px 18px;font-size:13px;color:var(--accent);border-radius:4px}.comparison-controls button[aria-pressed=true]{background:var(--accent);color:white}.before-after{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.before-after figure{margin:0;position:relative;min-width:0}.before-after img{width:100%;height:540px;object-fit:contain;background:var(--card)}.before-after a{display:block}.before-after figcaption{padding:12px 0;color:var(--muted);font-size:13px}.photo-badge{display:inline-block;position:absolute;top:12px;left:12px;z-index:1;background:var(--accent);color:#fff;padding:5px 12px;font-size:11px;border-radius:3px}.comparison[data-view=before] .before-after,.comparison[data-view=after] .before-after{grid-template-columns:minmax(0,1fr);max-width:760px;margin:auto}.comparison-note{font-size:12px;color:var(--muted);margin:8px 0 0}.case-pair{padding:36px 0;border-top:1px solid var(--line)}.case-pair h3{font-size:2rem}.case-pair-note{color:var(--muted);max-width:62ch;font-size:14px}.work-gallery,.case-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.work-gallery figure,.case-gallery figure{margin:0;min-width:0}.work-gallery img,.case-gallery img{width:100%;height:430px;object-fit:contain;background:var(--card)}.work-gallery figcaption,.case-gallery figcaption{font-size:13px;color:var(--muted);padding-top:14px}.evidence-photo{max-height:400px;display:block;overflow:hidden}.evidence-photo img{width:100%;height:400px;object-fit:cover;object-position:center 40%}.lightbox{border:0;padding:18px;background:var(--paper);color:var(--ink);max-width:min(960px,96vw);max-height:95svh;overflow:auto}.lightbox::backdrop{background:rgba(15,30,20,.88)}.lightbox img{max-height:74svh;object-fit:contain;margin:12px auto}.lightbox-caption{font-size:13px;margin:10px 48px}.lightbox-close,.lightbox-prev,.lightbox-next{border:1px solid var(--line);background:var(--paper);color:var(--accent);min-height:44px;min-width:44px;border-radius:4px;padding:8px 14px}.lightbox-prev,.lightbox-next{position:absolute;top:50%;font-size:24px}.lightbox-prev{left:12px}.lightbox-next{right:12px}
.craft-heading{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:50px;margin-bottom:36px}.craft-heading .section-head{margin:0}.craft-heading h2{margin:0}.craft-intro{color:var(--muted);margin:0;font-size:15px}.craft-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.craft-card{min-width:0}.craft-media{position:relative;background:var(--sage);aspect-ratio:4/5}.craft-media video{width:100%;height:100%;object-fit:contain}.craft-number{position:absolute;right:12px;top:12px;background:var(--paper);padding:4px 8px;color:var(--accent);font-size:12px}.craft-copy{padding-top:20px}.craft-copy h3{font-size:1.4rem}.craft-copy p{color:var(--muted);font-size:14px}.craft-card-stack{display:grid;grid-template-columns:1fr 1fr;gap:12px}.craft-card-stack figure{margin:0}.craft-card-stack img{width:100%;height:240px;object-fit:cover}.craft-card-stack figcaption{font-size:11px;padding-top:8px;color:var(--muted)}.craft-card-stack .craft-copy{grid-column:1/-1}.band-reviews{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.band-reviews .text-link{display:block;margin-top:10px}.zone-list{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13px}.zone-list span{padding:4px 0}.cta-band{background:var(--sage)}.cta-band .cta-box{display:grid;grid-template-columns:1fr 1fr;gap:50px;background:transparent;border:0;padding:0}.faq{display:grid;gap:12px}.faq details{border-bottom:1px solid var(--line);padding:14px 0}.faq summary{cursor:pointer;font-size:16px;font-weight:500;min-height:40px}.faq details p{padding:16px 0 0;color:var(--muted);max-width:70ch}.contact-email-note{font-size:13px!important}.site-footer{background:#173f2d;color:#f3f4e9;padding:56px 0 40px}.site-footer .container{display:grid;grid-template-columns:230px 1fr;gap:30px 50px}.footer-logo{width:220px;height:auto;padding:10px;background:var(--paper)}.site-footer .container>div:last-child{grid-column:2;font-size:12px}.subnav{display:flex;flex-wrap:wrap;gap:10px 18px;margin-top:20px}.subnav a{font-size:12px;color:#f3f4e9;min-height:32px}.site-footer a:hover{color:#fff}.site-footer :focus-visible{outline-color:#fff}.mobile-cta{display:none}
/* Small quote helper stays local until the visitor chooses their email application. */
.quote-form{display:grid;gap:20px}.quote-form label{display:block;font-size:14px;font-weight:500;margin-bottom:6px}.quote-form input,.quote-form select,.quote-form textarea{border:1px solid #9aa69a;border-radius:4px;background:white;color:var(--ink);padding:12px;width:100%;min-height:48px}.quote-form textarea{resize:vertical;min-height:130px}.form-hint,.form-status{font-size:13px;color:var(--muted)}.quote-result{padding:24px;border:1px solid var(--accent);background:var(--sage)}.quote-result textarea{width:100%;min-height:230px;background:white;padding:14px;font-size:14px}.quote-actions{display:flex;flex-wrap:wrap;gap:12px}.contact-alt{margin-top:16px;font-size:14px}.quote-form .grid-2{gap:18px}
@media(min-width:1600px){.home-photo img{height:710px}.home-copy h1{font-size:5rem}}
@media(max-width:1000px){.desktop-nav{gap:15px}.site-header{gap:18px;padding-inline:24px}.brand img{width:210px}.header-cta{padding-inline:14px;font-size:12px}.container-wide,.home-layout{width:calc(100% - 48px)}.home-layout{gap:30px}.home-copy h1{font-size:clamp(2.7rem,5vw,3.9rem)}.service-cards{gap:22px}.service-cards article{padding-left:0}.service-number{position:static;display:block;margin-bottom:12px}.work-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.craft-grid{gap:20px}.craft-card-stack{grid-template-columns:1fr}.craft-card-stack figure:nth-child(2){display:none}.home-photo img{min-height:480px}}
@media(max-width:760px){html{scroll-padding-top:90px}.site-header{min-height:78px;padding:10px 18px;gap:12px}.brand{order:0;margin:0 auto 0 0}.brand img{width:190px}.desktop-nav{display:none}.menu-toggle{display:block;order:1;font-size:13px}.header-cta{display:none}.container,.container-wide,.home-layout{width:calc(100% - 40px)}section{padding:46px 0}.hero-home{padding:12px 0 28px}.home-layout{grid-template-columns:1fr;gap:24px}.home-copy{padding:14px 0 0}.home-copy .eyebrow{font-size:10px;margin-bottom:14px}.home-copy h1{font-size:clamp(2.55rem,8vw,3.8rem);line-height:1.08;max-width:19ch;margin-bottom:20px}.home-copy h1 em{font-size:.87em}.home-lead{font-size:16px;max-width:40ch}.home-copy .hero-actions{margin-top:20px}.home-signature{display:none}.home-copy .text-link{font-size:13px}.home-photo img{min-height:0;height:auto;aspect-ratio:4/5;object-fit:cover}.home-photo figcaption{font-size:10px}.service-cards{grid-template-columns:1fr;gap:0;padding-top:6px}.service-cards article{padding:24px 0 20px 55px;border-bottom:1px solid var(--line)}.service-number{position:absolute;top:24px}.service-cards h2{font-size:1.4rem}.service-secondary{gap:12px 20px;margin-top:18px}.services-home{padding-bottom:24px}.split,.hero-grid,.split-heading,.craft-heading{grid-template-columns:1fr;gap:28px}.hero{padding:32px 0 40px}.breadcrumb{font-size:11px;padding-top:18px}.hero h1{font-size:2.5rem;max-width:22ch}.hero-card{padding:24px}.hero p{font-size:16px}.grid-3{grid-template-columns:1fr;gap:0}.grid-2{grid-template-columns:1fr}.card{padding:24px 0}.section-head{margin-bottom:26px}.split-heading h2{font-size:2.65rem}.steps{grid-template-columns:1fr;gap:8px}.work-list{columns:1}.row{grid-template-columns:1fr;gap:8px;padding:16px 0}.comparison-controls button{padding:10px 16px}.before-after{gap:10px}.before-after img{height:300px}.before-after figcaption{font-size:11px}.comparison[data-view=before] img,.comparison[data-view=after] img{height:auto;max-height:70svh;object-fit:contain}.comparison-note{font-size:11px}.photo-badge{font-size:10px;top:8px;left:8px;padding:4px 8px}.work-gallery,.case-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.work-gallery img,.case-gallery img{height:300px}.work-gallery figcaption{font-size:12px}.craft-grid{grid-template-columns:1fr 1fr;gap:20px 14px}.craft-card-stack{grid-column:1/-1;grid-template-columns:1fr 1fr}.craft-card-stack figure:nth-child(2){display:block}.craft-card-stack img{height:230px}.craft-copy h3{font-size:1.2rem}.craft-copy p{font-size:13px}.craft-heading{gap:16px}.craft-media{aspect-ratio:3/4}.cta-band .cta-box{grid-template-columns:1fr;gap:20px}.cta-box{padding:24px}.site-footer{padding:40px 0 110px}.site-footer .container{grid-template-columns:1fr;gap:24px}.site-footer .container>div:last-child{grid-column:auto}.mobile-cta{position:fixed;bottom:0;left:0;right:0;z-index:35;display:flex;gap:10px;padding:10px 18px calc(10px + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--line)}.mobile-cta .btn{flex:1;min-height:44px;padding:10px;font-size:13px}.menu-open .mobile-cta{visibility:hidden}.evidence-photo img{height:340px}.quote-actions .btn{width:100%}.service-photo img{max-height:400px}.lightbox{max-width:96vw;padding:12px}.lightbox img{max-height:68svh}}
@media(max-width:360px){.brand img{width:165px}.home-copy h1{font-size:2.3rem}.hero-actions{gap:8px}.hero-actions .btn{padding:13px 14px;font-size:13px}.comparison-controls button{padding-inline:12px}.before-after img{height:240px}.work-gallery{grid-template-columns:1fr}.craft-grid{grid-template-columns:1fr}.craft-card-stack{grid-column:auto}.craft-media{max-height:400px}.home-photo figcaption{flex-direction:column;gap:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{.site-header,.mobile-cta,.comparison-controls{display:none}.site-footer{background:white;color:black}.before-after figure[hidden]{display:block!important}section{break-inside:avoid;padding:20px 0}}
.site-header .brand{order:0}.site-header .desktop-nav{order:1}.site-header .header-cta{order:2}.site-header .menu-toggle{order:3}
blockquote{margin:24px 0;padding:0 0 0 22px;border-left:2px solid var(--clay)}blockquote p{font:500 1.35rem/1.5 var(--serif);margin-bottom:10px}blockquote cite{font:400 12px/1.5 var(--sans);color:var(--muted)}.review-score{font-size:16px}.review-score strong{font:500 2.4rem/1.2 var(--serif);color:var(--accent)}
@media(max-width:760px){.home-layout{gap:12px}.home-copy{padding-top:8px}.home-copy>.text-link{display:none}.home-copy .hero-actions{margin-bottom:4px}.home-lead{line-height:1.55}.home-photo img{aspect-ratio:4/3;object-position:center 70%}}
.stage-photo{margin:0}.stage-photo img{width:100%;max-height:680px;object-fit:contain}.stage-photo figcaption{font-size:12px;color:var(--muted);padding-top:12px}

.nowrap{white-space:nowrap}
