/* Component classes. Values come from tokens.css; names are sp-* for shared parts
   and <page>-* for parts used on one page. Rules are grouped by page. */


/* Shared: layout, header, footer, buttons, cards, typography */
.sp-logo-slot{flex: none;display: block;}
.sp-logo-img{width: 144px;height: 60px;object-fit: contain;display: block;}
.sp-link-plain{text-decoration: none;}
.sp-nav-link{text-decoration: none;padding: 10px 0;border-bottom: 2px solid transparent;color: var(--sp-ink);}
.sp-eyebrow{font-size: 13px;font-weight: 700;letter-spacing: 0.14em;color: var(--sp-green-dark);}
.sp-footer-heading{font-size: 12px;font-weight: 700;letter-spacing: 0.14em;color: var(--sp-green-tint);margin-bottom: 4px;}
.sp-card-img{width: 100%;aspect-ratio: 4 / 3;object-fit: cover;display: block;background: var(--sp-tint);}
.sp-footer-links{display: flex;flex-direction: column;gap: 12px;font-size: var(--sp-body-s);}
.sp-body-15{margin: 0;font-size: var(--sp-body-s);line-height: var(--sp-lh-body);}
.sp-meta{font-size: 13px;color: var(--sp-ink-muted);}
.sp-card-surface{background: var(--sp-white);border: 1px solid var(--sp-line);border-radius: var(--sp-radius);overflow: hidden;display: flex;flex-direction: column;}
.sp-card-tag{font-size: 12px;font-weight: 700;letter-spacing: 0.12em;color: var(--sp-green-dark);}
.sp-body-16{margin: 0;font-size: var(--sp-body);line-height: 1.65;}
.sp-card-body{padding: 24px 26px 28px;display: flex;flex-direction: column;gap: 10px;flex-grow: 1;}
.sp-card-title{margin: 0;font-size: 21px;line-height: 1.3;font-weight: 700;}
.sp-card-summary{margin: 0;font-size: var(--sp-body-s);line-height: 1.55;flex-grow: 1;}
.sp-card-footer{display: flex;justify-content: space-between;align-items: center;gap: 12px;margin-top: 6px;}
.sp-card-link{font-size: var(--sp-body-s);font-weight: 700;text-decoration: none;padding: 8px 0;}
.sp-body-17{margin: 0;font-size: 17px;line-height: 1.65;}
.sp-page{width: 100%;font-family: var(--sp-font);color: var(--sp-ink);background: var(--sp-white);}
.sp-header{width: 100%;background: var(--sp-white);border-bottom: 1px solid var(--sp-line);font-family: var(--sp-font);color: var(--sp-ink);box-sizing: border-box;}
.sp-header-inner{max-width: var(--sp-container);margin: 0 auto;padding: 18px var(--sp-gutter);box-sizing: border-box;display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: 16px 32px;}
.sp-brand-link{display: flex;align-items: center;text-decoration: none;}
.sp-brand-logo{height: 32px;width: auto;display: block;}
.sp-nav{display: flex;flex-wrap: wrap;align-items: center;gap: 8px 28px;font-size: var(--sp-body-s);font-weight: 500;}
.sp-btn-header{display: inline-flex;align-items: center;justify-content: center;min-height: 44px;padding: 0 26px;border-radius: var(--sp-radius-pill);background: var(--sp-green);color: var(--sp-white);font-size: var(--sp-body-s);font-weight: 700;text-decoration: none;letter-spacing: 0.01em;}
.sp-hero{position: relative;overflow: hidden;background: var(--sp-tint);}
.sp-footer{width: 100%;background: var(--sp-green-deep);color: var(--sp-white);font-family: var(--sp-font);box-sizing: border-box;overflow: hidden;}
.sp-clients-strip{background: var(--sp-white);border-top: 1px solid var(--sp-line);padding: 24px 0 22px;overflow: hidden;}
.sp-clients-strip-title{max-width: var(--sp-container);margin: 0 auto 10px;padding: 0 var(--sp-gutter);box-sizing: border-box;font-size: 12px;font-weight: 700;letter-spacing: 0.14em;color: var(--sp-ink-muted);}
.sp-marquee{display: flex;align-items: center;width: max-content;gap: 40px;padding-left: 32px;}
.sp-footer-grid{max-width: var(--sp-container);margin: 0 auto;padding: 64px var(--sp-gutter) 40px;box-sizing: border-box;display: grid;grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));gap: 40px;}
.sp-footer-brand{display: flex;flex-direction: column;gap: 18px;}
.sp-footer-logo{height: 34px;width: auto;align-self: flex-start;}
.sp-footer-tagline{margin: 0;font-size: 18px;font-weight: 700;line-height: 1.3;}
.sp-footer-blurb{margin: 0;font-size: var(--sp-body-s);line-height: var(--sp-lh-body);color: var(--sp-on-dark);}
.sp-footer-contact{display: flex;flex-direction: column;gap: 12px;font-size: var(--sp-body-s);line-height: 1.55;}
.sp-footer-address{color: var(--sp-on-dark-strong);}
.sp-footer-underlined{text-decoration: underline;text-underline-offset: 3px;}
.sp-footer-legal{max-width: var(--sp-container);margin: 0 auto;padding: 22px var(--sp-gutter) 30px;box-sizing: border-box;border-top: 1px solid var(--sp-on-dark-line);display: flex;flex-wrap: wrap;justify-content: space-between;gap: 12px;font-size: 13px;color: var(--sp-on-dark-muted);}
.sp-closing-title{margin: 0;font-size: clamp(26px, 2.7vw, 34px);line-height: 1.2;font-weight: 700;letter-spacing: -0.01em;}
.sp-nav-link-active{text-decoration: none;padding: 10px 0;border-bottom: 2px solid var(--sp-green);color: var(--sp-green-dark);font-weight: 700;}
.sp-accent{color: var(--sp-green);}
.sp-section-head{display: flex;flex-direction: column;gap: 14px;max-width: 760px;}
.sp-cta-band{position: relative;overflow: hidden;background: var(--sp-green);color: var(--sp-white);}
.sp-cta-band-img{position: absolute;inset: 0;width: 100%;height: 100%;object-fit: cover;opacity: 0.16;filter: grayscale(1);mix-blend-mode: luminosity;}
.sp-section{max-width: var(--sp-container);margin: 0 auto;padding: var(--sp-section-y) var(--sp-gutter);box-sizing: border-box;display: flex;flex-direction: column;gap: 48px;}
.sp-section-title{margin: 0;font-size: clamp(26px, 3.3vw, 42px);line-height: 1.15;font-weight: 700;letter-spacing: -0.015em;}
.sp-tint-section{background: var(--sp-tint);}
.sp-form-label{font-size: 14px;font-weight: 700;}
.sp-page-title{margin: 0;font-size: clamp(31px, 4.4vw, 56px);line-height: var(--sp-lh-display);font-weight: 700;letter-spacing: -0.02em;}
.sp-page-lede{margin: 0;font-size: var(--sp-body-l);line-height: 1.55;}
.sp-cta-center{position: relative;max-width: var(--sp-container);margin: 0 auto;padding: 112px var(--sp-gutter);box-sizing: border-box;display: flex;flex-direction: column;align-items: center;text-align: center;gap: 22px;}
.sp-cta-heading{margin: 0;font-size: clamp(26px, 3.6vw, 46px);line-height: 1.12;font-weight: 700;letter-spacing: -0.015em;max-width: 820px;}
.sp-btn-light-band{display: inline-flex;align-items: center;min-height: 52px;padding: 0 34px;border-radius: var(--sp-radius-pill);background: var(--sp-white);color: var(--sp-green-dark);font-size: 17px;font-weight: 700;text-decoration: none;margin-top: 10px;}
.sp-hero-split{position: relative;max-width: var(--sp-container);margin: 0 auto;padding: 88px var(--sp-gutter);box-sizing: border-box;display: flex;flex-wrap: wrap;align-items: center;gap: 64px;}
.sp-hero-copy{flex: 1 1 540px;min-width: 0;display: flex;flex-direction: column;gap: 22px;}
.sp-hero-media{flex: 1 1 380px;min-width: 0;display: flex;justify-content: center;}
.sp-hero-img{width: 100%;max-width: 440px;aspect-ratio: 4 / 5;object-fit: cover;border-radius: var(--sp-radius);display: block;}
.sp-subsection-title{margin: 0;font-size: clamp(26px, 3.1vw, 40px);line-height: 1.15;font-weight: 700;letter-spacing: -0.015em;}
.sp-input{min-height: 48px;padding: 0 14px;border: 1px solid var(--sp-line-strong);border-radius: 2px;font-family: inherit;font-size: var(--sp-body);color: var(--sp-ink);background: var(--sp-white);}
.sp-label-12{font-size: 12px;font-weight: 700;letter-spacing: 0.14em;color: var(--sp-ink-muted);}
.sp-hero-content{position: relative;max-width: var(--sp-container);margin: 0 auto;padding: 88px var(--sp-gutter) 80px;box-sizing: border-box;display: flex;flex-direction: column;gap: 22px;}
.sp-hero-title{margin: 0;font-size: clamp(31px, 4.4vw, 56px);line-height: var(--sp-lh-display);font-weight: 700;letter-spacing: -0.02em;max-width: 900px;}
.sp-cta-ring-top-1{position: absolute;width: 640px;height: 640px;border-radius: 50%;border: 2px solid var(--sp-ring-white);right: -200px;top: -280px;}
.sp-cta-ring-top-2{position: absolute;width: 420px;height: 420px;border-radius: 50%;border: 2px solid var(--sp-ring-orange-strong);right: -100px;top: -170px;}
.sp-cta-lede{margin: 0;font-size: 18px;line-height: var(--sp-lh-body);max-width: 620px;}
.sp-btn-primary{display: inline-flex;align-items: center;min-height: 48px;padding: 0 30px;border-radius: var(--sp-radius-pill);background: var(--sp-green);color: var(--sp-white);font-size: var(--sp-body);font-weight: 700;text-decoration: none;}
.sp-btn-outline{display: inline-flex;align-items: center;min-height: 48px;padding: 0 30px;border-radius: var(--sp-radius-pill);border: 2px solid var(--sp-green);color: var(--sp-green-dark);font-size: var(--sp-body);font-weight: 700;text-decoration: none;box-sizing: border-box;}
.sp-cta-ring-left-1{position: absolute;width: 640px;height: 640px;border-radius: 50%;border: 2px solid var(--sp-ring-white);left: -220px;top: -260px;}
.sp-cta-ring-left-2{position: absolute;width: 420px;height: 420px;border-radius: 50%;border: 2px solid var(--sp-ring-orange-strong);left: -120px;top: -150px;}
.sp-cta-eyebrow{font-size: 13px;font-weight: 700;letter-spacing: 0.14em;color: var(--sp-green-pale);}
.sp-closing-inner{max-width: var(--sp-container);margin: 0 auto;padding: 80px var(--sp-gutter);box-sizing: border-box;display: flex;flex-wrap: wrap;justify-content: space-between;align-items: center;gap: 28px;}
.sp-closing-copy{display: flex;flex-direction: column;gap: 10px;max-width: 700px;}
.sp-closing-text{margin: 0;font-size: 17px;line-height: var(--sp-lh-body);}
.sp-btn-green{display: inline-flex;align-items: center;min-height: 52px;padding: 0 34px;border-radius: var(--sp-radius-pill);background: var(--sp-green);color: var(--sp-white);font-size: 17px;font-weight: 700;text-decoration: none;}
.sp-hero-ring-bottom{position: absolute;width: 860px;height: 860px;border-radius: 50%;border: 2px solid var(--sp-ring-green);left: -440px;bottom: -520px;}
.sp-btn-light-hero{display: inline-flex;align-items: center;min-height: 52px;padding: 0 34px;border-radius: var(--sp-radius-pill);background: var(--sp-white);color: var(--sp-green-dark);font-size: 17px;font-weight: 700;text-decoration: none;margin-top: 6px;}
.sp-select{min-height: 48px;padding: 0 12px;border: 1px solid var(--sp-line-strong);border-radius: 2px;font-family: inherit;font-size: var(--sp-body);color: var(--sp-ink);background: var(--sp-white);}
.sp-textarea{padding: 12px 14px;border: 1px solid var(--sp-line-strong);border-radius: 2px;font-family: inherit;font-size: var(--sp-body);line-height: 1.5;color: var(--sp-ink);background: var(--sp-white);resize: vertical;}
.sp-btn-submit{min-height: 52px;padding: 0 36px;border-radius: var(--sp-radius-pill);border: none;background: var(--sp-green);color: var(--sp-white);font-family: inherit;font-size: 17px;font-weight: 700;cursor: pointer;}

