@font-face { font-family: Manrope; src: url("assets/Manrope-wght.ttf") format("truetype"); font-weight: 200 800; font-style: normal; font-display: swap; }

:root { --petrol:#113f43; --cream:#f5f5ee; --citron:#e3f18b; --muted:#566766; --line:#cfd6d0; --gutter:clamp(1.5rem,6.5vw,6.8rem); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--cream); color:var(--petrol); font-family:Manrope,"Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif; font-size:17px; line-height:1.55; }
a { color:inherit; text-underline-offset:.25em; text-decoration-thickness:1px; }
a:focus-visible { outline:3px solid var(--petrol); outline-offset:4px; }
.about a:focus-visible,.site-footer a:focus-visible { outline-color:var(--citron); }
.skip-link { position:absolute; z-index:5; top:-4rem; left:1rem; padding:.75rem 1rem; background:var(--citron); }
.skip-link:focus { top:1rem; }

.site-header { display:flex; min-height:96px; align-items:end; justify-content:space-between; gap:2rem; padding:1.25rem var(--gutter) 1rem; border-bottom:1px solid var(--line); }
.header-top { display:flex; align-items:end; gap:clamp(2rem,7vw,8rem); }
.brand { display:inline-flex; flex-direction:column; gap:.38rem; font-weight:800; line-height:.75; letter-spacing:-.075em; text-decoration:none; }
.brand span { font-size:clamp(2rem,3.4vw,3.2rem); }
.brand small { font-size:.75rem; font-weight:700; letter-spacing:.2em; }
.header-phone { display:inline-flex; min-height:44px; align-items:center; font-size:.9rem; font-weight:700; white-space:nowrap; }
.site-header nav { display:flex; gap:clamp(.6rem,2vw,2.2rem); font-size:.94rem; }
.site-header nav a { display:inline-flex; min-height:44px; align-items:center; text-decoration:none; }
.site-header nav a:hover,.text-link:hover,.trust-strip a:hover,.site-footer a:hover { color:var(--muted); }

.hero { display:grid; min-height:670px; grid-template-columns:48% 52%; }
.hero-copy { display:flex; flex-direction:column; align-items:flex-start; padding:clamp(4.5rem,11vw,9.5rem) var(--gutter) 3rem; }
.eyebrow { margin:0 0 1.7rem; font-size:.875rem; font-weight:800; line-height:1.3; letter-spacing:.14em; }
.hero h1,h2,h3,p { margin-top:0; }
.hero h1,h2 { font-weight:600; line-height:.96; letter-spacing:-.065em; }
.hero h1 { margin:0 0 2.25rem; font-size:clamp(4.7rem,8.1vw,8rem); }
.hero h1 span,h2 span { display:block; }
.hero-intro { max-width:35rem; margin-bottom:2.5rem; color:var(--muted); font-size:clamp(1.05rem,1.35vw,1.22rem); }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1.5rem 2rem; }
.button { display:inline-flex; min-height:48px; align-items:center; gap:.6rem; padding:1rem 1.25rem; border:1px solid var(--citron); background:var(--citron); font-weight:800; text-decoration:none; }
.button:hover { background:transparent; }
.text-link { font-size:.92rem; font-weight:700; }
.person { margin:2.7rem 0 0; font-size:.86rem; }
.person a { text-decoration:none; }
.hero-image { position:relative; min-height:100%; margin:0; overflow:hidden; }
.hero-image img { display:block; width:100%; height:100%; object-fit:cover; object-position:63% 50%; }
.hero-image figcaption { position:absolute; bottom:1.4rem; left:1.5rem; color:#fff; font-size:.75rem; font-weight:800; letter-spacing:.17em; text-shadow:0 1px 4px #000; }

.trust-strip { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:1.05rem var(--gutter); border-bottom:1px solid var(--line); font-size:.9rem; }
.trust-strip p { margin:0; font-weight:700; }
.trust-strip a { display:inline-flex; min-height:44px; align-items:center; font-weight:700; white-space:nowrap; }
.section { padding:clamp(4.5rem,8vw,7.5rem) var(--gutter); }
.section-heading { display:grid; grid-template-columns:1.3fr .7fr; align-items:end; gap:4rem; margin-bottom:4rem; }
.section h2 { margin-bottom:0; font-size:clamp(3.5rem,6.4vw,6.5rem); }
.section-heading > p { max-width:25rem; margin:0 0 .7rem; color:var(--muted); font-size:1.1rem; }
.service-list { margin:0; padding:0; border-top:1px solid var(--line); list-style:none; }
.service-list li { display:grid; grid-template-columns:10% 27% 1fr; gap:1rem; padding:2.15rem 0; border-bottom:1px solid var(--line); }
.number { padding-top:.45rem; font-size:.875rem; font-weight:800; letter-spacing:.08em; }
.service-list h3 { margin:0; font-size:clamp(2rem,3vw,3rem); line-height:1; letter-spacing:-.05em; }
.service-list p { max-width:39rem; margin-bottom:1rem; color:var(--muted); }

.about { display:grid; grid-template-columns:1fr 1fr; gap:8vw; padding-top:clamp(5rem,10vw,9rem); padding-bottom:clamp(5rem,10vw,9rem); background:var(--petrol); color:var(--cream); }
.about .eyebrow { color:var(--citron); }
.about-copy { padding-top:.7rem; }
.about-copy > p { max-width:32rem; font-size:clamp(1.25rem,2vw,1.75rem); line-height:1.4; }
.profile { display:flex; flex-direction:column; gap:.15rem; margin-top:3rem; padding-top:1rem; border-top:2px solid var(--citron); font-size:.92rem; }
.contact { padding-top:clamp(5rem,10vw,9rem); padding-bottom:clamp(5rem,10vw,9rem); }
.contact-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:7vw; }
.contact-grid > div:last-child { padding-top:.5rem; }
.contact-grid p { max-width:32rem; color:var(--muted); font-size:1.13rem; }
.contact-phone { display:block; margin:2.5rem 0 1.5rem; font-size:clamp(2.1rem,4.2vw,4.6rem); font-weight:600; line-height:1; letter-spacing:-.06em; text-decoration:none; }
.email { overflow-wrap:anywhere; font-weight:800; }
.site-footer { display:grid; grid-template-columns:1fr auto auto auto; align-items:end; gap:2rem; padding:2.6rem var(--gutter); background:var(--petrol); color:var(--cream); font-size:.9rem; }
.site-footer p { margin:0; }
.site-footer div { display:flex; gap:1.5rem; }
.site-footer a { display:inline-flex; min-height:44px; align-items:center; }
.site-footer small { color:#cddbd5; font-size:.75rem; }

section[id],main[id] { scroll-margin-top:1.5rem; }
.text-link,.email { display:inline-flex; min-height:44px; align-items:center; }
.email { display:inline-block; padding-block:.55rem; }
.site-footer a:hover { color:var(--citron); }
.hero-image figcaption { padding:.45rem .6rem; background:var(--petrol); text-shadow:none; }
@media (max-width:1100px) {
  .site-footer { grid-template-columns:1fr 1fr; }
  .site-footer div,.site-footer > small { grid-column:1 / -1; }
}

@media (max-width:800px) {
  .site-header { display:block; min-height:76px; padding-top:1rem; }
  .header-top { align-items:center; justify-content:space-between; }
  .brand span { font-size:2.2rem; }
  .site-header nav { justify-content:space-between; gap:.75rem; margin-top:.25rem; }
  .hero { display:flex; min-height:0; flex-direction:column; }
  .hero-copy { padding-top:4.6rem; padding-bottom:3.5rem; }
  .hero h1 { font-size:clamp(3.9rem,18vw,5.75rem); }
  .hero-image { height:420px; min-height:320px; }
  .trust-strip { flex-direction:column; align-items:flex-start; gap:.5rem; }
  .section-heading,.about,.contact-grid { grid-template-columns:1fr; gap:2.5rem; }
  .section-heading { margin-bottom:2.5rem; }
  .service-list li { grid-template-columns:3.2rem 1fr; gap:.25rem 1rem; }
  .service-list li > div { grid-column:2; }
  .service-list h3 { padding-top:.1rem; }
  .site-footer { grid-template-columns:1fr 1fr; gap:2rem 1rem; }
  .site-footer div,.site-footer small { grid-column:1 / -1; }
  .site-footer div { flex-direction:column; gap:.5rem; }
}
@media (max-width:380px) { body { font-size:16px; } .header-phone { font-size:.8rem; } .hero-image { height:320px; } .hero-actions { flex-direction:column; align-items:flex-start; gap:1rem; } .contact-phone { font-size:2rem; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } }
