.header{background:linear-gradient(100deg,#17191b,#232629);border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 10px 34px rgba(0,0,0,.2)}
.header .brand{background:#fff;border-radius:12px;padding:2px 11px;box-shadow:0 7px 22px rgba(0,0,0,.18)}
.header .brand-logo{height:64px;width:164px}
.header .nav>a:not(.nav-cta){color:#d7d9da}
.header .nav>a:not(.nav-cta):hover{color:#fff}
.header .nav>a.active{color:#fff;font-weight:800}
.header .nav>a:not(.nav-cta)::after{bottom:22px;height:2px;background:#ff7844}
.header .menu-btn{color:#fff;width:44px;height:44px;border:1px solid rgba(255,255,255,.2);border-radius:10px;line-height:1}
.floating-wa>span{overflow:hidden}
.floating-wa>span img{display:block;width:23px;height:23px;filter:brightness(0) invert(1)}
.services-grid.full .service-card:last-child:nth-child(3n+1){grid-column:2}
.footer-grid a,.footer-bottom a{display:inline-flex;align-items:center;min-height:38px;width:max-content;max-width:100%}
.footer-bottom{padding-right:210px}
.contact-panel a{min-height:42px;display:flex;align-items:center}
section[id]{scroll-margin-top:100px}
.modal-card{max-height:calc(100dvh - 24px);overflow-y:auto}
.gallery-preview-section{background:#f3f2ef}
.gallery-preview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.gallery-preview-card{position:relative;display:block;min-height:310px;overflow:hidden;border-radius:18px;background:#17191b;color:#fff;box-shadow:0 16px 42px rgba(18,20,22,.13)}
.gallery-preview-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 38%,rgba(8,10,11,.88) 100%);pointer-events:none}
.gallery-preview-card img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;transition:transform .55s ease,filter .35s ease}
.gallery-preview-card span{position:absolute;z-index:1;left:24px;right:24px;bottom:22px;display:flex;flex-direction:column;gap:6px}
.gallery-preview-card small{font-size:11px;line-height:1.2;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#ff7a45}
.gallery-preview-card b{font-size:20px;line-height:1.2}
.gallery-preview-card:hover img{transform:scale(1.035);filter:saturate(1.04) contrast(1.02)}
.service-card.visual{padding:0 0 28px;min-height:430px}
.service-card.visual::before{z-index:2}
.service-card-cover{height:190px;position:relative;overflow:hidden;background:#202326}
.service-card-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(8,10,11,.58))}
.service-card-cover img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease,filter .3s ease}
.service-card-cover span{position:absolute;right:18px;bottom:15px;z-index:1;width:38px;height:38px;display:grid;place-items:center;border-radius:50%;background:#ef5b22;color:#fff;font-size:11px;font-weight:800;box-shadow:0 8px 22px rgba(0,0,0,.24)}
.service-card.visual h3,.service-card.visual p,.service-card.visual ul,.service-card.visual strong{margin-left:26px;margin-right:26px}
.service-card.visual h3{margin-top:22px}
.service-card.visual p{margin-bottom:4px}
.service-card.visual:hover .service-card-cover img{transform:scale(1.045);filter:saturate(.88)}
.visual-posts .post-card.visual{padding:0;overflow:hidden;min-height:430px;background:#fff}
.post-card.visual>img{width:100%;height:210px;object-fit:cover;transition:transform .5s ease,filter .3s ease}
.post-card.visual>div{padding:25px 28px 27px;display:flex;flex-direction:column;flex:1}
.post-card.visual>div>span{font-size:10px;color:#ef5b22;text-transform:uppercase;letter-spacing:.12em;font-weight:800}
.post-card.visual h3{margin:13px 0 10px}
.post-card.visual strong{margin-top:auto;padding-top:15px}
.post-card.visual:hover>img{transform:scale(1.035);filter:saturate(1.05)}
.about-exterior{margin:34px 0 0;border-radius:16px;overflow:hidden;background:#17191b;box-shadow:0 18px 45px rgba(18,20,22,.14)}
.about-exterior img{width:100%;aspect-ratio:16/10;object-fit:cover}
.about-exterior figcaption{padding:13px 17px;background:#17191b;color:#d8dadb;font-size:11px;letter-spacing:.04em}
.detail-cover{margin:0 0 38px}
.detail-cover img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:16px;box-shadow:0 16px 42px rgba(18,20,22,.11)}
.detail-cover figcaption{margin-top:9px;color:#8a8e91;font-size:11px}
.prose h2{color:#17191b;font-size:29px;line-height:1.25;margin:42px 0 12px;letter-spacing:-.025em}
.prose ul{padding-left:22px}
.prose li{margin:8px 0}
@media(max-width:1180px) and (min-width:981px){
  .header .nav{gap:18px;font-size:12px}
  .header .brand-logo{width:154px}
}
@media(max-width:980px){
  .header .brand-logo{height:56px;width:144px}
  .header .nav{background:#1d2022;border-top:1px solid rgba(255,255,255,.1);padding:12px 24px 22px;box-shadow:0 22px 38px rgba(0,0,0,.28);align-items:flex-start;gap:0;max-height:calc(100dvh - 78px);overflow-y:auto;overscroll-behavior:contain}
  .header .nav>a:not(.nav-cta){display:inline-flex;width:max-content;max-width:100%;padding:13px 3px 12px;color:#d5d7d8;border-radius:5px}
  .header .nav>a:not(.nav-cta)::after{left:3px;right:auto;bottom:7px;width:calc(100% - 6px);height:2px;transform:scaleX(0);transform-origin:left}
  .header .nav>a:not(.nav-cta):hover::after,.header .nav>a.active::after{right:auto;transform:scaleX(1)}
  .header .nav>a.active{color:#fff;background:#292d30;padding-left:10px;padding-right:10px}
  .header .nav>a.active::after{left:10px;width:calc(100% - 20px)}
  .header .nav-cta{width:100%;margin-top:10px}
  .services-grid.full .service-card:last-child:nth-child(odd){grid-column:1/-1;width:calc(50% - 9px);justify-self:center}
  .service-card.visual{min-height:415px}
  .content-split{gap:48px}
}
@media(max-width:640px){
  html,body{max-width:100%;overflow-x:clip}
  .wrap{width:calc(100% - 30px)}
  .header .brand{padding:1px 8px;border-radius:10px}
  .header .brand-logo{height:52px;width:132px}
  .header .nav{top:72px;max-height:calc(100dvh - 72px);padding:10px 18px 18px}
  .header .nav>a:not(.nav-cta){min-height:45px;align-items:center}
  .header .nav-cta{min-height:48px;display:flex;align-items:center;justify-content:center}
  .page-hero h1,.page-hero.detail h1,.section-head h2,.content-split h2,.about-copy h2,.cta-band h2{overflow-wrap:anywhere}
  .services-grid>*,.post-grid>*,.content-split>*,.form-layout>*,.article-layout>*,.contact-grid>*{min-width:0}
  input,select,textarea{min-width:0}
  .services-grid.full .service-card:last-child:nth-child(odd){grid-column:auto;width:auto;justify-self:stretch}
  .footer-grid{gap:26px}
  .footer-grid>div{gap:2px}
  .footer-bottom a{min-height:42px}
.footer-bottom{padding-right:58px;padding-bottom:24px}
.gallery-preview-grid{grid-template-columns:1fr;gap:14px}
.gallery-preview-card{min-height:270px}
.gallery-preview-card span{left:20px;right:20px;bottom:19px}
.service-card.visual{padding-bottom:24px;min-height:0}
.service-card-cover{height:185px}
.service-card.visual h3,.service-card.visual p,.service-card.visual ul,.service-card.visual strong{margin-left:22px;margin-right:22px}
.visual-posts .post-card.visual{min-height:0}
.post-card.visual>img{height:195px}
.post-card.visual>div{padding:22px}
.about-exterior{margin-top:26px}
.detail-cover{margin-bottom:28px}
.detail-cover img{border-radius:12px}
.prose h2{font-size:25px;margin-top:34px}
}
@media(max-width:420px){
  .hero-actions{flex-direction:column}
  .hero-actions .btn{width:100%;min-height:50px}
  .floating-wa{right:10px;bottom:max(10px,env(safe-area-inset-bottom));padding:5px}
  .floating-wa>span{width:38px;height:38px}
  .floating-wa>span img{width:21px;height:21px}
  .modal{padding:12px}
}
@media(max-width:360px){
  .hero h1{font-size:36px}
  .page-hero h1,.page-hero.detail h1{font-size:36px}
  .warning-row{grid-template-columns:1fr}
  .warning-card{min-height:0}
}
@media(max-height:500px) and (max-width:900px){
  .topbar{display:none}
  .header{height:64px}
  .header .brand-logo{height:46px;width:122px}
  .header .nav{top:64px;max-height:calc(100dvh - 64px);overflow-y:auto}
  .hero{min-height:520px}
  .hero-content{padding:52px 0 46px}
  .hero h1{font-size:40px;max-width:590px;margin-bottom:16px}
  .hero p{font-size:14px;line-height:1.55;margin-bottom:22px;max-width:520px}
  .hero-proof{margin-top:28px}
  .floating-wa b{display:none}
  .floating-wa{right:10px;bottom:10px;padding:5px}
  .floating-wa>span{width:38px;height:38px}
  .modal{align-items:flex-start;overflow-y:auto}
}