/* Home page */
.home-clients-cell{display: flex;align-items: center;justify-content: center;height: 92px;padding: 0 18px;box-sizing: border-box;box-shadow: 0 0 0 0.5px var(--sp-line);}
.home-clients-logo{width: 100%;max-width: 150px;max-height: 46px;aspect-ratio: 12 / 5;object-fit: contain;display: block;}
.home-service-card{background: var(--sp-white);border: 1px solid var(--sp-line);border-radius: var(--sp-radius);overflow: hidden;text-decoration: none;color: var(--sp-ink);display: flex;flex-direction: column;box-shadow: var(--sp-shadow-card);}
.home-service-body{padding: 26px 28px 30px;display: flex;flex-direction: column;gap: 10px;}
.home-service-title{margin: 0;font-size: 21px;font-weight: 700;line-height: 1.25;}
.home-service-more{font-size: var(--sp-body-s);font-weight: 700;color: var(--sp-green-dark);margin-top: 4px;}
.home-dimension{background: var(--sp-on-dark-fill);border-radius: 16px;overflow: hidden;display: flex;flex-direction: column;}
.home-dimension-title{padding: 26px 26px 0;font-size: 21px;font-weight: 800;}
.home-dimension-text{padding: 8px 26px 28px;font-size: var(--sp-body-s);line-height: 1.55;color: var(--sp-on-dark);}
.home-reason-ring{display: block;width: 22px;height: 22px;box-sizing: border-box;border: 5px solid var(--c);border-radius: 50%;}
.home-reason-title{margin: 0;font-size: var(--sp-heading);line-height: 1.2;font-weight: 800;letter-spacing: -0.015em;}
.home-teaser{background: var(--sp-white);border: 0;border-radius: var(--sp-radius-lg);overflow: hidden;text-decoration: none;color: var(--sp-ink);display: flex;flex-direction: column;}
.home-teaser-body{padding: 24px 26px 28px;display: flex;flex-direction: column;gap: 10px;}
.home-teaser-title{margin: 0;font-size: var(--sp-body-l);line-height: 1.3;font-weight: 700;}
.home-teaser-summary{margin: 0;font-size: var(--sp-body-s);line-height: 1.55;}
.home-hero-inner{position: relative;max-width: var(--sp-container);margin: 0 auto;padding: 88px var(--sp-gutter) 104px;box-sizing: border-box;display: flex;flex-wrap: wrap;align-items: center;gap: 56px;}
.home-hero-copy{flex: 1 1 520px;min-width: 0;display: flex;flex-direction: column;gap: 24px;}
.home-hero-title{margin: 0;font-size: clamp(42px, 6.2vw, var(--sp-display-xl));line-height: 1;font-weight: 800;letter-spacing: -0.035em;color: var(--sp-ink);}
.home-hero-lede{margin: 0;font-size: var(--sp-body-l);line-height: 1.55;color: var(--sp-ink-muted);max-width: 540px;}
.home-hero-actions{display: flex;flex-wrap: wrap;gap: 14px;margin-top: 8px;}
.home-hero-media{flex: 1 1 400px;min-width: 0;display: flex;justify-content: center;}
.home-hero-photo{position: relative;width: 100%;max-width: 520px;aspect-ratio: 1 / 1;}
.home-hero-ring{position: absolute;left: -7%;bottom: -5%;width: 44%;aspect-ratio: 1 / 1;box-sizing: border-box;border: clamp(14px, 2.2vw, var(--sp-ring-weight)) solid var(--sp-orange);border-radius: 50%;pointer-events: none;}
.home-hero-img{position: relative;width: 100%;height: 100%;object-fit: cover;border-radius: 50%;display: block;}
.home-clients{border-bottom: 1px solid var(--sp-line);}
.home-clients-inner{max-width: var(--sp-container);margin: 0 auto;padding: 64px var(--sp-gutter) 72px;box-sizing: border-box;display: flex;flex-direction: column;gap: 28px;}
.home-clients-title{font-size: 13px;font-weight: 700;letter-spacing: 0.14em;color: var(--sp-ink-muted);text-align: center;text-transform: uppercase;}
.home-clients-grid{display: grid;grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));gap: 0;}
.home-reasons{margin: 0;padding: 0;list-style: none;display: grid;grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));gap: 40px 48px;}
.home-reason-green{--c: var(--sp-green);border-top: 6px solid var(--c);padding-top: 28px;display: flex;flex-direction: column;gap: 14px;}
.home-reason-orange{--c: var(--sp-orange);border-top: 6px solid var(--c);padding-top: 28px;display: flex;flex-direction: column;gap: 14px;}
.home-reason-teal{--c: var(--sp-teal);border-top: 6px solid var(--c);padding-top: 28px;display: flex;flex-direction: column;gap: 14px;}
.home-section-row{display: flex;flex-wrap: wrap;justify-content: space-between;align-items: flex-end;gap: 24px;}
.home-section-link{font-size: var(--sp-body);font-weight: 700;text-decoration: none;padding: 10px 0;}
.home-services{display: flex;flex-wrap: wrap;gap: 40px 56px;align-items: stretch;}
.home-service-lead{flex: 1 1 440px;min-width: 0;background: var(--sp-white);border-radius: var(--sp-radius-lg);overflow: hidden;text-decoration: none;color: var(--sp-ink);display: flex;flex-direction: column;}
.home-service-lead .sp-card-img{aspect-ratio: auto;flex: 1 1 auto;min-height: 320px;height: auto;}
.home-service-lead .home-service-body{padding: 32px 36px 36px;}
.home-service-lead .home-service-title{font-size: 28px;line-height: 1.15;font-weight: 800;letter-spacing: -0.02em;}
.home-service-list{flex: 1 1 440px;min-width: 0;border-top: 1px solid var(--sp-line-strong);}
.home-service-row{display: flex;align-items: center;gap: 20px;padding: 16px 4px;border-bottom: 1px solid var(--sp-line-strong);text-decoration: none;color: var(--sp-ink);}
.home-service-row-img{flex: none;width: 112px;height: 84px;object-fit: cover;border-radius: 10px;display: block;}
.home-service-row-name{font-size: 20px;font-weight: 800;letter-spacing: -0.01em;line-height: 1.25;}
.home-service-row-text{margin-top: 6px;font-size: var(--sp-body-s);line-height: 1.5;color: var(--sp-ink-muted);}
.home-service-row-body{flex: 1 1 auto;min-width: 0;}
.home-service-arrow{flex: none;color: var(--sp-green-dark);transition: transform var(--sp-transition);}
.home-service-row:hover .home-service-arrow{transform: translateX(6px);}
@media (prefers-reduced-motion: reduce){.home-service-row:hover .home-service-arrow{transform: none;}}
.home-bes{position: relative;overflow: hidden;background: var(--sp-green-deep);color: var(--sp-white);}
.home-bes-ring-1{position: absolute;width: 520px;height: 520px;border-radius: 50%;border: 2px solid var(--sp-on-dark-border);right: -160px;top: -160px;}
.home-bes-ring-2{display: none;}
.home-bes-inner{position: relative;max-width: var(--sp-container);margin: 0 auto;padding: var(--sp-section-y) var(--sp-gutter);box-sizing: border-box;display: flex;flex-wrap: wrap;gap: 56px;align-items: center;}
.home-bes-copy{flex: 1 1 460px;min-width: 0;display: flex;flex-direction: column;gap: 20px;}
.home-bes-eyebrow{font-size: 13px;font-weight: 700;letter-spacing: 0.14em;color: var(--sp-green-tint);}
.home-bes-text{margin: 0;font-size: 18px;line-height: var(--sp-lh-body);color: var(--sp-on-dark-strong);}
.home-bes-btn{align-self: flex-start;display: inline-flex;align-items: center;min-height: 48px;padding: 0 30px;border-radius: var(--sp-radius-pill);background: var(--sp-white);color: var(--sp-green-dark);font-size: var(--sp-body);font-weight: 700;text-decoration: none;margin-top: 8px;}
.home-bes-cards{flex: 1 1 480px;min-width: 0;display: grid;grid-template-columns: repeat(2, minmax(0, 1fr));gap: 16px;}
.home-coverage{max-width: var(--sp-container);margin: 0 auto;padding: var(--sp-section-y) var(--sp-gutter);box-sizing: border-box;display: flex;flex-wrap: wrap;align-items: center;gap: 64px;}
.home-coverage-map-wrap{flex: 1 1 480px;min-width: 0;display: flex;justify-content: center;}
.home-coverage-map{width: 100%;max-width: 560px;height: auto;display: block;}
.home-coverage-copy{flex: 1 1 440px;min-width: 0;display: flex;flex-direction: column;gap: 20px;}
.home-coverage-text{margin: 0;font-size: 18px;line-height: var(--sp-lh-body);}
.home-coverage-list{display: flex;flex-direction: column;gap: 14px;margin-top: 8px;font-size: var(--sp-body-s);line-height: 1.45;}
.home-coverage-item{display: flex;gap: 14px;align-items: flex-start;}
.home-coverage-dot{flex: none;width: 18px;height: 18px;box-sizing: border-box;border: 5px solid var(--sp-orange);border-radius: 50%;margin-top: 2px;}
.home-coverage-dot-light{flex: none;width: 18px;height: 18px;box-sizing: border-box;border: 5px solid var(--sp-green);border-radius: 50%;margin-top: 2px;}
.home-teaser-grid{display: grid;grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));gap: 28px;}
@media (min-width: 900px){
  .home-teaser-grid{grid-template-columns: 1.4fr 1fr;grid-template-rows: 1fr 1fr;}
  .home-teaser-grid .home-teaser:first-child{grid-row: 1 / span 2;}
  .home-teaser-grid .home-teaser:first-child .sp-card-img{aspect-ratio: auto;height: 300px;}
  .home-teaser-grid .home-teaser:first-child .home-teaser-title{font-size: 28px;line-height: 1.18;letter-spacing: -0.02em;font-weight: 800;}
  .home-teaser-grid .home-teaser:not(:first-child){flex-direction: row-reverse;}
  .home-teaser-grid .home-teaser:not(:first-child) .sp-card-img{width: 38%;flex: none;aspect-ratio: auto;height: auto;min-height: 100%;}
  .home-teaser-grid .home-teaser:not(:first-child) .home-teaser-body{padding: 30px 32px;flex: 1;justify-content: center;}
}
.home-cta-text{margin: 0;font-size: 18px;line-height: var(--sp-lh-body);max-width: 620px;color: var(--sp-white);}

