.site-header{border-bottom:1px solid var(--line)}
#navigation .nav-contact{background:var(--navy);color:white;border:0;border-radius:32px;padding:13px 22px;line-height:1.4;transition:background .15s}
#navigation .nav-contact:hover{background:#214758;text-decoration:none}
h1,h2,h3{text-wrap:balance}
.hero{text-align:center;padding-block:74px 70px}
.hero h1{font-size:clamp(2.625rem,4.85vw,4.125rem);line-height:1.15;margin:23px auto 0;max-width:68rem;letter-spacing:-.035em}
.hero h1 span{color:var(--green-dark)}
.hero-introduction{max-width:48rem;margin:26px auto 0;color:var(--ink);font-size:1.125rem;line-height:1.8}
.hero-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:30px;margin-top:30px}
.hero .button{background:var(--green-dark);border-radius:40px;padding:19px 28px;min-height:60px;line-height:1.4}
.hero .button:hover{background:#1c4e32}
.hero .text-link{border-bottom:1px solid #accab7;padding-block:12px 9px;line-height:1.5}
.services{background:var(--wash);padding-block:60px 64px;border-block:1px solid var(--line)}
.service-heading{display:flex;justify-content:space-between;align-items:center;gap:45px;margin-bottom:38px}
.service-heading h2{font-size:2.1875rem;line-height:1.22;margin-right:8%;letter-spacing:-.025em}
.services-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 52px}
.services-grid article{padding:24px 0 0;border-top:1px solid #bed3dc;min-width:0}
.item-number{display:block;margin-bottom:19px}
.services-grid h3{font-size:1.4375rem;letter-spacing:-.015em}
.services-grid p{font-size:1.0625rem;line-height:1.8;margin-top:13px;color:var(--ink)}
.approach{display:grid;grid-template-columns:1fr 1.25fr;gap:88px}
.approach-heading h2{margin-top:18px}
.approach-heading>p:not(.eyebrow){font-size:1.125rem;line-height:1.8;color:var(--muted);margin-top:24px;max-width:380px}
.approach-heading .text-link{margin-top:24px;padding-block:10px;color:var(--green-dark);line-height:1.5}
.steps article{display:grid;grid-template-columns:44px minmax(0,1fr);gap:20px;padding-block:27px;border-top:1px solid var(--line)}
.steps article:first-child{padding-top:0;border-top:0}
.steps article:last-child{padding-bottom:0}
.step-number{font-size:1rem;display:grid;place-items:center;width:42px;height:42px;border:1px solid #bed6c9;border-radius:50%;background:#f2f8f4;line-height:1;color:var(--green-dark)}
.steps h3{font-size:1.375rem;letter-spacing:-.015em;line-height:1.4}
.steps p{font-size:1.0625rem;line-height:1.8;color:var(--muted);margin-top:10px}
.about{padding-top:0}
.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;align-items:stretch;gap:68px}
.about-photo{position:relative;overflow:hidden;min-height:560px;border-radius:7px;background:var(--wash)}
.about-photo>img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:50% 57%}
.photo-caption{position:absolute;left:22px;right:22px;bottom:22px;background:white;padding:22px 24px;border-radius:3px}
.photo-caption>p:last-child{font-size:1.3125rem;line-height:1.5;margin-top:8px}
.about-copy{padding-top:13px}
.about-copy>.eyebrow{font-size:.875rem;line-height:1.6;color:var(--green-dark)}
.about-copy h2{margin-top:18px;margin-bottom:24px}
.about-copy>p+p{margin-top:22px}
.values{padding-top:30px;margin-top:35px;border-top:1px solid var(--line);justify-content:space-between;gap:18px 24px;font-size:.9375rem;color:var(--green-dark)}
.values li{line-height:1.8}
.contact{background:var(--navy);color:white}
.contact .eyebrow{color:var(--sky)}
.contact-description{color:#dfecf2}
.contact-actions{width:100%;max-width:390px}
.contact .button{background:var(--sky);color:var(--navy);border-radius:40px;padding-inline:28px;min-height:60px;line-height:1.4;width:100%}
.contact .button:hover{background:#d6edf7}
.contact :focus-visible{outline-color:var(--sky)}
@media(max-width:1100px){
  .hero{padding-block:64px}
  .hero h1{font-size:clamp(2.625rem,5vw,3.75rem)}
  .service-heading h2{margin-right:0}
  .services-grid{column-gap:36px}
  .approach{gap:50px}
  .about-grid{gap:44px}
  .values{justify-content:flex-start;gap:14px 26px}
}
@media(max-width:800px){
  .hero{padding-block:45px 50px;text-align:left}
  .hero h1{font-size:clamp(2.3125rem,7.4vw,3.3125rem);line-height:1.16;letter-spacing:-.03em}
  .hero h1 span{display:block}
  .hero-introduction{margin-top:23px;font-size:1.0625rem;line-height:1.8}
  .hero-actions{justify-content:flex-start;gap:18px 24px;margin-top:26px}
  .services{padding-block:46px}
  .service-heading{align-items:flex-start;flex-direction:column;gap:17px;margin-bottom:30px}
  .service-heading h2{font-size:2rem}
  .services-grid{grid-template-columns:1fr;gap:26px}
  .services-grid article,.services-grid article:first-child,.services-grid article:last-child{padding:23px 0 0;border-left:0;border-top:1px solid #bed3dc}
  .services-grid article:first-child{padding-top:0;border-top:0}
  .services-grid h3{min-height:0}
  .item-number{margin-bottom:12px}
  .services-grid p{margin-top:10px}
  .approach{grid-template-columns:1fr;gap:30px}
  .approach-heading>p:not(.eyebrow){font-size:1.0625rem;max-width:none}
  .steps article{grid-template-columns:38px minmax(0,1fr);gap:15px;padding-block:24px}
  .steps article:first-child{padding-top:25px;border-top:1px solid var(--line)}
  .step-number{font-size:.9375rem;width:36px;height:36px}
  .steps h3{font-size:1.3125rem}
  .about-grid{grid-template-columns:1fr;gap:30px}
  .about-photo{min-height:340px;aspect-ratio:1.2;max-height:480px}
  .about-copy{padding:0}
  .about-copy>.eyebrow{font-size:.8125rem}
  .photo-caption{left:18px;right:18px;bottom:18px;padding:17px 21px}
  .photo-caption>p:last-child{font-size:1.1875rem}
  .values{padding-top:25px;margin-top:29px;gap:12px 22px}
  .contact-actions{max-width:420px}
  .contact .button{padding-inline:24px}
  #navigation .nav-contact{align-self:stretch;text-align:center;margin-top:8px}
}
@media(max-width:480px){
  .hero-actions{display:flex;flex-direction:column;align-items:stretch;gap:14px}
  .hero-actions .button{width:100%;padding-inline:24px}
  .hero .text-link{align-self:center}
  .values{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;font-size:.875rem}
  .about-photo{min-height:320px}
}
.products-section{padding-block:12px 90px}
.products-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:60px;margin-bottom:35px}
.products-heading h2{margin-top:15px}
.products-heading>p{max-width:390px;font-size:1.0625rem;line-height:1.75;color:var(--muted)}
.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.product-group-heading{margin-bottom:22px}
.product-group-heading h3{font-size:1.75rem;line-height:1.35;letter-spacing:-.02em}
.product-group-heading p{max-width:680px;font-size:1rem;line-height:1.75;color:var(--muted);margin-top:12px}
.product-group+.product-group{margin-top:54px;padding-top:38px;border-top:1px solid var(--line)}
.core-range .product-card{border-top-color:var(--green-dark);background:linear-gradient(180deg,#f1f8f4 0,white 180px)}
.core-range .product-grid{grid-template-columns:1fr}
.core-range .product-card{display:grid;grid-template-columns:.8fr 1.2fr;column-gap:44px}
.core-range .product-list{margin:0}
.core-range .product-enquiry{grid-column:1/-1;margin-top:24px}
.request-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 24px;list-style:none;margin:0;padding:0}
.request-categories li{min-width:0}
.request-category{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:64px;padding:18px 22px;border:1px solid var(--line);border-radius:4px;color:var(--navy);font-size:1rem;font-weight:700;line-height:1.6;background:var(--wash)}
.request-category:hover{border-color:var(--green-dark);color:var(--green-dark)}
.request-category>span:last-child{flex-shrink:0;font-size:1.375rem;line-height:1}
.product-card{display:flex;flex-direction:column;padding:30px 32px;border:1px solid var(--line);border-top:3px solid #91bda3;border-radius:5px;background:white;min-width:0}
.product-card h4{margin:0;font-size:1.625rem;font-weight:700;line-height:1.3;letter-spacing:-.025em;text-wrap:balance}
.product-scope{font-size:1rem;line-height:1.7;margin-top:13px;color:var(--muted);max-width:490px}
.product-list{list-style:none;padding:0;margin:22px 0 24px}
.product-list li{font-size:1rem;line-height:1.65;color:var(--ink);padding:11px 0;border-top:1px solid #e8eef1}
.product-list li:last-child{padding-bottom:0}
.product-list strong{color:var(--navy);font-weight:700}
.product-enquiry{margin-top:auto;padding-top:20px;border-top:1px solid var(--line)}
.product-enquiry>p{font-size:.9375rem;line-height:1.65;color:var(--muted)}
.product-link{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 0 4px;min-height:46px;color:var(--green-dark);font-size:1rem;font-weight:700;line-height:1.55;text-decoration:underline;text-underline-offset:5px}
.product-link>span{font-size:1.375rem;line-height:1;flex-shrink:0}
.product-link:hover{color:var(--navy)}
.products-note{max-width:880px;font-size:1rem;line-height:1.8;color:var(--muted);margin-top:25px}
@media(max-width:1100px){.products-heading{gap:35px}.products-heading>p{max-width:340px}.product-card{padding:26px}.product-card h4{font-size:1.5rem}}
@media(max-width:960px){
  .menu-toggle{display:flex;align-items:center;gap:12px;background:white;border:1px solid var(--line);color:var(--navy);padding:12px 14px;font-size:14px;border-radius:3px}
  #navigation{display:none;position:absolute;top:100%;left:0;right:0;background:white;border:1px solid var(--line);padding:12px 24px 20px;flex-direction:column;align-items:stretch;gap:0;z-index:10;box-shadow:0 12px 20px #102d3b0c}
  #navigation.open{display:flex}
  #navigation a{padding:15px 0}
  #navigation .nav-contact{align-self:stretch;text-align:center;margin-top:8px;padding:13px 22px}
}
@media(max-width:800px){
  .products-section{padding-block:6px 60px}
  .products-heading{flex-direction:column;align-items:flex-start;gap:20px;margin-bottom:28px}
  .products-heading>p{max-width:none}
  .product-grid{grid-template-columns:1fr;gap:23px}
  .core-range .product-card{grid-template-columns:1fr}
  .core-range .product-list{margin-top:19px}
  .request-categories{grid-template-columns:1fr;gap:12px}
  .request-category{padding:16px 20px}
  .product-group-heading h3{font-size:1.5rem}
  .product-group+.product-group{margin-top:38px;padding-top:30px}
  .product-card{padding:25px 24px}
  .product-card h4{font-size:1.5rem}
  .product-list{margin-block:19px 21px}
  .product-list li{padding-block:10px}
  .products-note{margin-top:22px}
}
@media(max-width:390px){.product-card{padding:23px 20px}.product-link{font-size:.9375rem}}
