/* Approved landing principles: shared hierarchy, not identical pages. */
:root{--gp-section-space:clamp(56px,6vw,88px);--gp-reading-ink:#18382f;--gp-reading-muted:#4f625b}
.gp-service,.gp-subarea{--gp-surface:#d9e5dc;--gp-method-surface:#e5e0d5;--gp-section-line:#b9c8bf;color:var(--gp-reading-ink);background:#fff}
.gp-service--business,.gp-subarea--business{--gp-surface:#e5e0d5;--gp-method-surface:#e6eeea}
.gp-service--tax,.gp-subarea--tax{--gp-surface:#dce9e6;--gp-method-surface:#e9e4db}
.gp-service h1,.gp-subarea h1{font-size: min(clamp(38px,3.5vw,54px), var(--gp-h1-limit));font-weight: 400;line-height: 1.18;letter-spacing: -.015em;text-wrap:balance}
.gp-service h2,.gp-subarea h2{font-size: min(clamp(30px,3.1vw,44px), var(--gp-h2-limit));font-weight: 400;line-height: 1.18;letter-spacing: -.015em}
.gp-service h3,.gp-subarea h3{font-size: min(clamp(21px,1.8vw,26px), var(--gp-h3-limit));font-weight: 400;line-height: 1.25;letter-spacing: -.015em}
.gp-service p,.gp-subarea p{font-weight:400}
.gp-service .gp-kicker,.gp-subarea .gp-kicker{font-size:10px;font-weight:500;line-height:1.5;letter-spacing:.16em}
.gp-service>section,.gp-subarea>section{border-top:1px solid var(--gp-section-line);padding-block:var(--gp-section-space)}
.gp-service>section .gp-kicker:not(.gp-kicker--aqua)::before,.gp-subarea>section .gp-kicker:not(.gp-kicker--aqua)::before{content:'';display:inline-block;width:24px;height:1px;vertical-align:middle;margin-right:12px;background:currentColor}
.gp-service .gp-service-hero,.gp-subarea .gp-subarea-hero{min-height:clamp(560px,68svh,740px);padding:calc(var(--gp-header,96px) + 42px) 0 72px;align-items:center}
.gp-service .gp-service-hero__grid,.gp-subarea .gp-subarea-hero__grid{grid-template-columns:minmax(0,1fr) 180px;gap:clamp(40px,7vw,100px)}
.gp-service .gp-service-hero__copy,.gp-subarea .gp-subarea-hero__copy{max-width:820px}
.gp-service .gp-service-hero__back,.gp-subarea .gp-subarea-hero__back{margin-bottom:28px;color:#c6d4ce}
.gp-service .gp-service-hero h1,.gp-subarea .gp-subarea-hero h1{max-width:25ch;margin:18px 0 22px}
.gp-service .gp-service-hero__intro,.gp-subarea .gp-subarea-hero__intro{max-width:59ch;font-size:17px;line-height:1.7;color:#d3dfd7;margin-bottom:0}
.gp-service .gp-service-hero .gp-button,.gp-subarea .gp-service-hero-action{margin-top:28px;font-size:13px;font-weight:500;letter-spacing:0;text-transform:none}
.gp-subarea .gp-service-hero-action{display:inline-flex;align-items:center;justify-content:space-between;gap:20px}
.gp-service .gp-service-hero__rail{min-height:0;padding:24px 0 0 24px}
.gp-service .gp-service-hero__icon{margin:28px 0 22px}
.gp-service .gp-service-hero__rail small{margin-top:24px;padding-top:18px;line-height:1.6}
.gp-service .gp-service-hero__rail strong{font-size:24px;font-weight: 400}
.gp-subarea .gp-subarea-hero__mark{font-size:100px;color:rgba(255,255,255,.2)}
.gp-service-statement,.gp-subarea-statement{background:#fff}
.gp-service-statement__grid,.gp-subarea-statement__grid{grid-template-columns:minmax(0,.86fr) minmax(0,1.35fr);gap:24px clamp(36px,7vw,112px)}
.gp-service-statement__grid>.gp-kicker,.gp-subarea-statement__grid>.gp-kicker{grid-column:1/-1;margin:0}
.gp-service-statement__grid>p:last-child,.gp-subarea-statement__grid>p:last-child{grid-column:auto;font-size:16px;line-height:1.75;max-width:60ch;color:var(--gp-reading-muted)}
.gp-service-situations,.gp-subarea-moments{background:var(--gp-surface)}
.gp-service-situations__head{grid-template-columns:minmax(0,1fr) minmax(0,.75fr);gap:40px;align-items:start}
.gp-service-situations__head>p{font-size:16px;line-height:1.75;max-width:48ch}
.gp-service-situations__head h2,.gp-subarea-section-head h2{margin:18px 0 0;max-width:26ch}
.gp-service-situations__grid,.gp-subarea-moments__grid{--moment-gap:clamp(32px,5vw,78px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--moment-gap);margin-top:40px;border:0}
.gp-service-situations__grid article,.gp-subarea-moments__grid article{position:relative;min-width:0;min-height:0;padding:25px 0 0;border:0}
.gp-service-situations__grid article>span,.gp-subarea-moments__grid article>span{display:none}
.gp-service-situations__grid article::before,.gp-subarea-moments__grid article::before{content:'';position:absolute;inset:0 0 auto;height:1px;background:linear-gradient(to right,#006966 0 32px,#a8bcb3 32px)}
.gp-service-situations__grid article:not(:last-child)::after,.gp-subarea-moments__grid article:not(:last-child)::after{content:'';position:absolute;top:0;left:100%;width:var(--moment-gap);height:24px;border-top:1px solid #a8bcb3;border-right:1px solid #a8bcb3;border-top-right-radius:8px}
.gp-service-situations__grid article:nth-child(2),.gp-subarea-moments__grid article:nth-child(2){margin-top:24px}
.gp-service-situations__grid article:nth-child(3),.gp-subarea-moments__grid article:nth-child(3){margin-top:48px}
.gp-service-situations__grid h3,.gp-subarea-moments__grid h3{margin:0 0 14px}
.gp-service-situations__grid p,.gp-subarea-moments__grid p{font-size:16px;line-height:1.75;color:var(--gp-reading-muted);margin:0}
.gp-service-scope,.gp-subarea-capabilities{background:#fff;color:var(--gp-reading-ink)}
.gp-service-scope__layout,.gp-subarea-capabilities__grid{grid-template-columns:minmax(0,.86fr) minmax(0,1.35fr);gap:clamp(36px,7vw,112px)}
.gp-service-scope__layout>header h2,.gp-subarea-capabilities h2{margin:18px 0 22px}
.gp-service-scope__layout>header>p:last-child,.gp-subarea-capabilities header>p:last-child{font-size:16px;line-height:1.75;color:var(--gp-reading-muted);max-width:36ch}
.gp-service-scope .gp-kicker--aqua,.gp-subarea-capabilities .gp-kicker--aqua{color:#006966}
.gp-service-scope__item{grid-template-columns:minmax(0,1fr) 24px;gap:20px;padding:20px 0}
.gp-service-scope__item>span{display:none}
.gp-service-scope__item:hover{padding-left:0;background:#eef4ef}
.gp-service-scope__list h3{font-weight: 400;margin:0 0 7px}
.gp-subarea-capabilities ol,.gp-service-native-scope ul{margin:0;padding:0;list-style:none;border-top:1px solid #cbd6ce}
.gp-subarea-capabilities li,.gp-service-native-scope li{display:block;min-height:0;margin:0;padding:22px 0;border-bottom:1px solid #cbd6ce;color:var(--gp-reading-ink)}
.gp-subarea-capabilities li>span{display:none}
.gp-subarea-capabilities li strong{font-weight: 400;font-size:23px;line-height:1.4}
.gp-service-native-scope li{font-size:17px;line-height:1.7}
.gp-service-native--scope{background:#f3f5f1}
.gp-service-native--scope .gp-shell{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.35fr);gap:40px}
.gp-service-native--scope ul{margin:0;padding-left:20px;color:var(--gp-reading-muted);font-size:16px;line-height:1.75}
.gp-service-native--scope li+li{margin-top:14px}
.gp-service-native--method{background:var(--gp-method-surface)}
.gp-service-native h2{margin:0 0 32px}
.gp-service-native--method ol{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(32px,5vw,78px);list-style:none;counter-reset:method-step;margin:0;padding:0}
.gp-service-native--method ol::before{content:'';position:absolute;top:35px;left:5px;right:5px;height:1px;background:#a7bdb1}
.gp-service-native--method li{counter-increment:method-step;position:relative;margin:0;padding:62px 0 0;font-size:16px;line-height:1.75;color:var(--gp-reading-muted)}
.gp-service-native--method li::before{content:counter(method-step,decimal-leading-zero);position:absolute;top:0;left:0;font-size:12px;color:#006966;letter-spacing:.1em}
.gp-service-native--method li::after{content:'';position:absolute;top:30px;left:0;width:11px;height:11px;border:2px solid #006966;border-radius:50%;background:var(--gp-method-surface)}
.gp-service-native--faq{background:#fff}
.gp-service-native--faq .gp-shell{max-width:1100px}
.gp-service-native--faq details{padding:20px 0;border-top:1px solid #cbd6ce}
.gp-service-native--faq details:last-child{border-bottom:1px solid #cbd6ce}
.gp-service-native--faq summary{position:relative;list-style:none;padding-right:35px;font-size:17px;font-weight:400;line-height:1.5;cursor:pointer}
.gp-service-native--faq summary::-webkit-details-marker{display:none}
.gp-service-native--faq summary::after{content:'+';position:absolute;right:0;top:0;color:#006966;font-size:24px;line-height:1}
.gp-service-native--faq details[open]>summary::after{content:'−'}
.gp-service-native--faq p{font-size:15px;line-height:1.75;color:var(--gp-reading-muted);max-width:78ch;margin:14px 0 0}
.gp-subarea-related{background:#eef3ef}
.gp-subarea-related__grid{display:block;margin-top:30px;border:0}
.gp-subarea-related__grid>a{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr) 24px;gap:28px;align-items:center;min-height:0;padding:24px 0;border:0;border-top:1px solid #cbd6ce}
.gp-subarea-related__grid>a:last-child{border-bottom:1px solid #cbd6ce}
.gp-subarea-related__grid span{display:none}
.gp-subarea-related__grid h3{margin:0}
.gp-subarea-related__grid i{position:static}
.gp-subarea-related__grid>a:hover{transform:none;box-shadow:none;background:#e4eee7}
.gp-service .gp-service-related,.gp-subarea .gp-service-related{background:#fff;padding-block:48px}
.gp-service .gp-service-reading,.gp-subarea .gp-service-reading{background:#eef3ef;padding-block:44px}
.gp-service-reading h2{font-size: min(30px, var(--gp-h2-limit));margin:0 0 24px}
.gp-service-reading__list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.gp-service-reading__list>a{display:flex;gap:18px;align-items:center;border-top:1px solid #cbd6ce;padding-top:20px;color:var(--gp-reading-ink);text-decoration:none}
.gp-service-reading__list img{width:112px;height:84px;object-fit:cover;flex-shrink:0}
.gp-service-reading__list h3{font-size: min(20px, var(--gp-h3-limit));line-height: 1.35;margin:0}
.gp-service-reading__list>a>span{margin-left:auto;color:#006966}
.gp-service-reading__list>a:hover h3{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.gp-service-related .gp-section-head h2{font-size: min(30px, var(--gp-h2-limit));max-width:36ch}
.gp-service .gp-cta,.gp-subarea .gp-cta{background:#005c5b;color:#fff}
.gp-service .gp-cta p,.gp-subarea .gp-cta p{color:#e1eee7}
.gp-service .gp-service-approach{background:#eef3ef;color:var(--gp-reading-ink)}
.gp-service-approach p,.gp-service-approach .gp-text-link--light{color:var(--gp-reading-muted)}
.gp-service .gp-service-approach__grid>p:last-of-type{color:var(--gp-reading-muted)}
.gp-service a:focus-visible,.gp-subarea a:focus-visible,.gp-service summary:focus-visible,.gp-subarea summary:focus-visible{outline:2px solid currentColor;outline-offset:5px}
/* Shared editorial roles; retain each page's distinct composition and article emphasis. */
.gp-story-hero h1,.gp-person-hero h1,.gp-affiliate-hero__copy h1{font-weight: 400}
.gp-story-client__label,.gp-person-hero__focus,.gp-person-credentials dt{font-weight:500}
.gp-story-model,.gp-person-narrative,.gp-person-education{scroll-margin-top:calc(var(--gp-header,96px) + 24px)}
@media(max-width:1000px){
 .gp-service .gp-service-hero__grid,.gp-subarea .gp-subarea-hero__grid{grid-template-columns:1fr}
 .gp-service .gp-service-hero__rail,.gp-subarea .gp-subarea-hero__mark{display:none}
 .gp-service-scope__layout>header{position:static}
 .gp-service-statement__grid,.gp-subarea-statement__grid,.gp-service-situations__head,.gp-service-scope__layout,.gp-subarea-capabilities__grid,.gp-service-native--scope .gp-shell{grid-template-columns:1fr;gap:28px}
 .gp-service-statement__grid>.gp-kicker,.gp-subarea-statement__grid>.gp-kicker{grid-column:auto}
 .gp-service-scope__layout>header>p:last-child,.gp-subarea-capabilities header>p:last-child{max-width:65ch}
}
@media(max-width:640px){
 .gp-service-reading__list{grid-template-columns:1fr;gap:20px}
 .gp-service-reading__list img{width:76px;height:78px}
 .gp-service-reading__list h3{font-size: min(18px, var(--gp-h3-limit))}
 .gp-service .gp-service-hero,.gp-subarea .gp-subarea-hero{min-height:0;padding:calc(var(--gp-header,80px) + 24px) 0 56px}
 .gp-service .gp-service-hero h1,.gp-subarea .gp-subarea-hero h1{font-size: min(38px, var(--gp-h1-limit))}
 .gp-service .gp-service-hero__intro,.gp-subarea .gp-subarea-hero__intro{font-size:15px}
 .gp-service h2,.gp-subarea h2{font-size: min(31px, var(--gp-h2-limit))}
 .gp-service-situations__grid,.gp-subarea-moments__grid{grid-template-columns:1fr;gap:28px}
 .gp-service-situations__grid article,.gp-subarea-moments__grid article{padding:0 0 0 20px;border-left:1px solid #a8bcb3}
 .gp-service-situations__grid article:nth-child(n),.gp-subarea-moments__grid article:nth-child(n){margin-top:0}
 .gp-service-situations__grid article::before,.gp-subarea-moments__grid article::before{inset:0 auto auto -1px;width:1px;height:24px;background:#006966}
 .gp-service-situations__grid article::after,.gp-subarea-moments__grid article::after{display:none}
 .gp-service-native--method ol{grid-template-columns:1fr;gap:28px}
 .gp-service-native--method ol::before{left:5px;right:auto;top:8px;bottom:0;width:1px;height:auto}
 .gp-service-native--method li{padding:0 0 0 36px}
 .gp-service-native--method li::before{position:static;display:block;margin-bottom:9px}
 .gp-service-native--method li::after{top:4px}
 .gp-subarea-related__grid>a{grid-template-columns:minmax(0,1fr) 24px;gap:12px}
 .gp-subarea-related__grid p{grid-column:1;grid-row:2}
 .gp-subarea-related__grid i{grid-column:2;grid-row:1}
 .gp-subarea-index__inner>div{flex-wrap:wrap;gap:4px 18px;overflow:visible}
 .gp-subarea-index a{font-size:12px;white-space:normal;flex:initial}
}
@media(prefers-reduced-motion:reduce){.gp-service a,.gp-subarea a{transition:none}}

/* Photography + a clear reading hierarchy. Scoped to service templates, not articles. */
.gp-service,.gp-subarea{--gp-feature:#17483e;--gp-feature-hover:#245b50;--gp-surface:#eee9df;--gp-method-surface:#dce9e2}
.gp-service--tax,.gp-subarea--tax{--gp-feature:#173f4a;--gp-feature-hover:#275762;--gp-surface:#e9e5db;--gp-method-surface:#dce8eb}
.gp-service .gp-service-hero,.gp-subarea .gp-subarea-hero{isolation:isolate;overflow:hidden;background:#102923;min-height:clamp(600px,78svh,850px);padding-bottom:84px}
.gp-service-photo{position:absolute;inset:0;margin:0;z-index:-2;pointer-events:none}
.gp-service-photo picture,.gp-service-photo img{display:block;width:100%;height:100%}
.gp-service-photo img{object-fit:cover;object-position:50% 55%}
.gp-service-photo::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,22,20,.86),rgba(5,22,20,.65) 38%,rgba(5,22,20,.13) 78%),linear-gradient(0deg,rgba(5,22,20,.45),transparent 35%)}
.gp-service .gp-service-hero__grid,.gp-subarea .gp-subarea-hero__grid{display:block;position:relative;z-index:1}
.gp-service .gp-service-hero__copy,.gp-subarea .gp-subarea-hero__copy{max-width:740px}
.gp-service .gp-service-hero__rail,.gp-subarea .gp-subarea-hero__mark{display:none}
.gp-service .gp-service-hero h1,.gp-subarea .gp-subarea-hero h1{font-size: min(clamp(39px,3.9vw,62px), var(--gp-h1-limit));color:#fff;max-width:23ch}
.gp-service .gp-service-hero__intro,.gp-subarea .gp-subarea-hero__intro{color:#f0f4f1;max-width:52ch;font-size:17px;line-height:1.65}
.gp-service-photo-credit{position:absolute;bottom:18px;right:clamp(24px,4vw,64px);z-index:2;margin:0;color:#fff!important;font-size:10px!important;line-height:1.5}
.gp-service-photo-credit a{color:inherit;text-underline-offset:3px}
.gp-service-guide{background:#fff;border-bottom:1px solid #cad4cd;padding:20px 0}
.gp-service-guide>.gp-shell{display:flex;gap:30px;align-items:center}
.gp-service-guide>.gp-shell>span{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#586e64;flex-shrink:0}
.gp-service-guide .gp-shell>div{display:flex;flex-wrap:wrap;gap:12px 30px}
.gp-service-guide a{display:flex;gap:14px;align-items:center;min-height:44px;font-size:13px;color:#194b40;text-decoration:none;border-bottom:1px solid transparent;padding:6px 0}
.gp-service-guide a:hover{border-color:#00857e}
.gp-service-guide a>span{color:#00786e}
.gp-service>section[id],.gp-subarea>section[id]{scroll-margin-top:calc(var(--gp-header,96px) + 28px)}
.gp-service .gp-service-statement,.gp-subarea .gp-subarea-statement{padding-block:clamp(48px,5vw,70px)}
.gp-service-statement h2,.gp-subarea-statement h2{max-width:26ch;font-size: min(clamp(28px,2.7vw,40px), var(--gp-h2-limit))}
.gp-service .gp-service-scope,.gp-subarea .gp-subarea-capabilities{background:var(--gp-feature);color:#fff;border-color:var(--gp-feature)}
.gp-service-scope h2,.gp-service-scope h3,.gp-subarea-capabilities h2,.gp-subarea-capabilities li,.gp-subarea-capabilities li strong{color:#fff}
.gp-service-scope .gp-kicker--aqua,.gp-subarea-capabilities .gp-kicker--aqua{color:#a6e0cd}
.gp-service-scope__layout>header>p:last-child,.gp-subarea .gp-subarea-capabilities header>p:last-child{color:#dce9e2}
.gp-service .gp-service-scope__item{padding:21px 8px 21px 0;border-color:rgba(216,237,226,.3);color:#fff;transition:background .18s ease}
.gp-service .gp-service-scope__item:hover{background:var(--gp-feature-hover);padding-left:0}
.gp-service .gp-service-scope__item p{color:#dce9e2;font-size:15px;line-height:1.6}
.gp-service .gp-service-scope__item i{color:#a6e0cd}
.gp-service .gp-service-scope__item h3{font-size: min(24px, var(--gp-h3-limit))}
.gp-service-scope__layout>header,.gp-subarea-capabilities__grid>header{border-left:2px solid #86c7b0;padding-left:24px}
.gp-service-scope-detail{border-bottom:1px solid rgba(216,237,226,.3);padding:22px 0;font-size:15px;line-height:1.7}
.gp-service-scope-detail summary{color:#c5eadc;cursor:pointer;font-size:15px;font-weight:400;padding-right:20px}
.gp-service-scope-detail ul{padding-left:20px;margin:20px 0 0;color:#dce9e2}
.gp-service-scope-detail li+li{margin-top:12px}
.gp-subarea .gp-subarea-capabilities ol,.gp-subarea .gp-service-native-scope ul{border-color:rgba(216,237,226,.3)}
.gp-subarea .gp-subarea-capabilities li{border-color:rgba(216,237,226,.3);color:#edf5f0;font-size:17px}
.gp-service .gp-service-situations,.gp-subarea .gp-subarea-moments{background:var(--gp-surface);border-color:#ddd6c8}
.gp-service .gp-service-native--method{border-top:0}
.gp-service-native--method .gp-shell>h2{max-width:26ch;font-size: min(clamp(30px,3vw,42px), var(--gp-h2-limit))}
.gp-service .gp-service-approach{background:#e0e9e2;padding-block:48px}
.gp-service-approach h2{font-size: min(clamp(26px,2.5vw,36px), var(--gp-h2-limit));max-width:32ch}
.gp-service-native--faq .gp-shell{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);column-gap:70px;max-width:1400px}
.gp-service-native--faq h2{grid-column:1;grid-row:1/8;font-size: min(clamp(28px,3vw,40px), var(--gp-h2-limit))}
.gp-service-native--faq details{grid-column:2}
@media(max-width:1000px){
 .gp-service-guide>.gp-shell{display:block}
 .gp-service-guide>.gp-shell>span{display:block;margin-bottom:6px}
 .gp-service .gp-service-hero__copy,.gp-subarea .gp-subarea-hero__copy{max-width:680px}
 .gp-service-photo img{object-position:62% 55%}
 .gp-service-native--faq .gp-shell{display:block}
 .gp-service-scope__layout>header,.gp-subarea-capabilities__grid>header{padding-left:20px}
}
@media(max-width:640px){
 .gp-service .gp-service-hero,.gp-subarea .gp-subarea-hero{min-height:620px;padding-top:calc(var(--gp-header,80px) + 32px);padding-bottom:70px}
 .gp-service .gp-service-hero h1,.gp-subarea .gp-subarea-hero h1{font-size: min(38px, var(--gp-h1-limit))}
 .gp-service .gp-service-hero__intro,.gp-subarea .gp-subarea-hero__intro{font-size:15px}
 .gp-service-photo::after{background:linear-gradient(90deg,rgba(5,22,20,.84),rgba(5,22,20,.5)),linear-gradient(0deg,rgba(5,22,20,.35),transparent 40%)}
 .gp-service-guide{padding:15px 0}
 .gp-service-guide .gp-shell>div{gap:4px 20px}
 .gp-service-guide a{font-size:12px;gap:8px}
 .gp-service-photo-credit{right:24px;bottom:14px;font-size:9px!important}
 .gp-service .gp-service-scope__item h3{font-size: min(22px, var(--gp-h3-limit))}
 .gp-service-scope-detail summary{font-size:14px}
 .gp-service-native--faq h2{margin-bottom:28px}
}

/* Compact native service advisor: shared across service pages. */
.gp-service-native--advisor{padding-block:2rem;border-block:1px solid rgba(0,80,75,.14)}
.gp-service-native--advisor>.gp-shell{display:grid;grid-template-columns:minmax(160px,1fr) minmax(0,2fr);gap:1rem 2rem;align-items:start}
.gp-service-native--advisor h2{font-size: min(1.25rem, var(--gp-h2-limit));margin:0}.gp-service-native--advisor p{margin:0;max-width:70ch}.gp-service-native--advisor p+p{grid-column:2}
@media(max-width:640px){.gp-service-native--advisor>.gp-shell{grid-template-columns:1fr}.gp-service-native--advisor p+p{grid-column:1}}