/* Who we are page */
.about-value-title{margin: 0;font-size: 21px;font-weight: 700;}
.about-values{max-width: var(--sp-container);margin: 0 auto;padding: 96px var(--sp-gutter);box-sizing: border-box;display: flex;flex-direction: column;gap: 48px;}
.about-cta-ring-1{position: absolute;width: 640px;height: 640px;border-radius: 50%;border: 2px solid var(--sp-ring-white);right: -200px;bottom: -300px;}
.about-cta-ring-2{position: absolute;width: 420px;height: 420px;border-radius: 50%;border: 2px solid var(--sp-ring-orange-strong);right: -100px;bottom: -190px;}
.about-cta-inner{position: relative;max-width: var(--sp-container);margin: 0 auto;padding: 112px var(--sp-gutter);box-sizing: border-box;display: flex;flex-direction: column;gap: 24px;align-items: flex-start;}
.about-cta-title{margin: 0;font-size: clamp(30px, 4.2vw, 54px);line-height: 1.08;font-weight: 700;letter-spacing: -0.02em;max-width: 860px;}
.about-cta-text{margin: 0;font-size: 19px;line-height: var(--sp-lh-body);max-width: 620px;}

/* Our expertise page */
.expertise-num{color: var(--sp-green-dark);font-weight: 700;}
.expertise-img{flex: 1 1 520px;min-width: 0;width: 100%;aspect-ratio: 16 / 9;object-fit: cover;border-radius: var(--sp-radius);display: block;}
.expertise-copy{flex: 1 1 480px;min-width: 0;display: flex;flex-direction: column;gap: 16px;}
.expertise-list{margin: 0;padding-left: 20px;display: flex;flex-direction: column;gap: 8px;font-size: var(--sp-body);line-height: 1.55;}
.expertise-link{font-size: var(--sp-body);font-weight: 700;text-decoration: none;padding: 8px 0;align-self: flex-start;}
.expertise-related-link{display: flex;gap: 16px;padding: 14px 0;border-bottom: 1px solid var(--sp-tint);text-decoration: none;color: var(--sp-ink);font-size: var(--sp-body);font-weight: 600;}
.expertise-row{display: flex;flex-wrap: wrap;gap: 56px;align-items: center;padding: 64px 0;border-bottom: 1px solid var(--sp-line);}
.expertise-pill{padding: 8px 14px;border: 1px solid var(--sp-green);border-radius: var(--sp-radius-pill);font-size: 14px;font-weight: 700;color: var(--sp-green-dark);}
.expertise-hero-ring-1{position: absolute;width: 820px;height: 820px;border-radius: 50%;border: 2px solid var(--sp-ring-green);right: -360px;top: -380px;}
.expertise-hero-ring-2{position: absolute;width: 540px;height: 540px;border-radius: 50%;border: 2px solid var(--sp-ring-orange);right: -220px;top: -240px;}
.expertise-hero-inner{position: relative;max-width: var(--sp-container);margin: 0 auto;padding: 88px var(--sp-gutter);box-sizing: border-box;display: flex;flex-wrap: wrap;gap: 56px;align-items: flex-start;}
.expertise-hero-copy{flex: 1 1 560px;min-width: 0;display: flex;flex-direction: column;gap: 22px;}
.expertise-accent{color: var(--sp-green);}
.expertise-toc{flex: 1 1 340px;min-width: 0;background: var(--sp-white);border: 1px solid var(--sp-line);border-radius: var(--sp-radius);padding: 12px 28px;display: flex;flex-direction: column;}
.expertise-toc-link{display: flex;gap: 16px;padding: 14px 0;text-decoration: none;color: var(--sp-ink);font-size: var(--sp-body);font-weight: 600;}
.expertise-list-wrap{max-width: var(--sp-container);margin: 0 auto;padding: 40px var(--sp-gutter) 96px;box-sizing: border-box;display: flex;flex-direction: column;}
.expertise-pills{display: flex;flex-wrap: wrap;gap: 8px;}
.expertise-row-first{display: flex;flex-wrap: wrap;gap: 56px;align-items: center;padding: 64px 0 0;}
.expertise-cta-inner{position: relative;max-width: var(--sp-container);margin: 0 auto;padding: 112px var(--sp-gutter);box-sizing: border-box;display: flex;flex-direction: column;gap: 22px;align-items: flex-start;}
.expertise-cta-title{margin: 0;font-size: clamp(28px, 3.9vw, 50px);line-height: var(--sp-lh-display);font-weight: 700;letter-spacing: -0.02em;max-width: 820px;}
.expertise-cta-text{margin: 0;font-size: 19px;line-height: var(--sp-lh-body);max-width: 640px;}

