:root{
  --paper:#eef1f2; --white:#fbfcfc; --ink:#0f2a33; --mid:#3d6670; --line:#cbd5d8;
  --sun:#d9a441; --sun-dark:#b98625;
  --head:"Bricolage Grotesque",system-ui,sans-serif; --body:"Instrument Sans",system-ui,sans-serif;
  --wrap:1280px; --pad:clamp(1.25rem,4vw,3rem); --sec:clamp(4.5rem,9vw,8rem);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:5rem}
body{margin:0;font:400 1.0625rem/1.65 var(--body);color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--head);line-height:1.1;margin:0;letter-spacing:-.02em}
h1{font-size:clamp(2.5rem,5.6vw,4.6rem);font-weight:700}
h2{font-size:clamp(2rem,3.8vw,3.1rem);font-weight:700}
h3{font-size:1.3rem;font-weight:500;letter-spacing:-.01em}
p{margin:0 0 1.1rem}
:focus-visible{outline:3px solid var(--sun);outline-offset:3px}
.wrap{width:min(100% - 2*var(--pad),var(--wrap));margin-inline:auto}

.btn{display:inline-block;background:var(--ink);color:var(--white);padding:.95rem 1.6rem;border:2px solid var(--ink);font:600 1rem var(--body);text-decoration:none;cursor:pointer;border-radius:2px;transition:background .2s,color .2s,transform .2s}
.btn:hover{background:var(--sun);border-color:var(--sun);color:var(--ink);transform:translateY(-2px)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-small{padding:.55rem 1.1rem;font-size:.95rem}

/* header */
.site-header{position:sticky;top:0;z-index:50;background:rgba(238,241,242,.96);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;min-height:4.5rem}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none}
.mark{display:grid;place-items:center;width:2.4rem;height:2.4rem;background:var(--ink);color:var(--sun);font:700 1.1rem var(--head);border-radius:2px}
.brand-name{font:700 1.1rem var(--head);letter-spacing:.01em}
.nav{display:flex;align-items:center;gap:2rem}
.nav a:not(.btn){text-decoration:none;font-weight:500;padding:.3rem 0;background:linear-gradient(var(--sun),var(--sun)) 0 100%/0 2px no-repeat;transition:background-size .25s}
.nav a:not(.btn):hover{background-size:100% 2px}
.nav-toggle{display:none;background:none;border:0;width:2.75rem;height:2.75rem;cursor:pointer;position:relative}
.nav-toggle span{position:absolute;left:.6rem;right:.6rem;height:2px;background:var(--ink);transition:transform .25s}
.nav-toggle span:first-child{top:1.05rem}.nav-toggle span:last-child{top:1.65rem}
.nav-toggle[aria-expanded="true"] span:first-child{transform:translateY(.3rem) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:last-child{transform:translateY(-.3rem) rotate(-45deg)}

/* hero */
.hero{padding:clamp(2.5rem,6vw,5rem) 0 clamp(3rem,6vw,5rem)}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(2rem,5vw,5rem);align-items:stretch}
.hero-copy{display:flex;flex-direction:column;justify-content:center}
.hero-tag{display:inline-block;align-self:flex-start;border-left:4px solid var(--sun);padding-left:.8rem;font-weight:600;color:var(--mid);margin-bottom:1.5rem}
.lead{font-size:1.2rem;max-width:36rem;margin:1.5rem 0 2rem;color:#27434c}
.hero-actions{display:flex;flex-wrap:wrap;gap:1rem}
.hero-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin:3rem 0 0;padding-top:1.5rem;border-top:1px solid var(--line)}
.hero-facts dt{font-size:.9rem;color:var(--mid)}
.hero-facts dd{margin:.2rem 0 0;font:500 1.1rem var(--head)}
.hero-art{margin:0;position:relative;min-height:480px;overflow:hidden;border-radius:2px;animation:rise 1s ease both}
.hero-art svg{width:100%;height:100%;position:absolute;inset:0}
.hero-art figcaption{position:absolute;left:1rem;bottom:2.6rem;font-size:.8rem;color:#d9e3e6;opacity:.8}
@keyframes rise{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}

.intro-band{background:var(--ink);color:var(--white)}
.band-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.band-grid p{margin:0;padding:1.4rem 1rem;font:500 1.05rem var(--head);border-left:1px solid #2c4c56;text-align:center}
.band-grid p:first-child{border-left:0}

.section{padding:var(--sec) 0}
.section-head{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:end;margin-bottom:3rem}
.section-head p{margin:0;max-width:30rem;color:#27434c}

/* about */
.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,6vw,6rem)}
.about-head{position:sticky;top:6.5rem;align-self:start}
.panel{margin-top:2.5rem;background:var(--white);border:1px solid var(--line);border-top:4px solid var(--sun);padding:1.6rem}
.panel h3{margin-bottom:.8rem}
.panel p{margin-bottom:.7rem}
.big{font:500 1.55rem/1.35 var(--head);letter-spacing:-.01em}
.about-body p{max-width:40rem}
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--line)}
.values h3{font-size:1.1rem;margin-bottom:.4rem}
.values p{font-size:.97rem;margin:0}

