/* GE Construction Group — Premium visual layer */
:root{
  --green:#0b9678;
  --green-dark:#086c58;
  --green-deep:#0c2f29;
  --yellow:#f1d806;
  --ink:#131816;
  --muted:#68706c;
  --warm:#f6f6f1;
  --warm-2:#eef1ec;
  --line:rgba(18,35,30,.12);
  --shadow-soft:0 22px 65px rgba(12,34,29,.10);
  --shadow-card:0 24px 60px rgba(11,41,34,.13);
  --premium-radius:18px;
}

html{scroll-padding-top:74px}
body{background:#fbfcfa;color:var(--ink);overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.022;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.75'/%3E%3C/svg%3E")}

/* Compact premium header */
.site-header{position:sticky;top:0;z-index:1000;background:rgba(252,253,250,.9);backdrop-filter:blur(18px) saturate(1.2);border-bottom:1px solid rgba(12,47,41,.08);transition:box-shadow .35s ease,background .35s ease,transform .35s ease}
.site-header.is-scrolled{background:rgba(255,255,255,.96);box-shadow:0 10px 35px rgba(13,34,29,.08)}
.header-inner{height:68px;gap:24px}
.brand{width:auto;display:inline-flex;align-items:center;gap:11px;flex:0 0 auto}
.brand-mark{width:74px;height:37px;object-fit:cover;border-radius:3px;box-shadow:0 5px 18px rgba(12,47,41,.09)}
.brand-copy{display:flex;flex-direction:column;line-height:1.05;min-width:130px}
.brand-copy strong{font:800 .82rem 'Manrope',sans-serif;text-transform:uppercase;letter-spacing:.075em;color:var(--ink)}
.brand-copy small{font-size:.61rem;font-weight:600;letter-spacing:.055em;color:#7c827f;margin-top:5px}
.desktop-nav{gap:24px;margin-left:auto}
.desktop-nav a{font-size:.82rem;font-weight:700;letter-spacing:.015em;padding:24px 0;color:#303633}
.desktop-nav a:after{height:2px;bottom:14px;background:var(--green);transform-origin:left}
.header-actions{gap:14px}
.phone{display:inline-flex;align-items:center;gap:8px;font-size:.8rem;color:#39423e;white-space:nowrap}
.phone-icon{width:25px;height:25px;border:1px solid rgba(11,150,120,.24);border-radius:50%;display:grid;place-items:center;color:var(--green);font-size:.72rem;transition:.3s}
.phone:hover .phone-icon{background:var(--green);color:#fff;transform:rotate(45deg)}
.btn{position:relative;overflow:hidden;border-radius:7px;min-height:50px;letter-spacing:.01em;transition:transform .3s ease,box-shadow .3s ease,background .3s ease}
.btn:before{content:"";position:absolute;top:-120%;bottom:-120%;width:35%;left:-55%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);transform:rotate(18deg);transition:left .6s ease}
.btn:hover:before{left:125%}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(20,28,24,.14)}
.btn-small{min-height:40px;padding:0 16px;font-size:.78rem;border-radius:6px}
.header-estimate span{margin-left:9px;transition:transform .25s ease}
.header-estimate:hover span{transform:translateX(3px)}

/* Hero — editorial composition instead of stretching low-resolution photography full-screen */
.hero{position:relative;min-height:620px;background:linear-gradient(135deg,#092d27 0%,#0b3a31 52%,#0f473b 100%);overflow:hidden;display:block}
.hero:after{content:"";position:absolute;width:560px;height:560px;border-radius:50%;right:-160px;top:-220px;background:radial-gradient(circle,rgba(241,216,6,.13),transparent 67%);pointer-events:none}
.hero-grid-lines{position:absolute;inset:0;opacity:.12;background-image:linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);background-size:82px 82px;mask-image:linear-gradient(90deg,rgba(0,0,0,.95),transparent 85%)}
.hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,.92fr) minmax(480px,1.08fr);gap:72px;align-items:center;min-height:620px;padding:64px 0}
.hero-copy{max-width:650px;color:#fff}
.hero .eyebrow{display:inline-flex;align-items:center;gap:10px}
.hero .eyebrow i{width:24px;height:1px;background:var(--yellow);display:inline-block}
.hero h1{font:800 clamp(3.35rem,5vw,5.75rem)/.95 'Manrope',sans-serif;letter-spacing:-.058em;margin:20px 0 24px;max-width:660px}
.hero h1 em{color:var(--yellow);font-weight:700}
.hero p{font-size:1.02rem;line-height:1.75;max-width:590px;color:rgba(255,255,255,.78)}
.hero-actions{margin-top:30px}
.hero-trust{margin-top:34px;color:rgba(255,255,255,.64);font-size:.69rem;letter-spacing:.115em}
.hero-visual{position:relative;height:500px;perspective:1200px;isolation:isolate}
.hero-shot{position:absolute;margin:0;overflow:hidden;background:#fff;border:1px solid rgba(255,255,255,.28);box-shadow:0 26px 70px rgba(2,19,15,.28);transform:translateZ(0);transition:transform .7s cubic-bezier(.16,1,.3,1),box-shadow .7s ease}
.hero-shot:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 58%,rgba(7,25,21,.55));pointer-events:none}
.hero-shot img{width:100%;height:100%;object-fit:cover;filter:saturate(.92) contrast(1.03);transition:transform 1.15s cubic-bezier(.16,1,.3,1)}
.hero-shot figcaption{position:absolute;z-index:2;left:18px;right:18px;bottom:14px;background:transparent;color:#fff;padding:0;display:flex;justify-content:space-between;font-size:.69rem;letter-spacing:.08em;text-transform:uppercase}
.hero-shot figcaption span{color:var(--yellow)}
.hero-shot-main{width:63%;height:73%;left:0;top:11%;border-radius:18px;transform:rotate(-1.2deg)}
.hero-shot-top{width:42%;height:42%;right:0;top:0;border-radius:14px;transform:rotate(1.6deg)}
.hero-shot-bottom{width:44%;height:43%;right:3%;bottom:0;border-radius:14px;transform:rotate(-1deg)}
.hero-visual:hover .hero-shot-main{transform:rotate(-.4deg) translateY(-4px)}
.hero-visual:hover .hero-shot-top{transform:rotate(.6deg) translate(4px,-3px)}
.hero-visual:hover .hero-shot-bottom{transform:rotate(-.2deg) translate(3px,4px)}
.hero-visual:hover .hero-shot img{transform:scale(1.035)}
.hero-quality-badge{position:absolute;z-index:5;left:53%;top:45%;width:112px;height:112px;border-radius:50%;background:var(--yellow);color:#111;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:7px;padding:18px;box-shadow:0 15px 34px rgba(0,0,0,.20);transform:translate(-50%,-50%) rotate(-5deg);animation:badgeFloat 5s ease-in-out infinite}
.hero-quality-badge span{font:900 1.25rem 'Manrope';letter-spacing:-.08em}
.hero-quality-badge strong{font:800 .57rem/1.25 'Manrope';text-transform:uppercase;letter-spacing:.06em}
@keyframes badgeFloat{0%,100%{transform:translate(-50%,-50%) rotate(-5deg)}50%{transform:translate(-50%,-55%) rotate(-2deg)}}

/* Architectural trust strip */
.trust-strip{background:#f7f8f4;color:var(--ink);border-bottom:1px solid var(--line)}
.trust-grid>div{min-height:76px;padding:18px 22px;border-right:1px solid var(--line);gap:13px}
.trust-grid>div:first-child{border-left:1px solid var(--line)}
.trust-grid b{color:var(--green);font-size:.68rem}
.trust-grid span{font-size:.77rem;font-weight:700;color:#414946}

/* Overall hierarchy and premium spacing */
.section{padding-block:78px}
.section-head{margin-bottom:36px}
.section h2,.inner-hero h1,.contact-hero h1{letter-spacing:-.052em}
.eyebrow{position:relative;letter-spacing:.13em;font-size:.68rem}
.eyebrow:not(.light):before{content:"";display:inline-block;width:22px;height:2px;background:var(--yellow);vertical-align:middle;margin-right:9px}
.text-link{position:relative;padding-bottom:3px;transition:color .25s ease}
.text-link:after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:currentColor;transition:width .35s cubic-bezier(.16,1,.3,1)}
.text-link:hover:after{width:100%}
.split{gap:64px}
.intro{background:#fff}
.intro .split>div:first-child{padding-right:34px;border-right:1px solid var(--line)}

/* Services — editorial cards, not a generic four-card template */
.services-home{background:linear-gradient(180deg,#f5f6f1,#f9faf7)}
.service-grid{grid-template-columns:repeat(2,1fr);gap:18px}
.service-card{display:grid;grid-template-columns:minmax(190px,.86fr) 1.14fr;min-height:238px;border:1px solid rgba(20,43,36,.1);border-radius:14px;background:rgba(255,255,255,.88);box-shadow:0 1px 0 rgba(255,255,255,.8) inset;overflow:hidden;transition:transform .45s cubic-bezier(.16,1,.3,1),box-shadow .45s ease,border-color .35s ease}
.service-card:hover{transform:translateY(-7px);box-shadow:var(--shadow-card);border-color:rgba(11,150,120,.25)}
.service-card-media{position:relative;overflow:hidden;min-height:100%}
.service-card-media img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;filter:saturate(.93) contrast(1.02);transition:transform .8s cubic-bezier(.16,1,.3,1)}
.service-card:hover .service-card-media img{transform:scale(1.045)}
.service-arrow{position:absolute;right:13px;top:13px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.92);color:var(--green-dark);font-size:.8rem;box-shadow:0 8px 24px rgba(0,0,0,.12);transition:.4s}
.service-card:hover .service-arrow{background:var(--yellow);color:#111;transform:rotate(45deg)}
.service-card>div:last-child{padding:27px 28px;display:flex;flex-direction:column;justify-content:center}
.service-card h3{font-size:1.28rem;letter-spacing:-.025em;margin:9px 0}
.service-card p{line-height:1.62}

/* Projects */
.projects-preview{background:#fff}
.project-mosaic{grid-template-rows:repeat(2,230px);gap:14px}
.project-mosaic figure{border-radius:14px;box-shadow:0 10px 35px rgba(11,35,29,.07)}
.project-mosaic img{filter:saturate(.92) contrast(1.025)}
.project-mosaic figure:hover img{transform:scale(1.045)}
.project-mosaic figcaption{left:14px;bottom:14px;border-radius:6px;box-shadow:0 8px 25px rgba(0,0,0,.10)}

/* Process */
.process{background:linear-gradient(135deg,#f1f4ee,#f8faf7)}
.process-grid{border-top:0;gap:12px}
.process-grid li{padding:28px 24px 24px;border-top:1px solid var(--line);background:rgba(255,255,255,.58);min-height:210px;transition:transform .35s ease,background .35s ease,border-color .35s ease}
.process-grid li:before{top:-1px;width:36px;height:2px}
.process-grid li:hover{transform:translateY(-4px);background:#fff;border-color:rgba(11,150,120,.28)}
.process-grid h3{font-size:1.3rem}

/* Reviews */
.review-grid{gap:14px}
.review-grid article{position:relative;border:1px solid rgba(20,43,36,.1);border-radius:14px;padding:27px 26px 24px;overflow:hidden;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s ease}
.review-grid article:before{content:'“';position:absolute;right:18px;top:-11px;font:800 5.8rem 'Manrope';color:rgba(11,150,120,.08)}
.review-grid article:hover{transform:translateY(-5px);box-shadow:var(--shadow-soft)}
.stars{font-size:.85rem}

/* Estimate */
.estimate{position:relative;background:linear-gradient(135deg,#0b4d40,#08725d);padding:74px 0;overflow:hidden}
.estimate:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:64px 64px;opacity:.55;mask-image:linear-gradient(90deg,transparent,#000 45%,#000)}
.estimate-grid{position:relative;z-index:1;gap:58px}
.form-card{border-radius:14px;box-shadow:0 28px 70px rgba(3,34,28,.24);border:1px solid rgba(255,255,255,.9)}
.contact-form input,.contact-form select,.contact-form textarea{border-radius:7px;background:#fcfdfb;transition:border-color .25s,box-shadow .25s,background .25s}

/* Footer polish */
.prefooter{background:#14231f;padding:54px 0}
.footer{background:#f1f3ee;padding-top:50px}
.footer-brand img{width:165px;filter:saturate(.95)}
.footer-grid{gap:36px}

/* Inner pages */
.inner-hero{padding:52px 0 58px;background:linear-gradient(135deg,#f4f5ef,#fbfcfa);border-bottom:1px solid var(--line)}
.inner-hero-grid{gap:54px;grid-template-columns:1.03fr .75fr}
.inner-hero img{height:330px;border-radius:14px;box-shadow:var(--shadow-soft);filter:saturate(.92) contrast(1.02)}
.image-copy{gap:48px}
.image-copy img{height:380px;border-radius:14px;box-shadow:var(--shadow-soft);filter:saturate(.92)}
.value-grid{gap:13px}
.value-grid article{border:1px solid var(--line);border-top:2px solid var(--green);border-radius:10px;padding:25px;transition:transform .35s ease,box-shadow .35s ease}
.value-grid article:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft)}
.service-detail{padding:58px 0}
.service-row{gap:52px;grid-template-columns:.9fr 1.1fr}
.service-image{position:relative}
.service-image:after{content:"";position:absolute;inset:auto -10px -10px auto;width:44%;height:44%;border-right:2px solid var(--yellow);border-bottom:2px solid var(--yellow);pointer-events:none}
.service-image img{height:320px;border-radius:13px;filter:saturate(.92) contrast(1.02);box-shadow:0 18px 45px rgba(10,39,32,.09)}
.service-copy h2{font-size:clamp(2rem,2.7vw,3rem)}
.service-copy p{line-height:1.7}
.service-copy ul{margin:20px 0}
.projects-hero{padding-block:54px}
.gallery-grid{gap:12px}
.gallery-item button{border-radius:12px;background:#ecefeb}
.gallery-item img,.gallery-item.wide img{height:285px;filter:saturate(.92) contrast(1.02)}
.gallery-item.wide img{height:340px}
.gallery-item span{border-radius:5px;box-shadow:0 7px 24px rgba(0,0,0,.08)}
.contact-hero{position:relative;padding:66px 0;background:linear-gradient(135deg,#0c312a,#0a493d);overflow:hidden}
.contact-hero:after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:72px 72px;opacity:.55}
.contact-hero .container{position:relative;z-index:1}
.contact-grid{gap:54px}
.form-card.light{border-radius:14px;box-shadow:0 20px 55px rgba(10,37,31,.08)}
.yelp-card{border-radius:9px;border:1px solid var(--line);transition:.3s}
.yelp-card:hover{transform:translateY(-2px);border-color:rgba(11,150,120,.3)}

/* Premium motion system */
[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}
[data-reveal="left"]{transform:translateX(-26px)}
[data-reveal="right"]{transform:translateX(26px)}
[data-reveal].is-visible{opacity:1;transform:none}
[data-image-reveal]{position:relative;overflow:hidden}
[data-image-reveal]:after{content:"";position:absolute;inset:0;background:var(--green-deep);transform-origin:right;transform:scaleX(1);transition:transform .9s cubic-bezier(.77,0,.18,1);z-index:5;pointer-events:none}
[data-image-reveal].is-visible:after{transform:scaleX(0)}

@media(max-width:1120px){
  .brand-copy{display:none}.brand-mark{width:70px}.desktop-nav{gap:18px}.header-actions{gap:10px}.phone span:last-child{display:none}
  .hero-inner{grid-template-columns:.95fr 1.05fr;gap:44px}.hero-visual{height:455px}
}

@media(max-width:900px){
  .header-inner{height:64px}.desktop-nav,.header-actions{display:none}.brand-copy{display:flex}.brand-mark{width:68px;height:34px}.mobile-menu{top:64px;border-top:1px solid var(--line);padding:18px 18px 26px}.mobile-menu a{padding:10px 8px}.mobile-phone{color:var(--green-dark)!important}
  .hero{min-height:auto}.hero-inner{grid-template-columns:1fr;gap:38px;min-height:auto;padding:70px 0 56px}.hero-copy{max-width:700px}.hero h1{max-width:720px}.hero-visual{height:420px;max-width:680px;width:100%;margin-inline:auto}.hero-shot-main{width:61%;height:78%}.hero-shot-top{width:42%;height:44%}.hero-shot-bottom{width:44%;height:45%}
  .service-grid{grid-template-columns:1fr}.service-card{grid-template-columns:220px 1fr}
  .section{padding-block:64px}.inner-hero-grid{grid-template-columns:1fr;gap:32px}.inner-hero img{height:340px}.service-row{grid-template-columns:1fr;gap:32px}.service-detail.alt .service-image{order:0}.service-image img{height:340px}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-item.wide{grid-column:span 2}
}

@media(max-width:620px){
  :root{--container:calc(100% - 28px)}
  .header-inner{height:60px}.brand{gap:8px}.brand-mark{width:60px;height:30px}.brand-copy strong{font-size:.7rem}.brand-copy small{font-size:.54rem;margin-top:3px}.mobile-menu{top:60px}
  .hero-inner{padding:52px 0 44px}.hero h1{font-size:clamp(2.75rem,12.5vw,4.2rem)}.hero p{font-size:.96rem;line-height:1.65}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .btn{width:100%}.hero-trust{margin-top:28px;gap:9px;flex-wrap:wrap}.hero-visual{height:330px}.hero-shot-main{width:67%;height:74%;top:13%}.hero-shot-top{width:40%;height:40%}.hero-shot-bottom{width:44%;height:42%}.hero-quality-badge{width:82px;height:82px;padding:12px}.hero-quality-badge span{font-size:.95rem}.hero-quality-badge strong{font-size:.43rem}
  .trust-grid{grid-template-columns:1fr 1fr}.trust-grid>div{min-height:64px;padding:12px 13px;border-bottom:1px solid var(--line)}.trust-grid span{font-size:.69rem}.section{padding-block:52px}.split{gap:30px}.intro .split>div:first-child{border-right:0;padding-right:0}.section-head{margin-bottom:26px}.service-card{grid-template-columns:1fr;min-height:auto}.service-card-media{height:210px}.service-card>div:last-child{padding:22px}.project-mosaic{grid-template-columns:1fr;grid-template-rows:auto;gap:11px}.project-mosaic figure.large{grid-row:auto}.project-mosaic img{height:240px}.process-grid{grid-template-columns:1fr}.process-grid li{min-height:auto;padding:22px}.review-grid{grid-template-columns:1fr}.estimate{padding:54px 0}.estimate-grid{gap:32px}.form-card{padding:21px 18px}.prefooter{padding:44px 0}.inner-hero{padding:42px 0}.inner-hero img,.image-copy img,.service-image img{height:265px}.service-detail{padding:48px 0}.service-copy ul{grid-template-columns:1fr}.gallery-grid{grid-template-columns:1fr}.gallery-item.wide{grid-column:auto}.gallery-item img,.gallery-item.wide img{height:270px}.contact-hero{padding:52px 0}.contact-grid{gap:34px}
}

@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
  [data-reveal]{opacity:1!important;transform:none!important}
  [data-image-reveal]:after{display:none}
}

/* Specificity fixes layered after the original stylesheet. */
.service-card > .service-card-media{padding:0}
@media(max-width:900px){
  .menu-btn{display:flex;margin-left:auto;width:42px;height:42px;border:0;background:transparent;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:0;cursor:pointer}
  .menu-btn span{width:22px;height:2px;background:#17201d;border-radius:10px;transition:transform .25s ease,opacity .25s ease}
  .menu-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .menu-btn[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-btn[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .mobile-menu{position:absolute;left:0;right:0;background:#fff;box-shadow:0 22px 45px rgba(10,35,29,.13);flex-direction:column}
  .mobile-menu:not([hidden]){display:flex}
}
.footer-brand-lockup{display:inline-flex;align-items:center;gap:12px;margin-bottom:12px}
.footer-brand-lockup img{width:76px!important;height:38px;object-fit:cover;border-radius:3px}
.footer-brand-lockup span{display:flex;flex-direction:column;line-height:1.05}
.footer-brand-lockup strong{font:800 .82rem 'Manrope',sans-serif;text-transform:uppercase;letter-spacing:.075em;color:var(--ink)}
.footer-brand-lockup small{margin-top:5px;font-size:.62rem;font-weight:600;letter-spacing:.05em;color:var(--muted)}

/* ============================================================
   Final responsive QA pass — compact header, no hero badge,
   controlled image scale for low-resolution supplied photography
   ============================================================ */

/* Header: override the original `.brand img { width:100% }` rule decisively. */
.site-header .header-inner{
  height:60px;
  gap:20px;
}
.site-header .brand{
  width:auto !important;
  max-width:190px;
  min-width:0;
  gap:9px;
  overflow:visible;
}
.site-header .brand > img.brand-mark{
  flex:0 0 50px;
  width:50px !important;
  max-width:50px !important;
  height:25px !important;
  object-fit:cover;
  object-position:center;
  border-radius:2px;
  box-shadow:none;
}
.site-header .brand-copy{min-width:118px}
.site-header .brand-copy strong{font-size:.76rem;letter-spacing:.065em}
.site-header .brand-copy small{font-size:.56rem;margin-top:4px;letter-spacing:.045em}
.site-header .desktop-nav{gap:22px}
.site-header .desktop-nav a{padding:20px 0;font-size:.8rem}
.site-header .desktop-nav a:after{bottom:11px}
.site-header .phone{font-size:.78rem}
.site-header .phone-icon{width:24px;height:24px}
.site-header .btn-small{min-height:38px;padding-inline:15px;font-size:.75rem}
html{scroll-padding-top:68px}

/* The user requested no circular badge/decorative circle in the hero. */
.hero:after,
.hero-quality-badge{display:none !important}

/* Hero: keep supplied images near their usable visual size instead of stretching them. */
.hero{min-height:560px}
.hero-inner{
  grid-template-columns:minmax(0,1fr) minmax(400px,.86fr);
  gap:54px;
  min-height:560px;
  padding:52px 0;
}
.hero-copy{max-width:610px}
.hero h1{font-size:clamp(3.2rem,4.65vw,5.2rem);margin:18px 0 22px}
.hero p{font-size:1rem;line-height:1.68}
.hero-actions{margin-top:26px}
.hero-trust{margin-top:28px}
.hero-visual{
  width:100%;
  max-width:520px;
  height:420px;
  margin-left:auto;
}
.hero-shot{
  box-shadow:0 22px 55px rgba(2,19,15,.23);
  backface-visibility:hidden;
}
.hero-shot img{
  image-rendering:auto;
  filter:saturate(.92) contrast(1.015) brightness(.99);
  backface-visibility:hidden;
}
.hero-shot-main{width:58%;height:68%;left:2%;top:16%;border-radius:14px}
.hero-shot-top{width:36%;height:36%;right:3%;top:4%;border-radius:12px}
.hero-shot-bottom{width:39%;height:38%;right:5%;bottom:3%;border-radius:12px}
.hero-shot figcaption{left:13px;right:13px;bottom:11px;font-size:.61rem}
.hero-grid-lines{opacity:.08;background-size:96px 96px}

/* Keep photography editorially sized throughout the site. */
.service-card-media{min-width:0}
.service-card-media img{image-rendering:auto}
.project-mosaic{max-width:1080px;margin-inline:auto}
.project-mosaic img{image-rendering:auto}
.inner-hero-grid{grid-template-columns:minmax(0,1.08fr) minmax(300px,.72fr)}
.inner-hero img{
  width:100%;
  max-width:420px;
  height:auto;
  aspect-ratio:4/3;
  justify-self:end;
}
.image-copy{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.image-copy > img{
  width:100%;
  max-width:460px;
  height:auto;
  aspect-ratio:4/3;
  justify-self:start;
}
.service-row{grid-template-columns:minmax(300px,.82fr) minmax(0,1.18fr);gap:48px}
.service-image{max-width:440px;width:100%}
.service-image img{
  width:100%;
  height:auto;
  aspect-ratio:4/3;
}
.service-detail.alt .service-image{justify-self:end}
.gallery-grid{
  max-width:1040px;
  margin-inline:auto;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.gallery-item.wide{grid-column:auto}
.gallery-item img,
.gallery-item.wide img{
  width:100%;
  height:auto;
  aspect-ratio:4/3;
  object-fit:cover;
  image-rendering:auto;
}
.lightbox img{
  width:auto;
  height:auto;
  max-width:min(600px,88vw);
  max-height:82vh;
}

/* Large desktop: preserve breathing room without making the header or images oversized. */
@media (min-width:1440px){
  :root{--container:min(1180px,calc(100vw - 72px))}
  .hero-inner{gap:64px}
  .hero-visual{max-width:540px}
  .project-mosaic{max-width:1040px}
}

/* Compact desktop / laptop. */
@media (max-width:1180px){
  .site-header .brand-copy{display:none}
  .site-header .brand{max-width:52px}
  .site-header .desktop-nav{gap:18px}
  .site-header .header-actions{gap:10px}
  .hero-inner{grid-template-columns:minmax(0,.98fr) minmax(390px,1.02fr);gap:38px}
  .hero-visual{max-width:480px;height:395px}
}

/* Tablet navigation and layout. */
@media (max-width:900px){
  .site-header .header-inner{height:58px}
  .site-header .desktop-nav,.site-header .header-actions{display:none}
  .site-header .brand{max-width:180px}
  .site-header .brand-copy{display:flex}
  .site-header .brand > img.brand-mark{width:48px !important;max-width:48px !important;height:24px !important;flex-basis:48px}
  .mobile-menu{top:58px}
  .hero-inner{grid-template-columns:1fr;gap:30px;padding:52px 0 46px;min-height:auto}
  .hero-copy{max-width:690px}
  .hero-visual{max-width:540px;height:370px;margin-inline:auto}
  .hero-shot-main{width:57%;height:70%}
  .hero-shot-top{width:36%;height:38%}
  .hero-shot-bottom{width:39%;height:40%}
  .inner-hero-grid,.image-copy,.service-row{grid-template-columns:1fr;gap:30px}
  .inner-hero img,.image-copy > img,.service-image{max-width:520px;justify-self:start}
  .service-detail.alt .service-image{order:0;justify-self:start}
  .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px}
}

/* Phones and small tablets. */
@media (max-width:620px){
  :root{--container:calc(100% - 28px)}
  .site-header .header-inner{height:56px}
  .site-header .brand{gap:7px;max-width:165px}
  .site-header .brand > img.brand-mark{width:44px !important;max-width:44px !important;height:22px !important;flex-basis:44px}
  .site-header .brand-copy{min-width:104px}
  .site-header .brand-copy strong{font-size:.67rem}
  .site-header .brand-copy small{font-size:.5rem;margin-top:3px}
  .mobile-menu{top:56px}
  .hero{min-height:auto}
  .hero-inner{padding:42px 0 38px;gap:26px}
  .hero h1{font-size:clamp(2.55rem,12vw,3.65rem);line-height:.97}
  .hero p{font-size:.94rem;line-height:1.62}
  .hero-actions{margin-top:22px}
  .hero-trust{margin-top:23px}
  .hero-visual{height:285px;max-width:390px}
  .hero-shot-main{width:63%;height:70%;left:1%;top:16%}
  .hero-shot-top{width:34%;height:36%;right:1%;top:2%}
  .hero-shot-bottom{width:38%;height:38%;right:3%;bottom:2%}
  .hero-shot{border-radius:10px}
  .hero-shot figcaption{font-size:.5rem;left:9px;right:9px;bottom:8px}
  .service-card-media{height:190px}
  .project-mosaic img{height:220px}
  .inner-hero img,.image-copy > img,.service-image{max-width:100%}
  .gallery-grid{grid-template-columns:1fr;max-width:430px}
  .gallery-item img,.gallery-item.wide img{max-height:320px}
}

/* Narrow phones. */
@media (max-width:420px){
  :root{--container:calc(100% - 22px)}
  .site-header .brand-copy small{display:none}
  .site-header .brand-copy{min-width:auto}
  .site-header .brand-copy strong{font-size:.64rem}
  .hero-inner{padding:36px 0 32px}
  .hero h1{font-size:clamp(2.35rem,12vw,3.1rem)}
  .hero-visual{height:250px}
  .hero-shot-main{width:64%;height:68%}
  .hero-shot-top{width:33%;height:34%}
  .hero-shot-bottom{width:37%;height:36%}
  .hero-shot figcaption{display:none}
  .section{padding-block:46px}
  .trust-grid{grid-template-columns:1fr 1fr}
}

/* Short desktop windows: keep the hero useful without forcing a huge first viewport. */
@media (min-width:901px) and (max-height:650px){
  .hero,.hero-inner{min-height:500px}
  .hero-inner{padding:38px 0}
  .hero h1{font-size:clamp(3rem,4.2vw,4.4rem)}
  .hero p{line-height:1.55}
  .hero-trust{margin-top:20px}
  .hero-visual{height:365px;max-width:470px}
}


/* ============================================================
   Client revision — logo only header/footer, refined backgrounds,
   and tighter responsive behaviour across all screens
   ============================================================ */

body{
  background-color:#f8f8f4;
  background-image:
    radial-gradient(circle at 0% 0%, rgba(13,152,122,.09), transparent 22%),
    radial-gradient(circle at 100% 10%, rgba(240,217,0,.08), transparent 16%),
    linear-gradient(180deg,#f4f5f0 0,#ffffff 180px,#fbfbf8 100%);
}

.site-header{
  background:rgba(255,255,255,.92);
  box-shadow:0 10px 30px rgba(17,24,22,.05);
}
.site-header .header-inner{height:68px;gap:22px}
.site-header .brand{display:inline-flex;align-items:center;width:auto!important;max-width:none;min-width:0;gap:0;overflow:visible;flex:0 0 auto}
.site-header .brand > img.brand-mark{
  width:88px !important;
  max-width:88px !important;
  height:auto !important;
  max-height:54px;
  flex:0 0 88px;
  object-fit:contain;
  object-position:center;
  border-radius:0;
  box-shadow:none;
}
.site-header .brand-copy{display:none !important}
.site-header .desktop-nav{margin-left:auto;gap:24px}
.site-header .desktop-nav a{padding:22px 0;font-size:.84rem}
.site-header .desktop-nav a:after{bottom:13px}
.site-header .header-actions{gap:14px}
.site-header .phone{font-size:.8rem}
.site-header .btn-small{min-height:39px;padding-inline:15px;font-size:.76rem}
.mobile-menu{background:rgba(255,255,255,.98);backdrop-filter:blur(14px)}
html{scroll-padding-top:76px}

.footer-brand-lockup{margin-bottom:14px}
.footer-brand-lockup img{width:112px !important;height:auto !important;object-fit:contain;border-radius:0}
.footer-brand-lockup span{display:none !important}

.section,
.projects-hero,
.inner-hero,
.values{
  position:relative;
  background-image:
    radial-gradient(circle at 100% 0%, rgba(13,152,122,.045), transparent 22%),
    radial-gradient(circle at 0% 100%, rgba(240,217,0,.04), transparent 18%);
}
.services-home,.testimonials{
  background-image:
    radial-gradient(circle at 100% 0%, rgba(13,152,122,.05), transparent 24%),
    linear-gradient(180deg, rgba(255,255,255,.55), rgba(255,255,255,.82));
}
.footer{
  background:linear-gradient(180deg,#f3f4ef 0%,#eef0ea 100%);
}

@media (min-width:1440px){
  .site-header .brand > img.brand-mark{width:94px !important;max-width:94px !important;flex-basis:94px;max-height:58px}
}

@media (max-width:1180px){
  .site-header .brand > img.brand-mark{width:84px !important;max-width:84px !important;flex-basis:84px;max-height:50px}
  .site-header .desktop-nav{gap:20px}
  .site-header .phone span:last-child{display:none}
}

@media (max-width:900px){
  .site-header .header-inner{height:62px}
  .site-header .desktop-nav,.site-header .header-actions{display:none}
  .site-header .brand{max-width:none}
  .site-header .brand > img.brand-mark{width:78px !important;max-width:78px !important;height:auto !important;max-height:46px;flex-basis:78px}
  .mobile-menu{top:62px}
  html{scroll-padding-top:70px}
}

@media (max-width:620px){
  .site-header .header-inner{height:58px;gap:14px}
  .site-header .brand > img.brand-mark{width:72px !important;max-width:72px !important;max-height:42px;flex-basis:72px}
  .mobile-menu{top:58px}
  html{scroll-padding-top:66px}
  .section,.projects-hero,.inner-hero,.values,.services-home,.testimonials{background-image:none}
}

@media (max-width:420px){
  .site-header .header-inner{height:56px}
  .site-header .brand > img.brand-mark{width:66px !important;max-width:66px !important;max-height:38px;flex-basis:66px}
  .mobile-menu{top:56px}
  html{scroll-padding-top:64px}
}