/* Our approach page */
.approach-value-title{margin: 0;font-size: 22px;font-weight: 700;}
.approach-point{padding: 36px var(--sp-gutter) 36px 0;border-bottom: 1px solid var(--sp-line);display: flex;gap: 22px;}
.approach-point-num{flex: none;font-size: 30px;font-weight: 700;color: var(--sp-green);line-height: 1;}
.approach-point-body{display: flex;flex-direction: column;gap: 10px;}
.approach-step{padding: 28px;display: flex;flex-direction: column;gap: 12px;}
.approach-step-label{font-size: 13px;font-weight: 700;letter-spacing: 0.14em;color: var(--sp-ink-muted);}
.approach-steps{display: grid;grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));gap: 0;border-top: 1px solid var(--sp-line);}
.approach-values-grid{display: grid;grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));gap: 24px;}

/* Insights page */
.insights-hero-ring-1{position: absolute;width: 820px;height: 820px;border-radius: 50%;border: 2px solid var(--sp-ring-green);right: -340px;top: -420px;}
.insights-hero-ring-2{position: absolute;width: 520px;height: 520px;border-radius: 50%;border: 2px solid var(--sp-ring-orange);right: -200px;top: -270px;}
.insights-hero-lede{margin: 0;font-size: var(--sp-body-l);line-height: 1.55;max-width: 720px;}
.insights-list{max-width: var(--sp-container);margin: 0 auto;padding: 56px var(--sp-gutter) 104px;box-sizing: border-box;display: flex;flex-direction: column;gap: 40px;}
.insights-filters{display: flex;flex-wrap: wrap;gap: 10px;}
.insights-grid{display: grid;grid-template-columns: repeat(auto-fill, minmax(330px, 1fr));gap: 28px;}

