/* ============================================================================
   Human Service (Pages/Platform/Service.cshtml). Ported from "Human Service.dc.html".
   Hero backdrop is "Hero Backdrop" pattern "Wave interference", tone Light (purple lines, purple glow).
   Shared pieces (.hero, .subnav, .section, .card, .chat-msg, .cta-panel, ...) live in site.css. Razor only, no JS.
   ============================================================================ */

/* Visually hidden text for icon-only / symbol content. */

/* ---- Hero ---- */
.service-hero { padding: 80px 32px 68px; }
.service-hero .hero__title { font-size: 66px; line-height: 1.03; }
.service-hero .hero__lead { max-width: 740px; margin-top: 26px; }

/* ---- Call-outs (purple note, blue live-chat note) ---- */
.callout {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    border-radius: var(--r-card);
    padding: 22px 24px;
}
.callout--purple {
    margin-top: 24px;
    border: 1px solid rgba(122, 92, 224, .26);
    background: rgba(122, 92, 224, .06);
}
.callout--purple .callout__body { color: #3f3168; }
.callout--purple .callout__body strong { color: #2f2452; }
.callout__badge {
    flex: none;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--purple);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 14px;
    box-shadow: 0 6px 16px rgba(122, 92, 224, .30);
}
.callout__body { margin: 0; font-size: 15px; line-height: 1.6; text-wrap: pretty; }
.callout__body--lg { font-size: 16.5px; line-height: 1.65; color: var(--muted); }
.callout__body--lg strong { color: var(--ink); }
.callout--blue {
    margin-top: 26px;
    gap: 16px;
    padding: 28px 30px;
    border: 1px solid #cde9f6;
    background: #fff;
    box-shadow: 0 18px 40px rgba(28, 132, 179, .10);
}
.callout--blue .icon-well { flex: none; font-size: 16px; }

/* ---- Testimonial card ---- */
.quote-card {
    margin: 20px 0 0;
    border: 1px solid var(--line);
    border-radius: var(--r-card);
    background: var(--mist);
    padding: 24px 26px;
}
.quote-card__mark { display: block; color: var(--purple); font-size: 14px; }
.quote-card__text { margin: 12px 0 0; font-size: 15.5px; line-height: 1.6; color: var(--ink); text-wrap: pretty; }
.quote-card__who { margin-top: 12px; font-size: 13px; font-weight: 600; color: var(--steel); }

/* ---- Live-chat card (header + thread + footer; the thread bubbles are the shared .chat-msg) ---- */
.service-chat { padding: 32px; }
.service-chat__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--line);
}
.service-chat__label {
    font-size: 11.5px;
    letter-spacing: .16em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--steel);
}
.service-chat__status { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; font-weight: 600; color: #4e8f2f; }
.service-chat__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--green); }
.service-chat__thread { margin-top: 20px; display: flex; flex-direction: column; gap: 14px; }
.service-chat .chat-msg__avatar { font-size: 12px; }
.service-chat .chat-msg__bubble { padding: 13px 15px; line-height: 1.55; }
.service-chat__foot {
    margin: 22px 0 0;
    padding-top: 18px;
    border-top: 1px solid var(--line);
    display: flex;
    align-items: center;
    gap: 11px;
    font-size: 13.5px;
    color: var(--muted);
}
.service-chat__bolt { display: inline-flex; color: var(--gold); font-size: 12px; }

/* ---- How to reach us ---- */
.reach__intro { max-width: 820px; }
.reach__grid {
    margin-top: 44px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}
.reach-card { padding: 28px 24px; box-shadow: 0 14px 32px rgba(24, 34, 51, .06); }
.reach-card .icon-well { width: 42px; height: 42px; }
.reach-card .card__body { font-size: 14px; }

