/* A shared, content-led experience for every current and future service. */
.service-page{--service-edge:var(--space-page);overflow:clip;background:#fff}
.service-page a:focus-visible,.service-page summary:focus-visible{outline:3px solid var(--color-magenta);outline-offset:4px}
.service-kicker{display:flex;align-items:center;gap:.8rem;color:var(--color-magenta);font-size:clamp(.72rem,.68rem + .18vw,.84rem);font-weight:800;letter-spacing:.14em;text-transform:uppercase;line-height:1.4}
.service-kicker__line{width:1.8rem;height:2px;background:currentColor}
.service-hero{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);min-height:clamp(590px,68vw,760px);background:radial-gradient(circle at 19% 76%,#eaf5f9 0,transparent 43%),linear-gradient(130deg,#fff 30%,#f1f8fa)}
.service-hero__copy{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding:clamp(1.2rem,2.6vw,2.2rem) clamp(2rem,5vw,5.2rem) clamp(2rem,4vw,3.5rem) var(--service-edge)}
.service-breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem .75rem;min-height:2.6rem;margin-bottom:auto;color:#547483;font-size:.77rem;font-weight:700}
.service-breadcrumbs a{color:var(--color-ocean);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:.3rem;transition:text-decoration-color .25s}
.service-breadcrumbs a:hover{text-decoration-color:currentColor}
.service-breadcrumbs span[aria-current]{color:#294e60}
.service-hero .service-kicker{margin-top:clamp(1.5rem,5vw,4rem)}
.service-hero h1{max-width:11ch;margin:.85rem 0 1.25rem;color:var(--color-ocean-deep);font-size:clamp(2.8rem,4.85vw,5.35rem);line-height:1.04;letter-spacing:-.065em;text-wrap:balance;overflow-wrap:anywhere}
.service-hero__summary{max-width:54ch;color:#486b7b;font-size:clamp(1.03rem,.98rem + .35vw,1.22rem);line-height:1.65}
.service-hero__summary p+p{margin-top:.8rem}
.service-hero__actions{display:flex;align-items:center;flex-wrap:wrap;gap:1.2rem 1.7rem;margin-top:clamp(1.6rem,3.2vw,2.7rem)}
.service-hero__actions .button{min-height:3.4rem;gap:1.5rem;padding-inline:1.4rem;font-size:.84rem}
.service-text-link{display:inline-flex;align-items:center;gap:.6rem;width:max-content;max-width:100%;padding-bottom:.2rem;border-bottom:1px solid currentColor;color:var(--color-ocean);font-size:clamp(.84rem,.78rem + .2vw,.96rem);font-weight:800;line-height:1.4;transition:gap .25s,color .25s}
.service-text-link:hover{gap:1rem;color:var(--color-magenta)}
.service-hero__foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;margin-top:auto;padding-top:clamp(2rem,5vw,4rem);color:#668696;font-size:.66rem;font-weight:800;letter-spacing:.14em}
.service-hero__foot span:last-child{font-size:1.3rem;color:var(--color-magenta)}
.service-hero__visual{position:relative;min-width:0;min-height:100%;overflow:hidden;border-radius:170px 0 0 0;background:#bfd6de;box-shadow:-28px 26px 80px rgb(8 69 97 / 14%)}
.service-hero__visual:after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(0deg,rgb(5 40 58 / 75%),transparent);pointer-events:none}
.service-hero__visual img{width:100%;height:100%;min-height:590px;object-fit:cover;object-position:center;will-change:transform}
.service-hero__visual figcaption{position:absolute;z-index:1;right:clamp(1.25rem,4vw,4rem);bottom:clamp(1.25rem,3.5vw,3.5rem);left:clamp(1.25rem,4vw,4rem);display:flex;align-items:end;justify-content:space-between;gap:1rem;color:#fff}
.service-hero__visual figcaption span:first-child{max-width:13ch;font-size:.62rem;font-weight:800;letter-spacing:.16em;line-height:1.5}
.service-hero__visual figcaption span:last-child{font:700 clamp(1.25rem,2.25vw,2.15rem)/1.1 var(--font-heading);letter-spacing:-.04em;text-align:right}
.service-intro{position:relative;display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(1.8rem,7vw,7rem);align-items:start;padding:clamp(3rem,6vw,6rem) var(--service-edge);background:#fff}
.service-intro:before{content:"";position:absolute;top:0;left:var(--service-edge);right:var(--service-edge);height:1px;background:#d7e7eb}
.service-intro h2{max-width:16ch;margin:.9rem 0 0;color:var(--color-ocean-deep);font-size:clamp(2.05rem,3vw,3.55rem);line-height:1.13;text-wrap:balance}
.service-intro h2 em,.service-close h2 em{font-style:normal;color:var(--color-ocean)}
.service-intro__text{max-width:65ch;padding-left:clamp(0rem,2.8vw,2.5rem);border-left:2px solid #d9e8ec;color:#345767;font-size:clamp(1rem,.95rem + .25vw,1.15rem);line-height:1.75}
.service-intro__text p+p{margin-top:1rem}
.service-story{position:relative;display:grid;grid-template-columns:minmax(160px,.32fr) minmax(0,1fr);gap:clamp(1.5rem,7vw,8rem);padding:clamp(2.6rem,5vw,5.3rem) var(--service-edge);border-top:1px solid #d9e7eb;background:linear-gradient(120deg,#f4f9fa,#fff 62%)}
.service-story:nth-of-type(even){background:#fff}
.service-story__rail{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;color:var(--color-magenta);font-size:clamp(.7rem,.67rem + .18vw,.82rem);font-weight:800;letter-spacing:.13em;line-height:1.5;text-transform:uppercase}
.service-story__rail span:last-child{font-size:1.1rem;letter-spacing:0}
.service-story__main{max-width:900px}
.service-story h2{max-width:23ch;color:var(--color-ocean-deep);font-size:clamp(1.95rem,3.2vw,3.65rem);line-height:1.12;text-wrap:balance}
.service-story__body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem clamp(1.5rem,3vw,3.3rem);max-width:850px;margin-top:clamp(1rem,2.3vw,2rem);color:#446674;font-size:clamp(.98rem,.93rem + .2vw,1.08rem);line-height:1.72}
.service-story__body p:only-child{grid-column:1/-1;max-width:65ch}
.service-story__body p:nth-child(n+3){grid-column:1/-1;max-width:65ch}
.service-story figure{margin:clamp(1.5rem,3vw,2.5rem) 0 0;overflow:hidden;border-radius:12px 90px 12px 12px;box-shadow:0 20px 50px rgb(7 55 79 / 12%)}
.service-story figure img{width:100%;max-height:490px;object-fit:cover}
.service-story .service-text-link{margin-top:1.5rem}
.service-story--quote{background:linear-gradient(125deg,#064564,#005b8f);color:#fff}
.service-story--quote .service-story__rail,.service-story--quote h2{color:#fff}
.service-story blockquote{max-width:34ch;margin-top:1rem;color:#e6f2f5;font:600 clamp(1.3rem,2.1vw,2.15rem)/1.4 var(--font-heading);letter-spacing:-.03em}
.service-story--cta{background:#edf6f8}
.service-faq{display:grid;grid-template-columns:minmax(0,.35fr) minmax(0,.65fr);gap:clamp(1.5rem,6vw,6rem);padding:clamp(3rem,6vw,5.5rem) var(--service-edge);background:#e9f3f6}
.service-faq__intro h2{max-width:13ch;margin:.8rem 0 1rem;color:var(--color-ocean-deep);font-size:clamp(2.05rem,3.2vw,3.6rem);line-height:1.14;text-wrap:balance}
.service-faq__intro>p:last-child{max-width:30ch;color:#557584;font-size:.98rem;line-height:1.6}
.service-faq__list{border-top:1px solid #b9d4de}
.service-faq__item{border-bottom:1px solid #b9d4de}
.service-faq__item summary{display:flex;justify-content:space-between;align-items:center;gap:1.2rem;min-height:4.6rem;padding:1.1rem .1rem;list-style:none;cursor:pointer;color:var(--color-ocean-deep);font:700 clamp(1.04rem,1vw + .72rem,1.3rem)/1.35 var(--font-heading)}
.service-faq__item summary::-webkit-details-marker{display:none}
.service-faq__toggle{display:grid;place-items:center;flex:none;width:2rem;height:2rem;border:1px solid #aac9d4;border-radius:50%;color:var(--color-magenta);font:500 1.35rem var(--font-body);transition:transform .25s,background .25s,color .25s}
.service-faq__item[open] .service-faq__toggle{transform:rotate(45deg);background:var(--color-ocean);border-color:var(--color-ocean);color:#fff}
.service-faq__answer{max-width:64ch;padding:0 3.2rem 1.35rem 0;color:#426374;font-size:clamp(.98rem,.93rem + .2vw,1.08rem);line-height:1.7}
.service-faq__answer p+p{margin-top:.8rem}
.service-next{display:flex;align-items:center;flex-wrap:wrap;gap:.8rem 2rem;padding:1.4rem var(--service-edge);background:#fff;border-top:1px solid #d9e6eb;color:var(--color-ocean-deep);font-size:.9rem;font-weight:700}
.service-next>span{margin-right:auto;color:#587585;font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.service-next a{display:inline-flex;gap:.6rem;align-items:center;color:var(--color-ocean);transition:color .25s}
.service-next a:hover{color:var(--color-magenta)}
.service-source{display:flex;align-items:center;justify-content:space-between;gap:1rem 3rem;padding:1.4rem var(--service-edge);background:#f7fafb;border-top:1px solid #d9e6eb;color:#506f7d;font-size:.87rem;line-height:1.55}
.service-source>span{flex:none;color:var(--color-ocean);font-size:.72rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.service-source a{color:var(--color-magenta);font-weight:700;text-decoration:underline;text-underline-offset:.2rem}
.service-close{display:flex;align-items:end;justify-content:space-between;gap:2rem;padding:clamp(3rem,6vw,6rem) var(--service-edge);background:radial-gradient(circle at 72% 0,rgb(133 201 223 / 27%),transparent 36%),linear-gradient(125deg,#043e5c,#005b8f);color:#fff}
.service-close .service-kicker,.service-close h2 em{color:#d0eff9}
.service-close h2{margin:1rem 0 1.3rem;color:#fff;font-size:clamp(2.05rem,3.65vw,4.1rem);line-height:1.12}
.service-close p:last-child{max-width:52ch;color:#d7ebf1;font-size:1rem;line-height:1.6}
.service-close__button{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex:none;min-width:clamp(225px,24vw,325px);min-height:4.5rem;padding:1rem 1.15rem 1rem 1.5rem;border-radius:999px;background:var(--color-magenta);color:#fff;font-size:.86rem;font-weight:800;box-shadow:0 15px 35px rgb(44 3 50 / 18%);transition:background .25s,transform .35s var(--ease-out)}
.service-close__button span:last-child{display:grid;place-items:center;width:2.25rem;height:2.25rem;border:1px solid rgb(255 255 255 / 55%);border-radius:50%;font-size:1.2rem}
.service-close__button:hover{background:var(--color-magenta-deep);transform:translateY(-3px)}
@media(max-width:1000px){.service-hero{min-height:600px}.service-hero__copy{padding-right:2rem}.service-hero__visual{border-radius:100px 0 0 0}.service-hero__visual img{min-height:600px}.service-story{grid-template-columns:minmax(125px,.28fr) minmax(0,1fr);gap:2rem}.service-faq{grid-template-columns:minmax(0,.38fr) minmax(0,.62fr);gap:2rem}}
@media(max-width:900px){.service-hero{display:flex;flex-direction:column;min-height:0}.service-hero__copy{padding:1rem var(--service-edge) 1.5rem}.service-breadcrumbs{min-height:2rem;margin-bottom:1.8rem;font-size:.72rem}.service-hero .service-kicker{margin-top:0}.service-hero h1{max-width:14ch;margin:.65rem 0 .85rem;font-size:clamp(2.35rem,7.3vw,3.5rem)}.service-hero__summary{max-width:60ch;font-size:1.02rem}.service-hero__actions{gap:1rem 1.5rem;margin-top:1.45rem}.service-hero__foot{display:none}.service-hero__visual{height:clamp(250px,55vw,420px);min-height:0;margin-left:var(--service-edge);border-radius:78px 0 0 0;box-shadow:none}.service-hero__visual img{height:100%;min-height:0}.service-hero__visual figcaption{left:1.3rem;right:1.3rem;bottom:1.25rem}.service-hero__visual figcaption span:last-child{font-size:1.15rem}.service-intro{grid-template-columns:1fr;gap:1.2rem;padding:2.7rem var(--service-edge)}.service-intro h2{max-width:19ch;margin-top:.65rem}.service-intro__text{padding-left:1rem}.service-story{grid-template-columns:1fr;gap:1rem;padding:2.55rem var(--service-edge)}.service-story__rail{justify-content:flex-start;gap:1rem}.service-story__rail span:last-child{display:none}.service-story__body{margin-top:1rem}.service-faq{grid-template-columns:1fr;gap:1.7rem;padding:2.8rem var(--service-edge)}.service-faq__intro h2{max-width:20ch}.service-source{align-items:flex-start;flex-direction:column}.service-close{align-items:flex-start;flex-direction:column;padding:3rem var(--service-edge)}}
@media(max-width:520px){.service-breadcrumbs{gap:.25rem .5rem}.service-breadcrumbs span[aria-current]{max-width:15ch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.service-hero__actions{align-items:stretch;flex-direction:column}.service-hero__actions .button{justify-content:space-between;width:100%}.service-hero__actions .service-text-link{margin:.15rem 0 .1rem}.service-hero__visual{height:265px}.service-hero__visual figcaption span:first-child{font-size:.5rem}.service-hero__visual figcaption span:last-child{font-size:1rem}.service-intro h2,.service-faq__intro h2{font-size:clamp(2rem,8vw,2.7rem)}.service-story h2{font-size:clamp(1.85rem,7.6vw,2.7rem)}.service-story__body{grid-template-columns:1fr;gap:.8rem}.service-story__body p:nth-child(n){grid-column:1}.service-faq__item summary{min-height:4.2rem;font-size:1.04rem}.service-faq__answer{padding-right:.5rem}.service-close h2{font-size:clamp(2rem,8vw,3rem)}.service-close__button{width:100%;min-width:0}}
@media(prefers-reduced-motion:reduce){.service-hero__visual img{will-change:auto}.service-page *, .service-page *:before,.service-page *:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Update 008: contextual reading follows each service without a second hero. */
.service-articles{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,.58fr);gap:clamp(1.5rem,5vw,5rem);padding:clamp(2.2rem,4vw,3.7rem) var(--space-page);border-top:1px solid #d8e6e9;background:#eef5f7}.service-articles h2{max-width:17ch;margin:.55rem 0 0;color:var(--color-ocean-deep);font-size:clamp(1.75rem,2.7vw,2.9rem);line-height:1.17}.service-articles>div:last-child{display:grid;align-content:center;gap:.65rem}.service-articles a{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.2rem;border:1px solid #d1e1e5;border-radius:12px 42px 12px 12px;background:#fff;color:var(--color-ocean-deep);font:800 clamp(.9rem,1.2vw,1.1rem)/1.3 var(--font-heading);transition:transform .25s,box-shadow .25s}.service-articles a:hover{transform:translateY(-3px);box-shadow:0 14px 25px rgb(8 67 88 / 9%)}.service-articles a span{color:var(--color-magenta);font-size:1.25rem}
@media(max-width:760px){.service-articles{grid-template-columns:1fr;gap:1rem;padding:2.3rem var(--space-page)}.service-articles h2{font-size:clamp(1.7rem,6.5vw,2.3rem)}}