/* Clients page */
.clients-cell{border: 1px solid var(--sp-line);border-radius: var(--sp-radius);min-height: 130px;padding: 20px 24px;box-sizing: border-box;display: flex;align-items: center;justify-content: center;}
.clients-logo{width: 100%;max-width: 192px;aspect-ratio: 12 / 5;object-fit: contain;display: block;}
.clients-hero-ring{position: absolute;width: 860px;height: 860px;border-radius: 50%;border: 2px solid var(--sp-ring-green);left: -440px;top: -400px;}
.clients-hero-lede{margin: 0;font-size: var(--sp-body-l);line-height: 1.55;max-width: 760px;}
.clients-section{max-width: var(--sp-container);margin: 0 auto;padding: 88px var(--sp-gutter);box-sizing: border-box;display: flex;flex-direction: column;gap: 36px;}
.clients-intro{display: flex;flex-direction: column;gap: 12px;max-width: 760px;}
.clients-grid{display: grid;grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));gap: 16px;}

/* Talk to us page */
.contact-field{display: flex;flex-direction: column;gap: 8px;}
.contact-detail{display: flex;flex-direction: column;gap: 6px;}
.contact-hero-ring{position: absolute;width: 560px;height: 560px;border-radius: 50%;border: 2px solid var(--sp-ring-orange);left: -290px;bottom: -370px;}
.contact-details{display: grid;grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));gap: 24px;margin-top: 10px;}
.contact-address{font-size: var(--sp-body);line-height: 1.5;}
.contact-link{font-size: var(--sp-body);font-weight: 700;text-decoration: none;}
.contact-inner{max-width: var(--sp-container);margin: 0 auto;padding: 96px var(--sp-gutter);box-sizing: border-box;display: flex;flex-wrap: wrap;gap: 64px;align-items: flex-start;}
.contact-copy{flex: 1 1 340px;min-width: 0;display: flex;flex-direction: column;gap: 16px;}
.contact-title{margin: 0;font-size: clamp(26px, 3.0vw, 38px);line-height: 1.15;font-weight: 700;letter-spacing: -0.015em;}
.contact-thanks{margin: 8px 0 0;font-size: 22px;font-weight: 700;color: var(--sp-green);}
.contact-form{flex: 1 1 580px;min-width: 0;display: grid;grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));gap: 22px 24px;background: var(--sp-white);border: 1px solid var(--sp-line);border-radius: var(--sp-radius);padding: 40px;box-sizing: border-box;box-shadow: var(--sp-shadow-card);}
.contact-field-wide{display: flex;flex-direction: column;gap: 8px;grid-column: 1 / -1;}
.contact-form-footer{grid-column: 1 / -1;display: flex;flex-wrap: wrap;align-items: center;justify-content: space-between;gap: 16px;}

