/* ===========================================================================
   WEBSITE MAINTENANCE & SUPPORT — "Your site, kept alive." (prefix: mnt-)
   UNIQUE PRESENTATION — nothing here mirrors other pages:
       · radar-sweep hero: rotating sweep + pulsing blips + live-dot chips
       · binder-punched care cards (checklists + rubber stamp)
       · vital-signs monitor: looping ECG line + readout strip
       · care calendar heatmap (JS-built intensity grid + legend)
       · response stairs: ascending steps, SLA times, brand-gradient ramps
       · gradient CTA band on a light section
   LIGHT / DARK MIX: hero DARK (house rule) then light care cards,
   dark vitals monitor, light calendar, dark stairs, light CTA.
   Light bands use dark ink #17093C + deepened accents.
   Palette on theme: navy #080A2B · magenta #B217BA · violet #7B2FF7
   · blue #2A7BFF · cyan #43D2E0 · gold #F0A400 · Afacad (global).
   Loaded only by templates/websitemaintenance.html.
   =========================================================================== */

.mnt-hero,
.mnt-care,
.mnt-vitals,
.mnt-cal,
.mnt-stairs,
.mnt-cta {
    --mnt-ink: #ffffff;
    --mnt-mute: rgba(255, 255, 255, .74);
    --mnt-faint: rgba(255, 255, 255, .46);
    --mnt-line: rgba(255, 255, 255, .14);
    --mnt-line-strong: rgba(255, 255, 255, .3);
    --mnt-magenta: #b217ba;
    --mnt-violet: #7b2ff7;
    --mnt-blue: #2a7bff;
    --mnt-cyan: #43d2e0;
    --mnt-gold: #f0a400;
    --mnt-navy: #080a2b;
    --mnt-grad: linear-gradient(90deg, #b217ba 0%, #2a7bff 100%);
    --mnt-wrap: min(88%, 1280px);
    --mnt-ease: cubic-bezier(.22, .61, .36, 1);
}

.mnt-wrap {
    width: var(--mnt-wrap);
    margin-inline: auto;
}

/* ------------------------------ reveal --------------------------------- */
.mnt-rise {
    opacity: 1;
    transform: none;
}

.js .mnt-rise {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity .8s var(--mnt-ease), transform .8s var(--mnt-ease);
}

.js .mnt-rise.is-in {
    opacity: 1;
    transform: none;
}

@media (prefers-reduced-motion: reduce) {

    .js .mnt-rise,
    .js .mnt-rise.is-in {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* ------------------------------ typography ------------------------------ */
.mnt-eyebrow {
    display: inline-block;
    font-size: .82rem;
    letter-spacing: .32em;
    text-transform: uppercase;
    color: var(--mnt-cyan);
    margin-bottom: 1.1rem;
}

.mnt-head h2 {
    font-size: clamp(2.1rem, 4.6vw, 3.6rem);
    line-height: 1.06;
    font-weight: 700;
    margin-bottom: 1rem;
}

.mnt-head h2 em {
    font-style: normal;
    background: var(--mnt-grad);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.mnt-head p {
    max-width: 58ch;
    color: var(--mnt-mute);
    font-size: 1.12rem;
}

.mnt-crumb {
    display: flex;
    gap: .55rem;
    align-items: center;
    flex-wrap: wrap;
    font-size: .86rem;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--mnt-faint);
    margin-bottom: 1.4rem;
}

.mnt-crumb i {
    font-style: normal;
    color: var(--mnt-line-strong);
}

.mnt-crumb a:hover {
    color: var(--mnt-cyan);
}

.mnt-crumb b {
    color: var(--mnt-cyan);
    font-weight: 600;
}

/* buttons */
.mnt-btn {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    padding: .95rem 1.9rem;
    border-radius: 999px;
    font-size: 1.05rem;
    font-weight: 600;
    transition: transform .35s var(--mnt-ease), box-shadow .35s var(--mnt-ease), background .35s;
}

.mnt-btn--fill {
    background: var(--mnt-grad);
    color: #fff;
    box-shadow: 0 14px 38px rgba(178, 23, 186, .38);
}

.mnt-btn--fill:hover {
    transform: translateY(-3px);
    box-shadow: 0 22px 52px rgba(42, 123, 255, .45);
}

.mnt-btn--ghost {
    border: 1px solid var(--mnt-line-strong);
    color: var(--mnt-ink);
    background: rgba(255, 255, 255, .04);
}

.mnt-btn--ghost:hover {
    transform: translateY(-3px);
    border-color: var(--mnt-cyan);
    background: rgba(67, 210, 224, .12);
}

/* live status dot */
.mnt-dot {
    display: inline-block;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #2ecc71;
    box-shadow: 0 0 10px rgba(46, 204, 113, .9);
    animation: mntPulse 2s ease-in-out infinite;
}

@keyframes mntPulse {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: .35;
    }
}

/* ============================ 1 · RADAR HERO =========================== */
.mnt-hero {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    padding: 11rem 0 6rem;
    /* HERO RULE: heroes stay dark on every generated page */
    background:
        radial-gradient(900px 540px at 80% 16%, rgba(67, 210, 224, .16), transparent 58%),
        radial-gradient(760px 500px at 10% 90%, rgba(178, 23, 186, .22), transparent 58%),
        linear-gradient(165deg, #10123a 0%, var(--mnt-navy) 55%, #05061c 100%);
    overflow: hidden;
}

.mnt-hero__in {
    position: relative;
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 4rem;
    align-items: center;
}

.mnt-hero__title {
    font-size: clamp(3rem, 6.6vw, 5.6rem);
    line-height: 1.02;
    font-weight: 700;
    margin-bottom: 1.6rem;
}

.mnt-hero__title em {
    font-style: normal;
    background: linear-gradient(90deg, #7bd7ff, #43d2e0 55%, #8dffc8);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.mnt-hero__sub {
    max-width: 54ch;
    font-size: 1.2rem;
    color: var(--mnt-mute);
    margin-bottom: 2.2rem;
}

.mnt-hero__cta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 2.6rem;
}

.mnt-chips {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
}

.mnt-chips li {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    padding: .62rem 1.2rem;
    border-radius: 999px;
    border: 1px solid var(--mnt-line);
    background: rgba(255, 255, 255, .05);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    font-size: .95rem;
    color: var(--mnt-mute);
    transition: transform .3s var(--mnt-ease), border-color .3s;
}

.mnt-chips li:hover {
    transform: translateY(-3px);
    border-color: rgba(46, 204, 113, .5);
}

/* radar */
.mnt-radar {
    position: relative;
    width: min(440px, 90%);
    aspect-ratio: 1;
    margin-inline: auto;
    border-radius: 50%;
    border: 1px solid rgba(67, 210, 224, .35);
    box-shadow: 0 0 60px rgba(67, 210, 224, .18), inset 0 0 60px rgba(67, 210, 224, .1);
}

/* concentric rings + crosshair */
.mnt-radar__grid {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background:
        repeating-radial-gradient(circle at center,
            transparent 0 calc(12.5% - 1px), rgba(67, 210, 224, .22) calc(12.5% - 1px) 12.5%),
        linear-gradient(0deg, transparent calc(50% - .5px), rgba(67, 210, 224, .22) calc(50% - .5px) calc(50% + .5px), transparent calc(50% + .5px)),
        linear-gradient(90deg, transparent calc(50% - .5px), rgba(67, 210, 224, .22) calc(50% - .5px) calc(50% + .5px), transparent calc(50% + .5px));
}

.mnt-radar__sweep {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: conic-gradient(from 0deg,
            rgba(67, 210, 224, .5) 0deg, rgba(67, 210, 224, .12) 42deg, transparent 70deg);
    animation: mntSweep 5.2s linear infinite;
}

@keyframes mntSweep {
    to {
        transform: rotate(360deg);
    }
}

.mnt-blip {
    position: absolute;
    left: var(--x);
    top: var(--y);
    width: 10px;
    height: 10px;
    margin: -5px 0 0 -5px;
    border-radius: 50%;
    background: var(--mnt-cyan);
    box-shadow: 0 0 14px 3px rgba(67, 210, 224, .8);
}

.mnt-blip::after {
    content: "";
    position: absolute;
    inset: -6px;
    border-radius: 50%;
    border: 1.5px solid var(--mnt-cyan);
    animation: mntPing 2.6s ease-out infinite;
    animation-delay: var(--d, 0s);
}

@keyframes mntPing {
    0% {
        transform: scale(.4);
        opacity: 1;
    }

    80%,
    100% {
        transform: scale(2.6);
        opacity: 0;
    }
}

.mnt-radar__label {
    position: absolute;
    left: 50%;
    bottom: -14px;
    transform: translateX(-50%);
    padding: .45rem 1.15rem;
    border-radius: 999px;
    border: 1px solid rgba(67, 210, 224, .4);
    background: rgba(8, 10, 43, .85);
    font-size: .82rem;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--mnt-cyan);
}

/* ======================= 2 · BINDER CARE CARDS ========================= */
.mnt-care {
    --mnt-ink: #17093c;
    --mnt-mute: rgba(23, 9, 60, .74);
    --mnt-faint: rgba(23, 9, 60, .5);
    --mnt-line: rgba(23, 9, 60, .12);
    --mnt-line-strong: rgba(23, 9, 60, .28);
    color: var(--mnt-ink);
    background: linear-gradient(180deg, #f7f2fd 0%, #ece2f8 100%);
    padding: 7rem 0 8rem;
}

.mnt-care .mnt-eyebrow,
.mnt-cal .mnt-eyebrow {
    color: #0e8494;
}

.mnt-care .mnt-head {
    margin-bottom: 3.4rem;
}

.mnt-binder {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}

/* punched binder card */
.mnt-card {
    position: relative;
    padding: 2.1rem 1.9rem 2.2rem 2.6rem;
    border: 1px solid rgba(23, 9, 60, .12);
    border-radius: 8px 22px 22px 8px;
    background: #fff;
    box-shadow: 0 18px 44px rgba(23, 9, 60, .1);
    transition: transform .45s var(--mnt-ease), box-shadow .45s;
}

.mnt-card:hover {
    transform: translateY(-7px) rotate(-.4deg);
    box-shadow: 0 28px 62px rgba(23, 9, 60, .16);
}

/* punched holes strip */
.mnt-card__punch {
    position: absolute;
    left: 10px;
    top: 18px;
    bottom: 18px;
    width: 12px;
    background:
        radial-gradient(circle at 6px 12px, #e6dcf4 0 5px, transparent 5.5px) 0 0 / 12px 64px repeat-y;
}

.mnt-card h3 {
    font-size: 1.35rem;
    margin-bottom: 1rem;
}

.mnt-card ul {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: .65rem;
}

.mnt-card li {
    position: relative;
    padding-left: 1.75rem;
    color: var(--mnt-mute);
    font-size: 1.02rem;
}

.mnt-card li::before {
    content: "\2713";
    position: absolute;
    left: 0;
    top: 0;
    width: 19px;
    height: 19px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--mnt-magenta), var(--mnt-blue));
    color: #fff;
    font-size: .72rem;
    font-weight: 700;
}

.mnt-card__stamp {
    position: absolute;
    right: 1.4rem;
    bottom: 1.35rem;
    padding: .38rem .95rem;
    border: 2.5px solid #2e9e63;
    border-radius: 8px;
    color: #2e9e63;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .22em;
    text-transform: uppercase;
    transform: rotate(-6deg);
    opacity: .85;
}

/* ====================== 3 · VITAL-SIGNS MONITOR ======================== */
.mnt-vitals {
    background:
        radial-gradient(860px 460px at 82% 10%, rgba(46, 204, 113, .1), transparent 55%),
        linear-gradient(180deg, #0a0b2e 0%, #10123a 100%);
    padding: 7rem 0 8rem;
}

.mnt-vitals .mnt-head {
    margin-bottom: 3.2rem;
}

.mnt-monitor {
    margin: 0;
    border: 1px solid rgba(67, 210, 224, .3);
    border-radius: 22px;
    overflow: hidden;
    background: #06122e;
    box-shadow: 0 32px 80px rgba(2, 3, 16, .55);
}

.mnt-monitor__bar {
    display: flex;
    gap: .8rem;
    padding: 1rem 1.4rem;
    border-bottom: 1px solid rgba(67, 210, 224, .18);
    background: rgba(67, 210, 224, .06);
    flex-wrap: wrap;
}

.mnt-monitor__tag {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: .38rem 1rem;
    border-radius: 999px;
    border: 1px solid rgba(67, 210, 224, .28);
    font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
    font-size: .82rem;
    letter-spacing: .08em;
    color: #7be8d4;
}

.mnt-monitor__screen {
    padding: 1.2rem 1.2rem 0;
    background:
        repeating-linear-gradient(0deg, rgba(67, 210, 224, .06) 0 1px, transparent 1px 28px),
        repeating-linear-gradient(90deg, rgba(67, 210, 224, .06) 0 1px, transparent 1px 28px);
}

.mnt-ecg {
    width: 100%;
    height: 230px;
    display: block;
}

.mnt-ecg__ghost,
.mnt-ecg__line {
    fill: none;
    stroke-width: 3;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.mnt-ecg__ghost {
    stroke: rgba(46, 204, 113, .18);
}

.mnt-ecg__line {
    stroke: #2ecc71;
    filter: drop-shadow(0 0 8px rgba(46, 204, 113, .8));
    stroke-dasharray: 220 2400;
    animation: mntEcg 4.8s linear infinite;
}

@keyframes mntEcg {
    from {
        stroke-dashoffset: 2620;
    }

    to {
        stroke-dashoffset: 0;
    }
}

.mnt-monitor__readouts {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
    background: rgba(67, 210, 224, .16);
    border-top: 1px solid rgba(67, 210, 224, .18);
}

.mnt-read {
    padding: 1.55rem 1.2rem;
    background: #06122e;
    text-align: center;
}

.mnt-read b {
    display: block;
    font-size: 2.15rem;
    line-height: 1.05;
    color: #2ecc71;
    text-shadow: 0 0 18px rgba(46, 204, 113, .5);
}

.mnt-read__unit {
    font-size: 1.25rem;
    color: rgba(255, 255, 255, .6);
}

.mnt-read span {
    display: block;
    margin-top: .35rem;
    font-size: .92rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--mnt-faint);
}

/* ========================= 4 · CARE CALENDAR =========================== */
.mnt-cal {
    --mnt-ink: #17093c;
    --mnt-mute: rgba(23, 9, 60, .74);
    --mnt-faint: rgba(23, 9, 60, .5);
    --mnt-line: rgba(23, 9, 60, .12);
    --mnt-line-strong: rgba(23, 9, 60, .28);
    color: var(--mnt-ink);
    background: linear-gradient(180deg, #ece2f8 0%, #f7f2fd 100%);
    padding: 7rem 0;
}

.mnt-cal .mnt-head {
    margin-bottom: 3.2rem;
}

.mnt-cal__grid-wrap {
    padding: 1.9rem;
    border: 1px solid rgba(23, 9, 60, .12);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 18px 44px rgba(23, 9, 60, .08);
}

.mnt-cal__grid {
    display: grid;
    grid-auto-flow: column;
    grid-template-rows: repeat(7, 1fr);
    gap: 5px;
}

.mnt-cal__cell {
    aspect-ratio: 1;
    min-width: 0;
    border-radius: 4px;
    background: color-mix(in srgb, var(--mnt-magenta) calc(var(--o, .16) * 100%), #ece2f8);
    opacity: 0;
    transform: scale(.4);
    transition: opacity .45s ease, transform .45s var(--mnt-ease);
}

.mnt-cal__grid.is-drawn .mnt-cal__cell {
    opacity: 1;
    transform: none;
}

.mnt-cal__legend {
    display: flex;
    align-items: center;
    gap: .55rem;
    justify-content: flex-end;
    margin-top: 1.15rem;
    font-size: .88rem;
    color: var(--mnt-faint);
}

.mnt-cal__key {
    width: 15px;
    height: 15px;
    border-radius: 4px;
    background: color-mix(in srgb, var(--mnt-magenta) calc(var(--o) * 100%), #ece2f8);
}

.mnt-cadence {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.15rem;
    margin-top: 2.4rem;
}

.mnt-cadence li {
    padding: 1.35rem 1.55rem;
    border: 1px solid rgba(23, 9, 60, .12);
    border-radius: 16px;
    background: #fff;
}

.mnt-cadence b {
    display: block;
    font-size: 1.12rem;
    margin-bottom: .4rem;
    color: var(--mnt-magenta);
}

.mnt-cadence span {
    color: var(--mnt-mute);
}

/* ========================= 5 · RESPONSE STAIRS ========================= */
.mnt-stairs {
    background: linear-gradient(180deg, #170b3c 0%, #0a0b2e 100%);
    padding: 7rem 0 8rem;
}

.mnt-stairs .mnt-head {
    margin-bottom: 3.6rem;
}

.mnt-steps {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1.35rem;
    align-items: end;
}

.mnt-step {
    --c: var(--mnt-magenta);
    position: relative;
    padding: 1.75rem 1.6rem;
    border: 1px solid var(--mnt-line);
    border-radius: 20px 20px 0 0;
    background: linear-gradient(180deg, color-mix(in srgb, var(--c) 16%, transparent), rgba(255, 255, 255, .03));
    display: flex;
    flex-direction: column;
    gap: .55rem;
    transition: transform .45s var(--mnt-ease), border-color .45s;
}

.mnt-step:nth-child(1) {
    padding-bottom: 3.4rem;
}

.mnt-step:nth-child(2) {
    padding-bottom: 2.7rem;
}

.mnt-step:nth-child(3) {
    padding-bottom: 2rem;
}

.mnt-step:hover {
    transform: translateY(-7px);
    border-color: color-mix(in srgb, var(--c) 58%, transparent);
}

.mnt-step__time {
    align-self: flex-start;
    padding: .36rem .95rem;
    border-radius: 999px;
    background: color-mix(in srgb, var(--c) 32%, transparent);
    border: 1px solid color-mix(in srgb, var(--c) 55%, transparent);
    font-family: ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
    font-size: .82rem;
    letter-spacing: .08em;
    color: #fff;
}

.mnt-step b {
    font-size: 1.28rem;
}

.mnt-step span {
    color: var(--mnt-mute);
    line-height: 1.58;
}

/* ============================== 6 · CTA ================================ */
.mnt-cta {
    --mnt-ink: #17093c;
    --mnt-mute: rgba(23, 9, 60, .74);
    --mnt-faint: rgba(23, 9, 60, .5);
    --mnt-line: rgba(23, 9, 60, .12);
    --mnt-line-strong: rgba(23, 9, 60, .28);
    color: var(--mnt-ink);
    background: #f3edfc;
    padding: 7rem 0;
}

.mnt-cta__band {
    border-radius: 34px;
    padding: 5.2rem 3.5rem;
    text-align: center;
    background:
        radial-gradient(800px 420px at 20% 10%, rgba(178, 23, 186, .5), transparent 60%),
        radial-gradient(800px 420px at 85% 90%, rgba(42, 123, 255, .5), transparent 60%),
        linear-gradient(120deg, #2c0a5e, #0b1440);
    border: 1px solid rgba(255, 255, 255, .22);
    color: #fff;
}

.mnt-cta__band h2 {
    font-size: clamp(2.3rem, 5vw, 4rem);
    margin-bottom: 1rem;
    color: #fff;
}

.mnt-cta__band h2 em {
    font-style: normal;
    background: linear-gradient(90deg, #8dffc8, #7bd7ff);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}

.mnt-cta__band p {
    color: rgba(255, 255, 255, .82);
    font-size: 1.18rem;
    margin-bottom: 2.3rem;
}

.mnt-cta__row {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 1rem;
}

.mnt-cta .mnt-btn--ghost {
    color: #fff;
    border-color: rgba(255, 255, 255, .4);
    background: transparent;
}

.mnt-cta .mnt-btn--ghost:hover {
    border-color: var(--mnt-cyan);
    background: rgba(67, 210, 224, .14);
}

@media (prefers-reduced-motion: reduce) {

    .mnt-radar__sweep,
    .mnt-blip::after,
    .mnt-dot,
    .mnt-ecg__line {
        animation: none;
    }

    .mnt-cal__cell {
        opacity: 1;
        transform: none;
    }
}

/* ============================== RESPONSIVE ============================= */
@media (max-width: 1100px) {
    .mnt-hero__in {
        grid-template-columns: 1fr;
    }

    .mnt-radar {
        width: min(360px, 80%);
    }

    .mnt-binder {
        grid-template-columns: repeat(2, 1fr);
    }

    .mnt-monitor__readouts {
        grid-template-columns: repeat(2, 1fr);
    }

    .mnt-steps {
        grid-template-columns: repeat(2, 1fr);
    }

    .mnt-step:nth-child(n) {
        padding-bottom: 1.75rem;
    }
}

@media (max-width: 760px) {
    .mnt-hero {
        padding: 9.5rem 0 4.5rem;
    }

    .mnt-radar {
        display: none;
    }

    .mnt-binder,
    .mnt-cadence {
        grid-template-columns: 1fr;
    }

    .mnt-monitor__readouts {
        grid-template-columns: 1fr 1fr;
    }

    .mnt-ecg {
        height: 150px;
    }

    .mnt-steps {
        grid-template-columns: 1fr;
    }

    .mnt-cta__band {
        padding: 3.4rem 1.6rem;
    }
}
