
/* 2026-11 visual consistency pass. Overrides only. */
:root{--ipg-page-max:1200px;--ipg-section-space:clamp(68px,7.25vw,108px);--ipg-card-gap:18px;--ipg-card-edge:#d6dfd4}
html{overflow-x:clip}
body{overflow-x:clip}
.container{width:min(calc(100% - 80px),var(--ipg-page-max));max-width:100%}
main :is(.section,.section-tight,.contact-section){padding-block:var(--ipg-section-space)}
main .hero{padding-block:clamp(55px,6.2vw,88px)}
.section-header{gap:clamp(22px,4vw,52px);margin-bottom:clamp(30px,3.5vw,44px)}
.section-header h2{max-width:790px}
.section-header p{max-width:360px;line-height:1.72}
.owner-highlight{padding-block:clamp(76px,7vw,100px)!important}
.owner-grid{grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);align-items:center;gap:clamp(34px,5vw,66px)}
.owner-photo-wrap{min-height:0;aspect-ratio:1.23 / 1;border-radius:26px;align-self:center}
.owner-copy{max-width:590px;min-width:0}
.owner-copy h2{font-size:clamp(36px,4.3vw,59px);line-height:1.09;margin:14px 0 18px;max-width:580px}
.owner-copy p{max-width:570px;font-size:clamp(15px,1.17vw,17px);line-height:1.72;margin:0 0 18px}
.owner-bullets{margin:21px 0 23px;gap:12px}
.owner-bullets li{font-size:14px;line-height:1.48;max-width:570px}
.owner-actions{margin-top:25px}
.section-outcomes .outcomes-heading{max-width:760px;margin-bottom:31px}
.section-outcomes .outcomes-heading>p{max-width:650px}
.section-outcomes .outcomes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ipg-card-gap);align-items:stretch}
.section-outcomes .outcomes-grid a{box-sizing:border-box;display:grid;grid-template-columns:56px minmax(0,1fr) 22px;grid-template-rows:auto 1fr auto;gap:12px 16px;align-items:start;min-width:0;min-height:200px;padding:26px 28px;background:#fbfcf7;border:1px solid var(--ipg-card-edge);border-radius:18px;box-shadow:none}
.section-outcomes .outcomes-grid a>span:first-child{grid-column:2;grid-row:1;align-self:center;font-size:11px;letter-spacing:.1em;font-weight:800}
.section-outcomes .outcomes-grid .outcome-mark{grid-column:1;grid-row:1 / 3;align-self:start;justify-self:start;width:50px;height:50px;display:grid;place-items:center;background:#e6eedc;border-radius:15px;color:#4e6a49}
.section-outcomes .outcomes-grid .outcome-mark svg{width:24px;height:24px}
.section-outcomes .outcomes-grid h3{grid-column:2;grid-row:2;min-width:0;max-width:410px;margin:1px 0 4px;font-size:clamp(21px,2vw,27px);line-height:1.23;letter-spacing:-.05em}
.section-outcomes .outcomes-grid small{grid-column:2 / 4;grid-row:3;display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:11px;font-size:12px;min-width:0}
#services .service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ipg-card-gap);border:0;background:transparent;align-items:stretch}
#services .service-card{display:flex;flex-direction:column;box-sizing:border-box;min-width:0;min-height:335px;height:100%;padding:28px 27px 23px;background:#fafbf7;border:1px solid var(--ipg-card-edge);border-radius:20px}
#services .service-card .service-num{display:block;min-height:18px;font-size:11px;letter-spacing:.12em}
#services .service-card .service-icon{display:flex;align-items:center;margin:23px 0 17px;min-height:43px;height:43px}
#services .service-card .service-icon svg{display:block;width:37px;height:37px}
#services .service-card h3{font-size:clamp(21px,1.9vw,26px);line-height:1.21;min-height:2.42em;margin:0 0 11px;max-width:100%}
#services .service-card p{margin:0 0 18px;font-size:13px;line-height:1.65;min-height:3.3em}
#services .service-card .card-bottom{display:flex;gap:8px;align-items:center;margin-top:auto;padding-top:16px;min-height:45px;overflow-wrap:anywhere}
#services .service-card .card-bottom span:first-child{flex:1;min-width:0;font-size:11px!important;line-height:1.5}
#services .service-card .card-bottom svg{width:18px;height:18px}
#method .steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;border-top:0;align-items:stretch}
#method .step{position:relative;min-width:0;padding:0 16px 0 0;border-top:1px solid #c9d5c7}
#method .step:not(:last-child):before{content:none}
#method .step-num{margin:-22px 0 21px;width:44px;height:44px;border-radius:13px;box-shadow:0 0 0 7px #f5f4ef;display:grid;place-items:center}
#method .step h3{min-height:2.4em;font-size:clamp(17px,1.4vw,19px);line-height:1.24;margin-bottom:10px}
#method .step p{margin:0;font-size:13px;line-height:1.7}
#method .steps{padding-top:22px}
.engagement-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ipg-card-gap)}
.engagement-card{min-height:330px;padding:28px 27px 25px;border-radius:21px}
.engagement-card .phase{margin-bottom:28px;gap:9px;line-height:1.45;flex-wrap:wrap;font-size:10px}
.engagement-card h3{min-height:2.12em;font-size:clamp(22px,2vw,28px);line-height:1.16}
.engagement-card p{font-size:13px;line-height:1.65}
.engagement-card:nth-child(2){border-top:4px solid #8ca36f;padding-top:25px}
.engagement-card:nth-child(3){border-top:4px solid #abb8ac;padding-top:25px;background:#f9faf7}
.engagement-card .fee{padding-top:15px;line-height:1.5}
.contact-grid{gap:clamp(32px,4.8vw,64px);align-items:start}
.form-card{min-width:0;border-radius:22px;padding:clamp(25px,3vw,40px)}
.form-card h3{line-height:1.2;margin-bottom:8px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 17px}
.form-grid .field{min-width:0;gap:8px}
.form-grid .field label{font-size:12px;line-height:1.5}
.form-grid .field :is(input,select,textarea){width:100%;min-width:0;border-radius:8px;min-height:48px;padding:12px 13px;line-height:1.45;transition:border-color .18s ease,box-shadow .18s ease}
.form-grid .field textarea{min-height:115px;resize:vertical}
.form-grid .field :is(input,select,textarea):focus-visible{border-color:#6b8b56;outline:none;box-shadow:0 0 0 3px rgba(130,156,96,.16)}
.form-actions{margin-top:22px}
.site-footer .footer-top{grid-template-columns:minmax(230px,1.45fr) repeat(2,minmax(140px,.82fr)) minmax(190px,1.08fr);gap:clamp(24px,3vw,46px);padding:clamp(46px,5vw,68px) 0 43px}
.site-footer .footer-col{min-width:0}
.site-footer .footer-col h3{margin:5px 0 18px;line-height:1.4}
.site-footer .footer-col a{margin-bottom:13px;line-height:1.55}
.site-footer .footer-bottom{gap:20px;padding-block:25px 2px}
@media(max-width:1150px){
 .container{width:min(calc(100% - 64px),var(--ipg-page-max))}
 #services .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .owner-grid{gap:32px}
 .site-footer .footer-top{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
 .site-footer .footer-brand{grid-column:1/-1}
}
@media(max-width:840px){
 .container{width:min(calc(100% - 48px),var(--ipg-page-max))}
 .owner-grid{grid-template-columns:1fr;gap:30px}
 .owner-photo-wrap{width:min(100%,650px);aspect-ratio:1.35/1}
 .owner-copy{max-width:760px}
 #method .steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:42px 21px}
 .engagement-grid{grid-template-columns:1fr;gap:16px}
 .engagement-card{min-height:250px}
 .engagement-card h3{min-height:0}
 .site-footer .footer-top{grid-template-columns:repeat(2,minmax(0,1fr))}
 .site-footer .footer-brand{grid-column:1/-1}
}
@media(max-width:640px){
 :root{--ipg-section-space:62px;--ipg-card-gap:12px}
 .container{width:calc(100% - 36px)}
 .section-header{gap:15px;margin-bottom:26px}
 .owner-highlight{padding-block:62px!important}
 .owner-photo-wrap{aspect-ratio:1.23/1;border-radius:20px}
 .owner-copy h2{font-size:clamp(32px,8.7vw,43px);line-height:1.13}
 .owner-copy p{font-size:15px}
 .owner-bullets{gap:12px}
 .owner-bullets li{font-size:13px}
 .section-outcomes .outcomes-grid{grid-template-columns:1fr;gap:10px}
 .section-outcomes .outcomes-grid a{grid-template-columns:42px minmax(0,1fr) 17px;min-height:145px;padding:20px 18px;border-radius:16px;gap:9px 12px}
 .section-outcomes .outcomes-grid .outcome-mark{width:40px;height:40px;border-radius:12px}
 .section-outcomes .outcomes-grid .outcome-mark svg{width:21px;height:21px}
 .section-outcomes .outcomes-grid h3{font-size:20px;max-width:100%}
 .section-outcomes .outcomes-grid small{grid-column:2/4}
 #services .service-grid{grid-template-columns:1fr;gap:12px}
 #services .service-card{min-height:285px;padding:23px 22px}
 #services .service-card h3{min-height:0;font-size:23px}
 #services .service-card p{min-height:0}
 #method .steps{grid-template-columns:1fr;gap:32px;padding-top:20px}
 #method .step{padding:0 0 1px 0}
 #method .step-num{margin:-22px 0 16px}
 #method .step h3{min-height:0;margin-bottom:7px}
 .engagement-card{padding:25px 22px;min-height:245px;border-radius:18px}
 .engagement-card:nth-child(2),.engagement-card:nth-child(3){padding-top:22px}
 .form-card{padding:27px 20px}
 .form-grid{grid-template-columns:1fr;gap:17px}
 .form-grid .field.full{grid-column:1}
 .site-footer .footer-top{grid-template-columns:repeat(2,minmax(0,1fr));gap:27px 22px;padding:38px 0 32px}
 .site-footer .footer-brand,.site-footer .footer-contact{grid-column:1/-1}
 .site-footer .footer-col a{font-size:13px;overflow-wrap:anywhere}
 .site-footer .footer-bottom{flex-direction:column;align-items:flex-start;gap:14px}
}
@media(max-width:370px){
 .container{width:calc(100% - 28px)}
 .section-outcomes .outcomes-grid a{padding:18px 14px}
 .owner-photo-caption{font-size:9px}
 #services .service-card h3{font-size:21px}
}
@media(prefers-reduced-motion:reduce){.engagement-card,.service-card,.outcomes-grid a{transition:none!important}}

/* Centre the SVG artwork inside all six service-icon badges on every viewport. */
#services .service-card .service-icon {
  justify-content: center;
}
#services .service-card .service-icon svg {
  display: block;
  flex: 0 0 auto;
  margin: 0;
}