/* Redesign (2026-10-24): one bold ring (the logo's "o"), heavier headings, softer cards, photo-led closing band.
   Placed last so it wins over the page rules above. Colours and sizes come from tokens.css. */

/* Headings */
.sp-page-title,.sp-hero-title,.sp-section-title,.sp-subsection-title,.sp-cta-heading,.about-cta-title,.expertise-cta-title,.sp-closing-title,.contact-title,.sp-article h1{font-weight: 800;letter-spacing: -0.03em;}
.sp-page-lede,.insights-hero-lede,.clients-hero-lede,.sp-hero-copy .sp-body-17{color: var(--sp-ink-muted);}

/* Header: a firmer current-page marker */
.sp-nav-link{border-bottom-width: 3px;}
.sp-nav-link-active{border-bottom-width: 3px;}

/* Page heroes: the hairline arcs are gone; pages that had a ring keep one bold ring tucked into a corner */
.expertise-hero-ring-1,.insights-hero-ring-1,.contact-hero-ring{display: none;}
.clients-hero-ring,.sp-hero-ring-bottom,.expertise-hero-ring-2,.insights-hero-ring-2{position: absolute;left: auto;top: auto;right: -70px;bottom: -70px;width: 210px;height: 210px;box-sizing: border-box;border: 18px solid var(--sp-orange);border-radius: 50%;pointer-events: none;}
.contact-hero-ring+.sp-hero-ring-bottom,.sp-hero-ring-bottom:has(+ .contact-hero-ring){right: -70px;}

