/* Service narratives. Scoped so the approved home and institutional pages stay intact. */
.service-story { --story-green:#13584b; --story-muted:#526a78; --teal:#036675; }
.service-story p { text-wrap:pretty; }
.service-story h1,.service-story h2 { text-wrap:balance; }
.service-story [id] { scroll-margin-top:130px; }
.service-story .st-hero { padding:22px 0 48px; }
.service-story .breadcrumbs { margin:0 0 28px; font-size:12px; }
.st-hero-grid { display:grid; grid-template-columns:1.05fr 1fr; gap:64px; align-items:center; }
.st-kicker { display:block; font-size:11px; font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:var(--teal); margin-bottom:18px; }
.service-story h1 { font-size:clamp(32px,3.05vw,46px); line-height:1.12; letter-spacing:-.035em; margin:0 0 24px; }
.service-story h1 em { font-style:normal; color:var(--story-green); }
.st-intro { font-size:17px; line-height:1.75; color:var(--story-muted); max-width:560px; margin:0 0 25px; }
.st-actions { display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.service-story .btn { font-size:14px; min-height:48px; }
.st-link { display:inline-flex; gap:16px; align-items:center; font-size:13px; font-weight:700; color:var(--ink); padding:10px 0; }
.st-link:hover { color:var(--teal); text-decoration:underline; text-underline-offset:5px; }
.st-hero-photo { margin:0; position:relative; padding:0 0 28px 24px; }
.st-hero-photo::before { content:''; position:absolute; inset:48px 0 0 0; background:var(--lime-tint); border-radius:100px 30px 100px 30px; }
.st-hero-photo > img { position:relative; width:100%; height:440px; object-fit:cover; object-position:center 38%; border-radius:64px 24px 64px 24px; }
.st-hero-photo figcaption { position:absolute; bottom:8px; left:0; background:white; border:1px solid var(--line); border-radius:12px; max-width:280px; padding:16px 22px; box-shadow:0 12px 24px #233f570b; font-size:13px; line-height:1.5; }
.st-hero-photo figcaption small { display:block; color:var(--teal); font-size:10px; text-transform:uppercase; letter-spacing:.1em; margin-bottom:5px; }
.st-hero-photo figcaption strong { font-size:15px; }
.st-assurance { display:flex; flex-wrap:wrap; gap:10px 22px; border-top:1px solid var(--line); padding-top:20px; margin-top:28px; font-size:11px; color:var(--story-muted); }
.st-assurance span::before { content:'✓'; color:var(--teal); margin-right:7px; }
.st-nav { border-block:1px solid var(--line); background:white; }
.st-nav .container { display:flex; gap:30px; align-items:center; flex-wrap:wrap; padding-block:15px; }
.st-nav a { font-size:12px; font-weight:600; color:var(--story-muted); display:inline-flex; align-items:center; min-height:36px; }
.st-nav a:last-child { margin-left:auto; color:var(--teal); }
.st-block { padding:64px 0; }
.st-white { background:#fff; }
.st-tint { background:#edf3ed; }
.st-heading { display:grid; grid-template-columns:1.15fr .85fr; gap:64px; align-items:end; margin-bottom:32px; }
.service-story h2 { font-size:clamp(27px,2.5vw,36px); line-height:1.18; margin-bottom:16px; }
.st-heading h2 { margin-bottom:0; }
.st-heading p { margin:0; font-size:15px; color:var(--story-muted); line-height:1.75; }
.st-photo-duo { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.st-photo-panel { margin:0; overflow:hidden; border-radius:24px; background:var(--paper); }
.st-photo-panel > img { width:100%; height:280px; object-fit:cover; object-position:center 25%; }
.st-photo-panel > div { padding:25px 30px; }
.st-photo-panel h3 { font-size:23px; margin-bottom:10px; }
.st-photo-panel p { font-size:14px; line-height:1.7; color:var(--story-muted); margin-bottom:8px; }
.st-photo-panel .st-kicker { margin-bottom:10px; }
.st-photo-panel:nth-child(2) { background:#edf3ed; }
.st-logos { display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; padding:26px 0; border-bottom:1px solid var(--line); }
.st-logos > span { font-size:11px; max-width:150px; line-height:1.6; font-weight:600; }
.st-logos img { width:105px; height:34px; object-fit:contain; }
.st-fine { color:var(--story-muted); font-size:11px; line-height:1.6; margin:12px 0 0; }
.st-split { display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:center; }
.st-split p { color:var(--story-muted); font-size:15px; line-height:1.75; }
.st-photo { margin:0; position:relative; }
.st-photo img { width:100%; height:430px; object-fit:cover; border-radius:24px 64px 24px 24px; }
.st-photo figcaption { padding-top:12px; font-size:11px; color:var(--story-muted); }
.st-list { margin:24px 0; padding:0; list-style:none; }
.st-list li { display:grid; grid-template-columns:28px 1fr; gap:12px; border-top:1px solid #233f5724; padding:17px 0; }
.st-list li > span { color:var(--teal); font-size:12px; font-weight:700; padding-top:3px; }
.st-list h3 { font-size:17px; line-height:1.3; margin:0 0 6px; }
.st-list p { margin:0; font-size:13px; line-height:1.65; }
.st-mini-cta { border-top:1px solid var(--line); margin-top:28px; padding-top:22px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.st-mini-cta p { margin:0; max-width:570px; font-size:14px; }
.st-mini-cta strong { display:block; margin-bottom:4px; }
.st-wallet { background:var(--story-green); border-radius:32px 32px 80px 32px; padding:38px; color:white; }
.st-wallet > p { color:#d8e8de; font-size:14px; }
.st-wallet h3 { color:white; font-size:24px; }
.st-wallet-list { list-style:none; padding:0; margin:24px 0 0; }
.st-wallet-list li { display:flex; gap:15px; align-items:center; padding:14px 0; border-top:1px solid #ffffff30; font-size:14px; }
.st-wallet-list span { color:var(--lime); font-size:11px; }
.st-wallet .st-fine { color:#d8e8de; }
.st-route { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin:32px 0; }
.st-route article { border-top:2px solid var(--teal); padding-top:18px; position:relative; }
.st-route article::before { content:''; position:absolute; top:-7px; left:0; width:12px; height:12px; border-radius:50%; background:var(--lime); border:2px solid var(--teal); }
.st-route h3 { font-size:18px; line-height:1.3; }
.st-route p { color:var(--story-muted); font-size:14px; line-height:1.7; }
.st-focus { background:var(--story-green); padding:36px; border-radius:24px; color:white; }
.st-focus h3 { color:white; font-size:26px; }
.st-focus p { color:#d8e8de; }
.st-focus .st-kicker { color:var(--lime); }
.st-focus .st-link { color:white; }
.st-ledger { border-top:1px solid var(--line); }
.st-ledger article { display:grid; grid-template-columns:160px 1fr; gap:28px; padding:24px 0; border-bottom:1px solid var(--line); }
.st-ledger h3 { font-size:19px; line-height:1.25; margin:0; }
.st-ledger p { margin:0; }
.st-feature-photo { min-height:410px; position:relative; overflow:hidden; border-radius:32px; display:flex; align-items:flex-end; }
.st-feature-photo > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.st-feature-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,#142f38e8,transparent 85%); }
.st-feature-photo > div { position:relative; z-index:1; padding:32px; max-width:620px; }
.st-feature-photo h2,.st-feature-photo p,.st-feature-photo .st-kicker { color:white; }
.st-feature-photo p { font-size:15px; }
.st-health-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:30px; }
.st-health-grid article { border-top:1px solid #233f5724; padding-top:18px; }
.st-health-grid h3 { font-size:18px; }
.st-health-grid p { font-size:13px; margin:0; }
.st-faq { background:#fff; padding:54px 0; }
.st-faq-grid { display:grid; grid-template-columns:.7fr 1.3fr; gap:70px; align-items:start; }
.st-faq-intro p { font-size:14px; color:var(--story-muted); }
.st-faq details { border-top:1px solid var(--line); }
.st-faq details:last-child { border-bottom:1px solid var(--line); }
.st-faq summary { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:20px 0; font-weight:600; font-size:14px; list-style:none; cursor:pointer; }
.st-faq summary::-webkit-details-marker { display:none; }
.st-faq summary::after { content:'+'; font-size:23px; font-weight:400; color:var(--teal); }
.st-faq details[open] summary::after { content:'−'; }
.st-faq details p { font-size:14px; line-height:1.75; color:var(--story-muted); padding:0 30px 20px 0; margin:0; }
.st-close { background:var(--navy-deep); padding:48px 0; }
.st-close-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:60px; align-items:center; }
.st-close h2 { color:white; font-size:32px; }
.st-close p { color:#d6e4e9; font-size:14px; margin:0; max-width:600px; }
.st-close .st-kicker { color:var(--lime); }
.st-close-action { border-left:1px solid #ffffff30; padding-left:40px; }
.st-close-action > a:not(.btn) { color:white; display:block; font-size:12px; margin-top:14px; text-decoration:underline; text-underline-offset:4px; }
.service-story a:focus-visible,.service-story summary:focus-visible { outline:3px solid var(--teal); outline-offset:5px; }
@media(min-width:1000px) {
 .st-food .st-hero-photo > img { height:410px; }
 .st-health .st-hero-photo > img { height:470px; }
 .st-multi .st-hero-photo > img,.st-people .st-hero-photo > img { height:500px; object-position:center 65%; }
 .st-transit .st-hero-photo > img { object-position:center 65%; }
}
@media(max-width:1000px) {
 .st-hero-grid,.st-heading,.st-split { gap:32px; }
 .st-hero-photo > img { height:380px; }
 .st-faq-grid { gap:36px; }
 .st-ledger article { grid-template-columns:130px 1fr; gap:20px; }
}
@media(max-width:900px) {
 .service-story .st-hero { padding:18px 0 32px; }
 .st-hero-grid,.st-heading,.st-split,.st-faq-grid,.st-close-grid { grid-template-columns:1fr; gap:28px; }
 .service-story h1 { font-size:34px; }
 .st-intro { font-size:15px; }
 .st-hero-photo { padding:0 0 20px 15px; }
 .st-hero-photo > img { height:340px; object-position:center 35%; border-radius:40px 18px 40px 18px; }
 .st-hero-photo figcaption { padding:12px 16px; bottom:0; }
 .st-block { padding:42px 0; }
 .st-photo-duo { grid-template-columns:1fr; gap:20px; }
 .st-photo-panel > img { height:240px; }
 .st-photo-panel > div { padding:24px; }
 .st-logos { justify-content:flex-start; gap:22px; }
 .st-logos > span { width:100%; max-width:none; }
 .st-logos img { width:80px; height:30px; }
 .st-nav .container { gap:12px 24px; }
 .st-nav a:last-child { margin-left:0; }
 .st-photo img { height:310px; }
 .st-route { grid-template-columns:1fr; gap:16px; }
 .st-route article { border-top:0; border-left:2px solid var(--teal); padding:0 0 0 22px; }
 .st-route article::before { left:-7px; top:0; }
 .st-route p { margin-bottom:0; }
 .st-mini-cta { flex-direction:column; align-items:flex-start; gap:12px; }
 .st-wallet,.st-focus { padding:28px; }
 .st-health-grid { gap:20px; }
 .st-faq { padding:40px 0; }
 .st-close { padding:38px 0; }
 .st-close-action { border-left:0; padding:0; }
 .st-ledger article { grid-template-columns:1fr; gap:10px; }
 .st-feature-photo { min-height:360px; }
 .st-feature-photo > div { padding:24px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
