/* Service pages share the homepage chrome through site.css. */
.service-page { --service-muted: #b0b0b0; }
.service-page main { min-width: 0; }
.service-page :is(h1,h2,h3,p,a) { overflow-wrap: break-word; }
.service-page :is(a,button,input,textarea):focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
.service-page [id] { scroll-margin-top: 90px; }
.service-hero { padding-top: 32px; padding-bottom: 88px; }
.service-back { display: inline-flex; align-items: center; gap: 10px; color: var(--service-muted); font-size: .84rem; text-decoration: none; padding-block: 8px; }
.service-back:hover { color: #fff; }
.service-hero-grid { display: grid; grid-template-columns: 1.25fr 1fr; gap: clamp(32px,5vw,72px); align-items: center; margin-top: 55px; }
.service-hero-grid > * { min-width: 0; }
.service-eyebrow { font-size: .73rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; margin-bottom: 22px; }
.service-hero h1 { font-family: 'Syne',sans-serif; font-weight: 700; font-size: clamp(2.6rem,4.7vw,4.2rem); line-height: 1.08; letter-spacing: -.045em; text-wrap: balance; }
.service-lead { font-size: 1.05rem; line-height: 1.85; color: var(--service-muted); margin-top: 26px; max-width: 560px; }
.service-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.service-actions :is(.btn-primary,.btn-ghost) { font-size: .83rem; padding: 13px 19px; text-transform: none; letter-spacing: 0; font-weight: 500; }
.service-actions .btn-ghost { color: #c4c4c4; }
.service-diagram { position: relative; padding: clamp(22px,3vw,38px); border: 1px solid #ffffff25; border-radius: 8px; background: radial-gradient(ellipse at 100% 0%,#ffffff0b,transparent 65%),#111; box-shadow: 0 24px 80px #0005; }
.diagram-heading { display: flex; align-items: center; gap: 10px; font-size: .82rem; color: #c8c8c8; }
.diagram-dot { flex: none; width: 7px; height: 7px; border-radius: 50%; background: #eee; box-shadow: 0 0 0 5px #ffffff0b; }
.diagram-flow { display: grid; gap: 28px; margin: 32px 0; }
.diagram-node { position: relative; display: flex; align-items: center; gap: 16px; padding: 18px; background: #1b1b1b; border: 1px solid #ffffff21; border-radius: 4px; font-size: .92rem; }
.diagram-node:not(:last-child)::after { content: ''; position: absolute; height: 29px; width: 1px; top: 100%; left: 50%; background: #ffffff4d; }
.diagram-node:nth-child(2) { color: #161616; background: #f0efeb; border-color: #f0efeb; }
.diagram-index { font-size: .72rem; opacity: .6; font-variant-numeric: tabular-nums; }
.diagram-tools { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.diagram-tools span { border: 1px solid #ffffff24; padding: 5px 10px; border-radius: 3px; font-size: .7rem; color: #c4c4c4; }
.diagram-note { margin-top: 22px; font-size: .76rem; line-height: 1.65; text-align: center; color: #aaa; }
.service-benefits { background: #f0efeb; color: #171717; padding: 36px 0; }
.benefits-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 28px; }
.benefits-grid > div + div { border-left: 1px solid #0002; padding-left: 28px; }
.benefits-grid h2 { font-family: 'DM Sans',sans-serif; font-size: 1rem; font-weight: 600; line-height: 1.4; margin-bottom: 7px; }
.benefits-grid p { font-size: .86rem; line-height: 1.7; color: #535353; }
.service-section { padding: 80px 0; }
.service-section-heading { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; margin-bottom: 36px; }
.service-section-heading h2 { font-family: 'Syne',sans-serif; font-size: clamp(1.85rem,3.2vw,2.65rem); font-weight: 600; line-height: 1.2; letter-spacing: -.025em; text-wrap: balance; }
.service-section-heading > p { color: var(--service-muted); font-size: .96rem; line-height: 1.8; max-width: 520px; }
.provider-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.provider-card { padding: 28px; border: 1px solid var(--border-hover); border-radius: 4px; background: #121212; }
.provider-wordmark { display: flex; align-items: center; min-height: 66px; font-size: 1.2rem; font-weight: 500; letter-spacing: -.03em; border-bottom: 1px solid var(--border); padding-bottom: 20px; margin-bottom: 24px; }
.provider-card h3,.service-card h3 { font-family: 'DM Sans',sans-serif; font-size: 1.12rem; font-weight: 500; line-height: 1.45; margin-bottom: 12px; }
.provider-card p,.service-card p { font-size: .92rem; line-height: 1.85; color: var(--service-muted); }
.service-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.service-card { display: flex; align-items: flex-start; gap: 22px; padding: 30px; border: 1px solid var(--border); border-radius: 4px; background: #111; }
.service-card-number { flex: none; font-size: .76rem; font-variant-numeric: tabular-nums; color: #999; padding-top: 4px; }
.service-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
.service-card:last-child:nth-child(odd) p { max-width: 820px; }
.service-plan { background: #f0efeb; color: #171717; padding: 72px 0; }
.service-plan .service-section-heading > p { color: #535353; }
.service-plan .service-eyebrow { color: #626262; margin-bottom: 16px; }
.service-steps { list-style: none; counter-reset: service-step; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 36px; }
.service-steps li { counter-increment: service-step; border-top: 1px solid #0003; padding-top: 20px; }
.service-steps li::before { content: '0' counter(service-step); display: block; color: #666; font-size: .75rem; margin-bottom: 20px; }
.service-steps h3 { font-size: 1.05rem; font-weight: 600; line-height: 1.4; margin-bottom: 10px; }
.service-steps p { color: #535353; font-size: .92rem; line-height: 1.8; }
.service-related { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; padding-block: 30px; border-bottom: 1px solid var(--border); }
.service-related p { color: var(--service-muted); font-size: .88rem; }
.service-related a { color: #f0f0f0; font-size: 1rem; text-decoration: underline; text-underline-offset: 5px; }
.service-page .contact-info p,.service-page .form-field label { color: #aaa; }
.service-page .contact-detail-val a { overflow-wrap: anywhere; }
@media (max-width: 960px) {
  .service-hero-grid { grid-template-columns: 1fr; gap: 40px; }
  .service-hero h1 { max-width: 760px; font-size: clamp(2.6rem,6vw,4.2rem); }
  .service-lead { max-width: 660px; }
  .service-diagram { max-width: 640px; width: 100%; }
  .provider-grid { grid-template-columns: 1fr; }
  .provider-card { display: grid; grid-template-columns: 1fr 2fr; gap: 0 28px; }
  .provider-wordmark { grid-row: span 2; border-bottom: 0; margin: 0; padding: 0; align-items: flex-start; }
}
@media (max-width: 700px) {
  .service-hero { padding-top: 20px; padding-bottom: 48px; }
  .service-hero-grid { margin-top: 32px; }
  .service-hero h1 { font-size: clamp(2.2rem,8.5vw,3.6rem); }
  .service-lead { font-size: 1rem; }
  .service-section { padding: 54px 0; }
  .service-section-heading { grid-template-columns: 1fr; gap: 18px; margin-bottom: 28px; }
  .service-cards { grid-template-columns: 1fr; }
  .service-card { padding: 24px 20px; gap: 16px; }
  .benefits-grid { grid-template-columns: 1fr; gap: 22px; }
  .benefits-grid > div + div { border-left: 0; padding-left: 0; border-top: 1px solid #0002; padding-top: 22px; }
  .service-steps { grid-template-columns: 1fr; gap: 24px; }
  .service-steps li::before { margin-bottom: 10px; }
  .service-plan { padding: 48px 0; }
  .provider-card { display: block; padding: 24px; }
  .provider-wordmark { min-height: 0; margin-bottom: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .service-page { scroll-behavior: auto; }
  html:has(.service-page) { scroll-behavior: auto; }
  .service-page .reveal { opacity: 1; transform: none; transition: none; }
}