/* Closing band: the photo shows through a deep-green wash, text on the left, one bold ring */
.sp-cta-band{background: var(--sp-green-deep);}
.sp-cta-band-img{opacity: 1;filter: none;mix-blend-mode: normal;}
.sp-cta-band::before{content: "";position: absolute;inset: 0;z-index: 1;background: linear-gradient(90deg, rgba(11,61,30,0.96) 0%, rgba(11,61,30,0.88) 55%, rgba(11,61,30,0.55) 100%);}
.sp-cta-center,.expertise-cta-inner,.about-cta-inner{z-index: 2;}
.sp-cta-center{align-items: flex-start;text-align: left;}
.sp-cta-ring-top-1,.sp-cta-ring-left-1,.about-cta-ring-1{display: none;}
.sp-cta-ring-top-2,.sp-cta-ring-left-2,.about-cta-ring-2{z-index: 2;left: auto;top: auto;right: -120px;bottom: -190px;width: 340px;height: 340px;box-sizing: border-box;border: 28px solid var(--sp-orange);border-radius: 50%;}
@media (max-width: 700px){
  .sp-cta-ring-top-2,.sp-cta-ring-left-2,.about-cta-ring-2{width: 200px;height: 200px;border-width: 18px;right: -40px;bottom: -70px;}
}
.sp-btn-light-band,.sp-btn-light-hero{font-weight: 800;}

/* Cards */
.sp-card-surface{border: 0;border-radius: var(--sp-radius-lg);box-shadow: none;}
.sp-card:hover{box-shadow: var(--sp-shadow-hover);}
.sp-tint-section .sp-card-surface{border: 0;}
.sp-card-img{border-radius: 0;}

/* Insights: with "All" selected, the first article leads across the full width */
@media (min-width: 900px){
  .insights-grid[data-filter="all"]>.sp-card:first-child{grid-column: 1 / -1;flex-direction: row;}
  .insights-grid[data-filter="all"]>.sp-card:first-child .sp-card-img{width: 56%;aspect-ratio: auto;min-height: 340px;height: auto;}
  .insights-grid[data-filter="all"]>.sp-card:first-child .sp-card-body{justify-content: center;padding: 40px 44px;}
  .insights-grid[data-filter="all"]>.sp-card:first-child .sp-card-title{font-size: 30px;line-height: 1.18;font-weight: 800;letter-spacing: -0.02em;}
}

/* Whole-card links keep their dark text on hover (the global link hover colour is for text links) */
.home-service-lead:hover,.home-service-row:hover,.home-teaser:hover,.sp-card:hover{color: var(--sp-ink);}
.home-service-lead:hover .home-service-title,.home-teaser:hover .home-teaser-title{color: var(--sp-green-dark);}

/* Talk to us: the contact details are the page's main content, so they read larger */
.contact-link,.contact-address{font-size: 18px;}
.contact-details{gap: 28px;}

