
:root{--purple:#8A52F7;--orange:#F3A805;--green:#0E861B;--pink:#FF66B2;--ink:#17131f;--muted:#706a79;--soft:#f7f4fb;--white:#fff;--line:#e7e1ee;--container:1240px}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:"DM Sans",sans-serif;color:var(--ink);background:#fff;line-height:1.7}a{text-decoration:none;color:inherit}p{color:var(--muted)}img{max-width:100%;display:block}.container{width:min(var(--container),calc(100% - 48px));margin:auto}
.topbar{background:var(--ink);color:#d8d5db;font-size:11px}.topbar-inner{min-height:40px;display:flex;justify-content:space-between;align-items:center}.top-contact{display:flex;align-items:center;gap:10px}.top-contact i{width:3px;height:3px;background:#777;border-radius:50%}.topbar a{color:#fff}
.site-header{background:#fff;position:sticky;top:0;z-index:1000;box-shadow:0 4px 22px #20102d0b}.nav{height:88px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px}.brand-mark{width:43px;height:43px;border-radius:11px;background:var(--purple);color:#fff;display:grid;place-items:center;font:800 23px Manrope}.brand strong{display:block;font:800 20px Manrope;letter-spacing:2px}.brand small{display:block;font-size:8px;letter-spacing:2px;color:#777}.nav-links{display:flex;align-items:center;gap:23px;font-size:13px;font-weight:700}.nav-links>a,.nav-drop>a{padding:31px 0;position:relative}.nav-links>a.active:after,.nav-drop.active>a:after{content:"";position:absolute;bottom:22px;left:0;width:22px;height:2px;background:var(--orange)}.nav-quote{background:var(--purple);color:#fff!important;padding:14px 19px!important;border-radius:4px}.menu-toggle{display:none;border:0;background:none;font-size:27px}
.hero{min-height:680px;position:relative;display:flex;align-items:center;color:#fff;overflow:hidden;background:#211031aa url("https://images.unsplash.com/photo-1541888946425-d81bb19240f5?auto=format&fit=crop&w=2200&q=85") center/cover}.hero:before{content:"";position:absolute;right:-100px;bottom:-250px;width:620px;height:620px;border:120px solid #8a52f733;border-radius:50%}.hero-inner{position:relative;z-index:2;padding:100px 0}.eyebrow{display:flex;align-items:center;gap:10px;color:var(--purple);font-size:10px;font-weight:800;letter-spacing:2px;margin-bottom:18px}.eyebrow span{width:28px;height:2px;background:var(--orange);display:inline-block}.eyebrow.light{color:#fff}.hero h1{font:800 clamp(48px,6vw,84px)/.99 Manrope;letter-spacing:-4px;max-width:900px}.hero h1 em,h1 em,h2 em{font-style:normal;color:var(--orange)}.hero p{color:#eee;max-width:660px;font-size:16px;margin:27px 0}.hero-actions{display:flex;gap:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:18px;padding:15px 23px;font-weight:800;font-size:12px;border-radius:4px;border:0;cursor:pointer}.btn-primary{background:var(--orange);color:#1a1308}.btn-outline{border:1px solid #ffffff70;color:#fff}.btn-light{background:#fff;color:var(--ink)}.hero-trust{display:flex;gap:35px;margin-top:65px}.hero-trust div{border-left:1px solid #ffffff44;padding-left:17px}.hero-trust b{font:800 24px Manrope;display:block}.hero-trust span{font-size:10px;color:#ddd}.hero-card{position:absolute;right:6%;bottom:55px;z-index:3;background:#fff;color:var(--ink);padding:24px;width:250px;box-shadow:0 20px 60px #0004}.hero-card span{font-size:9px;color:var(--purple);font-weight:800;letter-spacing:1.5px}.hero-card strong{font:700 18px Manrope;display:block;margin:13px 0}.hero-card a{font-size:10px;font-weight:800}.stats{background:var(--purple);color:#fff}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}.stats-grid div{padding:25px 28px;border-right:1px solid #ffffff2e}.stats-grid strong{font:800 31px Manrope;display:block}.stats-grid span{font-size:10px;text-transform:uppercase;letter-spacing:1px}
.section{padding:115px 0}.soft{background:var(--soft)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:center}.image-stack{height:535px;position:relative}.photo{position:absolute;background-size:cover;background-position:center}.photo-a{width:76%;height:78%;left:0;top:0;background-image:url("https://images.unsplash.com/photo-1600607687920-4e2a09cf159d?auto=format&fit=crop&w=1000&q=85")}.photo-b{width:62%;height:53%;right:0;bottom:0;border:14px solid #fff;background-image:url("https://images.unsplash.com/photo-1600210492486-724fe5c67fb0?auto=format&fit=crop&w=900&q=85")}.experience{position:absolute;left:42%;bottom:15%;background:var(--orange);padding:19px;color:#19120a;display:flex;align-items:center;gap:13px}.experience strong{font:800 39px Manrope}.experience span{font-size:9px;line-height:1.3;font-weight:800;letter-spacing:1px}.copy h2,h2{font:800 clamp(35px,4vw,57px)/1.05 Manrope;letter-spacing:-2px;margin-bottom:22px}.copy>p{margin-bottom:16px}.check-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:25px 0;font-weight:700;font-size:12px}.check-grid span:first-letter{color:var(--green)}.text-link{font-size:11px;font-weight:800;border-bottom:2px solid var(--orange);padding-bottom:6px}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:50px}.section-heading>p{max-width:420px;font-size:13px}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.service-card{background:#fff;padding:35px 30px;min-height:330px;border:1px solid var(--line);position:relative;transition:.3s}.service-card:hover{transform:translateY(-7px);box-shadow:0 22px 50px #29104614}.service-card.featured{background:var(--purple);color:#fff}.service-card.featured p{color:#eee}.service-number{position:absolute;right:22px;top:22px;font:700 11px Manrope;color:#aaa}.featured .service-number{color:#ffffff80}.service-icon{font-size:31px;color:var(--orange);margin-bottom:28px}.service-card h3{font:700 21px Manrope;margin-bottom:11px;max-width:290px}.service-card p{font-size:12px}.service-card a{position:absolute;bottom:27px;font-size:10px;font-weight:800}.service-card ul{margin:16px 0 42px;padding-left:17px;color:var(--muted);font-size:11px}.featured ul{color:#eee}.service-page-grid .service-card{min-height:395px}
.advantage{background:var(--purple);color:#fff;padding:115px 0}.advantage-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:105px}.advantage h2{font-size:55px}.advantage p{color:#eee;margin-bottom:28px}.advantage-list>div{display:grid;grid-template-columns:55px 1fr;gap:20px;padding:20px 0;border-bottom:1px solid #ffffff32}.advantage-list b{font:800 11px Manrope;color:var(--orange)}.advantage-list h3{font:700 18px Manrope}.advantage-list p{font-size:11px;margin:3px 0}
.project-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:20px}.project{position:relative;overflow:hidden;background:#eee}.project-large{grid-row:span 2}.project-image{height:300px;background-size:cover;background-position:center;transition:.5s}.project-large .project-image{height:620px}.p1{background-image:url("https://images.unsplash.com/photo-1503387762-592deb58ef4e?auto=format&fit=crop&w=1300&q=85")}.p2{background-image:url("https://images.unsplash.com/photo-1497366811353-6870744d04b2?auto=format&fit=crop&w=900&q=85")}.p3{background-image:url("https://images.unsplash.com/photo-1556912167-f556f1f39fdf?auto=format&fit=crop&w=900&q=85")}.p4{background-image:url("https://images.unsplash.com/photo-1505693416388-ac5ce068fe85?auto=format&fit=crop&w=900&q=85")}.project:hover .project-image{transform:scale(1.05)}.project-info{position:absolute;bottom:0;left:0;right:0;padding:25px;color:#fff;background:#000b}.project-info span{font-size:9px;text-transform:uppercase;letter-spacing:1.5px;color:#f4d48b}.project-info h3{font:700 22px Manrope}.project-info p{color:#ddd;font-size:10px}
.interior-band{background:#180d23d9 url("https://images.unsplash.com/photo-1600566753086-00f18fb6b3ea?auto=format&fit=crop&w=1800&q=85") center/cover;color:#fff}.interior-grid{display:grid;grid-template-columns:1fr 1fr;gap:95px;align-items:center}.interior-grid p{color:#ddd;max-width:580px;margin-bottom:28px}.interior-features{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#ffffff33}.interior-features>div{background:#1b1024b8;padding:28px;min-height:145px}.interior-features b{color:var(--orange);font-size:10px}.interior-features strong{display:block;font:700 18px Manrope;margin:13px 0 3px}.interior-features span{font-size:10px;color:#ccc}.center-heading{text-align:center;max-width:720px;margin:0 auto 50px}.center-heading .eyebrow{justify-content:center}.process-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.process-grid>div{padding:32px 24px;border-right:1px solid var(--line)}.process-grid span{width:45px;height:45px;border-radius:50%;background:var(--purple);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:800;margin-bottom:21px}.process-grid h3{font:700 18px Manrope}.process-grid p{font-size:11px;margin-top:6px}
.testimonial{background:var(--ink);color:#fff;padding:110px 0}.testimonial-inner{display:grid;grid-template-columns:90px 1.5fr 1fr;gap:35px;align-items:start}.quote-mark{font:800 130px/1 Manrope;color:var(--pink)}.testimonial blockquote{font:600 22px/1.5 Manrope;margin:24px 0}.testimonial strong,.testimonial-inner>div>span{display:block;font-size:11px}.testimonial-inner>div>span{color:#aaa}.review-side{align-self:end;border-left:1px solid #ffffff33;padding-left:32px;color:#ddd;font-size:13px}.review-side b{display:block;color:#fff;margin-top:20px;font-size:10px}
.faq-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:95px}.accordion details{background:#fff;border-bottom:1px solid var(--line);padding:0 23px}.accordion summary{list-style:none;cursor:pointer;padding:21px 0;font:700 14px Manrope}.accordion summary::-webkit-details-marker{display:none}.accordion summary:after{content:"+";float:right;color:var(--purple);font-size:19px}.accordion details[open] summary:after{content:"−"}.accordion p{font-size:12px;padding:0 0 22px}
.cta{background:var(--purple);color:#fff;padding:85px 0}.cta-inner{display:flex;justify-content:space-between;align-items:center;gap:50px}.cta h2{font-size:52px}.cta p{color:#eee;max-width:620px}
footer{background:#121016;color:#fff}.footer-main{display:grid;grid-template-columns:1.4fr .7fr 1fr 1fr;gap:55px;padding:75px 0 60px}.footer-brand{margin-bottom:20px}.footer-main p{font-size:11px;max-width:330px}.footer-main h4{font:700 13px Manrope;margin-bottom:17px}.footer-main>a,.footer-main>div>a,.footer-main>div>span{display:block;color:#aaa;font-size:11px;margin:8px 0}.footer-main a:hover{color:var(--orange)}.socials{display:flex;gap:7px;margin-top:17px}.socials a{width:30px;height:30px;border:1px solid #ffffff20;display:grid!important;place-items:center;border-radius:50%;color:#fff!important}.copyright{border-top:1px solid #ffffff18}.copyright>div{display:flex;justify-content:space-between;padding:19px 0;color:#777;font-size:9px}
.page-hero{position:relative;padding:95px 0 70px;background:#180c28dd url("https://images.unsplash.com/photo-1504307651254-35680f356dfd?auto=format&fit=crop&w=2200&q=85") center/cover;color:#fff}.page-hero h1{font:800 clamp(43px,5.3vw,68px)/1.05 Manrope;letter-spacing:-3px;max-width:850px}.page-hero p{color:#e8e4ec;max-width:700px;margin:18px 0}.breadcrumbs{display:flex;gap:11px;font-size:10px;margin-top:25px;color:#bbb}.breadcrumbs a{color:#fff}.breadcrumbs b{color:var(--orange)}
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.value-grid article{background:#fff;padding:35px;border:1px solid var(--line)}.value-grid b,.interior-service-grid span{color:var(--orange);font:800 11px Manrope}.value-grid h3{font:700 20px Manrope;margin:15px 0 7px}.value-grid p{font-size:12px}.mission-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:stretch}.mission-card{background:var(--purple);color:#fff;padding:48px}.mission-card h3{font:700 30px Manrope;margin:15px 0}.mission-card p{color:#eee;font-size:13px}
.interior-service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.interior-service-grid article{padding:35px;background:#fff;border:1px solid var(--line);min-height:235px}.interior-service-grid h3{font:700 21px Manrope;margin:15px 0 9px}.interior-service-grid p{font-size:12px;margin-bottom:18px}.interior-service-grid a{font-size:10px;font-weight:800;border-bottom:2px solid var(--orange);padding-bottom:5px}
.detail-layout{display:grid;grid-template-columns:280px 1fr;gap:70px;align-items:start}.service-sidebar{position:sticky;top:115px;border:1px solid var(--line)}.side-title{background:var(--purple);color:#fff;font:700 15px Manrope;padding:18px 20px}.service-sidebar>a{display:flex;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line);font-size:11px;font-weight:700}.service-sidebar>a:hover,.service-sidebar>a.active{color:var(--purple);background:#faf8fc}.side-contact{margin:18px;background:var(--ink);color:#fff;padding:23px}.side-contact span{display:block;font-size:9px;color:#bbb}.side-contact strong{display:block;font:700 17px Manrope;margin:7px 0 12px}.side-contact a{display:block;font-size:11px;margin-top:7px}.detail-image{height:420px;background:url("https://images.unsplash.com/photo-1541888946425-d81bb19240f5?auto=format&fit=crop&w=1400&q=85") center/cover;margin-bottom:35px}.detail-content h2{font-size:48px}.detail-content>p{font-size:14px;max-width:850px}.detail-rich{margin-top:38px}.detail-rich h3{font:700 23px Manrope;margin:32px 0 15px}.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.feature-list div{padding:16px;background:var(--soft);font-size:12px;font-weight:700;border-left:3px solid var(--orange)}.detail-content blockquote{margin:35px 0;padding:25px 30px;background:#f9f6fd;border-left:4px solid var(--purple);font:600 19px/1.5 Manrope}.detail-cta{background:var(--purple);color:#fff;padding:30px;display:flex;align-items:center;gap:22px;flex-wrap:wrap}.detail-cta strong{font:700 20px Manrope}.detail-cta span{font-size:11px;color:#eee;flex:1}.detail-cta .btn{background:#fff}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.news-card{border:1px solid var(--line);padding-bottom:27px;background:#fff}.news-image{display:block;height:250px;background-size:cover;background-position:center}.n1{background-image:url("https://images.unsplash.com/photo-1504307651254-35680f356dfd?auto=format&fit=crop&w=900&q=85")}.n2{background-image:url("https://images.unsplash.com/photo-1556912173-46c336c7fd55?auto=format&fit=crop&w=900&q=85")}.n3{background-image:url("https://images.unsplash.com/photo-1562259949-e8e7688d7828?auto=format&fit=crop&w=900&q=85")}.n4{background-image:url("https://images.unsplash.com/photo-1503387762-592deb58ef4e?auto=format&fit=crop&w=900&q=85")}.n5{background-image:url("https://images.unsplash.com/photo-1600566753086-00f18fb6b3ea?auto=format&fit=crop&w=900&q=85")}.n6{background-image:url("https://images.unsplash.com/photo-1497366811353-6870744d04b2?auto=format&fit=crop&w=900&q=85")}.news-meta{display:flex;align-items:center;gap:9px;margin:20px 23px 8px}.news-meta span{font-size:9px;color:var(--purple);font-weight:800;letter-spacing:1.4px}.news-meta i{width:3px;height:3px;background:#bbb;border-radius:50%}.news-meta small{font-size:8px;color:#aaa}.news-card h3{font:700 20px/1.25 Manrope;margin:0 23px 8px}.news-card p{font-size:11px;margin:0 23px 18px}.news-card .text-link{margin-left:23px}
.article-layout{display:grid;grid-template-columns:1fr 300px;gap:70px;align-items:start}.news-detail-image{height:490px;background-image:url("https://images.unsplash.com/photo-1504307651254-35680f356dfd?auto=format&fit=crop&w=1500&q=85")}.article-main h2{font-size:48px}.article-lead{font-size:16px!important;color:#514b58;margin-bottom:20px}.article-main #post-body p{font-size:13px;margin:0 0 18px}.article-main #post-body h3{font:700 24px Manrope;margin:32px 0 12px}.article-tags{display:flex;gap:8px;align-items:center;margin-top:35px;border-top:1px solid var(--line);padding-top:22px}.article-tags b{font-size:10px;margin-right:8px}.article-tags span{background:var(--soft);padding:6px 10px;font-size:9px}.article-cta{margin-top:35px;background:var(--ink);color:#fff;padding:28px}.article-cta strong{font:700 21px Manrope}.article-cta p{color:#bbb;font-size:11px;margin:5px 0 18px}.article-sidebar{position:sticky;top:115px}.sidebar-box{border:1px solid var(--line);margin-bottom:20px;padding:24px}.sidebar-box h3{font:700 18px Manrope;margin-bottom:15px}.sidebar-box a{display:block;padding:12px 0;border-bottom:1px solid var(--line);font-size:11px;font-weight:700}.sidebar-box a:last-child{border:0}.sidebar-box a:hover{color:var(--purple)}
.contact-layout{display:grid;grid-template-columns:1.3fr .7fr;gap:90px}.contact-form-wrap>p{max-width:650px;font-size:12px;margin-bottom:30px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.contact-form-wrap label{display:block;font-size:10px;font-weight:800;margin-bottom:17px}.contact-form-wrap input,.contact-form-wrap select,.contact-form-wrap textarea{width:100%;display:block;border:1px solid var(--line);background:#fff;padding:14px 15px;margin-top:7px;font:500 12px "DM Sans";outline:0}.contact-form-wrap input:focus,.contact-form-wrap select:focus,.contact-form-wrap textarea:focus{border-color:var(--purple)}.form-status{font-size:11px;margin-top:12px}.contact-side{background:var(--soft);padding:38px}.contact-side h2{font-size:43px}.contact-side>p{font-size:12px;margin-bottom:25px}.contact-item{border-top:1px solid #ded6e8;padding:18px 0}.contact-item span{display:block;color:#888;font-size:9px;text-transform:uppercase;letter-spacing:1px}.contact-item strong{display:block;font:700 14px Manrope;margin-top:5px}.map-section{padding:0 0 110px}.map-placeholder{height:360px;background:#e1dbe8;position:relative;overflow:hidden}.map-placeholder:before{content:"";position:absolute;inset:0;background:transparent;opacity:.65}.map-placeholder>div{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;padding:25px 30px;box-shadow:0 15px 40px #20102d22;text-align:center;min-width:310px}.map-placeholder span{font-size:9px;color:var(--purple);font-weight:800;letter-spacing:1.4px}.map-placeholder strong{display:block;font:700 17px Manrope;margin:8px 0 14px}.map-placeholder a{font-size:10px;font-weight:800;color:var(--purple)}

@media(max-width:1050px){.nav-links{gap:14px}.hero-card{right:3%}.two-col,.interior-grid{gap:55px}.detail-layout{gap:40px}.article-layout{gap:40px}}
@media(max-width:850px){.topbar-inner{padding:8px 0}.topbar-inner>div:first-child{display:none}.top-contact{margin:auto}.nav{height:75px}.menu-toggle{display:block}.hero{min-height:720px}.hero-card{display:none}.stats-grid{grid-template-columns:1fr 1fr}.two-col,.mission-grid,.contact-layout,.detail-layout,.article-layout{grid-template-columns:1fr}.image-stack{height:450px}.service-grid,.news-grid{grid-template-columns:1fr 1fr}.advantage-grid{grid-template-columns:1fr;gap:50px}.project-grid{grid-template-columns:1fr 1fr}.project-large{grid-row:auto;grid-column:span 2}.project-large .project-image{height:450px}.process-grid{grid-template-columns:1fr 1fr}.testimonial-inner{grid-template-columns:55px 1fr}.review-side{grid-column:2}.service-sidebar,.article-sidebar{position:static}.contact-side{margin-top:20px}}
@media(max-width:600px){.container{width:min(100% - 30px,var(--container))}.top-contact{font-size:9px}.top-contact i,.top-contact span{display:none}.nav{height:70px}.hero-inner{padding:80px 0}.hero h1{font-size:48px;letter-spacing:-2px}.hero-trust{gap:18px;flex-wrap:wrap}.hero-trust div{min-width:90px}.section{padding:75px 0}.page-hero{padding:70px 0 55px}.page-hero h1{font-size:43px}.section-heading{display:block}.section-heading>p{margin-top:15px}.service-grid,.news-grid,.value-grid,.interior-service-grid,.form-grid{grid-template-columns:1fr}.service-card,.service-page-grid .service-card{min-height:320px}.project-grid{grid-template-columns:1fr}.project-large{grid-column:auto}.project-large .project-image{height:360px}.project-image{height:280px}.interior-features{grid-template-columns:1fr}.process-grid{grid-template-columns:1fr}.testimonial-inner{grid-template-columns:1fr}.quote-mark{font-size:80px}.review-side{grid-column:auto;border-left:0;border-top:1px solid #ffffff33;padding:25px 0 0}.cta-inner{display:block}.cta h2{font-size:40px}.cta .btn{margin-top:25px}.footer-main{grid-template-columns:1fr 1fr;gap:35px}.copyright>div{display:block}.copyright span{display:block;margin:4px 0}.detail-content h2,.article-main h2{font-size:38px}.feature-list{grid-template-columns:1fr}.news-detail-image{height:300px}.map-placeholder{height:300px}.map-placeholder>div{min-width:280px}.contact-side{padding:27px}.topbar{display:none}}

.project-slider{position:relative;overflow:hidden;margin-top:25px;padding-bottom:42px}
.project-track{display:flex;gap:24px;transition:transform .65s cubic-bezier(.22,.61,.36,1);will-change:transform}
.project-slide{flex:0 0 calc((100% - 48px)/3);min-width:0;background:#fff;border:1px solid var(--line);overflow:hidden;position:relative}
.project-slide .project-image{height:360px}
.project-slide .project-info{padding:22px 23px 25px}
.project-slide .project-info h3{font:700 23px/1.15 Manrope;margin:7px 0 4px}
.project-slide .project-info p{font-size:11px;color:#777;margin-bottom:15px}
.project-slide .project-info a{display:inline-flex;gap:7px;align-items:center;font-size:10px;font-weight:800;color:var(--purple);text-transform:uppercase;letter-spacing:.5px}
.project-slide .project-info a b{font-size:13px}
.project-slide:hover .project-image{transform:scale(1.04)}
.project-slide .project-image{transition:transform .55s ease}
.project-arrow{position:absolute;right:0;top:390px;width:46px;height:46px;border:1px solid #ddd;background:#fff;color:var(--ink);font-size:18px;cursor:pointer;z-index:2;transition:.25s}
.project-prev{right:55px}.project-arrow:hover{background:var(--purple);border-color:var(--purple);color:#fff}
.project-dots{position:absolute;left:0;bottom:0;display:flex;gap:7px}.project-dot{width:28px;height:3px;border:0;background:#ddd;padding:0;cursor:pointer}.project-dot.active{background:var(--purple);width:48px}
@media(max-width:850px){.project-slide{flex-basis:calc((100% - 24px)/2)}.project-arrow{top:310px}.project-slide .project-image{height:280px}}
@media(max-width:600px){.project-slide{flex-basis:100%}.project-arrow{top:330px}.project-slide .project-image{height:300px}.project-dots{left:0}}

/* =====================================================================
   NAVIGATION  (desktop hover/keyboard · touch/mobile tap)
   Dropdown sits flush under the trigger (top:100%) so there is no dead
   zone for the cursor to fall through.
   ===================================================================== */
.nav-links{align-self:stretch}
.nav-links>a,.nav-drop>a{transition:color .25s}
.nav-links>a:not(.nav-quote):before,.nav-drop>a:before{content:"";position:absolute;left:0;bottom:22px;width:100%;height:2px;background:var(--purple);transform:scaleX(0);transform-origin:right;transition:transform .35s ease}
.nav-links>a:not(.nav-quote):hover:before,.nav-drop:hover>a:before,.nav-drop.open>a:before{transform:scaleX(1);transform-origin:left}
.nav-links>a.active:before,.nav-drop.active>a:before{display:none}
.nav-links>a:not(.nav-quote):hover,.nav-drop:hover>a,.nav-drop.open>a,.nav-links>a.active,.nav-drop.active>a{color:var(--purple)}

.nav-drop{position:relative;align-self:stretch;display:flex;align-items:center}
.nav-drop>a{display:flex;align-items:center;gap:6px;white-space:nowrap}
.nav-drop>a b{display:inline-block;font-size:12px;transition:transform .3s ease}
.nav-drop:hover>a b,.nav-drop.open>a b,.nav-drop:has(:focus-visible)>a b{transform:rotate(180deg)}

.dropdown{position:absolute;top:100%;left:-20px;width:280px;padding:8px 0;background:#fff;border-top:3px solid var(--purple);box-shadow:0 22px 50px rgba(25,14,40,.16);z-index:1100;
  opacity:0;visibility:hidden;transform:translateY(12px);pointer-events:none;
  transition:opacity .28s ease,transform .28s ease,visibility 0s linear .28s}
.nav-drop:hover>.dropdown,.nav-drop.open>.dropdown,.nav-drop:has(:focus-visible)>.dropdown{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:0s}
.dropdown a{position:relative;display:flex;align-items:center;justify-content:space-between;padding:12px 22px;font-size:12px;font-weight:700;color:var(--ink);border-bottom:1px solid #f0ecf4;transition:color .25s,background .25s,padding .25s}
.dropdown a:last-child{border-bottom:0}
.dropdown a:after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--orange);transform:scaleY(0);transition:transform .25s ease}
.dropdown a:hover,.dropdown a:focus-visible{background:#f7f3fb;color:var(--purple);padding-left:28px;outline:0}
.dropdown a:hover:after,.dropdown a:focus-visible:after{transform:scaleY(1)}
/* items cascade in (Realwide style) */
@keyframes dropItem{from{opacity:0;transform:translateX(-14px)}to{opacity:1;transform:none}}
.nav-drop:hover>.dropdown a,.nav-drop.open>.dropdown a,.nav-drop:has(:focus-visible)>.dropdown a{animation:dropItem .38s cubic-bezier(.22,.61,.36,1) backwards;animation-delay:calc(var(--i,0)*45ms + 60ms)}
.dropdown a:nth-child(1){--i:0}.dropdown a:nth-child(2){--i:1}.dropdown a:nth-child(3){--i:2}.dropdown a:nth-child(4){--i:3}.dropdown a:nth-child(5){--i:4}.dropdown a:nth-child(6){--i:5}.dropdown a:nth-child(7){--i:6}

.menu-toggle{width:44px;height:44px;border-radius:8px;cursor:pointer;color:var(--ink);transition:background .25s,color .25s}
.menu-toggle:hover,.menu-toggle[aria-expanded="true"]{background:var(--soft);color:var(--purple)}

@media(max-width:850px){
  .nav-links{position:absolute;top:100%;left:0;right:0;align-self:auto;display:flex;flex-direction:column;align-items:stretch;gap:0;background:#fff;padding:4px 24px 22px;box-shadow:0 26px 40px rgba(0,0,0,.14);max-height:calc(100vh - 110px);max-height:calc(100dvh - 110px);overflow-y:auto;overscroll-behavior:contain;
    opacity:0;visibility:hidden;transform:translateY(-12px);pointer-events:none;transition:opacity .3s ease,transform .3s ease,visibility 0s linear .3s}
  .nav-links.open{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:0s}
  .nav-links>a,.nav-drop>a{padding:15px 0;font-size:14px;border-bottom:1px solid #eee}
  .nav-links>a:before,.nav-drop>a:before,.nav-links>a.active:after,.nav-drop.active>a:after{display:none}
  .nav-drop{display:block;align-self:auto}
  .nav-drop>a{width:100%;justify-content:space-between}
  .nav-drop.open>a{color:var(--purple)}
  .nav-quote{margin-top:16px;text-align:center}
  /* submenu = accordion; tapping the trigger toggles it, nothing else closes the menu */
  .dropdown{position:static;width:100%;padding:0;background:#faf7fd;border-top:0;box-shadow:none;max-height:0;overflow:hidden;opacity:1;visibility:visible;transform:none;pointer-events:auto;transition:max-height .45s ease}
  .nav-drop:hover>.dropdown{transform:none}
  .nav-drop.open>.dropdown{max-height:560px}
  .dropdown a{padding:13px 16px;font-size:13px}
  .dropdown a:hover,.dropdown a:focus-visible{padding-left:22px}
}
@media(max-width:600px){.nav-links{max-height:calc(100vh - 90px);max-height:calc(100dvh - 90px)}}
section[id],article[id]{scroll-margin-top:120px}

/* =====================================================================
   ANIMATIONS  (Realwide / WOW.js + animate.css style, no dependencies)
   ===================================================================== */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeInUp{from{opacity:0;transform:translate3d(0,45px,0)}to{opacity:1;transform:none}}
@keyframes fadeInDown{from{opacity:0;transform:translate3d(0,-30px,0)}to{opacity:1;transform:none}}
@keyframes fadeInLeft{from{opacity:0;transform:translate3d(-60px,0,0)}to{opacity:1;transform:none}}
@keyframes fadeInRight{from{opacity:0;transform:translate3d(60px,0,0)}to{opacity:1;transform:none}}
@keyframes zoomIn{from{opacity:0;transform:scale3d(.86,.86,.86)}to{opacity:1;transform:none}}
@keyframes lineGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes floatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulseRing{0%{transform:scale(.92);opacity:.7}100%{transform:scale(1.3);opacity:0}}
@keyframes ringBreath{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.6}}
@keyframes plBar{0%{transform:translateX(-100%)}100%{transform:translateX(250%)}}
@keyframes preFail{to{opacity:0;visibility:hidden}}

/* scroll reveal – elements get data-anim from JS, .in-view when scrolled to.
   fill-mode "backwards" so hover transforms still work once the animation ends */
[data-anim]{opacity:0}
[data-anim].in-view{opacity:1;animation-duration:.95s;animation-timing-function:cubic-bezier(.22,.61,.36,1);animation-delay:var(--d,0ms);animation-fill-mode:backwards}
[data-anim=up].in-view{animation-name:fadeInUp}
[data-anim=left].in-view{animation-name:fadeInLeft}
[data-anim=right].in-view{animation-name:fadeInRight}
[data-anim=zoom].in-view{animation-name:zoomIn}
[data-anim=fade].in-view{animation-name:fadeIn}
.eyebrow span{transform-origin:left}
.in-view .eyebrow span,.eyebrow.in-view span{animation:lineGrow .8s .35s cubic-bezier(.22,.61,.36,1) backwards}
.experience[data-anim].in-view{animation:zoomIn .9s cubic-bezier(.22,.61,.36,1) var(--d,0ms) backwards,floatY 5s ease-in-out 2s infinite}

/* preloader */
.preloader{position:fixed;inset:0;z-index:9999;background:var(--ink);display:grid;place-content:center;justify-items:center;gap:26px;transition:opacity .6s ease,visibility .6s ease;animation:preFail .5s 4.5s forwards}
.pl-mark{position:relative;width:64px;height:64px;border-radius:16px;background:var(--purple);color:#fff;display:grid;place-items:center;font:800 32px Manrope,sans-serif}
.pl-mark:after{content:"";position:absolute;inset:-8px;border:2px solid var(--orange);border-radius:22px;animation:pulseRing 1.2s ease-out infinite}
.pl-bar{width:120px;height:3px;background:#ffffff1f;overflow:hidden;border-radius:3px}
.pl-bar i{display:block;width:40%;height:100%;background:var(--purple);animation:plBar 1s ease-in-out infinite}
html.loaded .preloader{opacity:0;visibility:hidden;pointer-events:none}

/* hero + page-hero entrance (waits for preloader) */
.js .hero-inner>*,.js .page-hero .container>*,.js .hero-card{opacity:0}
.js.loaded .hero-inner>*,.js.loaded .page-hero .container>*{opacity:1;animation:fadeInUp 1s cubic-bezier(.22,.61,.36,1) backwards}
.js.loaded .hero-inner>:nth-child(1),.js.loaded .page-hero .container>:nth-child(1){animation-delay:.15s}
.js.loaded .hero-inner>:nth-child(2),.js.loaded .page-hero .container>:nth-child(2){animation-delay:.32s}
.js.loaded .hero-inner>:nth-child(3),.js.loaded .page-hero .container>:nth-child(3){animation-delay:.5s}
.js.loaded .hero-inner>:nth-child(4),.js.loaded .page-hero .container>:nth-child(4){animation-delay:.68s}
.js.loaded .hero-inner>:nth-child(5),.js.loaded .page-hero .container>:nth-child(5){animation-delay:.85s}
.js.loaded .hero .eyebrow span,.js.loaded .page-hero .eyebrow span{animation:lineGrow .9s .6s cubic-bezier(.22,.61,.36,1) backwards}
.js.loaded .hero-card{opacity:1;animation:fadeInRight 1s cubic-bezier(.22,.61,.36,1) 1s backwards,floatY 6s ease-in-out 2.2s infinite}
.hero:before{animation:ringBreath 8s ease-in-out infinite}
.hero-orbit{position:absolute;right:7%;top:9%;width:340px;height:340px;border:2px dashed rgba(255,255,255,.18);border-radius:50%;animation:spin 55s linear infinite;z-index:1;pointer-events:none}
.hero-orbit:after{content:"";position:absolute;top:50%;right:-8px;width:16px;height:16px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 9px rgba(243,168,5,.2)}
/* parallax backgrounds (percentage-based so it can never reveal a gap) */
.hero,.page-hero,.interior-band{background-position:center var(--py,50%)}

/* header: slide-in, scroll shadow, reading-progress line */
.js .site-header{animation:fadeInDown .8s cubic-bezier(.22,.61,.36,1) backwards}
.site-header{transition:box-shadow .3s ease}
.site-header.scrolled{box-shadow:0 10px 32px rgba(32,16,45,.13)}
.scroll-progress{position:absolute;left:0;bottom:0;width:100%;height:3px;background:var(--orange);transform:scaleX(var(--p,0));transform-origin:left;pointer-events:none}
.brand-mark{transition:transform .4s cubic-bezier(.22,.61,.36,1),background .3s}
.brand:hover .brand-mark{transform:rotate(-10deg) scale(1.08);background:var(--orange);color:#1a1308}

/* buttons: sweep fill + arrow nudge */
.btn,.nav-quote{position:relative;overflow:hidden;isolation:isolate;transition:color .35s,border-color .35s,transform .3s,box-shadow .3s}
.btn:before,.nav-quote:before{content:"";position:absolute;inset:0;z-index:-1;transform:scaleX(0);transform-origin:right;transition:transform .45s cubic-bezier(.22,.61,.36,1)}
.btn:hover:before,.nav-quote:hover:before{transform:scaleX(1);transform-origin:left}
.btn-primary:before{background:var(--purple)}.btn-primary:hover{color:#fff}
.btn-light:before{background:var(--orange)}.btn-light:hover{color:#1a1308}
.btn-outline:before{background:#fff}.btn-outline:hover{color:var(--ink);border-color:#fff}
.nav-quote:before{background:var(--ink)}
.btn span,.btn b,.nav-quote span,.text-link span{display:inline-block;transition:transform .3s}
.btn:hover span,.btn:hover b,.nav-quote:hover span{transform:translate(3px,-3px)}
.btn:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(30,10,60,.22)}
.text-link{transition:color .3s,border-color .3s}.text-link:hover{color:var(--purple);border-color:var(--purple)}

/* cards */
.service-card{overflow:hidden}
.service-card:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:4px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .5s ease}
.service-card:hover:after{transform:scaleX(1)}
.service-icon{display:inline-block;transition:transform .7s ease}
.service-card:hover .service-icon{transform:rotateY(360deg) scale(1.12)}
.service-card:not(.featured):hover a{color:var(--purple)}
.value-grid article,.interior-service-grid article,.news-card,.process-grid>div,.feature-list div,.sidebar-box{transition:transform .35s ease,box-shadow .35s ease,border-color .35s}
.value-grid article:hover,.interior-service-grid article:hover,.news-card:hover{transform:translateY(-7px);box-shadow:0 22px 46px rgba(41,16,70,.1);border-color:transparent}
.feature-list div:hover{transform:translateX(6px)}
.process-grid>div:hover{background:var(--soft)}
.process-grid span{transition:transform .6s ease,background .3s,color .3s}
.process-grid>div:hover span{transform:rotate(360deg) scale(1.1);background:var(--orange);color:#1a1308}
.interior-features>div{transition:background .3s,transform .3s}.interior-features>div:hover{background:#8a52f7cc;transform:translateY(-4px)}

/* image shine sweep on hover */
.project-image,.news-image{position:relative;overflow:hidden}
.project-image:after,.news-image:after{content:"";position:absolute;top:0;left:-130%;width:55%;height:100%;background:rgba(255,255,255,.16);transform:skewX(-20deg);transition:left .9s ease;pointer-events:none}
.project:hover .project-image:after,.project-slide:hover .project-image:after,.news-card:hover .news-image:after{left:160%}
.photo{transition:transform .8s ease}.image-stack:hover .photo-a{transform:scale(1.02)}.image-stack:hover .photo-b{transform:scale(1.04) translate(-4px,-4px)}

/* accordion */
.accordion details[open] p{animation:fadeInDown .45s ease}
.accordion summary{transition:color .3s}.accordion summary:hover{color:var(--purple)}
.accordion summary:after{transition:transform .3s}

/* footer / socials */
.footer-main>div>a{transition:color .3s,padding-left .3s}.footer-main>div>a:hover{padding-left:7px}
.socials a{transition:background .3s,transform .3s,border-color .3s}.socials a:hover{background:var(--orange);border-color:var(--orange);color:#1a1308!important;transform:translateY(-4px)}

/* scroll-to-top with progress ring */
.to-top{position:fixed;right:22px;bottom:22px;width:50px;height:50px;border:0;border-radius:50%;background:var(--ink);color:#fff;font-size:18px;cursor:pointer;z-index:900;display:grid;place-items:center;opacity:0;visibility:hidden;transform:translateY(20px);transition:opacity .35s,transform .35s,visibility .35s,background .3s}
.to-top.show{opacity:1;visibility:visible;transform:none}
.to-top:hover{background:var(--purple)}
.to-top svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.to-top circle{fill:none;stroke-width:3}
.to-top .trk{stroke:#ffffff26}.to-top .bar{stroke:var(--orange);stroke-dasharray:144.5;stroke-dashoffset:var(--o,144.5);stroke-linecap:round}
.to-top span{position:relative}

@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{animation-duration:.01ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
  [data-anim]{opacity:1}
}
@media(max-width:850px){.hero-orbit{display:none}}
