/* Universal child service pages. Shared Hero, FAQ, CTA, geography, cards and case remain in existing components. */
.service-child {
    --child-primary: var(--color-primary, #0b4a8b);
    --child-primary-dark: var(--color-primary-dark, #073866);
    --child-primary-bright: #0861c2;
    --child-text: var(--color-text, #102033);
    --child-muted: var(--color-muted, #5f6f82);
    --child-line: var(--color-border, #d9e6f0);
    --child-soft: var(--color-bg-soft, #f5f9fc);
    --child-pale: #eaf4ff;
    --child-surface: #ffffff;
    --child-shadow: 0 18px 42px rgba(7, 56, 102, .09);
    --child-shadow-soft: 0 10px 28px rgba(7, 56, 102, .06);
    --parent-primary: var(--child-primary);
    --parent-primary-dark: var(--child-primary-dark);
    --parent-text: var(--child-text);
    --parent-muted: var(--child-muted);
    --parent-line: var(--child-line);
    --parent-soft: var(--child-soft);
    --parent-pale: var(--child-pale);
    --parent-surface: var(--child-surface);
    --parent-shadow: var(--child-shadow);
    --parent-shadow-soft: var(--child-shadow-soft);
    color: var(--child-text);
    overflow: clip;
}

.service-child__top {
    padding-bottom: clamp(24px, 4vw, 54px);
}

.service-child-template-page .service-hero {
    margin-bottom: 24px;
    border-color: rgba(11, 74, 139, .22);
    background: linear-gradient(145deg, var(--child-primary-dark), #0b4b87);
}

.service-child-template-page .service-hero .service-page__eyebrow {
    color: #dcecff;
    background: transparent;
}

.service-child-template-page .service-hero .service-page__eyebrow::before {
    background: #76b7ff;
}

.service-child-template-page .service-hero__content {
    padding-bottom: 42px;
}

.service-child-template-page .service-hero__actions .btn--secondary {
    color: #fff;
    border-color: rgba(255,255,255,.34);
    background: rgba(255,255,255,.08);
}

.service-child-template-page .service-hero__actions .btn--secondary:hover,
.service-child-template-page .service-hero__actions .btn--secondary:focus-visible {
    background: rgba(255,255,255,.16);
}

.service-child-nav {
    position: sticky;
    top: var(--header-height, 82px);
    z-index: 18;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 10px 12px;
    overflow: hidden;
    border: 1px solid var(--child-line);
    border-radius: 16px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 10px 26px rgba(7,56,102,.07);
    backdrop-filter: blur(12px);
}

.service-child-nav__label {
    flex: 0 0 auto;
    padding: 8px 10px;
    color: var(--child-primary-dark);
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}

.service-child-nav__track {
    display: flex;
    gap: 7px;
    min-width: 0;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
}

.service-child-nav__track a {
    flex: 0 0 auto;
    padding: 9px 12px;
    color: var(--child-primary-dark);
    border-radius: 999px;
    background: var(--child-soft);
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.service-child-nav__track a:hover,
.service-child-nav__track a:focus-visible {
    color: #fff;
    background: var(--child-primary);
}

.service-child-editor-content {
    margin-top: clamp(34px, 5vw, 64px);
}

.service-child__blocks {
    display: grid;
    gap: clamp(64px, 8vw, 110px);
    padding-bottom: clamp(70px, 9vw, 120px);
}

.child-service-section {
    min-width: 0;
    scroll-margin-top: 150px;
}

.child-service-section--soft,
.child-service-section--pale,
.child-service-section--dark {
    position: relative;
    padding: clamp(30px, 5vw, 62px);
    border-radius: 28px;
}

.child-service-section--soft {
    border: 1px solid var(--child-line);
    background: linear-gradient(180deg, var(--child-soft), #fff);
}

.child-service-section--pale {
    border: 1px solid #cfe2f5;
    background: linear-gradient(145deg, #eef7ff, #fff);
}

.child-service-section--dark {
    color: #fff;
    background: linear-gradient(145deg, var(--child-primary-dark), #0b2e54);
    box-shadow: var(--child-shadow);
}

.child-service-section__head {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(280px, .65fr);
    gap: clamp(24px, 4vw, 64px);
    align-items: end;
    margin-bottom: clamp(28px, 4vw, 48px);
}

.child-service-section__head--center {
    display: block;
    max-width: 900px;
    margin-inline: auto;
    text-align: center;
}

.child-service__eyebrow {
    margin: 0 0 10px;
    color: var(--child-primary-bright);
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.child-service-section__title {
    margin: 0;
    color: var(--child-primary-dark);
    font-family: var(--font-heading, "Onest", "Inter", Arial, sans-serif);
    font-size: clamp(30px, 3.6vw, 48px);
    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -.025em;
    overflow-wrap: anywhere;
}

.child-service-section__lead {
    max-width: 680px;
    margin: 0;
    color: var(--child-muted);
    font-size: clamp(16px, 1.25vw, 18px);
    line-height: 1.65;
}

.child-service-section__head--center .child-service-section__lead {
    margin: 16px auto 0;
}

.child-service-section--dark .child-service__eyebrow,
.child-service-section--dark .child-service-section__title {
    color: #fff;
}

.child-service-section--dark .child-service-section__lead {
    color: rgba(255,255,255,.72);
}

.child-service-result-grid,
.child-service-scope-grid,
.child-service-anatomy-grid,
.child-service-deliverables-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.child-service-scope-grid,
.child-service-anatomy-grid,
.child-service-deliverables-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.child-service-card {
    position: relative;
    min-width: 0;
    padding: 26px;
    border: 1px solid var(--child-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--child-shadow-soft);
}

.child-service-card__number {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    margin-bottom: 18px;
    color: var(--child-primary-bright);
    border-radius: 12px;
    background: var(--child-pale);
    font-size: 13px;
    font-weight: 900;
}

.child-service-card h3,
.child-service-card p {
    margin: 0;
}

.child-service-card h3 {
    color: var(--child-primary-dark);
    font-size: 20px;
    line-height: 1.3;
}

.child-service-card p {
    margin-top: 11px;
    color: var(--child-muted);
    font-size: 14px;
    line-height: 1.6;
}

.child-service-problems {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.child-service-problems article {
    min-width: 0;
    padding: 24px;
    border: 1px solid var(--child-line);
    border-radius: 18px;
    background: #fff;
}

.child-service-problems span {
    display: inline-flex;
    padding: 6px 9px;
    color: var(--child-primary-bright);
    border-radius: 999px;
    background: var(--child-pale);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .045em;
}

.child-service-problems h3 {
    margin: 14px 0 0;
    color: var(--child-primary-dark);
    font-size: 19px;
    line-height: 1.3;
}

.child-service-problems p {
    margin: 10px 0 0;
    color: var(--child-muted);
    font-size: 14px;
    line-height: 1.58;
}

.child-service-journey {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
}

.child-service-journey article {
    position: relative;
    min-width: 0;
    padding: 23px 18px;
    border: 1px solid var(--child-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--child-shadow-soft);
}

.child-service-journey article:not(:last-child)::after {
    position: absolute;
    top: 27px;
    right: -19px;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 24px;
    height: 24px;
    color: #fff;
    border-radius: 50%;
    background: var(--child-primary-bright);
    font-size: 12px;
    content: "→";
}

.child-service-journey b,
.child-service-journey strong,
.child-service-journey span {
    display: block;
}

.child-service-journey b {
    color: var(--child-primary-bright);
    font-size: 13px;
}

.child-service-journey strong {
    margin-top: 12px;
    color: var(--child-primary-dark);
    font-size: 17px;
}

.child-service-journey span {
    margin-top: 7px;
    color: var(--child-muted);
    font-size: 12px;
    line-height: 1.5;
}

.child-service-system {
    display: grid;
    grid-template-columns: minmax(280px, .82fr) minmax(0, 1.18fr);
    gap: clamp(28px, 5vw, 72px);
    align-items: center;
}

.child-service-system__core {
    position: relative;
    display: grid;
    place-items: center;
    min-height: 330px;
    padding: 50px;
    text-align: center;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%, rgba(118,183,255,.32), transparent 34%), rgba(255,255,255,.08);
}

.child-service-system__core::before,
.child-service-system__core::after {
    position: absolute;
    border: 1px dashed rgba(118,183,255,.42);
    border-radius: 50%;
    content: "";
}

.child-service-system__core::before { inset: 18px; }
.child-service-system__core::after { inset: 40px; }

.child-service-system__core span,
.child-service-system__core strong,
.child-service-system__core small {
    position: relative;
    z-index: 2;
    display: block;
}

.child-service-system__core span {
    color: #9dcdff;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.child-service-system__core strong {
    margin-top: 13px;
    color: #fff;
    font-size: clamp(22px, 2.3vw, 32px);
    line-height: 1.2;
}

.child-service-system__core small {
    max-width: 280px;
    margin-top: 12px;
    color: rgba(255,255,255,.68);
    font-size: 13px;
    line-height: 1.55;
}

.child-service-system__items {
    display: grid;
    gap: 12px;
}

.child-service-system__items article {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 15px;
    align-items: start;
    padding: 18px;
    border: 1px solid rgba(255,255,255,.13);
    border-radius: 16px;
    background: rgba(255,255,255,.07);
}

.child-service-system__items b {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    color: #fff;
    border-radius: 12px;
    background: rgba(118,183,255,.18);
    font-size: 12px;
}

.child-service-system__items h3,
.child-service-system__items p {
    margin: 0;
}

.child-service-system__items h3 {
    color: #fff;
    font-size: 17px;
}

.child-service-system__items p {
    margin-top: 5px;
    color: rgba(255,255,255,.65);
    font-size: 13px;
    line-height: 1.5;
}

.child-service-architecture {
    display: grid;
    grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr);
    gap: clamp(24px, 4vw, 52px);
    align-items: start;
}

.child-service-architecture > aside {
    position: sticky;
    top: 150px;
    padding: 28px;
    border-radius: 20px;
    background: linear-gradient(145deg, var(--child-primary-dark), #0b4b87);
    box-shadow: var(--child-shadow);
}

.child-service-architecture > aside h3,
.child-service-architecture > aside p { margin: 0; }
.child-service-architecture > aside h3 { color: #fff; font-size: 24px; line-height: 1.25; }
.child-service-architecture > aside p { margin-top: 14px; color: rgba(255,255,255,.72); line-height: 1.65; }

.child-service-architecture__tree {
    display: grid;
    gap: 12px;
}

.child-service-architecture__tree article {
    display: grid;
    grid-template-columns: minmax(120px, .36fr) minmax(0, 1fr);
    gap: 18px;
    align-items: center;
    padding: 20px;
    border: 1px solid var(--child-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--child-shadow-soft);
}

.child-service-architecture__tree > article > span {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 9px 12px;
    color: var(--child-primary-bright);
    border-radius: 12px;
    background: var(--child-pale);
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 12px;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.child-service-architecture__tree h3,
.child-service-architecture__tree p { margin: 0; }
.child-service-architecture__tree h3 { color: var(--child-primary-dark); font-size: 18px; }
.child-service-architecture__tree p { margin-top: 5px; color: var(--child-muted); font-size: 13px; line-height: 1.55; }

.child-service-matrix-wrap {
    max-width: 100%;
    overflow-x: auto;
    border: 1px solid var(--child-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--child-shadow-soft);
    scrollbar-width: thin;
}

.child-service-matrix {
    width: 100%;
    min-width: 860px;
    border-collapse: collapse;
}

.child-service-matrix th,
.child-service-matrix td {
    padding: 18px 20px;
    text-align: left;
    vertical-align: top;
    border-bottom: 1px solid var(--child-line);
}

.child-service-matrix th {
    color: #fff;
    background: var(--child-primary-dark);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .035em;
}

.child-service-matrix td {
    color: var(--child-muted);
    font-size: 13px;
    line-height: 1.55;
}

.child-service-matrix td:first-child,
.child-service-matrix td:nth-child(3) {
    color: var(--child-primary-dark);
    font-weight: 800;
}

.child-service-matrix tbody tr:last-child td { border-bottom: 0; }

.child-service-scale {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.child-service-scale article {
    min-width: 0;
    padding: 26px;
    border: 1px solid var(--child-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--child-shadow-soft);
}

.child-service-scale b {
    display: inline-flex;
    padding: 7px 11px;
    color: var(--child-primary-bright);
    border-radius: 999px;
    background: var(--child-pale);
    font-size: 12px;
}

.child-service-scale h3,
.child-service-scale p { margin: 0; }
.child-service-scale h3 { margin-top: 15px; color: var(--child-primary-dark); font-size: 20px; }
.child-service-scale p { margin-top: 9px; color: var(--child-muted); font-size: 14px; line-height: 1.58; }

.child-service-metrics {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 10px;
}

.child-service-metrics article {
    position: relative;
    min-width: 0;
    padding: 20px 14px;
    text-align: center;
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 15px;
    background: rgba(255,255,255,.08);
}

.child-service-metrics article:not(:last-child)::after {
    position: absolute;
    top: 50%;
    right: -11px;
    z-index: 2;
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    color: var(--child-primary-dark);
    border-radius: 50%;
    background: #fff;
    font-size: 12px;
    font-weight: 900;
    transform: translateY(-50%);
    content: "→";
}

.child-service-metrics strong,
.child-service-metrics span { display: block; }
.child-service-metrics strong { color: #fff; font-size: 15px; }
.child-service-metrics span { margin-top: 6px; color: rgba(255,255,255,.67); font-size: 12px; line-height: 1.45; }

.child-service-roadmap {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.child-service-roadmap article {
    min-width: 0;
    padding: 27px;
    border: 1px solid var(--child-line);
    border-radius: 20px;
    background: #fff;
    box-shadow: var(--child-shadow-soft);
}

.child-service-roadmap b {
    display: inline-flex;
    padding: 7px 11px;
    color: var(--child-primary-bright);
    border-radius: 999px;
    background: var(--child-pale);
    font-size: 12px;
}

.child-service-roadmap h3 { margin: 15px 0 0; color: var(--child-primary-dark); font-size: 20px; }
.child-service-roadmap ul { margin: 15px 0 0; padding-left: 19px; color: var(--child-muted); font-size: 14px; line-height: 1.65; }

.child-service-price {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(300px, .7fr);
    gap: clamp(24px, 4vw, 50px);
    align-items: start;
}

.child-service-price__list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.child-service-price__list article {
    padding: 20px;
    border: 1px solid var(--child-line);
    border-radius: 16px;
    background: #fff;
}

.child-service-price__list strong,
.child-service-price__list span { display: block; }
.child-service-price__list strong { color: var(--child-primary-dark); font-size: 16px; }
.child-service-price__list span { margin-top: 7px; color: var(--child-muted); font-size: 13px; line-height: 1.55; }

.child-service-price__box {
    position: sticky;
    top: 150px;
    padding: 30px;
    border-radius: 22px;
    background: linear-gradient(145deg, var(--child-primary-dark), #0b4b87);
    box-shadow: var(--child-shadow);
}

.child-service-price__box h3,
.child-service-price__box p { margin: 0; }
.child-service-price__box h3 { color: #fff; font-size: 25px; line-height: 1.25; }
.child-service-price__box p { margin-top: 14px; color: rgba(255,255,255,.72); line-height: 1.65; }
.child-service-price__box .btn { margin-top: 24px; width: 100%; }

/* Shared page blocks keep one instance and align with the child layout. */
.service-child__blocks > .service-faq-dark,
.service-child__blocks > .service-cta,
.service-child__blocks > .geo-work {
    margin: 0;
}

.service-child__blocks > .geo-work {
    margin-top: 0;
}

@media (max-width: 1180px) {
    .child-service-result-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .child-service-scope-grid,
    .child-service-anatomy-grid,
    .child-service-deliverables-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .child-service-journey { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .child-service-journey article:nth-child(3)::after { display: none; }
    .child-service-scale,
    .child-service-roadmap { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .child-service-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .child-service-metrics article:nth-child(3)::after { display: none; }
}

@media (max-width: 900px) {
    .service-child-nav { top: 68px; }
    .service-child-nav__label { display: none; }
    .child-service-section__head { grid-template-columns: 1fr; align-items: start; }
    .child-service-problems { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .child-service-system,
    .child-service-architecture,
    .child-service-price { grid-template-columns: 1fr; }
    .child-service-system__core { max-width: 430px; width: 100%; margin-inline: auto; }
    .child-service-architecture > aside,
    .child-service-price__box { position: static; }
    .parent-service-children { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
    .service-child__blocks { gap: 58px; }
    .child-service-section--soft,
    .child-service-section--pale,
    .child-service-section--dark { padding: 26px 20px; border-radius: 22px; }
    .child-service-result-grid,
    .child-service-scope-grid,
    .child-service-anatomy-grid,
    .child-service-deliverables-grid,
    .child-service-problems,
    .child-service-scale,
    .child-service-roadmap,
    .child-service-price__list,
    .parent-service-children { grid-template-columns: 1fr; }
    .child-service-journey { grid-template-columns: 1fr; }
    .child-service-journey article:not(:last-child)::after {
        top: auto;
        right: 50%;
        bottom: -19px;
        transform: translateX(50%) rotate(90deg);
    }
    .child-service-system__core { min-height: 290px; padding: 38px; }
    .child-service-architecture__tree article { grid-template-columns: 1fr; }
    .child-service-metrics { grid-template-columns: 1fr; }
    .child-service-metrics article:not(:last-child)::after {
        top: auto;
        right: 50%;
        bottom: -16px;
        transform: translateX(50%) rotate(90deg);
    }
    .parent-service-case-card { grid-template-columns: 1fr; }
    .parent-service-case-card__image { min-height: 240px; }
}

@media (max-width: 480px) {
    .service-child__top,
    .service-child__blocks { padding-inline: 16px; }
    .service-child-nav { margin-inline: -2px; padding: 8px; border-radius: 14px; }
    .service-child-nav__track a { padding: 8px 10px; font-size: 12px; }
    .child-service-section__title { font-size: clamp(27px, 9vw, 36px); }
    .child-service-card,
    .child-service-problems article,
    .child-service-scale article,
    .child-service-roadmap article { padding: 22px; }
    .child-service-system__core { min-height: 250px; padding: 32px 24px; }
    .child-service-system__core::before { inset: 12px; }
    .child-service-system__core::after { inset: 28px; }
    .child-service-system__items article { grid-template-columns: 36px minmax(0,1fr); padding: 16px; }
    .child-service-system__items b { width: 34px; height: 34px; }
    .child-service-matrix { min-width: 760px; }
    .child-service-price__box { padding: 25px; }
}

@media (prefers-reduced-motion: reduce) {
    .service-child *,
    .service-child *::before,
    .service-child *::after { scroll-behavior: auto !important; transition: none !important; }
}


/* Architecture: the row title is the link, URL chips are removed. */
.child-service-architecture--no-summary { grid-template-columns: minmax(0, 1fr); }
.child-service-architecture__tree article {
    position: relative;
    grid-template-columns: minmax(0, 1fr);
    gap: 0;
}
.child-service-architecture__title {
    color: var(--child-primary-dark);
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
}
.child-service-architecture__link {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: rgba(11, 75, 135, .28);
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
    transition: color .2s ease, text-decoration-color .2s ease;
}
/* The whole card is clickable through the title link. */
.child-service-architecture__link::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
}
.child-service-architecture__tree article.has-link { transition: border-color .2s ease, box-shadow .2s ease; }
.child-service-architecture__tree article.has-link:hover { border-color: var(--child-primary-bright); }
.child-service-architecture__link:hover,
.child-service-architecture__link:focus-visible {
    color: var(--child-primary-bright);
    text-decoration-color: currentColor;
}
.child-service-architecture__link:focus-visible { outline: none; }
.child-service-architecture__tree article.has-link:focus-within { outline: 2px solid var(--child-primary-bright); outline-offset: 2px; }
