
:root{
  --navy:#0b2e43;
  --deep:#061d2b;
  --copper:#d69882;
  --copper-light:#efc0af;
  --paper:#f4f1ec;
  --ink:#152833;
  --muted:#60717a;
  --line:#dce1e2;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);line-height:1.55;background:white}
img{max-width:100%}
a{text-decoration:none;color:inherit}
.wrap{width:min(1180px,calc(100% - 42px));margin:auto}
.site-header{position:sticky;top:0;z-index:50;background:var(--navy);color:white;border-bottom:1px solid rgba(255,255,255,.12)}
.nav{height:78px;display:flex;align-items:center;gap:28px}
.brand{display:flex;align-items:center;gap:12px;margin-right:auto;min-width:270px}
.brand img{width:56px;height:48px;object-fit:contain}
.brand strong{display:block;letter-spacing:1.8px;font-size:17px}
.brand small{display:block;color:#bfd0d8;font-size:8px;letter-spacing:1.8px;margin-top:3px}
.navlinks{display:flex;gap:20px;align-items:center;font-size:12px;font-weight:700}
.navlinks a:hover{color:var(--copper-light)}
.nav-cta{background:var(--copper);color:#11242d;padding:11px 16px;font-size:12px;font-weight:900}
.menu{display:none;background:none;border:0;color:white;font-size:24px}
.eyebrow{margin:0 0 12px;font-size:11px;font-weight:900;letter-spacing:3px;color:var(--copper-light)}
.eyebrow.dark{color:#a75e49}
h1,h2,h3{margin:0;line-height:1.02}
h1{font-size:clamp(52px,7.5vw,96px);letter-spacing:-3px;text-transform:uppercase}
h2{font-size:clamp(38px,4.7vw,61px);letter-spacing:-2px;text-transform:uppercase}
h3{font-size:26px}
.hero{position:relative;min-height:690px;display:flex;align-items:center;color:white;overflow:hidden}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,25,37,.95) 0%,rgba(4,25,37,.79) 44%,rgba(4,25,37,.28) 72%,rgba(4,25,37,.12) 100%)}
.hero-copy{position:relative;z-index:2;padding:90px 0;max-width:1020px}
.hero h1 em{font-style:normal;color:var(--copper-light)}
.hero-lead{font-size:19px;max-width:830px;color:#dbe5e9;margin:24px 0}
.hero-actions{display:flex;gap:12px;margin:30px 0}
.btn{display:inline-flex;justify-content:center;align-items:center;padding:14px 20px;font-size:12px;font-weight:900;letter-spacing:.4px;border:0;cursor:pointer}
.btn.copper{background:var(--copper);color:#152630}
.btn.outline{border:1px solid rgba(255,255,255,.55);color:white;background:rgba(0,0,0,.08)}
.hero-proof{display:flex;flex-wrap:wrap;gap:10px;margin-top:36px}
.hero-proof span{font-size:11px;padding:9px 11px;border:1px solid rgba(255,255,255,.18);background:rgba(5,30,43,.35)}
.trust-strip{background:#03131d;color:white}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.trust-grid div{padding:20px;border-right:1px solid #294450}
.trust-grid div:last-child{border:0}
.trust-grid b{color:var(--copper);font-size:11px;margin-right:10px}
.trust-grid span{font-size:11px;font-weight:800;letter-spacing:.7px}
.section{padding:94px 0}
.intro-section{background:var(--paper)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:80px}
.body-copy{font-size:17px;color:#53646c}
.services-section{background:white}
.service-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:34px}
.service-card{position:relative;min-height:390px;overflow:hidden;background:var(--navy);color:white}
.service-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .35s}
.service-card .shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(3,20,30,.95) 0%,rgba(3,20,30,.24) 72%)}
.service-card>div{position:absolute;left:26px;right:26px;bottom:26px;z-index:2}
.service-card small{color:var(--copper-light);font-size:10px;letter-spacing:2px}
.service-card h3{text-transform:uppercase;font-size:28px;margin:9px 0}
.service-card p{font-size:13px;color:#d6e0e4}
.service-card b{font-size:12px;color:var(--copper-light)}
.service-card:hover img{transform:scale(1.035)}
.featured-project{background:var(--paper)}
.project-feature-grid{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:70px}
.project-feature-image{position:relative}
.project-feature-image img{display:block;width:100%;height:570px;object-fit:cover}
.project-feature-image span{position:absolute;left:18px;bottom:18px;background:var(--navy);color:white;padding:9px 12px;font-size:10px;letter-spacing:1.7px}
.project-feature-copy p{color:var(--muted)}
.text-link{display:inline-block;color:#9b5945;font-weight:900;font-size:13px;margin-top:10px}
.fire-band{background:var(--navy);color:white}
.fire-band-grid{display:grid;grid-template-columns:1fr .85fr;gap:80px;align-items:center}
.fire-band p{color:#c9d6dc}
.door-collage{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.door-collage img{height:430px;width:100%;object-fit:cover}
.project-teasers{background:white}
.section-title-row{display:flex;justify-content:space-between;align-items:end;gap:30px}
.teaser-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:34px}
.teaser-grid a{background:var(--paper);display:block}
.teaser-grid img{width:100%;height:280px;object-fit:cover;display:block}
.teaser-grid div{padding:18px}
.teaser-grid small{font-size:9px;letter-spacing:1.6px;color:#a35d48}
.teaser-grid h3{text-transform:uppercase;font-size:21px;margin-top:7px}
.qualifications{background:var(--paper)}
.qual-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:38px}
.qual-grid>div{background:white;border:1px solid #e0e2df;padding:25px}
.qual-grid span{font-size:25px;color:var(--copper);font-weight:900}
.qual-grid h3{font-size:18px;margin:18px 0 8px}
.qual-grid p{font-size:12px;color:var(--muted)}
.qualification-note{font-size:11px;color:#718087;margin-top:18px}
.contact-section{background:var(--deep);color:white}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px}
.contact-section>div p{color:#c6d3d9}
.contact-links{display:grid;margin-top:28px}
.contact-links a{border-top:1px solid #304957;padding:14px 0}
.contact-links small{display:block;color:var(--copper-light);font-size:9px;letter-spacing:2px}
form{background:white;color:var(--ink);padding:30px;display:grid;gap:13px}
label{font-size:11px;font-weight:900}
input,select,textarea{width:100%;margin-top:5px;padding:12px;border:1px solid #ced7da;font:inherit}
.hidden{display:none}
.footer{background:#020b10;color:#94a5ad}
.footer-main{display:flex;justify-content:space-between;gap:30px;align-items:center;padding:34px 0}
.footer-brand{display:flex;align-items:center;gap:12px}
.footer-brand img{width:48px;height:42px;object-fit:contain}
.footer-brand strong{display:block;color:white}
.footer-brand span{display:block;font-size:10px}
.footer-links{display:flex;gap:22px;font-size:12px}
.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #1f3038;padding:16px 0;font-size:10px}

/* Internal page hero */
.page-hero{position:relative;min-height:560px;display:flex;align-items:end;color:white;overflow:hidden}
.page-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.page-hero-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(3,22,32,.96) 0%,rgba(3,22,32,.42) 65%)}
.page-hero .wrap{position:relative;z-index:2;padding-bottom:62px}
.page-hero h1{font-size:clamp(46px,6.5vw,82px);max-width:940px}
.page-hero p:last-child{max-width:720px;font-size:18px;color:#d5e0e4}
.capability-grid{display:flex;flex-wrap:wrap;gap:9px;margin-top:40px;justify-content:center;text-align:center}
.capability-grid span{background:var(--paper);border:1px solid #e1e2de;padding:10px 13px;font-size:12px;font-weight:700}
.case-study h2{margin-bottom:15px}
.case-lead{max-width:720px;color:var(--muted)}
.case-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:280px;gap:10px;margin-top:38px}
.case-grid figure{position:relative;margin:0;overflow:hidden}
.case-grid figure.big{grid-column:span 2}
.case-grid img{width:100%;height:100%;object-fit:cover}
.case-grid figcaption,.door-gallery figcaption,.process-gallery figcaption{position:absolute;left:12px;bottom:12px;background:rgba(5,31,45,.9);color:white;padding:7px 9px;font-size:10px}
.commercial-cta{background:var(--navy);color:white;text-align:center}
.commercial-cta h2{max-width:850px;margin:0 auto 25px}
.fire-qualification-layout{display:grid;grid-template-columns:1fr .8fr;gap:80px;align-items:start}
.fire-qualification-layout>div:first-child p:last-child{color:var(--muted);font-size:17px}
.fire-scope{background:var(--paper);padding:28px;display:flex;flex-wrap:wrap;gap:8px}
.fire-scope h3{width:100%;margin-bottom:12px}
.fire-scope span{background:white;border:1px solid #dfe2df;padding:9px 11px;font-size:12px}
.door-gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:34px}
.door-gallery figure{position:relative;margin:0;height:340px}
.door-gallery img{width:100%;height:100%;object-fit:cover}
.hmo-case{background:var(--navy);color:white}
.hmo-case p{color:#c8d6dc}
.process-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:35px}
.process-gallery figure{position:relative;margin:0;height:360px}
.process-gallery img{width:100%;height:100%;object-fit:cover}
.projects-hero{background:var(--navy);color:white;padding:105px 0 82px}
.projects-hero h1{font-size:clamp(52px,7vw,90px)}
.projects-hero p:last-child{color:#cad7dd;font-size:18px}
.project-heading{display:grid;grid-template-columns:1fr .8fr;gap:70px;align-items:end}
.project-heading>p{color:var(--muted)}
.project-gallery{display:grid;gap:10px;margin-top:32px}
.project-gallery img{width:100%;height:360px;object-fit:cover}
.project-gallery.three{grid-template-columns:2fr 1fr 1fr}
.project-gallery.four{grid-template-columns:repeat(4,1fr)}
.project-gallery.five{grid-template-columns:repeat(5,1fr)}
.garden-layout{display:grid;grid-template-columns:2fr 1fr 1fr;grid-auto-rows:280px;gap:10px;margin-top:32px}
.garden-layout img{width:100%;height:100%;object-fit:cover}
.garden-main{grid-row:span 2}
.window-layout{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:30px}
.window-layout img{height:560px;width:100%;object-fit:cover}

/* responsive */
@media(max-width:980px){
  .navlinks{display:none;position:absolute;top:78px;left:0;right:0;background:var(--navy);padding:20px;flex-direction:column;align-items:flex-start}
  .navlinks.open{display:flex}
  .menu{display:block}
  .nav-cta{display:none}
  .two-col,.project-feature-grid,.fire-band-grid,.contact-grid,.fire-qualification-layout,.project-heading{grid-template-columns:1fr;gap:34px}
  .service-cards{grid-template-columns:1fr}
  .service-card{min-height:330px}
  .qual-grid{grid-template-columns:1fr 1fr}
  .door-gallery{grid-template-columns:repeat(3,1fr)}
  .process-gallery{grid-template-columns:1fr 1fr}
  .project-gallery.three,.project-gallery.four,.project-gallery.five{grid-template-columns:1fr 1fr}
  .garden-layout{grid-template-columns:1fr 1fr}
  .garden-main{grid-row:span 1}
}
@media(max-width:620px){
  .wrap{width:calc(100% - 28px)}
  .brand strong{font-size:14px}
  .brand small{display:none}
  .brand img{width:48px}
  .hero{min-height:650px}
  .hero-overlay{background:linear-gradient(90deg,rgba(4,25,37,.94),rgba(4,25,37,.56))}
  .hero-actions{flex-direction:column;align-items:stretch}
  .trust-grid{grid-template-columns:1fr 1fr}
  .trust-grid div:nth-child(2){border-right:0}
  .section{padding:68px 0}
  .section-title-row{display:block}
  .teaser-grid,.qual-grid{grid-template-columns:1fr}
  .door-collage img{height:300px}
  .door-gallery,.process-gallery,.project-gallery.three,.project-gallery.four,.project-gallery.five,.garden-layout,.window-layout{grid-template-columns:1fr}
  .door-gallery figure,.process-gallery figure{height:420px}
  .project-gallery img{height:320px}
  .window-layout img{height:500px}
  .footer-main,.footer-links,.footer-bottom{flex-direction:column;align-items:flex-start}
}

.qual-intro{max-width:820px;color:var(--muted);font-size:17px;margin:18px 0 0}
.team-qual-grid>div{min-height:225px}
.qual-details{margin-top:20px;background:white;border:1px solid #dfe2df}
.qual-details summary{cursor:pointer;padding:15px 18px;font-size:12px;font-weight:900;color:#8e503f}
.qual-details>div{padding:0 18px 15px;color:var(--muted);font-size:12px}
.qual-details p{margin:6px 0}

.case-story{margin-top:42px;display:grid;gap:54px}
.case-story article{display:grid;grid-template-columns:.32fr 1fr;gap:34px;align-items:start}
.case-story-copy{position:sticky;top:110px}
.case-story-copy small{color:var(--copper);font-weight:900;font-size:12px}
.case-story-copy h3{font-size:25px;text-transform:uppercase;margin:8px 0 12px}
.case-story-copy p{font-size:13px;color:var(--muted)}
.case-story-images{display:grid;gap:10px}
.case-story-images.two-up{grid-template-columns:1fr 1fr}
.case-story-images.three-up{grid-template-columns:repeat(3,1fr)}
.case-story-images img{width:100%;height:340px;object-fit:cover;display:block}
.case-story-images.three-up img{height:300px}

.finish-grid{display:grid;grid-template-columns:1.4fr .7fr .7fr;grid-template-rows:255px 255px;gap:10px}
.finish-grid figure{margin:0;position:relative;overflow:hidden;background:#173848}
.finish-grid img{width:100%;height:100%;object-fit:cover;display:block}
.finish-grid figcaption{position:absolute;left:10px;bottom:10px;background:rgba(5,31,45,.9);color:white;padding:7px 9px;font-size:10px}
.finish-large{grid-row:span 2}
.finish-wide{grid-column:span 2}
.finish-small img{object-fit:cover}

.door-showcase{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:260px;gap:10px;margin-top:34px}
.door-showcase figure{margin:0;position:relative;overflow:hidden;background:#0e3347}
.door-showcase img{width:100%;height:100%;object-fit:cover;display:block}
.door-showcase .door-tall{grid-row:span 2}
.door-showcase figcaption{position:absolute;left:10px;bottom:10px;background:rgba(5,31,45,.9);color:white;padding:7px 9px;font-size:10px}

@media(max-width:980px){
  .case-story article{grid-template-columns:1fr}
  .case-story-copy{position:static}
  .case-story-images.three-up{grid-template-columns:1fr 1fr}
  .finish-grid{grid-template-columns:1fr 1fr;grid-template-rows:320px 260px 260px}
  .finish-large{grid-column:span 2;grid-row:span 1}
  .finish-wide{grid-column:span 2}
  .door-showcase{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:620px){
  .case-story-images.two-up,.case-story-images.three-up{grid-template-columns:1fr}
  .case-story-images img,.case-story-images.three-up img{height:300px}
  .finish-grid{grid-template-columns:1fr;grid-template-rows:auto}
  .finish-large,.finish-wide{grid-column:span 1}
  .finish-grid figure{height:340px}
  .finish-small{max-width:280px}
  .door-showcase{grid-template-columns:1fr 1fr;grid-auto-rows:230px}
  .door-showcase .door-tall{grid-row:span 2}
}

.canteen-final-gallery{display:grid;grid-template-columns:1.35fr 1fr 1fr;grid-auto-rows:260px;gap:10px}
.canteen-final-gallery figure{margin:0;position:relative;overflow:hidden;background:#123547}
.canteen-final-gallery img{width:100%;height:100%;object-fit:cover;display:block}
.canteen-final-gallery .canteen-final-hero{grid-row:span 2}
.canteen-final-gallery figcaption{position:absolute;left:10px;bottom:10px;background:rgba(5,31,45,.9);color:#fff;padding:7px 9px;font-size:10px}

.project-page-link{margin-top:18px}
.project-case-teaser{background:var(--paper)}
.canteen-project-teaser{display:grid;grid-template-columns:.75fr 1.25fr;gap:55px;align-items:center}
.canteen-project-teaser>div:first-child>p:not(.eyebrow){color:var(--muted)}
.canteen-teaser-gallery{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:250px 250px;gap:10px}
.canteen-teaser-gallery img{width:100%;height:100%;object-fit:cover}
.canteen-teaser-gallery img:first-child{grid-row:span 2}
.project-dark-btn{background:var(--navy);color:#fff;margin-top:12px}

@media(max-width:980px){
  .canteen-final-gallery{grid-template-columns:1fr 1fr}
  .canteen-final-gallery .canteen-final-hero{grid-row:span 1;grid-column:span 2}
  .canteen-project-teaser{grid-template-columns:1fr}
}
@media(max-width:620px){
  .canteen-final-gallery{grid-template-columns:1fr}
  .canteen-final-gallery .canteen-final-hero{grid-column:span 1}
  .canteen-final-gallery figure{height:320px}
  .canteen-teaser-gallery{grid-template-columns:1fr;grid-template-rows:repeat(3,300px)}
  .canteen-teaser-gallery img:first-child{grid-row:span 1}
}

.case-story-images.four-up{grid-template-columns:repeat(4,1fr)}
.case-story-images.four-up img{height:285px}
.canteen-final-clean .canteen-final-hero{grid-row:span 2}
@media(max-width:980px){
  .case-story-images.four-up{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .case-story-images.four-up{grid-template-columns:1fr}
  .case-story-images.four-up img{height:300px}
}