/* Home, our expertise: on tablets and smaller, every service reads as a card like the lead one (picture on top) */
.home-service-row-more{display: none;}
@media (max-width: 1024px){
  .home-services{display: grid;grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));gap: 24px;}
  .home-service-list{display: contents;}
  .home-service-lead .sp-card-img{flex: none;height: 220px;min-height: 0;}
  .home-service-lead .home-service-body{display: flex;flex-direction: column;gap: 10px;padding: 26px 28px 30px;}
  .home-service-lead .home-service-title{font-size: 24px;line-height: 1.15;font-weight: 800;letter-spacing: -0.02em;}
  .home-service-lead .sp-body-16{font-size: var(--sp-body);line-height: 1.6;}
  .home-service-lead:hover .home-service-title{color: var(--sp-green-dark);}
  .home-service-row{flex-direction: column;align-items: stretch;gap: 0;padding: 0;border-bottom: 0;background: var(--sp-white);border-radius: var(--sp-radius-lg);overflow: hidden;}
  .home-service-row-img{width: 100%;height: 220px;border-radius: 0;}
  .home-service-row-body{display: flex;flex-direction: column;gap: 10px;padding: 26px 28px 30px;}
  .home-service-row-name{font-size: 24px;line-height: 1.15;font-weight: 800;letter-spacing: -0.02em;}
  .home-service-row-text{margin-top: 0;font-size: var(--sp-body);line-height: 1.6;color: var(--sp-ink);}
  .home-service-row-more{display: inline;}
  .home-service-arrow{display: none;}
  .home-service-row:hover .home-service-row-name{color: var(--sp-green-dark);}
}
@media (max-width: 520px){
  .home-service-row-img,.home-service-lead .sp-card-img{height: 200px;}
}

/* Who we are page (redesign 2026-10-25) */
.who-hero-photo{position: relative;width: 100%;max-width: 470px;aspect-ratio: 4 / 5;}
.who-hero-img{position: absolute;inset: 0;width: 100%;height: 100%;object-fit: cover;border-radius: var(--sp-radius-lg);display: block;}
.who-hero-ring{position: absolute;right: -9%;bottom: -6%;width: 34%;aspect-ratio: 1 / 1;box-sizing: border-box;border: clamp(14px, 2vw, var(--sp-ring-weight)) solid var(--sp-orange);border-radius: 50%;pointer-events: none;}
.who-facts-inner{max-width: var(--sp-container);margin: 0 auto;padding: 96px var(--sp-gutter);box-sizing: border-box;display: flex;flex-wrap: wrap;align-items: center;gap: 48px 80px;}
.who-fact-lead{flex: 1 1 360px;min-width: 0;}
.who-fact-lead-number{font-size: clamp(88px, 12vw, 148px);line-height: 0.9;font-weight: 800;letter-spacing: -0.05em;color: var(--sp-green);}
.who-fact-lead-label{margin: 18px 0 0;max-width: 340px;font-size: 22px;line-height: 1.35;font-weight: 700;letter-spacing: -0.01em;}
.who-fact-list{flex: 1 1 440px;min-width: 0;border-top: 1px solid var(--sp-line-strong);}
.who-fact-row{display: flex;align-items: center;gap: 20px;padding: 24px 4px;border-bottom: 1px solid var(--sp-line-strong);text-decoration: none;color: var(--sp-ink);}
.who-fact-row:hover{color: var(--sp-ink);}
.who-fact-number{min-width: 104px;font-size: 44px;line-height: 1;font-weight: 800;letter-spacing: -0.03em;color: var(--sp-green);}
.who-fact-text{flex: 1 1 auto;min-width: 0;font-size: 17px;line-height: 1.45;}
.who-fact-arrow{flex: none;color: var(--sp-green-dark);transition: transform var(--sp-transition);}
.who-fact-row:hover .who-fact-arrow{transform: translateX(6px);}
@media (prefers-reduced-motion: reduce){.who-fact-row:hover .who-fact-arrow{transform: none;}}
.who-values{max-width: var(--sp-container);margin: 0 auto;padding: 96px var(--sp-gutter) 104px;box-sizing: border-box;display: flex;flex-wrap: wrap;gap: 48px 88px;}
.who-values-head{flex: 1 1 320px;min-width: 0;}
.who-values-photo{display: block;width: 100%;max-width: 380px;aspect-ratio: 4 / 5;object-fit: cover;border-radius: var(--sp-radius-lg);margin-top: 40px;}
@media (max-width: 900px){.who-values-photo{max-width: none;aspect-ratio: 16 / 10;}}
.who-values-list{flex: 2 1 520px;min-width: 0;border-top: 1px solid var(--sp-line-strong);}
.who-value{--c: var(--sp-green);display: flex;gap: 24px;padding: 30px 4px;border-bottom: 1px solid var(--sp-line-strong);}
.who-value-orange{--c: var(--sp-orange);}
.who-value-teal{--c: var(--sp-teal);}
.who-value-cyan{--c: var(--sp-cyan);}
.who-value-ring{flex: none;width: 24px;height: 24px;margin-top: 4px;box-sizing: border-box;border: 6px solid var(--c);border-radius: 50%;}
.who-value-title{margin: 0;font-size: 24px;line-height: 1.2;font-weight: 800;letter-spacing: -0.015em;}
.who-value-text{margin: 10px 0 0;font-size: 17px;line-height: 1.6;color: var(--sp-ink-muted);}
.who-trust{background: var(--sp-tint);}
.who-trust-grid{background: var(--sp-white);border-radius: 16px;overflow: hidden;}

/* Who we are: the values sit on the deep green (as the Brand Equity Score does on the home page) */
.who-values-section{background: var(--sp-green-deep);color: var(--sp-white);}
.who-values-section .sp-subsection-title,.who-values-section .who-value-title{color: var(--sp-white);}
.who-values-section .who-value-text{color: var(--sp-on-dark);}
.who-values-section .who-values-list{border-top-color: var(--sp-on-dark-border);}
.who-values-section .who-value{border-bottom-color: var(--sp-on-dark-border);}
.who-values-section .who-value-green{--c: var(--sp-lime);}
