:root { --bg:#fbfaf7; --ink:#1e1e1d; --muted:#6f6e69; --line:#d9d7d0; --card:#f0eee8; --accent:#00a9e0; }
.faq h2{max-width:680px;margin:28px 0 38px}.faq-list{max-width:850px;border-top:1px solid var(--line)}.faq-list details{border-bottom:1px solid var(--line);padding:0}.faq-list summary{padding:20px 34px 20px 0;cursor:pointer;list-style:none;font:700 18px "Space Grotesk";position:relative}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary:after{content:"+";position:absolute;right:4px;font:500 26px Manrope;color:var(--cyan)}.faq-list details[open] summary:after{content:"−";color:var(--magenta)}.faq-list p{max-width:640px;margin:0;padding:0 34px 22px 0;color:var(--muted)}
.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:end;margin:28px 0 40px}.section-heading h2{max-width:650px}.section-heading p{max-width:340px;margin:0;color:var(--muted)}.portfolio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.portfolio-card{min-width:0}.portfolio-image{display:grid;place-items:center;aspect-ratio:4/3;background:var(--card);overflow:hidden;position:relative}.portfolio-card:nth-child(1) .portfolio-image{background:linear-gradient(135deg,rgba(0,169,224,.26),var(--card) 58%)}.portfolio-card:nth-child(2) .portfolio-image{background:linear-gradient(135deg,rgba(236,0,140,.24),var(--card) 58%)}.portfolio-card:nth-child(3) .portfolio-image{background:linear-gradient(135deg,rgba(255,212,0,.3),var(--card) 58%)}.portfolio-image img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.portfolio-card:hover .portfolio-image img{transform:scale(1.04)}.portfolio-image span{font:700 clamp(46px,6vw,90px) "Space Grotesk";color:var(--ink);opacity:.22}.portfolio-meta{padding:16px 0 6px}.portfolio-meta p{margin:0 0 8px;font:700 10px Manrope;letter-spacing:.1em;color:var(--muted)}.portfolio-meta h3{font-size:24px;line-height:1.05}.portfolio-meta span{display:block;margin-top:8px;font-size:13px;color:var(--muted)}@media(max-width:720px){.section-heading{display:block}.section-heading p{margin-top:18px}.portfolio-grid{grid-template-columns:1fr;gap:28px}}
.portfolio-card{display:block}.portfolio-card:hover .portfolio-meta h3,.portfolio-card:hover .portfolio-meta h2{color:var(--cyan)}.portfolio-archive{min-height:calc(100vh - 150px);padding-top:90px}.back-link{display:inline-block;margin-bottom:55px;font:800 12px Manrope;letter-spacing:.06em;text-transform:uppercase}.archive-heading{display:flex;justify-content:space-between;gap:32px;align-items:end;margin:28px 0 48px}.archive-heading h1{font-size:clamp(48px,7vw,94px);max-width:760px}.archive-heading p{max-width:370px;color:var(--muted);margin:0}.portfolio-meta h2{font:700 24px/1.05 "Space Grotesk";letter-spacing:-.045em;margin:0}.empty-portfolio{padding:45px 0;color:var(--muted);border-top:1px solid var(--line)}@media(max-width:720px){.portfolio-archive{padding-top:50px}.archive-heading{display:block;margin-bottom:34px}.archive-heading p{margin-top:20px}}
.navigation.pagination{display:flex;justify-content:center;margin-top:56px}.nav-links{display:flex;align-items:center;gap:7px}.nav-links .page-numbers{display:grid;place-items:center;min-width:36px;height:36px;padding:0 10px;border:1px solid var(--line);font:800 12px Manrope}.nav-links .current{background:var(--ink);color:var(--bg);border-color:var(--ink)}.nav-links .prev,.nav-links .next{padding:0 14px}
.project-contact{margin-top:120px;border-top:1px solid var(--line)}.project-contact .section-heading{margin-bottom:0}.project-single{padding-top:95px}.project-single h1{font-size:clamp(48px,7vw,94px);max-width:950px}.project-intro{max-width:620px;margin:28px 0 52px;font-size:20px;color:var(--muted)}.project-hero-image{margin:0 0 58px;max-height:680px;overflow:hidden;background:var(--card)}.project-hero-image img{width:100%;height:100%;max-height:680px;object-fit:cover;display:block}.project-content{max-width:760px;font-size:18px;line-height:1.75}.project-content>*:first-child{margin-top:0}.project-content h2,.project-content h3{margin-top:42px}.project-content img{max-width:100%;height:auto}
.project-heading{display:flex;justify-content:space-between;gap:45px;align-items:end}.project-details{min-width:180px;padding:18px 0 25px;border-top:3px solid var(--cyan)}.project-details p{display:grid;gap:4px;margin:0 0 18px}.project-details span{font:800 10px Manrope;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.project-details strong{font:700 17px "Space Grotesk"}.project-details a{font:800 12px Manrope;color:var(--magenta)}.project-gallery{margin:0 0 64px;overflow:hidden}.gallery-track{display:flex;background:var(--card)}.gallery-slide{flex:0 0 100%;height:min(58vw,690px);margin:0}.gallery-slide img{width:100%;height:100%;object-fit:cover;display:block}.gallery-controls{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding-top:13px}.gallery-controls button{width:38px;height:38px;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:18px;cursor:pointer}.gallery-count{min-width:54px;text-align:center;font:800 11px Manrope;color:var(--muted)}.project-cta{margin-top:42px}@media(max-width:720px){.project-heading{display:block}.project-details{margin:25px 0}.gallery-slide{height:72vw}}
.contact-direct{display:inline-flex;gap:8px;align-items:center;margin:22px 0 0;color:var(--muted);font-size:14px}.contact-direct a{color:var(--ink);font-weight:800;border-bottom:1px solid var(--cyan)}.contact-direct a span{color:var(--magenta)}.contact-form{margin-top:30px}.contact-form .form-phone{grid-column:1/-1;width:calc(50% - 9px)}@media(max-width:720px){.contact-form .form-phone{width:100%}}
.map-preview{position:relative}.map-frame-link{position:absolute;z-index:2;inset:0 auto 0 0;width:60%;cursor:pointer}.map-frame-link:after{content:"Open directions ↗";position:absolute;left:18px;bottom:17px;padding:8px 11px;background:var(--ink);color:var(--bg);font:800 10px Manrope;letter-spacing:.06em;opacity:0;transform:translateY(5px);transition:.2s}.map-frame-link:hover:after,.map-frame-link:focus:after{opacity:1;transform:none}@media(max-width:720px){.map-frame-link{width:100%;height:220px;bottom:auto}.map-frame-link:after{opacity:1;transform:none}}
:root{--cyan:#00a9e0;--magenta:#ec008c;--yellow:#ffd400;--green:#25d366}.site-header{border-bottom:1px solid var(--line);position:relative}.site-header:after{content:"";position:absolute;bottom:-1px;left:32px;width:84px;height:3px;background:linear-gradient(90deg,var(--cyan) 0 33%,var(--magenta) 33% 66%,var(--yellow) 66%)}.eyebrow,.section-label{display:flex;align-items:center;gap:8px}.eyebrow:before{content:"";display:inline-block;width:24px;height:5px;background:linear-gradient(90deg,var(--cyan) 0 33%,var(--magenta) 33% 66%,var(--yellow) 66%)}.section-label{color:var(--ink)}.section-label:after{content:"";width:34px;height:2px;background:var(--cyan)}.button{position:relative;overflow:hidden;border-bottom:3px solid var(--cyan);transition:transform .2s,box-shadow .2s}.button:after{content:"";position:absolute;bottom:-3px;left:33%;right:0;height:3px;background:linear-gradient(90deg,var(--magenta),var(--yellow))}.button:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(0,169,224,.16)}.hero-mark{position:relative}.hero-mark:before{content:"";position:absolute;width:330px;height:330px;border-radius:50%;background:conic-gradient(from 140deg,rgba(0,169,224,.2),rgba(236,0,140,.16),rgba(255,212,0,.22),rgba(0,169,224,.2));filter:blur(2px)}.hero-mark img{position:relative}.service-grid article{position:relative;overflow:hidden;transition:transform .2s,background .2s}.service-grid article:before{content:"";position:absolute;top:0;left:0;width:100%;height:5px;background:var(--cyan)}.service-grid article:nth-child(2):before{background:var(--magenta)}.service-grid article:nth-child(3):before{background:var(--yellow)}.service-grid article:hover{transform:translateY(-5px);background:color-mix(in srgb,var(--card) 88%,var(--cyan))}.contact{background:linear-gradient(135deg,transparent 85%,rgba(0,169,224,.08) 85%)}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--cyan);box-shadow:0 1px var(--magenta)}.map-preview{border-left:5px solid var(--yellow)}.map-details em{color:var(--magenta)}.social-links a:first-child:hover{background:var(--cyan)}.social-links a:nth-child(2):hover{background:var(--magenta)}.social-links a:nth-child(3):hover{background:var(--yellow);color:var(--ink)}.whatsapp-float{background:var(--green)}@media(max-width:720px){.site-header:after{left:20px}.hero-mark:before{display:none}}
:root{--black:#1e1e1d}.site-header:after{background:linear-gradient(90deg,var(--cyan) 0 25%,var(--magenta) 25% 50%,var(--yellow) 50% 75%,var(--black) 75% 100%)}.eyebrow:before{background:linear-gradient(90deg,var(--cyan) 0 25%,var(--magenta) 25% 50%,var(--yellow) 50% 75%,var(--black) 75% 100%)}
.social-links{display:flex;gap:8px;align-items:center}.social-links a{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--line);border-radius:50%;font:700 12px Manrope;transition:background .2s,color .2s}.social-links a:hover{background:var(--ink);color:var(--bg)}
.whatsapp-float{position:fixed;right:28px;bottom:26px;z-index:20;display:flex;align-items:center;gap:9px;padding:11px 15px 11px 12px;background:#25d366;color:#081c10;border-radius:999px;box-shadow:0 10px 28px rgba(0,0,0,.18);font:800 12px Manrope;letter-spacing:.02em}.whatsapp-float span{display:grid;place-items:center;width:24px;height:24px;background:#fff;border-radius:50%;font-size:9px;text-transform:uppercase}@media(max-width:720px){.whatsapp-float{right:16px;bottom:16px}.whatsapp-float b{display:none}.whatsapp-float{padding:10px}.whatsapp-float span{width:30px;height:30px}}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:46px;max-width:830px}.contact-form label{display:grid;gap:7px;font:700 11px Manrope;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.contact-form input,.contact-form textarea{width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);padding:10px 0;font:500 16px Manrope;outline:0}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--ink)}.contact-form .form-message{grid-column:1/-1}.contact-form .button{justify-self:start;border:0;cursor:pointer}.form-status{margin:0;color:var(--muted);align-self:center}.map-preview{display:grid;grid-template-columns:1.2fr .8fr;min-height:240px;margin-top:72px;background:var(--card);overflow:hidden}.map-preview iframe{width:100%;height:100%;min-height:240px;border:0;filter:grayscale(1) contrast(.85)}.map-details{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:34px;gap:9px}.map-preview b{font:700 24px/1.1 "Space Grotesk"}.map-preview small{font-size:13px;color:var(--muted)}.map-preview em{font:700 11px Manrope;font-style:normal;letter-spacing:.06em;margin-top:10px;color:var(--accent)}@media(max-width:720px){.contact-form,.map-preview{grid-template-columns:1fr}.map-details{padding:25px}.map-preview iframe{min-height:220px}}
.footer-links{display:flex;align-items:center;gap:18px}.footer-links a:hover{text-decoration:underline;color:var(--ink)}.policy{max-width:820px;padding-top:92px;padding-bottom:118px}.policy h1{font-size:clamp(42px,6vw,70px);margin:16px 0 24px}.policy h2{font-size:26px;margin:46px 0 12px}.policy p,.policy li{color:var(--muted);max-width:760px}.policy ul{padding-left:22px}body[data-theme="dark"] .logo-dark{filter:none}@media(max-width:720px){.site-footer{flex-wrap:wrap}.footer-links{gap:14px}}
.faq-page{max-width:1240px;padding-top:92px;padding-bottom:118px}.faq-page-heading{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(240px,.75fr);gap:10%;align-items:end;margin:26px 0 58px}.faq-page h1{max-width:900px}.faq-page-heading p,.service-map-intro{margin:0;color:var(--muted);font-size:18px}.faq-page-list{max-width:900px;border-top:1px solid var(--line)}.faq-page-list details{border-bottom:1px solid var(--line)}.faq-page-list summary{position:relative;list-style:none;cursor:pointer;padding:24px 44px 24px 0;font:700 clamp(18px,2vw,24px)/1.2 "Space Grotesk",sans-serif}.faq-page-list summary::-webkit-details-marker{display:none}.faq-page-list summary:after{content:"+";position:absolute;right:4px;top:17px;font:400 32px/1 Manrope;color:var(--cyan)}.faq-page-list details[open] summary:after{content:"−";color:var(--magenta)}.faq-page-list details p{max-width:760px;margin:0;padding:0 42px 24px 0;color:var(--muted)}.service-map{margin-top:100px;padding-top:0}.service-map h2{max-width:850px;margin:22px 0}.service-map-intro{max-width:800px}.service-map-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:38px}.service-map-grid article{border-top:4px solid var(--cyan);background:var(--card);padding:24px}.service-map-grid article:nth-child(2){border-color:var(--magenta)}.service-map-grid article:nth-child(3){border-color:var(--yellow)}.service-map-grid p{margin:0 0 14px;color:var(--muted);font:700 11px Manrope;letter-spacing:.11em;text-transform:uppercase}.service-map-grid h3{font-size:24px;line-height:1.1;margin-bottom:22px}.service-map-grid span{font:700 11px Manrope;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.service-map-grid ul{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0 0;padding:0;list-style:none}.service-map-grid li{border:1px solid var(--line);padding:5px 8px;font-size:12px;line-height:1.3;color:var(--muted)}.faq-service-links{margin-top:84px;border-top:1px solid var(--line);padding-top:36px}.faq-service-links h2{font-size:clamp(28px,3vw,42px);max-width:650px}.faq-service-links>div{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}.faq-service-links a{display:flex;gap:18px;align-items:center;border:1px solid var(--line);padding:13px 16px;font-weight:700}.faq-service-links a:hover{border-color:var(--cyan)}.faq-service-links a span{color:var(--cyan)}.faq-page-cta{margin-top:88px;padding:42px;background:var(--card)}.faq-page-cta h2{font-size:clamp(30px,3.6vw,52px);max-width:650px}.faq-page-cta p{max-width:660px;color:var(--muted);font-size:18px;margin:18px 0 28px}@media(max-width:720px){.faq-page{padding-top:70px;padding-bottom:75px}.faq-page-heading{grid-template-columns:1fr;gap:22px;margin-bottom:42px}.faq-page-list summary{padding-top:20px;padding-bottom:20px;font-size:19px}.faq-page-list summary:after{top:14px}.faq-page-list details p{padding-right:0}.service-map{margin-top:70px}.service-map-grid{grid-template-columns:1fr;gap:12px}.faq-service-links{margin-top:60px}.faq-page-cta{margin-top:60px;padding:28px 22px}}
.about-page,.contact-page{max-width:1240px;padding-top:92px;padding-bottom:118px}.about-page-heading,.contact-page-heading{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(240px,.75fr);gap:10%;align-items:end;margin:26px 0 70px}.about-page-heading h1,.contact-page-heading h1{max-width:920px}.about-page-heading p,.contact-page-heading p{margin:0;color:var(--muted);font-size:18px}.about-answer{max-width:900px;border-left:4px solid var(--cyan);padding:8px 0 8px 28px}.about-answer h2{font-size:clamp(28px,3vw,42px)}.about-answer p{max-width:780px;margin:18px 0 0;color:var(--muted);font-size:18px}.about-columns{display:grid;grid-template-columns:1fr 1fr;gap:10%;margin-top:100px}.about-columns h2{max-width:500px;margin-top:26px}.about-columns>div:last-child p{margin:0 0 22px;color:var(--muted);font-size:18px}.about-categories{margin-top:96px;padding-top:36px;border-top:1px solid var(--line)}.about-categories h2{max-width:660px;margin:22px 0 32px}.about-categories>div{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.about-categories a{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px;background:var(--card);border-top:3px solid var(--cyan);font:700 17px "Space Grotesk"}.about-categories a:nth-child(2){border-color:var(--magenta)}.about-categories a:nth-child(3){border-color:var(--yellow)}.about-categories a span{color:var(--cyan)}.about-page-cta{margin-top:90px;padding:42px;background:var(--card)}.about-page-cta h2{font-size:clamp(30px,3.6vw,52px);max-width:650px}.about-page-cta p{max-width:660px;color:var(--muted);font-size:18px;margin:18px 0 28px}.contact-page .contact-form{margin-top:42px}.contact-page .map-preview{max-width:1000px}@media(max-width:720px){.about-page,.contact-page{padding-top:70px;padding-bottom:75px}.about-page-heading,.contact-page-heading,.about-columns{grid-template-columns:1fr;gap:24px}.about-page-heading,.contact-page-heading{margin-bottom:48px}.about-columns{margin-top:70px}.about-categories{margin-top:65px}.about-categories>div{grid-template-columns:1fr}.about-page-cta{margin-top:65px;padding:28px 22px}}
.hero-logo-dark{display:none}.hero-mark img{filter:none!important}body[data-theme="dark"] .hero-logo-light{display:none}body[data-theme="dark"] .hero-logo-dark{display:block}
body[data-theme="dark"] .logo-dark{filter:invert(1)}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--bg);color:var(--ink);font:500 16px/1.55 Manrope,Arial,sans-serif;transition:background .25s,color .25s} body[data-theme="dark"]{--bg:#101111;--ink:#f6f4ee;--muted:#a8a7a1;--line:#343634;--card:#1b1c1b}.site-header,.site-footer,.section,.hero{max-width:1240px;margin:auto;padding-left:32px;padding-right:32px}.site-header{height:94px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:block;width:200px}.logo{width:100%;display:block}.logo-dark{display:none}body[data-theme="dark"] .logo-light{display:none}body[data-theme="dark"] .logo-dark{display:block}nav{display:flex;gap:26px;margin-left:auto}a{color:inherit;text-decoration:none}nav a{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.header-actions{display:flex;align-items:center;gap:16px}.lang-switch,.theme-switch{border:0;background:none;color:var(--ink);font:700 12px Manrope;cursor:pointer;padding:7px}.lang-other{color:var(--muted)}.theme-switch{border:1px solid var(--line);border-radius:50%;font-size:17px;width:37px;height:37px;padding:0}.hero{min-height:610px;display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:40px;border-bottom:1px solid var(--line)}.eyebrow,.section-label{font:700 11px Manrope;letter-spacing:.13em;color:var(--muted)}h1,h2,h3{font-family:"Space Grotesk",sans-serif;letter-spacing:-.045em;margin:0}h1{font-size:clamp(48px,6vw,88px);line-height:.98;max-width:800px}h2{font-size:clamp(36px,4.5vw,64px);line-height:1.04}.lead{max-width:580px;font-size:18px;color:var(--muted);margin:28px 0 34px}.button{display:inline-flex;gap:24px;align-items:center;background:var(--ink);color:var(--bg);padding:15px 20px;font-size:13px;font-weight:800}.button span{font-size:20px}.hero-mark{display:grid;place-items:center}.hero-mark img{width:min(100%,315px);filter:none}body[data-theme="dark"] .hero-mark img{filter:invert(1)}.section{padding-top:118px;padding-bottom:118px;border-bottom:1px solid var(--line)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:start}.two-col p{font-size:20px;color:var(--muted);margin:0}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:42px}.service-grid article{background:var(--card);min-height:245px;padding:26px;display:flex;flex-direction:column}.service-grid span{font:700 11px Manrope;color:var(--muted)}.service-grid h3{font-size:28px;line-height:1.05;margin:auto 0 10px}.service-grid p{font-size:14px;color:var(--muted);margin:0}.contact{padding-bottom:128px}.contact h2{max-width:750px;margin:28px 0 40px}.contact-link{font:700 clamp(22px,3vw,42px) "Space Grotesk";border-bottom:2px solid var(--ink);padding-bottom:5px}.contact-link span{color:var(--accent)}.site-footer{display:flex;justify-content:space-between;padding-top:26px;padding-bottom:28px;color:var(--muted);font-size:12px}@media(max-width:720px){.site-header{height:78px;padding-left:20px;padding-right:20px}.brand{width:142px}nav{display:none}.header-actions{gap:4px}.hero,.section,.site-footer{padding-left:20px;padding-right:20px}.hero{min-height:auto;padding-top:70px;padding-bottom:70px;grid-template-columns:1fr}.hero-mark{display:none}.two-col,.service-grid{grid-template-columns:1fr;gap:28px}.section{padding-top:75px;padding-bottom:75px}.service-grid{margin-top:30px}.service-grid article{min-height:190px}.site-footer{gap:20px}}
body[data-theme="dark"] .logo-dark{filter:none!important}
.mobile-logo,.menu-toggle{display:none}@media(max-width:720px){.site-header{position:relative;z-index:30}.brand{width:47px;height:52px;display:grid;place-items:center}.brand .logo{display:none!important}.mobile-logo{display:block;width:47px;height:47px;object-fit:contain}.mobile-logo-dark{display:none}body[data-theme="dark"] .mobile-logo-light{display:none}body[data-theme="dark"] .mobile-logo-dark{display:block}.header-actions{margin-left:auto;gap:5px}.menu-toggle{display:grid;place-content:center;gap:4px;width:38px;height:38px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;cursor:pointer}.menu-toggle span{display:block;width:15px;height:1.5px;background:var(--ink);transition:transform .2s,opacity .2s}.menu-open .menu-toggle span:first-child{transform:translateY(5.5px) rotate(45deg)}.menu-open .menu-toggle span:nth-child(2){opacity:0}.menu-open .menu-toggle span:last-child{transform:translateY(-5.5px) rotate(-45deg)}.site-header nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;padding:18px 20px 22px;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 14px 24px rgba(0,0,0,.08);flex-direction:column;gap:0}.menu-open .site-header nav{display:flex}.site-header nav a{padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.site-header nav a:last-child{border-bottom:0}}
.portfolio-card:nth-child(3n + 1) .portfolio-image{background:linear-gradient(135deg,rgba(0,169,224,.26),var(--card) 58%)}.portfolio-card:nth-child(3n + 2) .portfolio-image{background:linear-gradient(135deg,rgba(236,0,140,.24),var(--card) 58%)}.portfolio-card:nth-child(3n) .portfolio-image{background:linear-gradient(135deg,rgba(255,212,0,.3),var(--card) 58%)}
@media(max-width:900px){.site-header{position:relative;z-index:30}.site-header nav{display:none;position:absolute;top:100%;left:0;right:0;margin:0;padding:18px 20px 22px;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 14px 24px rgba(0,0,0,.08);flex-direction:column;gap:0}.menu-open .site-header nav{display:flex}.site-header nav a{padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.site-header nav a:last-child{border-bottom:0}.menu-toggle{display:grid;place-content:center;gap:4px;width:38px;height:38px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;cursor:pointer}.menu-toggle span{display:block;width:15px;height:1.5px;background:var(--ink);transition:transform .2s,opacity .2s}.menu-open .menu-toggle span:first-child{transform:translateY(5.5px) rotate(45deg)}.menu-open .menu-toggle span:nth-child(2){opacity:0}.menu-open .menu-toggle span:last-child{transform:translateY(-5.5px) rotate(-45deg)}}

/* Project-card titles: a calmer scale and consistent space below each project image. */
.portfolio-meta{padding:20px 0 18px}
.portfolio-meta p{margin-bottom:10px}
.portfolio-meta h2{font-size:clamp(21px,1.45vw,25px);line-height:1.12;letter-spacing:-.035em;max-width:29ch}
.portfolio-meta span{margin-top:10px}
@media(max-width:720px){.portfolio-meta{padding:18px 0 12px}.portfolio-meta h2{font-size:23px}}

/* Project pages: keep navigation available and let artwork retain its intended composition. */
.site-header{position:sticky!important;top:0;z-index:100;background:var(--bg);box-shadow:0 8px 22px rgba(30,30,29,.04)}
.project-single{padding-top:70px}
.project-heading{align-items:flex-start;gap:64px;margin-top:20px}
.project-single h1{font-size:clamp(40px,4.6vw,72px);line-height:1.02;max-width:820px}
.project-intro{margin:22px 0 44px;font-size:18px;line-height:1.6}
.project-hero-image{display:grid;place-items:center;margin:0 0 48px;max-height:none;background:var(--card)}
.project-hero-image img{width:100%;height:auto;max-height:min(72vh,760px);object-fit:contain;display:block}

/* Service archives: a compact, repeatable page rhythm that keeps the heading,
   category grid and following content visually connected at every viewport. */
.portfolio-archive.section{padding-top:clamp(48px,5vw,76px);padding-bottom:clamp(72px,8vw,112px)}
.portfolio-archive .section-label{margin:0}
.portfolio-archive .archive-heading{margin:20px 0 clamp(30px,3vw,42px);align-items:start}
.portfolio-archive .archive-heading h1{max-width:min(780px,100%);text-wrap:balance}
.portfolio-archive .archive-heading p{padding-bottom:5px}
.portfolio-archive .portfolio-grid{row-gap:clamp(28px,3vw,42px)}
.portfolio-archive .project-contact{margin-top:clamp(72px,8vw,112px)}
@media(max-width:720px){.portfolio-archive.section{padding-top:44px;padding-bottom:72px}.portfolio-archive .archive-heading{margin-top:18px;margin-bottom:30px}.portfolio-archive .archive-heading h1{text-wrap:pretty}.portfolio-archive .portfolio-grid{row-gap:30px}.portfolio-archive .project-contact{margin-top:72px}}

/* Site-wide spacing system: shared vertical rhythm for home, pages, archives,
   service detail pages and legal content. */
:root{--space-1:12px;--space-2:20px;--space-3:32px;--space-4:48px;--space-5:clamp(64px,7vw,96px);--space-6:clamp(80px,9vw,120px)}
body{line-height:1.6}
.section{padding-top:var(--space-6);padding-bottom:var(--space-6)}
.section-label{margin:0}
.section-heading{gap:clamp(28px,5vw,64px);margin:var(--space-2) 0 var(--space-4)}
.section-heading h2,.archive-heading h1,.about-page-heading h1,.contact-page-heading h1,.faq-page-heading h1{max-width:18ch;text-wrap:balance}
.two-col,.about-columns{gap:clamp(32px,8vw,112px)}
.portfolio-grid,.service-grid{gap:clamp(16px,2vw,26px)}
.portfolio-meta{padding-top:var(--space-2);padding-bottom:var(--space-2)}
.faq h2{margin:var(--space-2) 0 var(--space-3)}
.faq-list summary{padding-top:18px;padding-bottom:18px}
.contact h2{margin:var(--space-2) 0 var(--space-3)}
.contact-form{margin-top:var(--space-3)}
.map-preview{margin-top:var(--space-5)}
.project-single{padding-top:var(--space-5)}
.project-heading{margin-top:0;gap:clamp(32px,6vw,72px)}
.project-intro{margin:var(--space-2) 0 var(--space-4)}
.project-gallery{margin-bottom:var(--space-4)}
.project-contact{margin-top:var(--space-6)}
.about-page,.contact-page,.faq-page{padding-top:var(--space-5);padding-bottom:var(--space-6)}
.about-page-heading,.contact-page-heading,.faq-page-heading{margin:var(--space-2) 0 var(--space-5)}
.about-columns{margin-top:var(--space-5)}
.about-categories,.faq-service-links{margin-top:var(--space-5)}
.service-map{margin-top:var(--space-6)}
.faq-page-cta,.about-page-cta{margin-top:var(--space-5)}
.policy{padding-top:var(--space-5);padding-bottom:var(--space-6)}
.policy h1{margin:var(--space-2) 0 var(--space-3)}
.policy h2{margin:var(--space-4) 0 var(--space-1)}
.site-footer{padding-top:var(--space-2);padding-bottom:var(--space-3);gap:var(--space-2)}
@media(max-width:720px){
  :root{--space-1:10px;--space-2:16px;--space-3:24px;--space-4:36px;--space-5:52px;--space-6:72px}
  .section-heading{margin-bottom:var(--space-3)}
  .section-heading h2,.archive-heading h1,.about-page-heading h1,.contact-page-heading h1,.faq-page-heading h1{max-width:100%;text-wrap:pretty}
  .two-col,.about-columns{gap:var(--space-3)}
  .portfolio-grid,.service-grid{gap:var(--space-3)}
  .portfolio-meta{padding-top:16px;padding-bottom:12px}
  .site-footer{padding-top:20px;padding-bottom:24px}
}

/* Service Tags add useful context to a Service without producing thin tag archives. */
.service-tags{margin:var(--space-5) 0;border-top:1px solid var(--line);padding-top:var(--space-3)}
.service-tags h2{font-size:clamp(28px,3vw,42px);margin:var(--space-2) 0 var(--space-3);max-width:620px}
.service-tags ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none}
.service-tags li{display:grid;gap:6px;padding:18px 20px;background:var(--card);border-top:3px solid var(--cyan)}
.service-tags li:nth-child(3n + 2){border-color:var(--magenta)}
.service-tags li:nth-child(3n){border-color:var(--yellow)}
.service-tags strong{font:700 17px/1.15 "Space Grotesk",sans-serif}
.service-tags span{font-size:14px;line-height:1.5;color:var(--muted)}
@media(max-width:720px){.service-tags ul{grid-template-columns:1fr}.service-tags li{padding:16px 18px}}
.project-gallery{margin:0 0 58px;background:var(--card)}
.gallery-slide{height:auto;aspect-ratio:16/10;display:grid;place-items:center;background:var(--card)}
.gallery-slide img{width:100%;height:100%;object-fit:contain;display:block}
@media(max-width:720px){.project-single{padding-top:48px}.project-heading{gap:24px;margin-top:16px}.project-single h1{font-size:clamp(36px,10vw,52px);line-height:1.04}.project-intro{margin:18px 0 32px;font-size:17px}.project-hero-image{margin-bottom:34px}.gallery-slide{aspect-ratio:4/3}.project-gallery{margin-bottom:42px}}

/* Full-width project layout: lead image first, then the remaining project images in one slider. */
.project-heading{display:block;margin-top:18px}
.project-single h1{max-width:none;font-size:clamp(38px,4vw,68px);line-height:1.04}
.project-details{max-width:320px;margin:30px 0 0}
.project-intro{max-width:760px;margin:22px 0 40px}
.project-gallery{width:100%;margin:0 0 56px}
.gallery-track{will-change:transform}
.gallery-slide{aspect-ratio:16/9}
.project-content{max-width:none;width:100%;font-size:18px;line-height:1.75}
@media(max-width:720px){.project-heading{margin-top:16px}.project-single h1{font-size:clamp(34px,9.2vw,50px);line-height:1.06}.project-details{margin-top:24px}.project-intro{margin:18px 0 30px}.gallery-slide{aspect-ratio:4/3}.project-content{font-size:17px}}
