/* Service overview shares the homepage palette and illustrations. */
.solutions-hub { --solution-soft: color-mix(in srgb,var(--blue) 7%,var(--surface)); }
.solutions-hub > *, .solutions-hub .wp-block-group > * { margin-block-start: 0; }
.solutions-hub :where(h2, h3, p, li, a) { min-width: 0; overflow-wrap: anywhere; }
.solutions-hub .solutions-intro {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
    gap: 40px;
    align-items: center;
    padding: clamp(28px, 4.5vw, 64px);
    border: 1px solid color-mix(in srgb,var(--cyan) 20%,var(--ink));
    border-radius: 24px;
    color: #fff;
    background: radial-gradient(ellipse at 85% 30%, color-mix(in srgb,color-mix(in srgb,var(--navy) 64%,var(--cyan)) 41.96%,transparent), transparent 58%), var(--navy);
    overflow: hidden;
}
.solutions-intro::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    opacity: .2;
    pointer-events: none;
    background: var(--media-network,url("../icons/ecosystem-network.svg")) center / cover no-repeat;
}
.solutions-intro-copy { min-width: 0; }
.solutions-intro-copy .eyebrow { color: var(--cyan); margin-bottom: 20px; }
.solutions-intro-copy h2 { color: #fff; font-size: clamp(30px, 3.4vw, 46px); line-height: 1.3; margin-bottom: 22px; text-wrap: balance; }
.solutions-intro-copy > p:not(.eyebrow) { color: color-mix(in srgb,var(--muted) 16%,var(--border)); font-size: 16px; line-height: 1.85; max-width: 53ch; margin-bottom: 28px; }
.solutions-intro-copy a { display: inline-flex; align-items: center; gap: 22px; min-height: 48px; padding: 11px 20px; color: var(--navy); background: var(--cyan); border: 1px solid var(--cyan); border-radius: 8px; font-size: 15px; font-weight: 600; text-decoration: none; }
.solutions-intro-copy a:hover { background: color-mix(in srgb,var(--cyan) 55%,var(--surface)); border-color: color-mix(in srgb,var(--cyan) 55%,var(--surface)); }
.solutions-intro-copy > p:last-child { margin-bottom: 0; }
.solutions-orbit {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) minmax(0, 1fr);
    grid-template-areas: '. ai .' 'web core otp' '. bot .';
    gap: 8px;
    width: 100%;
    max-width: 380px;
    margin-inline: auto;
    background: radial-gradient(ellipse, color-mix(in srgb,color-mix(in srgb,var(--navy) 49%,var(--cyan)) 21.96%,transparent), transparent 70%);
}
.solutions-orbit::before, .solutions-orbit::after { content: ''; position: absolute; inset: 10%; border: 1px solid color-mix(in srgb,color-mix(in srgb,var(--cyan) 56%,var(--border)) 25.10%,transparent); border-radius: 50%; }
.solutions-orbit::after { inset: 23%; border-style: dashed; }
.solutions-orbit-core { grid-area: core; min-width: 0; align-self: center; display: grid; place-items: center; padding: 14px 4px; overflow-wrap: anywhere; text-align: center; border-radius: 12px; background: color-mix(in srgb,var(--blue) 15%,var(--ink)); border: 1px solid color-mix(in srgb,color-mix(in srgb,var(--blue) 56%,var(--border)) 40.00%,transparent); color: #fff; font-size: clamp(14px, 1.3vw, 18px); font-weight: 700; letter-spacing: .5px; box-shadow: 0 8px 36px color-mix(in srgb,color-mix(in srgb,var(--navy) 99%,var(--ink)) 40.00%,transparent); }
.solutions-orbit-node { display: flex; justify-content: center; align-items: flex-end; min-width: 0; min-height: 100px; padding: 74px 6px 8px; overflow-wrap: anywhere; text-align: center; color: color-mix(in srgb,var(--blue) 11%,var(--border)); font-size: 10px; line-height: 1.4; font-weight: 600; border: 1px solid color-mix(in srgb,color-mix(in srgb,var(--blue) 55%,var(--surface)) 26.67%,transparent); border-radius: 20px; background-color: color-mix(in srgb,var(--cyan) 7%,var(--ink)); background-position: center 4px; background-size: 72px; background-repeat: no-repeat; box-shadow: 0 16px 30px color-mix(in srgb,color-mix(in srgb,var(--navy) 99%,var(--ink)) 20.00%,transparent); }
.solutions-orbit-ai { grid-area: ai; background-image: var(--service-art,var(--media-ai,url("../icons/ecosystem-ai.svg"))); }
.solutions-orbit-otp { grid-area: otp; background-image: var(--service-art,var(--media-otp,url("../icons/ecosystem-otp.svg"))); }
.solutions-orbit-bot { grid-area: bot; background-image: var(--service-art,var(--media-bot,url("../icons/ecosystem-bot.svg"))); }
.solutions-orbit-web { grid-area: web; background-image: var(--service-art,var(--media-web,url("../icons/ecosystem-web.svg"))); }
.solutions-hub .solutions-services { position: relative; isolation: isolate; margin-block: 64px; scroll-margin-top: 28px; }
.solutions-services::before { content: ''; position: absolute; z-index: -1; inset: 50px -24px 0; background: var(--media-network,url("../icons/ecosystem-network.svg")) center / contain no-repeat; opacity: .65; pointer-events: none; }
.solutions-services > .eyebrow { margin-bottom: 12px; }
.solutions-services > h2 { margin-bottom: 16px; font-size: clamp(28px, 3vw, 38px); color: var(--navy); }
.solutions-services > p:not(.eyebrow) { color: var(--muted); font-size: 16px; margin-bottom: 32px; max-width: 65ch; }
.solutions-hub .solutions-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.solutions-grid > .solution-card {
    position: relative;
    min-width: 0;
    margin: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 156px;
    grid-template-rows: auto auto 1fr auto auto;
    column-gap: 16px;
    padding: 36px;
    border: 1px solid var(--border);
    border-radius: 22px;
    background: linear-gradient(145deg, var(--surface) 25%, var(--solution-soft));
    box-shadow: var(--shadow);
    transition: border-color .2s ease, box-shadow .2s ease;
}
.solutions-grid > .solution-card:hover, .solutions-grid > .solution-card:focus-within { border-color: color-mix(in srgb,var(--blue) 35%,var(--border)); box-shadow: 0 16px 40px color-mix(in srgb,color-mix(in srgb,var(--blue) 36%,var(--ink)) 6.27%,transparent); }
.solution-card.solution-otp { --solution-soft: color-mix(in srgb,var(--cyan) 3%,var(--page)); }
.solution-card.solution-bot { --solution-soft: color-mix(in srgb,var(--blue) 6%,var(--surface)); }
.solution-card.solution-web { --solution-soft: color-mix(in srgb,var(--cyan) 3%,var(--page)); }
.solution-art { grid-column: 2; grid-row: 1 / 3; width: 156px; aspect-ratio: 4 / 3; align-self: center; background: center / contain no-repeat; }
.solution-ai .solution-art { background-image: var(--service-art,var(--media-ai,url("../icons/ecosystem-ai.svg"))); }
.solution-otp .solution-art { background-image: var(--service-art,var(--media-otp,url("../icons/ecosystem-otp.svg"))); }
.solution-bot .solution-art { background-image: var(--service-art,var(--media-bot,url("../icons/ecosystem-bot.svg"))); }
.solution-web .solution-art { background-image: var(--service-art,var(--media-web,url("../icons/ecosystem-web.svg"))); }
.solution-card .solution-kicker { grid-column: 1; align-self: end; margin: 0 0 12px; color: var(--muted); font-size: 12px; line-height: 1.7; font-weight: 600; letter-spacing: 1px; }
.solution-card h3 { grid-column: 1; color: var(--navy); margin: 0 0 28px; font-size: clamp(23px, 2.3vw, 31px); line-height: 1.35; text-wrap: balance; }
.solution-card .solution-summary { grid-column: 1 / -1; font-size: 16px; color: var(--muted); margin: 0 0 24px; line-height: 1.8; }
.solution-card .solution-tags { grid-column: 1 / -1; display: flex; gap: 8px; flex-wrap: wrap; list-style: none; padding: 0; margin: 0 0 28px; }
.solution-tags li { padding: 5px 12px; color: color-mix(in srgb,var(--navy) 24%,var(--muted)); border: 1px solid color-mix(in srgb,var(--cyan) 2%,var(--border)); border-radius: 6px; background: color-mix(in srgb,var(--surface) 65.10%,transparent); font-size: 12px; line-height: 1.7; margin: 0; }
.solution-card .solution-action { grid-column: 1 / -1; margin: 0; padding-top: 18px; border-top: 1px solid var(--border); }
.solution-action a { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; color: var(--blue); font-size: 15px; font-weight: 600; text-decoration: none; }
.solution-action a > span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: color-mix(in srgb,var(--blue) 11%,var(--surface)); flex-shrink: 0; font-size: 21px; transition: background-color .2s; }
.solution-action a:hover > span { background: color-mix(in srgb,var(--blue) 19%,var(--surface)); }
.solutions-hub a:focus-visible { outline: 3px solid color-mix(in srgb,var(--cyan) 66%,var(--ink)); outline-offset: 5px; border-radius: 6px; }
.solutions-intro a:focus-visible { outline-color: #fff; }
.solutions-hub .solutions-consult { display: flex; justify-content: space-between; align-items: center; gap: 32px; padding: 40px; background: linear-gradient(120deg, color-mix(in srgb,var(--blue) 9%,var(--surface)), color-mix(in srgb,var(--cyan) 3%,var(--page))); border: 1px solid color-mix(in srgb,var(--cyan) 2%,var(--border)); border-radius: 22px; }
.solutions-consult-copy { max-width: 650px; min-width: 0; }
.solutions-consult-copy .eyebrow { margin-bottom: 12px; }
.solutions-consult h2 { font-size: clamp(24px, 2.6vw, 32px); color: var(--navy); margin-bottom: 14px; }
.solutions-consult-copy > p:last-child { margin-bottom: 0; color: var(--muted); font-size: 16px; }
.solutions-consult > .wp-block-buttons { margin: 0; flex-shrink: 0; }
@media (max-width: 1000px) {
    .solutions-hub .solutions-intro { gap: 24px; grid-template-columns: minmax(0, 1.2fr) minmax(240px, .8fr); }
    .solutions-grid > .solution-card { grid-template-columns: minmax(0, 1fr) 112px; padding: 28px; }
    .solution-art { width: 112px; }
    .solutions-hub .solutions-consult { flex-wrap: wrap; }
}
@media (max-width: 700px) {
    .solutions-hub .solutions-intro { grid-template-columns: minmax(0, 1fr); padding: 28px; border-radius: 18px; gap: 28px; }
    .solutions-intro-copy h2 { font-size: 30px; }
    .solutions-orbit { grid-template-columns: repeat(var(--service-count,4), minmax(0, 1fr)); grid-template-areas: none; gap: 8px; max-width: none; }
    .solutions-orbit::before, .solutions-orbit::after, .solutions-orbit-core { display: none; }
    .solutions-orbit-node { grid-area: auto; min-height: 82px; border-radius: 12px; background-size: 56px; background-position: center 2px; align-items: center; padding: 58px 2px 6px; }
    .solutions-hub .solutions-services { margin-block: 44px; }
    .solutions-services::before { inset-inline: 0; }
    .solutions-hub .solutions-grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .solutions-grid > .solution-card { grid-template-columns: minmax(0, 1fr) 112px; padding: 26px; border-radius: 18px; }
    .solutions-hub .solutions-consult { padding: 28px; border-radius: 18px; gap: 24px; }
}
@media (max-width: 400px) {
    .solutions-grid > .solution-card { grid-template-columns: minmax(0, 1fr) 88px; gap: 0 12px; padding: 24px; }
    .solution-art { width: 88px; }
    .solution-card h3 { font-size: 24px; }
    .solution-card .solution-kicker { letter-spacing: .5px; }
}
@media (prefers-reduced-motion: reduce) {
    .solutions-hub a, .solutions-hub .solution-card, .solution-action a > span { transition: none; }
}

.solutions-orbit-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-areas:none;gap:8px;max-width:none}
.solutions-orbit-grid:before,.solutions-orbit-grid:after,.solutions-orbit-grid .solutions-orbit-core{display:none}
.solutions-orbit-grid .solutions-orbit-node{grid-area:auto;min-height:82px;border-radius:12px;background-size:56px;background-position:center 2px;align-items:center;padding:58px 2px 6px}
@media(max-width:480px){.solutions-orbit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
