:root{
  --navy:#07111f;--navy2:#0d1d30;--gold:#caa55b;--gold2:#e0c17e;
  --white:#f8f8f4;--muted:#b8c0ca;--line:rgba(255,255,255,.14);
  --shadow:0 24px 70px rgba(0,0,0,.30)
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--navy);color:var(--white);font-family:Manrope,system-ui,sans-serif;line-height:1.6}
body.menu-open{overflow:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
.skip-link{position:fixed;left:1rem;top:-100px;background:var(--gold);color:#07111f;padding:.8rem 1rem;z-index:999}
.skip-link:focus{top:1rem}
.site-header{position:fixed;inset:0 0 auto;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:18px clamp(20px,5vw,72px);background:linear-gradient(to bottom,rgba(4,11,20,.92),rgba(4,11,20,.35),transparent);transition:.3s}
.site-header.scrolled{background:rgba(4,11,20,.94);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:14px;font-weight:800;font-size:1.08rem}
.brand img{width:64px;height:64px;border-radius:50%;object-fit:cover;border:1px solid rgba(202,165,91,.45)}
.nav{display:flex;align-items:center;gap:28px;font-size:.92rem}
.nav a{opacity:.88}
.nav a:hover{color:var(--gold2);opacity:1}
.nav-cta{padding:11px 16px;border:1px solid rgba(202,165,91,.65);border-radius:999px}
.menu-button{display:none;border:0;background:none;width:42px;height:42px;padding:8px}
.menu-button span{display:block;height:2px;background:#fff;margin:6px 0}
.hero{min-height:100svh;position:relative;display:flex;align-items:center;overflow:hidden}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,11,20,.9) 0%,rgba(4,11,20,.68) 48%,rgba(4,11,20,.35) 100%),linear-gradient(0deg,rgba(4,11,20,.65),transparent 60%)}
.hero-content{position:relative;z-index:2;max-width:850px;padding:150px clamp(22px,7vw,110px) 130px}
.eyebrow{text-transform:uppercase;letter-spacing:.23em;font-size:.76rem;font-weight:800;color:var(--gold2)}
h1,h2,h3,p{margin-top:0}
h1,h2{font-family:"Playfair Display",serif;line-height:.98}
h1{font-size:clamp(3.1rem,7vw,7.5rem);margin:.55rem 0 1.5rem}
h1 span,h2 span{color:var(--gold)}
h2{font-size:clamp(2.4rem,5vw,5rem);max-width:850px}
h3{font-size:1.25rem}
.hero-copy{max-width:680px;font-size:clamp(1.06rem,2vw,1.38rem);color:#e0e5eb}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}
.button{display:inline-flex;justify-content:center;align-items:center;min-height:54px;padding:0 24px;border-radius:4px;font-weight:800;transition:.22s}
.button:hover{transform:translateY(-2px)}
.primary{background:var(--gold);color:#0a1220}
.secondary{border:1px solid rgba(255,255,255,.55);background:rgba(6,17,31,.18)}
.hero-tags{position:absolute;z-index:2;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(4,1fr);background:rgba(5,13,24,.78);backdrop-filter:blur(12px);border-top:1px solid var(--line)}
.hero-tags span{padding:20px;text-align:center;border-right:1px solid var(--line);font-size:.86rem;text-transform:uppercase;letter-spacing:.09em}
.section{padding:clamp(78px,10vw,145px) clamp(22px,7vw,110px)}
.compact{padding-top:42px;padding-bottom:42px}
.section-heading{display:grid;gap:10px;margin-bottom:52px}
.section-heading h2{margin-bottom:0}
.stats{display:grid;grid-template-columns:repeat(4,1fr);background:var(--navy2);border-bottom:1px solid var(--line)}
.stat{text-align:center;border-right:1px solid var(--line);position:relative}
.stat:last-child{border-right:0}
.stat strong{font-family:"Playfair Display";font-size:3rem;color:var(--gold2)}
.stat span{display:block;color:var(--muted);font-size:.86rem;text-transform:uppercase;letter-spacing:.1em}
.stat small{position:absolute;margin-left:4px;color:var(--gold2);font-weight:800}
.intro{background:#f3f0e9;color:#111a24}
.intro .eyebrow{color:#8f6b2f}
.intro-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:8vw}
.lead{font-size:clamp(1.2rem,2.5vw,2rem);line-height:1.45}
.feature-list{display:grid}
.feature-list div{padding:20px 0;border-bottom:1px solid rgba(0,0,0,.14);display:grid;grid-template-columns:120px 1fr;gap:20px}
.feature-list strong{color:#725424}
.feature-list span{color:#44505e}
.services{background:var(--navy)}
.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.service-card{padding:34px;background:linear-gradient(145deg,#0c1a2d,#091522);border:1px solid var(--line);min-height:240px;transition:.25s}
.service-card:hover{transform:translateY(-5px);border-color:rgba(202,165,91,.55);box-shadow:var(--shadow)}
.service-card>span{color:var(--gold);font-weight:800}
.service-card h3{font-size:1.5rem;margin:38px 0 12px}
.service-card p{color:var(--muted);max-width:560px}
.projects{background:#091421}
.gallery{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}
.project{position:relative;border:0;padding:0;cursor:pointer;background:#000;overflow:hidden;min-height:360px;text-align:left;color:white}
.project-wide{grid-row:span 2;min-height:738px}
.project img{width:100%;height:100%;object-fit:cover;transition:.5s}
.project:hover img{transform:scale(1.035);opacity:.78}
.project::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 45%,rgba(0,0,0,.84))}
.project>span{position:absolute;z-index:2;left:26px;bottom:24px;display:grid}
.project strong{font-size:1.25rem}
.project small{color:#d0d5dc}
.process{background:#f3f0e9;color:#111a24}
.process .eyebrow{color:#8f6b2f}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.process-grid article{border-top:2px solid #b58a41;padding-top:24px}
.process-grid article>span{font-weight:800;color:#9c773a}
.process-grid p{color:#53606b}
.why{background:linear-gradient(135deg,#0b1b2e,#08121f)}
.why-panel{max-width:1050px;padding:clamp(34px,6vw,75px);border:1px solid rgba(202,165,91,.35);background:rgba(255,255,255,.025)}
.why-panel>p:not(.eyebrow){max-width:730px;color:var(--muted);font-size:1.08rem}
.checks{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:35px}
.checks span::before{content:"✓";color:var(--gold2);font-weight:900;margin-right:10px}
.areas{background:#091421}
.area-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.area-list{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.area-list span{padding:18px;border:1px solid var(--line);background:#0b1a2b}
.map-card{min-height:360px;padding:42px;display:flex;align-items:flex-end;background:linear-gradient(0deg,rgba(5,12,22,.86),rgba(5,12,22,.2)),url("assets/images/project-2.jpeg") center/cover;border:1px solid var(--line)}
.map-card h3{font-family:"Playfair Display";font-size:2.2rem;margin-bottom:5px}
.map-card span{color:var(--gold2)}
.testimonial{background:#f3f0e9;color:#111a24}
.testimonial-card{max-width:1050px;margin:auto;text-align:center}
.testimonial .eyebrow{color:#8f6b2f}
blockquote{font-family:"Playfair Display";font-size:clamp(1.8rem,4vw,3.7rem);line-height:1.15;margin:22px 0}
.testimonial-card>span{font-weight:800;color:#8f6b2f}
.quote{display:grid;grid-template-columns:.85fr 1.15fr;gap:7vw;background:var(--navy)}
.quote-copy>a{display:block;margin:10px 0;color:var(--gold2);font-weight:800;word-break:break-word}
.quote-form{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:30px;background:#0b1a2b;border:1px solid var(--line)}
.quote-form label{display:grid;gap:8px;color:#d8dee6;font-size:.88rem}
.quote-form input,.quote-form select,.quote-form textarea{width:100%;padding:14px;border:1px solid rgba(255,255,255,.18);background:#071321;color:white;border-radius:3px}
.quote-form textarea{resize:vertical}
.full{grid-column:1/-1}
.form-note{font-size:.78rem;color:var(--muted);margin:0}
.contact{background:#091421}
.contact-card{display:grid;grid-template-columns:150px 1fr auto;align-items:center;gap:36px;padding:34px;border:1px solid rgba(202,165,91,.35);background:#0b1a2b}
.contact-card img{width:140px;height:140px;object-fit:cover;border-radius:50%}
.contact-card h2{font-size:clamp(2rem,4vw,3.8rem);margin-bottom:0}
.contact-actions{display:grid;gap:12px}
footer{padding:42px clamp(22px,7vw,110px) 90px;display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:1px solid var(--line);background:#050d17;color:var(--muted)}
footer div{display:grid;gap:5px}
footer div:nth-child(2){text-align:right}
footer p{grid-column:1/-1;border-top:1px solid var(--line);padding-top:20px;margin:12px 0 0;font-size:.82rem}
.lightbox{width:min(94vw,1200px);border:0;padding:0;background:transparent}
.lightbox::backdrop{background:rgba(0,0,0,.9)}
.lightbox img{width:100%;max-height:88vh;object-fit:contain}
.lightbox button{position:fixed;right:20px;top:20px;width:48px;height:48px;border-radius:50%;border:1px solid white;background:#07111f;color:white;font-size:2rem}
.chat-toggle{position:fixed;right:25px;bottom:24px;z-index:90;border:0;background:var(--gold);color:#111827;padding:16px 21px;border-radius:999px;font-weight:900;box-shadow:var(--shadow)}
.chat-box{position:fixed;right:24px;bottom:88px;z-index:90;width:min(320px,calc(100vw - 32px));padding:24px;background:#f4f0e7;color:#111827;box-shadow:var(--shadow)}
.chat-box strong{font-size:1.1rem}
.chat-box>a{display:block;padding:10px 0;border-bottom:1px solid rgba(0,0,0,.12)}
.chat-close{float:right;border:0;background:none;font-size:1.5rem}
.mobile-actions{display:none}
.reveal{opacity:0;transform:translateY(22px);transition:opacity .65s,transform .65s}
.reveal.visible{opacity:1;transform:none}
@media(max-width:900px){
  .site-header{padding:14px 20px}
  .brand img{width:54px;height:54px}
  .menu-button{display:block}
  .nav{position:fixed;inset:82px 0 auto;background:#07111f;padding:28px 22px 36px;display:none;flex-direction:column;align-items:stretch;border-top:1px solid var(--line)}
  .nav.open{display:flex}
  .nav a{padding:10px}
  .hero-content{padding:145px 28px 180px}
  .hero-overlay{background:linear-gradient(0deg,rgba(4,11,20,.92),rgba(4,11,20,.46))}
  .hero-tags{grid-template-columns:repeat(2,1fr)}
  .stats{grid-template-columns:repeat(2,1fr);gap:28px}
  .stat:nth-child(2){border-right:0}
  .intro-grid,.quote,.area-layout{grid-template-columns:1fr}
  .service-grid,.process-grid{grid-template-columns:1fr 1fr}
  .gallery{grid-template-columns:1fr}
  .project-wide{grid-row:auto;min-height:430px}
  .project{min-height:330px}
  .contact-card{grid-template-columns:90px 1fr}
  .contact-card img{width:90px;height:90px}
  .contact-actions{grid-column:1/-1;grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  h1{font-size:clamp(3.2rem,15vw,5.4rem)}
  .hero-copy{font-size:1.02rem}
  .hero-actions{display:grid}
  .hero-tags{font-size:.7rem}
  .section{padding:78px 22px}
  .stats{padding:35px 20px}
  .service-grid,.process-grid,.checks,.area-list{grid-template-columns:1fr}
  .feature-list div{grid-template-columns:1fr;gap:5px}
  .quote-form{grid-template-columns:1fr;padding:21px}
  .quote-form label{grid-column:1}
  .contact-card{grid-template-columns:1fr;text-align:center}
  .contact-card img{margin:auto}
  .contact-actions{grid-template-columns:1fr}
  footer{grid-template-columns:1fr;text-align:left}
  footer div:nth-child(2){text-align:left}
  .mobile-actions{position:fixed;left:0;right:0;bottom:0;z-index:85;display:grid;grid-template-columns:1fr 1fr;background:#07111f;border-top:1px solid var(--line)}
  .mobile-actions a{padding:14px;text-align:center;font-weight:800}
  .mobile-actions a:last-child{background:var(--gold);color:#07111f}
  .chat-toggle{bottom:72px}
  footer{padding-bottom:120px}
}
@media(prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
  .reveal{opacity:1;transform:none}
}


/* Version 4: gallery, estimator and assistant */
.section-intro{max-width:760px;color:var(--muted);font-size:1.02rem}
.gallery-filters{display:flex;gap:10px;flex-wrap:wrap;margin:-22px 0 28px}
.filter-button{border:1px solid var(--line);background:#0b1a2b;color:var(--white);padding:10px 16px;border-radius:999px;cursor:pointer;font-weight:700}
.filter-button.active,.filter-button:hover{background:var(--gold);border-color:var(--gold);color:#07111f}
.gallery-v4{grid-template-columns:repeat(2,1fr)}
.gallery-v4 .project-wide{grid-column:1/-1;grid-row:auto;min-height:560px}
.project.is-hidden{display:none}

.estimator{background:#f3f0e9;color:#111a24}
.estimator .eyebrow{color:#8f6b2f}
.estimator .section-intro{color:#53606b}
.estimator-layout{display:grid;grid-template-columns:1.12fr .88fr;gap:24px;align-items:start}
.estimator-form{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:30px;background:white;border:1px solid rgba(17,26,36,.12);box-shadow:0 18px 50px rgba(17,26,36,.08)}
.estimator-form label{display:grid;gap:8px;font-size:.88rem;font-weight:700;color:#33404d}
.estimator-form input,.estimator-form select{width:100%;padding:14px;border:1px solid rgba(17,26,36,.18);background:#fff;color:#111a24;border-radius:3px}
.estimate-result{position:sticky;top:120px;min-height:360px;padding:38px;background:#0b1a2b;color:white;border:1px solid rgba(202,165,91,.35)}
.estimate-result h3{font-family:"Playfair Display";font-size:clamp(2rem,4vw,3.7rem);line-height:1.05;margin:22px 0}
.estimate-result .estimate-range{display:block;color:var(--gold2);font-family:"Playfair Display";font-size:clamp(2.15rem,5vw,4.8rem);line-height:1}
.estimate-result ul{padding-left:20px;color:#c7ced7}
.estimate-result .estimate-disclaimer{font-size:.78rem;color:#9da8b5;border-top:1px solid var(--line);padding-top:18px;margin-top:24px}

.ai-chat{width:min(390px,calc(100vw - 28px));padding:0;background:#f5f1e8;color:#111827;border-radius:10px;overflow:hidden}
.chat-header{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 18px 14px;background:#07111f;color:white}
.chat-header div{display:grid}
.chat-header small{color:#bac3cf;font-size:.72rem}
.chat-close{color:white}
.chat-messages{height:300px;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:#eef0f2}
.message{max-width:88%;padding:11px 13px;border-radius:12px;font-size:.88rem;line-height:1.45}
.message.bot{align-self:flex-start;background:white;border:1px solid rgba(0,0,0,.08)}
.message.user{align-self:flex-end;background:#caa55b;color:#07111f;font-weight:600}
.quick-prompts{display:flex;gap:6px;flex-wrap:wrap;padding:10px 12px 4px;background:#f5f1e8}
.quick-prompts button{border:1px solid rgba(7,17,31,.16);background:white;padding:7px 10px;border-radius:999px;font-size:.72rem}
.chat-form{display:grid;grid-template-columns:1fr auto;gap:8px;padding:10px 12px 13px;background:#f5f1e8}
.chat-form input{min-width:0;border:1px solid rgba(7,17,31,.18);padding:11px;border-radius:6px}
.chat-form button{border:0;background:#07111f;color:white;padding:0 15px;border-radius:6px;font-weight:800}

@media(max-width:900px){
  .estimator-layout{grid-template-columns:1fr}
  .estimate-result{position:static}
}
@media(max-width:620px){
  .gallery-v4{grid-template-columns:1fr}
  .gallery-v4 .project-wide{grid-column:auto;min-height:420px}
  .estimator-form{grid-template-columns:1fr;padding:21px}
  .estimator-form label{grid-column:1}
  .gallery-filters{overflow:auto;flex-wrap:nowrap;padding-bottom:5px}
  .filter-button{white-space:nowrap}
  .chat-box{right:14px;bottom:132px}
}
