:root{
  --ink:#1c1c18;
  --paper:#f7f3ea;
  --muted:#5e5e56;
  --line:rgba(28,28,24,.12);
  --sage:#8e9578;
  --sage2:#7c8466;
  --sage-deep:#6f765c;
  --accent:#c45c26;
  --accent-deep:#a44b1e;
  --white:#fff;
  --hero-ink:#fff;
  --max:1180px;
  --pad:clamp(16px,4vw,32px);
  --wa:68px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0;background:var(--paper);color:var(--ink);font-family:Roboto,system-ui,sans-serif;font-size:16px;line-height:1.55;-webkit-text-size-adjust:100%}
::selection{background:var(--sage);color:#fff}
img{max-width:100%;height:auto;display:block}
a{color:var(--sage-deep)}
button,input,select,textarea{font:inherit}
.wrap{width:min(var(--max),100%);margin:0 auto;padding:0 var(--pad)}
.k{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sage-deep);margin:0 0 10px;font-weight:700}
.reveal{opacity:0;transform:translateY(16px)}
.reveal.in{opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal,.reveal.in{opacity:1;transform:none}
  .marquee-in,.brand-track{animation:none!important}
}

.skip{position:absolute;left:-999px;top:0;background:var(--sage);color:#fff;padding:8px 12px;z-index:99}
.skip:focus{left:8px;top:8px}

.top{position:absolute;left:0;right:0;top:0;z-index:40;padding:10px 0 0}
.is-inner .top{position:sticky;background:var(--paper);padding-bottom:8px;border-bottom:1px solid var(--line)}
.top-bar,.top-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(var(--max),100%);margin:0 auto;padding:8px var(--pad)}
.logo img{height:104px;width:auto;max-width:none}
.top-meta{display:flex;align-items:center;gap:14px;color:#fff;font-size:.86rem}
.top-phones{display:flex;flex-direction:column;align-items:flex-end;gap:2px;line-height:1.3}
.top-meta a,.desk a,.cta{color:#fff;text-decoration:none}
.is-inner .top-meta,.is-inner .top-meta a,.is-inner .desk a,.is-inner .cta{color:var(--ink)}
.is-inner .soc a{border-color:rgba(28,28,24,.28);color:var(--ink)}
.tel{font-weight:500;white-space:nowrap}
.soc{display:flex;gap:8px}
.soc a{width:28px;height:28px;border:1px solid rgba(255,255,255,.45);display:grid;place-items:center;font-size:.7rem;letter-spacing:.04em;text-transform:lowercase}
.desk{display:none;gap:22px;flex:1}
.desk a{font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;font-weight:500}
.desk a[aria-current="page"],.desk a:hover{opacity:.75}
.btn-outline{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border:1px solid rgba(255,255,255,.85);color:#fff;text-decoration:none;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;font-weight:500;background:transparent}
.btn-outline:hover{background:#fff;color:#1c1c18}
.is-inner .top .btn-outline,.is-inner .hero-s .btn-outline{border-color:var(--ink);color:var(--ink)}
.is-inner .top .btn-outline:hover,.is-inner .hero-s .btn-outline:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.cta{min-height:40px}
.burger{width:44px;height:44px;background:transparent;border:0;display:grid;place-content:center;gap:7px;cursor:pointer}
.burger span{display:block;width:22px;height:1.5px;background:#fff}
.is-inner .burger span{background:var(--ink)}
.mnav{position:fixed;inset:0;z-index:45;background:rgba(20,20,16,.96);padding:140px var(--pad) 40px;overflow:auto}
.mnav a{display:block;color:#fff;text-decoration:none;font-family:"Roboto Slab",serif;font-size:clamp(1.5rem,5vw,2.2rem);padding:8px 0}
body.nav-on{overflow:hidden}

.hero{min-height:100svh;min-height:100vh;display:grid;align-content:center;position:relative;overflow:hidden;color:var(--hero-ink);background:#3d5368;padding:188px var(--pad) 80px}
.hero::before{content:"";position:absolute;inset:0;background:62% 58%/cover no-repeat;background-image:var(--hero);z-index:0}
.hero-shade{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(10,16,22,.7) 0%,rgba(10,16,22,.38) 34%,rgba(10,16,22,.1) 56%,transparent 74%),linear-gradient(180deg,rgba(10,16,22,.28) 0%,transparent 34%,rgba(10,16,22,.18) 100%)}
.hero-in{position:relative;z-index:2;max-width:640px;margin-left:0;text-shadow:0 2px 22px rgba(8,12,18,.55)}
.hero h1{font-family:"Roboto Slab",Georgia,serif;font-weight:600;font-size:clamp(2rem,5.2vw,3.35rem);line-height:1.15;margin:0 0 18px;letter-spacing:-.02em}
.hero h1 em{font-style:normal;color:#ffc48a}
.lede{max-width:38rem;margin:0 0 28px;color:rgba(255,255,255,.88);font-size:1.02rem}
.hero .lede{font-size:.98rem;line-height:1.65}
.actions{display:flex;flex-wrap:wrap;gap:12px}

.marquee{overflow:hidden;background:#efe4d2;color:rgba(28,28,24,.62);border-block:1px solid rgba(28,28,24,.08)}
.marquee-in{display:flex;gap:40px;width:max-content;animation:mq 32s linear infinite;padding:12px 0;letter-spacing:.18em;font-size:.72rem;text-transform:uppercase}
@keyframes mq{to{transform:translateX(-50%)}}

.band{padding:88px 0}
.band h2{font-family:"Roboto Slab",Georgia,serif;font-size:clamp(1.7rem,3.6vw,2.6rem);line-height:1.2;margin:0 0 16px;font-weight:600}
.band p{color:var(--muted);margin:0 0 14px}
.split{display:grid;gap:36px;align-items:center}
.shot{width:100%;height:min(420px,50vw);object-fit:cover;filter:grayscale(.04) contrast(1.04) saturate(1.08)}

.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:48px}
.stat b{display:block;font-family:"Roboto Slab",serif;font-size:clamp(2rem,4vw,3rem);color:var(--ink);line-height:1}
.stat span{display:block;margin-top:8px;color:var(--muted);font-size:.92rem}

.svc-grid{display:grid;gap:22px;margin-top:28px}
.svc{text-decoration:none;color:inherit;background:#fff;border:1px solid var(--line)}
.svc-img{display:block;overflow:hidden;height:180px}
.svc img{width:100%;height:100%;object-fit:cover;filter:grayscale(.06);transition:transform .5s ease,filter .5s ease}
.svc:hover img{transform:scale(1.04);filter:grayscale(0)}
.svc h3{font-family:"Roboto Slab",serif;margin:14px 16px 6px;font-size:1.15rem}
.svc p{margin:0 16px 18px;font-size:.92rem}

.values{background:#fff}
.ticks{margin:16px 0 0;padding:0;list-style:none}
.ticks li{padding:8px 0 8px 28px;position:relative;color:var(--ink)}
.ticks li:before{content:"";position:absolute;left:0;top:14px;width:14px;height:14px;border:2px solid var(--sage)}

.loc-grid,.team-grid,.rev-grid{display:grid;gap:18px;margin-top:24px}
.loc,.person,.rev{background:#fff;padding:22px;border:1px solid var(--line)}
.loc h3,.person h3,.rev h3{margin:0 0 6px;font-family:"Roboto Slab",serif}
.person img{width:100%;height:220px;object-fit:cover;object-position:top;margin-bottom:12px;filter:grayscale(.3)}

.proj-grid{display:grid;gap:12px;margin-top:24px}
.proj{position:relative;min-height:240px;display:grid;align-content:end;overflow:hidden;color:#fff;text-decoration:none}
.proj img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.2) brightness(.7)}
.proj span{position:relative;z-index:1;padding:18px}
.proj small{display:block;letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;opacity:.85}
.proj strong{display:block;font-family:"Roboto Slab",serif;font-size:1.35rem}

.quote{background:transparent;padding-top:40px}
.quote-card{background:var(--sage);color:#fff;padding:clamp(28px,5vw,48px);max-width:560px}
.quote-card h2{color:#fff}
.quote-card p{color:rgba(255,255,255,.88)}
.form{display:grid;gap:10px;margin-top:18px}
.form input,.form textarea,.form select{width:100%;padding:12px 12px;border:0;background:#fff;color:var(--ink)}
.btn-solid{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 20px;border:0;background:var(--accent);color:#fff;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;font-weight:700;width:max-content}
.btn-solid:hover{background:var(--accent-deep)}
.hero .btn-solid{box-shadow:0 8px 24px rgba(20,12,8,.28)}
.hero .btn-solid:hover{background:#fff;color:var(--accent-deep)}

.faq details{border-bottom:1px solid var(--line);padding:14px 0}
.faq summary{cursor:pointer;font-weight:650;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq p{margin:10px 0 0}

.brands{padding:28px 0;background:#efe4d2;color:rgba(28,28,24,.55)}
.brand-row{display:flex;flex-wrap:wrap;gap:18px 28px;justify-content:center;letter-spacing:.14em;font-size:.78rem;text-transform:uppercase}

.brand-slider{overflow:hidden;background:#efe4d2;border-block:1px solid rgba(28,28,24,.08);padding:16px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}
.brand-track{display:flex;width:max-content;animation:mq 48s linear infinite}
.brand-slider:hover .brand-track{animation-play-state:paused}
.brand-set{display:flex;align-items:center;gap:52px;padding:0 26px}
.brand-item{display:flex;align-items:center;justify-content:center;height:40px;flex:0 0 auto}
.brand-item img{height:36px;width:auto;max-width:158px;object-fit:contain;display:block}
.brand-item img.brand-mark{height:36px;max-width:40px}
@media (max-width:640px){
  .brand-set{gap:36px;padding:0 18px}
  .brand-item{height:32px}
  .brand-item img{height:28px;max-width:122px}
  .brand-item img.brand-mark{height:28px;max-width:32px}
}

.hero-s{padding:36px 0 36px;background:#efe4d2;color:var(--ink);width:100%;max-width:none}
.hero-s.wrap{width:100%;max-width:none;padding-left:max(var(--pad), calc((100% - var(--max)) / 2));padding-right:max(var(--pad), calc((100% - var(--max)) / 2))}
.hero-s h1{font-family:"Roboto Slab",serif;font-size:clamp(2rem,6vw,3.6rem);margin:8px 0 12px}
.hero-s .lede{color:var(--muted)}
.crumbs{display:flex;flex-wrap:wrap;gap:8px;font-size:.8rem;color:var(--muted);margin:0 0 12px}
.crumbs a{color:var(--sage-deep);text-decoration:none}
.series{letter-spacing:.14em;text-transform:uppercase;color:var(--sage-deep);font-size:.75rem}
.prod-hero{display:grid;gap:24px;padding:40px 0 24px}
.prod-visual{min-height:260px;overflow:hidden}
.prod-visual img{width:100%;height:100%;object-fit:cover;min-height:280px}
.specs{display:grid;gap:0;border-top:1px solid var(--line);margin:28px 0}
.spec{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.92rem}
.spec dt{color:var(--muted)}
.prose{max-width:42rem}
.prose h2{font-family:"Roboto Slab",serif;font-size:1.5rem;margin:28px 0 10px}
.prose p{color:var(--muted)}
.ok{background:#e8eee0;color:#2a331c;padding:12px}
.err{background:#f6e4e2;color:#6b221c;padding:12px}
.list a{display:block;padding:16px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink)}
.list a small{display:block;color:var(--muted);margin-top:4px}

.foot{background:#252820;color:rgba(247,243,234,.82);padding:0;margin-top:8px;font-size:.92rem}
.foot a{color:#fff;text-decoration:none;margin:0}
.foot a:hover{color:#ffc48a}
.foot-cta{display:flex;flex-wrap:wrap;gap:18px 28px;justify-content:space-between;align-items:center;padding:36px 0 32px;border-bottom:1px solid rgba(247,243,234,.12)}
.foot-cta .k{color:#ffc48a;margin:0 0 8px}
.foot-cta h2{font-family:"Roboto Slab",Georgia,serif;font-size:clamp(1.35rem,3vw,1.9rem);color:#fff;margin:0;font-weight:600;line-height:1.25;max-width:18ch}
.foot-grid{display:grid;gap:32px;padding:40px 0 36px}
.foot-brand .logo img{height:88px;max-width:none}
.foot-brand p{margin:14px 0 0;max-width:28ch;line-height:1.65;color:rgba(247,243,234,.68)}
.foot h3{margin:0 0 14px;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#ffc48a;font-weight:700}
.foot-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.foot-list a{color:rgba(247,243,234,.88)}
.foot-prods{grid-template-columns:1fr 1fr;column-gap:16px}
.foot-contact p{margin:0 0 10px;line-height:1.5}
.foot-contact a{color:#fff}
.foot-bar{display:flex;flex-wrap:wrap;gap:10px 20px;justify-content:space-between;align-items:center;padding:16px 0 28px;border-top:1px solid rgba(247,243,234,.12);font-size:.8rem;color:rgba(247,243,234,.5)}
.foot-bar p{margin:0}
@media (min-width:880px){
  .foot-grid{grid-template-columns:1.25fr .75fr 1.05fr 1.1fr;gap:40px}
}

.wa-float{position:fixed;right:18px;bottom:18px;z-index:50;width:56px;height:56px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;text-decoration:none;font-size:0;box-shadow:0 8px 24px rgba(0,0,0,.2)}
.wa-float:before{content:"";width:28px;height:28px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23fff'%3E%3Cpath d='M12.04 2c-5.46 0-9.91 4.45-9.91 9.91 0 1.75.46 3.45 1.32 4.95L2.05 22l5.25-1.38c1.45.79 3.08 1.21 4.74 1.21 5.46 0 9.91-4.45 9.91-9.91S17.5 2 12.04 2zm5.79 14.16c-.24.68-1.4 1.25-1.94 1.33-.5.07-1.13.1-1.82-.11-.42-.13-.96-.31-1.65-.61-2.9-1.26-4.79-4.2-4.94-4.39-.14-.2-1.18-1.57-1.18-3 0-1.42.74-2.12 1.01-2.41.26-.28.58-.35.77-.35h.56c.18 0 .42-.07.66.5.24.59.82 2.02.89 2.17.07.14.12.32.02.51-.1.2-.14.32-.28.5-.14.17-.3.39-.42.52-.14.14-.28.3-.12.58.16.28.7 1.16 1.5 1.88 1.04.93 1.91 1.22 2.2 1.36.28.14.45.12.61-.07.17-.2.7-.81.89-1.09.18-.28.37-.23.62-.14.26.1 1.63.77 1.91.91.28.14.47.21.54.32.07.12.07.68-.17 1.36z'/%3E%3C/svg%3E") center/contain no-repeat}

.pager{display:flex;gap:8px;margin:24px 0}
.pager a{color:var(--ink);text-decoration:none;border:1px solid var(--line);padding:8px 12px}

.q-page{padding-bottom:72px}
.q-grid{display:grid;gap:22px}
.q-card{background:#fff;border:1px solid var(--line);padding:22px 22px 24px}
.q-steps{display:flex;gap:8px;list-style:none;margin:0 0 22px;padding:0;flex-wrap:wrap}
.q-steps li{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:6px 10px;border:1px solid var(--line)}
.q-steps li.is-on{color:#fff;background:var(--accent);border-color:var(--accent)}
.q-prods,.q-units,.q-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}
.q-prod,.q-unit,.q-chip,.q-stepper{border:1px solid var(--line);background:#fff;color:var(--ink);min-height:42px;padding:0 14px;cursor:pointer;font-weight:650}
.q-prod.is-on,.q-unit.is-on,.q-chip.is-on{background:var(--ink);color:#fff;border-color:var(--ink)}
.q-qty-row{display:flex;align-items:center;gap:8px;margin:0 0 10px}
.q-qty-row input{width:7rem;text-align:center;padding:10px;border:1px solid var(--line);background:var(--paper)}
.q-stepper{width:42px;padding:0;font-size:1.2rem;line-height:1}
.q-qty-unit{font-weight:700;min-width:3ch}
.q-hint{color:var(--muted);font-size:.88rem;margin:0 0 16px;min-height:1.4em}
.q-lines{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.q-lines li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.q-lines .q-empty{border:0;color:var(--muted);display:block}
.q-line-rm{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700}
.q-line-rm:hover{color:var(--accent)}
.q-count{display:inline-grid;place-items:center;min-width:1.4rem;height:1.4rem;margin-left:6px;background:var(--accent);color:#fff;font-size:.7rem;border-radius:99px;vertical-align:middle}
.q-form{position:relative}
.q-form label{display:grid;gap:6px;font-size:.82rem;font-weight:650;color:var(--muted)}
.q-form input,.q-form textarea{font-weight:400;color:var(--ink);border:1px solid var(--line);background:var(--paper)}
.q-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.q-submit{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.q-dialog{border:0;padding:0;max-width:min(520px,92vw);background:transparent}
.q-dialog::backdrop{background:rgba(28,28,24,.55)}
.q-dialog-in{background:var(--paper);padding:28px 24px;border:1px solid var(--line)}
.q-dialog h2{font-family:"Roboto Slab",serif;margin:0 0 16px;font-size:1.5rem}
.q-preview-list{list-style:none;margin:0 0 16px;padding:0}
.q-preview-list li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.q-preview-meta p{margin:0 0 6px;color:var(--muted)}
.q-actions .btn-outline{color:var(--ink);border-color:var(--ink);cursor:pointer;font-weight:700;width:max-content;background:transparent}
.q-actions .btn-outline:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.q-actions .btn-outline:disabled{opacity:.4;cursor:not-allowed}
.q-actions .btn-outline:disabled:hover{background:transparent;border-color:var(--ink);color:var(--ink)}
@media (min-width:880px){
  .q-grid{grid-template-columns:1.15fr .85fr;align-items:start}
}

@media (min-width:880px){
  .desk{display:flex}
  .burger{display:none}
  .split{grid-template-columns:1fr 1fr}
  .stats{grid-template-columns:repeat(4,1fr)}
  .svc-grid{grid-template-columns:repeat(3,1fr)}
  .loc-grid,.team-grid{grid-template-columns:repeat(3,1fr)}
  .rev-grid{grid-template-columns:repeat(2,1fr)}
  .proj-grid{grid-template-columns:1.2fr .8fr;grid-auto-rows:minmax(220px,1fr)}
  .proj.wide{grid-row:span 2;min-height:480px}
  .prod-hero{grid-template-columns:1.05fr .95fr;align-items:center}
  .hero{padding-top:220px}
  .is-inner .hero-s{padding-top:56px}
}
@media (min-width:1100px){
  .svc-grid{grid-template-columns:repeat(3,1fr)}
}