/* services: ruled rows */
.services{background:var(--white);border-block:1px solid var(--line)}
.svc-list{list-style:none;margin:0;padding:0;border-top:2px solid var(--ink)}
.svc{display:grid;grid-template-columns:.8fr 1.5fr .7fr;gap:2rem;align-items:start;padding:2rem .5rem;border-bottom:1px solid var(--line);transition:background .25s,padding .25s}
.svc:hover{background:var(--paper);padding-left:1.25rem}
.svc h3{font-size:1.5rem}
.svc p{margin:0;max-width:34rem}
.svc-note{justify-self:end;font-size:.92rem;color:var(--mid);border:1px solid var(--line);padding:.25rem .8rem;border-radius:99px;white-space:nowrap}

/* why */
.why-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,6vw,6rem)}
.why-intro p{margin:1.2rem 0 2rem;max-width:26rem}
.img-block{min-height:300px;border-radius:2px;background:
  linear-gradient(90deg,transparent 48%,rgba(251,252,252,.25) 49% 51%,transparent 52%),
  repeating-linear-gradient(0deg,#1d4452 0 38px,#16363f 38px 40px);background-color:var(--mid);position:relative}
.img-block::after{content:"";position:absolute;right:12%;top:14%;width:56px;height:56px;border-radius:50%;background:var(--sun)}
.why-items{display:grid;gap:0}
.why-items article{display:grid;grid-template-columns:12rem 1fr;gap:1.5rem;padding:1.6rem 0;border-top:1px solid var(--line)}
.why-items article:last-child{border-bottom:1px solid var(--line)}
.why-items h3{font-size:1.25rem}
.why-items p{margin:0}

/* process */
.process{background:var(--ink);color:var(--white)}
.process .section-head p{color:#b9cdd3}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:s}
.steps li{counter-increment:s;padding:2rem 1.5rem 0 0;border-top:3px solid #2c4c56;position:relative;transition:border-color .3s}
.steps li:hover{border-color:var(--sun)}
.steps li::before{content:counter(s);display:block;font:700 2.6rem var(--head);color:var(--sun);margin-bottom:1rem}
.steps p{color:#b9cdd3;margin:.6rem 0 0}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.contact-info>p{max-width:30rem;margin-top:1.2rem}
.details{margin:2.5rem 0 0;border-top:2px solid var(--ink)}
.details div{display:grid;grid-template-columns:7rem 1fr;padding:1rem 0;border-bottom:1px solid var(--line)}
.details dt{color:var(--mid);font-weight:500}
.details dd{margin:0}
.form{background:var(--white);border:1px solid var(--line);padding:clamp(1.5rem,3vw,2.5rem)}
.field{margin-bottom:1.2rem}
label{display:block;font-weight:600;margin-bottom:.35rem;font-size:.97rem}
input,select,textarea{width:100%;padding:.8rem .9rem;font:inherit;color:var(--ink);background:var(--paper);border:1px solid #9fb0b5;border-radius:2px}
input:focus,select:focus,textarea:focus{outline:3px solid var(--sun);outline-offset:1px;border-color:var(--ink)}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:#a8321f}
.err{display:block;color:#a8321f;font-size:.88rem;min-height:1.1rem;margin-top:.25rem}
.form-status{margin:1rem 0 0;font-weight:500;color:var(--mid)}

/* footer */
.footer{background:#0a1c22;color:#b9cdd3;padding:3.5rem 0 1.5rem;font-size:.97rem}
.foot-grid{display:grid;grid-template-columns:1.2fr 1.2fr .6fr;gap:2rem}
.foot-brand{font:700 1.3rem var(--head);color:var(--white)}
.footer nav{display:flex;flex-direction:column;gap:.4rem}
.footer a{text-decoration:none}.footer a:hover{color:var(--sun)}
.foot-base{margin-top:2.5rem;padding-top:1.2rem;border-top:1px solid #1d3a44;font-size:.9rem}
.foot-base p{margin:0}

/* scroll reveal: single, light effect */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.js .reveal.in{opacity:1;transform:none}

@media (max-width:980px){
  .hero-grid,.about-grid,.why-grid,.contact-grid,.section-head{grid-template-columns:1fr}
  .hero-art{min-height:340px;order:-1}
  .about-head{position:static}
  .svc{grid-template-columns:1fr;gap:.8rem}.svc-note{justify-self:start}
  .steps{grid-template-columns:1fr 1fr;gap:2rem 1.5rem}
  .band-grid{grid-template-columns:1fr 1fr}.band-grid p:nth-child(3){border-left:0}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .nav-toggle{display:block}
  .nav{position:absolute;top:100%;left:0;right:0;background:var(--paper);flex-direction:column;align-items:flex-start;gap:1rem;padding:1.5rem var(--pad);border-bottom:1px solid var(--line);display:none}
  .nav.open{display:flex}
}
@media (max-width:560px){
  .hero-facts,.values,.steps,.foot-grid{grid-template-columns:1fr}
  .why-items article{grid-template-columns:1fr;gap:.4rem}
  .details div{grid-template-columns:1fr;gap:.2rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .reveal{opacity:1;transform:none}
}