/* ---- The numbers (dark) ---- */
.ratings { position: relative; overflow: hidden; }
.ratings__inner { position: relative; }
.ratings__intro { max-width: 820px; }
.ratings__grid { margin-top: 44px; gap: 18px; }
.rating-card {
    min-width: 0;
    border: 1px solid rgba(255, 255, 255, .14);
    border-radius: var(--r-card);
    background: rgba(255, 255, 255, .05);
    padding: 30px 26px;
}
.rating-card__n { font-family: var(--font-display); font-size: 48px; line-height: 1; font-weight: 800; color: #fff; }
.rating-card__label { margin-top: 12px; font-size: 15px; font-weight: 600; color: #e4ecf5; }
.rating-card__note { margin: 8px 0 0; font-size: 13.5px; line-height: 1.55; color: var(--dk-dim); }
.ratings__row { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }
.ratings__pill {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 12px 18px;
    border-radius: 999px;
    background: rgba(122, 92, 224, .16);
    border: 1px solid rgba(122, 92, 224, .34);
    font-size: 14px;
    font-weight: 600;
    color: #e2dcff;
}
.ratings__pill .icon { height: 12px; width: auto; color: #c9b8ff; }
.ratings__source { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: #a9d6ee; }
.ratings__source:hover { color: #fff; }
.ratings__source .icon { height: 10px; width: auto; }
.ratings__close { margin-top: 26px; max-width: 820px; font-size: 16.5px; }

/* ---- The team ---- */
.specialists__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: 56px;
    align-items: center;
}
.specialists__strong { margin-top: 18px; color: var(--ink); font-weight: 600; }
.specialists__facts { min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.fact-card {
    display: flex;
    align-items: center;
    gap: 18px;
    border: 1px solid var(--line);
    border-radius: var(--r-card);
    background: #fff;
    padding: 30px 28px;
    box-shadow: 0 18px 40px rgba(24, 34, 51, .07);
}
.fact-card--purple {
    border-color: rgba(122, 92, 224, .26);
    background: rgba(122, 92, 224, .06);
    box-shadow: none;
}
.fact-card__icon {
    flex: none;
    width: 56px;
    height: 56px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
}
.fact-card__icon--green { background: #eef8e9; color: var(--green-d); --duo-secondary: var(--green); --duo-opacity: .4; }
.fact-card__icon--red { background: #fdecec; }
.fact-card__icon--purple { background: var(--purple); color: #fff; --duo-secondary: #c9b8ff; --duo-opacity: .5; font-size: 20px; box-shadow: 0 8px 20px rgba(122, 92, 224, .28); }
.fact-card__leaf { width: 27px; height: 27px; }
.fact-card__title { font-size: 20px; font-weight: 800; color: var(--ink); line-height: 1.2; }
.fact-card--purple .fact-card__title { color: #2f2452; }
.fact-card__body { margin: 6px 0 0; font-size: 14px; line-height: 1.55; color: var(--muted); }
.fact-card--purple .fact-card__body { color: #4a3a86; }

/* ---- Demo panel ---- */
.service-demo .cta-panel { padding: 84px 56px 96px; }
.service-demo .cta-panel__inner { max-width: 740px; }
.service-demo .cta-panel__swoops { top: auto; bottom: -40px; left: -190px; }

/* ---- Responsive ---- */
@media (max-width: 959px) {
    .platform-more { padding: 56px 24px 0; }
    .platform-more__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    
    .service-hero { padding: 64px 24px 56px; }
    .service-hero .hero__title { font-size: 46px; }
    .reach__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .specialists__inner { grid-template-columns: 1fr; gap: 28px; }
    .service-chat { padding: 26px 22px; }
    .service-demo .cta-panel { padding: 64px 28px 72px; }
}
@media (max-width: 559px) {
    .platform-more { padding: 48px 20px 0; }
    .platform-more__list { grid-template-columns: 1fr; }
    .service-hero { padding: 48px 20px 40px; }
    .service-hero .hero__title { font-size: 36px; }
    .reach__grid { grid-template-columns: 1fr; }
    .callout, .callout--blue { padding: 20px; flex-direction: column; }
    .fact-card { padding: 22px 20px; align-items: flex-start; }
    .service-demo .cta-panel { padding: 48px 20px 56px; }
}
