:root {
    --vivsp-ink:var(--viv-ink);
    --vivsp-deep:var(--viv-primary-deep);
    --vivsp-deep-2:var(--viv-primary-deep);
    --vivsp-teal:var(--viv-primary);
    --vivsp-teal-2:var(--viv-primary);
    --vivsp-gold:var(--viv-accent);
    --vivsp-gold-soft:var(--viv-accent-soft);
    --vivsp-muted:var(--viv-slate);
    --vivsp-line:var(--viv-brand-border);
    --vivsp-soft:var(--viv-primary-soft);
    --vivsp-white:var(--viv-white);
}

.vivsp,
.vivsp * { box-sizing: border-box; }
.vivsp { overflow: hidden; color: var(--vivsp-ink); background: #fff; }
.vivsp svg { width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.vivsp-shell { width: min(1420px, calc(100% - 48px)); margin-inline: auto; }

/* Hero */
.vivsp-hero { position: relative; padding: 34px 0 78px; background: var(--viv-primary-soft); }
.vivsp-hero::before { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .45; background-image: linear-gradient(color-mix(in srgb,var(--viv-primary-deep) 3.5%,transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb,var(--viv-primary-deep) 3.5%,transparent) 1px, transparent 1px); background-size: 34px 34px; mask-image: linear-gradient(to bottom, #000, transparent 78%); }
.vivsp-back { position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 9px; margin-bottom: 22px; color: var(--viv-primary); text-decoration: none; font: 700 14px/1.2 Arial, Helvetica, sans-serif; }
.vivsp-back span { transition: transform .2s ease; }
.vivsp-back:hover span { transform: translateX(-4px); }
.vivsp-hero__frame { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.06fr) minmax(430px, .82fr); gap: 64px; align-items: center; padding: 48px 50px; border: 1px solid var(--viv-primary-soft-2); border-radius: 28px; background: rgba(255,255,255,.88); box-shadow: 0 28px 70px color-mix(in srgb,var(--viv-primary-deep) 8%,transparent); }
.vivsp-hero__copy { min-width: 0; }
.vivsp-hero__kicker { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 20px; color: var(--vivsp-deep); font: 800 11px/1.2 Arial, Helvetica, sans-serif; letter-spacing: .14em; }
.vivsp-hero__kicker::before { content: ""; width: 26px; height: 2px; background: var(--vivsp-gold); }
.vivsp-eyebrow { margin: 0 0 12px; color: var(--vivsp-teal-2); font: 800 13px/1.3 Arial, Helvetica, sans-serif; letter-spacing: .085em; text-transform: uppercase; }
.vivsp-hero h1 { max-width: 790px; margin: 0; color: #071f31; font: 800 clamp(48px, 4.1vw, 68px)/1.02 Arial, Helvetica, sans-serif; letter-spacing: -.035em; }
.vivsp-hero__intro { max-width: 760px; margin: 22px 0 0; color: var(--viv-slate); font: 400 19px/1.62 Arial, Helvetica, sans-serif; }
.vivsp-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.vivsp-btn { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 0 22px; border: 1px solid transparent; border-radius: 12px; text-decoration: none; font: 800 15px/1 Arial, Helvetica, sans-serif; transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease; }
.vivsp-btn svg { width: 19px; height: 19px; }
.vivsp-btn--primary { color: #fff; background: var(--vivsp-deep); box-shadow: 0 12px 26px color-mix(in srgb,var(--viv-primary-deep) 16%,transparent); }
.vivsp-btn--primary:hover { color: #fff; background: var(--vivsp-teal-2); transform: translateY(-2px); box-shadow: 0 16px 32px color-mix(in srgb,var(--viv-primary-deep) 20%,transparent); }
.vivsp-btn--ghost { color: var(--vivsp-deep); border-color: color-mix(in srgb,var(--viv-primary) 48%,var(--viv-white)); background: #fff; }
.vivsp-btn--ghost:hover { color: #fff; border-color: var(--vivsp-deep); background: var(--vivsp-deep); transform: translateY(-2px); }
.vivsp-hero__trust { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 26px; color: var(--viv-slate); font: 700 13px/1.4 Arial, Helvetica, sans-serif; }
.vivsp-hero__trust span { display: inline-flex; align-items: center; gap: 8px; }
.vivsp-hero__trust i { width: 8px; height: 8px; border-radius: 50%; background: var(--vivsp-teal); box-shadow: 0 0 0 4px color-mix(in srgb,var(--viv-primary) 10%,transparent); }
.vivsp-hero__trust strong { color: var(--vivsp-ink); }
.vivsp-hero__visual { position: relative; height: 410px; overflow: hidden; border-radius: 24px; background: var(--vivsp-deep); box-shadow: 0 22px 52px color-mix(in srgb,var(--viv-primary-deep) 18%,transparent); }
.vivsp-hero__visual::before { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: linear-gradient(to top, color-mix(in srgb,var(--viv-primary-deep) 52%,transparent), transparent 46%); }
.vivsp-hero__visual img { width: 100%; height: 100%; display: block; object-fit: cover; object-position: center; }
.vivsp-hero__fallback { width: 100%; height: 100%; display: grid; place-items: center; align-content: center; gap: 18px; color: #fff; text-align: center; background: radial-gradient(circle at 75% 20%, color-mix(in srgb,var(--viv-primary) 34%,transparent), transparent 34%), linear-gradient(145deg,var(--viv-primary-deep),var(--viv-primary-deep)); }
.vivsp-hero__fallback svg { width: 74px; height: 74px; color: color-mix(in srgb,var(--viv-primary) 48%,var(--viv-white)); }
.vivsp-hero__fallback span { max-width: 360px; padding: 0 24px; font: 800 26px/1.2 Arial, Helvetica, sans-serif; }
.vivsp-hero__image-note { position: absolute; z-index: 3; left: 20px; right: 20px; bottom: 18px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 15px 17px; border: 1px solid rgba(255,255,255,.24); border-radius: 13px; color: #fff; background: color-mix(in srgb,var(--viv-primary-deep) 72%,transparent); backdrop-filter: blur(10px); }
.vivsp-hero__image-note span { font: 700 11px/1.2 Arial, Helvetica, sans-serif; letter-spacing: .08em; text-transform: uppercase; opacity: .82; }
.vivsp-hero__image-note strong { text-align: right; font: 800 13px/1.3 Arial, Helvetica, sans-serif; }

/* Care pathway */
.vivsp-care { padding: 96px 0 106px; background: #fff; }
.vivsp-care__head { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(320px,.78fr); gap:72px; align-items:end; margin-bottom:48px; padding-bottom:32px; border-bottom:1px solid var(--viv-primary-soft-2); }
.vivsp-care__head-main { max-width:720px; }
.vivsp-section-kicker { display:block; margin-bottom:12px; color:var(--vivsp-teal-2); font:800 11px/1.3 Arial,Helvetica,sans-serif; letter-spacing:.16em; text-transform:uppercase; }
.vivsp-care__head h2, .vivsp-faq__intro h2 { margin:0; color:#071f31; font:800 clamp(38px,3vw,52px)/1.07 Arial,Helvetica,sans-serif; letter-spacing:-.025em; }
.vivsp-care__head-aside { max-width:560px; justify-self:end; }
.vivsp-care__head-aside p, .vivsp-faq__intro > p { margin:0; color:var(--viv-slate); font:400 17px/1.65 Arial,Helvetica,sans-serif; }
.vivsp-care__cta { display:inline-flex; align-items:center; gap:13px; min-height:48px; margin-top:21px; padding:0 19px; border-radius:12px; color:#fff; background:var(--vivsp-deep); text-decoration:none; font:800 14px/1 Arial,Helvetica,sans-serif; transition:background .22s ease, transform .22s ease, box-shadow .22s ease; }
.vivsp-care__cta span { font-size:18px; transition:transform .22s ease; }
.vivsp-care__cta:hover { color:#fff; background:var(--vivsp-teal-2); transform:translateY(-2px); box-shadow:0 12px 26px color-mix(in srgb,var(--viv-primary) 18%,transparent); }
.vivsp-care__cta:hover span { transform:translateX(4px); }
.vivsp-care__journey { position:relative; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.vivsp-care__journey::before { content:""; position:absolute; left:7%; right:7%; top:58px; height:1px; background:linear-gradient(90deg,color-mix(in srgb,var(--viv-primary) 12%,transparent),color-mix(in srgb,var(--viv-primary) 55%,transparent),color-mix(in srgb,var(--viv-accent) 55%,transparent),color-mix(in srgb,var(--viv-primary) 12%,transparent)); pointer-events:none; }
.vivsp-care-step { position:relative; z-index:1; min-height:330px; display:flex; flex-direction:column; overflow:hidden; padding:24px 26px 22px; border:1px solid var(--viv-primary-soft-2); border-radius:22px; background:#fff; box-shadow:0 12px 30px color-mix(in srgb,var(--viv-primary-deep) 5.5%,transparent); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.vivsp-care-step::before { content:""; position:absolute; inset:0 0 auto; height:4px; background:var(--vivsp-teal-2); }
.vivsp-care-step--2::before { background:var(--vivsp-gold); }
.vivsp-care-step--3::before { background:var(--vivsp-deep); }
.vivsp-care-step:hover { transform:translateY(-6px); border-color:color-mix(in srgb,var(--viv-primary) 40%,transparent); box-shadow:0 24px 48px color-mix(in srgb,var(--viv-primary-deep) 11%,transparent); }
.vivsp-care-step__top { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:38px; }
.vivsp-care-step__num { display:inline-flex; align-items:center; justify-content:center; min-width:54px; height:34px; padding:0 13px; border:1px solid var(--viv-primary-soft-2); border-radius:999px; color:var(--viv-slate); background:var(--viv-primary-soft); font:800 11px/1 Arial,Helvetica,sans-serif; letter-spacing:.12em; }
.vivsp-care-step__icon { width:56px; height:56px; display:grid; place-items:center; flex:0 0 56px; border-radius:17px; color:var(--vivsp-teal-2); background:var(--viv-primary-soft-2); box-shadow:0 9px 20px color-mix(in srgb,var(--viv-primary) 10%,transparent); }
.vivsp-care-step--2 .vivsp-care-step__icon { color:color-mix(in srgb,var(--viv-accent) 72%,var(--viv-ink)); background:var(--viv-accent-soft); }
.vivsp-care-step--3 .vivsp-care-step__icon { color:#fff; background:var(--vivsp-deep); }
.vivsp-care-step__icon svg { width:25px; height:25px; }
.vivsp-care-step__body { flex:1; }
.vivsp-care-step__label { display:block; margin-bottom:9px; color:var(--viv-slate); font:800 10px/1.3 Arial,Helvetica,sans-serif; letter-spacing:.13em; text-transform:uppercase; }
.vivsp-care-step h3 { margin:0 0 13px; color:var(--viv-primary-deep); font:800 24px/1.18 Arial,Helvetica,sans-serif; letter-spacing:-.015em; }
.vivsp-care-step p { margin:0; color:var(--viv-slate); font:400 16px/1.62 Arial,Helvetica,sans-serif; }
.vivsp-care-step__foot { display:flex; align-items:center; gap:12px; margin-top:28px; padding-top:18px; border-top:1px solid var(--viv-primary-soft-2); }
.vivsp-care-step__foot span { height:2px; flex:1; border-radius:999px; background:var(--viv-primary-soft-2); }
.vivsp-care-step--1 .vivsp-care-step__foot span { background:linear-gradient(90deg,var(--vivsp-teal-2),var(--viv-primary-soft-2) 72%); }
.vivsp-care-step--2 .vivsp-care-step__foot span { background:linear-gradient(90deg,var(--vivsp-gold),var(--viv-primary-soft-2) 72%); }
.vivsp-care-step--3 .vivsp-care-step__foot span { background:linear-gradient(90deg,var(--vivsp-deep),var(--viv-primary-soft-2) 72%); }
.vivsp-care-step__foot i { color:var(--viv-slate); font:normal 800 10px/1 Arial,Helvetica,sans-serif; letter-spacing:.1em; }

/* FAQ */
.vivsp-faq { padding: 92px 0 104px; background: var(--viv-primary-soft); }
.vivsp-faq__layout { display: grid; grid-template-columns: minmax(300px,.72fr) minmax(0,1.28fr); gap: 70px; align-items: start; }
.vivsp-faq__intro { padding: 34px; border-radius: 24px; color: #fff; background: var(--vivsp-deep-2); box-shadow: 0 22px 52px color-mix(in srgb,var(--viv-primary-deep) 12%,transparent); }
.vivsp-faq__intro .vivsp-section-kicker { color: color-mix(in srgb,var(--viv-primary) 48%,var(--viv-white)); }
.vivsp-faq__intro h2 { color: #fff; font-size: clamp(36px,2.8vw,48px); }
.vivsp-faq__intro > p { color: rgba(255,255,255,.75); }
.vivsp-faq__help { margin-top: 30px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.13); }
.vivsp-faq__help span { display:block; margin-bottom:11px; color:rgba(255,255,255,.65); font:700 12px/1.4 Arial,Helvetica,sans-serif; }
.vivsp-faq__help a { display:inline-flex; align-items:center; min-height:44px; padding:0 16px; border-radius:10px; color:var(--viv-primary-deep); background:var(--vivsp-gold); text-decoration:none; font:800 14px/1 Arial,Helvetica,sans-serif; transition:transform .2s ease, background .2s ease; }
.vivsp-faq__help a:hover { color:var(--viv-primary-deep); background:var(--viv-accent); transform:translateY(-2px); }
.vivsp-accordion { display: grid; gap: 12px; }
.vivsp-accordion__item { overflow: hidden; border: 1px solid var(--viv-primary-soft-2); border-radius: 16px; background: #fff; box-shadow: 0 9px 24px color-mix(in srgb,var(--viv-primary-deep) 4.5%,transparent); }
.vivsp-accordion__item.is-open { border-color: color-mix(in srgb,var(--viv-primary) 45%,transparent); box-shadow: 0 14px 32px color-mix(in srgb,var(--viv-primary-deep) 8%,transparent); }
.vivsp-accordion__button { width: 100%; min-height: 74px; display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 19px 22px; border: 0; color: #13283a; background: transparent; cursor: pointer; text-align: left; font: 800 17px/1.35 Arial, Helvetica, sans-serif; }
.vivsp-accordion__button > span:first-child { display:flex; align-items:center; gap:16px; }
.vivsp-accordion__button small { flex:0 0 35px; color:var(--viv-slate); font:800 10px/1 Arial,Helvetica,sans-serif; letter-spacing:.1em; }
.vivsp-accordion__plus { position: relative; flex: 0 0 34px; width: 34px; height: 34px; border-radius: 50%; background: var(--viv-primary-soft-2); }
.vivsp-accordion__plus::before, .vivsp-accordion__plus::after { content:""; position:absolute; left:50%; top:50%; width:12px; height:2px; background:var(--vivsp-teal-2); transform:translate(-50%,-50%); transition:transform .2s ease; }
.vivsp-accordion__plus::after { transform:translate(-50%,-50%) rotate(90deg); }
.vivsp-accordion__item.is-open .vivsp-accordion__plus::after { transform:translate(-50%,-50%) rotate(0); }
.vivsp-accordion__panel { padding: 0 74px 22px 73px; }
.vivsp-accordion__panel p { margin:0; color:var(--viv-slate); font:400 15.5px/1.7 Arial,Helvetica,sans-serif; }

/* Appointment */
.vivsp-appointment { position: relative; padding: 90px 0 100px; overflow: hidden; background: var(--vivsp-deep-2); }
.vivsp-appointment::before { content:""; position:absolute; width:520px; height:520px; right:-180px; top:-240px; border-radius:50%; background:color-mix(in srgb,var(--viv-primary) 14%,transparent); }
.vivsp-appointment::after { content:""; position:absolute; width:360px; height:360px; left:-180px; bottom:-210px; border-radius:50%; background:color-mix(in srgb,var(--viv-accent) 9%,transparent); }
.vivsp-appointment .vivsp-shell { position: relative; z-index: 1; }
.vivsp-appointment__head { max-width: 850px; margin: 0 0 42px; color: #fff; }
.vivsp-appointment__head > span { display:block; margin-bottom:10px; color:color-mix(in srgb,var(--viv-primary) 48%,var(--viv-white)); font:800 11px/1.2 Arial,Helvetica,sans-serif; letter-spacing:.16em; }
.vivsp-appointment__head h2 { max-width: 820px; margin:0; font:800 clamp(38px,3.2vw,54px)/1.07 Arial,Helvetica,sans-serif; letter-spacing:-.025em; }
.vivsp-appointment__head p { max-width:720px; margin:14px 0 0; color:rgba(255,255,255,.72); font:400 17px/1.6 Arial,Helvetica,sans-serif; }
.vivsp-appointment__grid { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(360px,.72fr); gap:28px; align-items:start; }
.vivsp-form-card { padding: 34px; border-radius:24px; background:#fff; box-shadow:0 25px 60px rgba(0,0,0,.18); }
.vivsp-form-card__head { margin-bottom:20px; }
.vivsp-form-card__head > span { display:block; margin-bottom:6px; color:var(--vivsp-teal-2); font:800 11px/1.2 Arial,Helvetica,sans-serif; letter-spacing:.13em; text-transform:uppercase; }
.vivsp-form-card__head h3 { margin:0; color:#0b2234; font:800 26px/1.2 Arial,Helvetica,sans-serif; }
.vivsp-form__specialty { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:20px; padding:13px 14px; border-radius:11px; background:var(--viv-primary-soft); }
.vivsp-form__specialty span { color:var(--viv-slate); font:700 11px/1.2 Arial,Helvetica,sans-serif; text-transform:uppercase; letter-spacing:.08em; }
.vivsp-form__specialty strong { color:var(--vivsp-deep); font:800 14px/1.3 Arial,Helvetica,sans-serif; text-align:right; }
.vivsp-form__message { margin-bottom:18px; padding:13px 15px; border-radius:10px; font:700 14px/1.45 Arial,Helvetica,sans-serif; }
.vivsp-form__message.is-success { color:#12623d; background:#e8f8ef; border:1px solid #b6e5ca; }
.vivsp-form__message.is-error { color:#8a2430; background:#fff0f2; border:1px solid #f2c5cb; }
.vivsp-form__grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px 12px; }
.vivsp-field { display:grid; gap:7px; color:#102337; font:700 12.5px/1.3 Arial,Helvetica,sans-serif; }
.vivsp-field--wide { grid-column:1/-1; }
.vivsp-field b { color:#e44e5a; }
.vivsp-field input, .vivsp-field select, .vivsp-field textarea { width:100%; min-height:50px; padding:12px 14px; border:1px solid var(--viv-primary-soft-2); border-radius:10px; outline:0; color:var(--viv-ink); background:#fff; font:400 15px/1.4 Arial,Helvetica,sans-serif; transition:border-color .2s ease, box-shadow .2s ease; }
.vivsp-field textarea { min-height:105px; resize:vertical; }
.vivsp-field input:focus, .vivsp-field select:focus, .vivsp-field textarea:focus { border-color:var(--vivsp-teal); box-shadow:0 0 0 3px color-mix(in srgb,var(--viv-primary) 10%,transparent); }
.vivsp-submit { width:100%; min-height:54px; display:flex; align-items:center; justify-content:center; gap:12px; margin-top:18px; padding:0 20px; border:0; border-radius:11px; color:var(--viv-primary-deep); background:var(--vivsp-gold); cursor:pointer; font:800 15px/1 Arial,Helvetica,sans-serif; transition:transform .2s ease, background .2s ease, box-shadow .2s ease; }
.vivsp-submit svg { width:20px; height:20px; transition:transform .2s ease; }
.vivsp-submit:hover { background:var(--viv-accent); transform:translateY(-2px); box-shadow:0 14px 26px color-mix(in srgb,var(--viv-accent) 20%,transparent); }
.vivsp-submit:hover svg { transform:translateX(4px); }
.vivsp-submit:disabled { opacity:.72; cursor:wait; transform:none; }
.vivsp-submit__spinner { display:none; width:18px; height:18px; border:2px solid color-mix(in srgb,var(--viv-primary-deep) 25%,transparent); border-top-color:var(--viv-primary-deep); border-radius:50%; animation:vivsp-spin .7s linear infinite; }
.vivsp-submit.is-loading .vivsp-submit__spinner { display:block; }
@keyframes vivsp-spin { to { transform:rotate(360deg); } }
.vivsp-trap { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.vivsp-contact-stack { display:grid; gap:14px; }
.vivsp-contact-stack__lead { padding: 26px; border:1px solid rgba(255,255,255,.12); border-radius:20px; color:#fff; background:rgba(255,255,255,.055); }
.vivsp-contact-stack__lead > span { display:block; margin-bottom:7px; color:color-mix(in srgb,var(--viv-primary) 48%,var(--viv-white)); font:800 11px/1.2 Arial,Helvetica,sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.vivsp-contact-stack__lead h3 { margin:0; font:800 25px/1.2 Arial,Helvetica,sans-serif; }
.vivsp-contact-stack__lead p { margin:9px 0 0; color:rgba(255,255,255,.68); font:400 15px/1.55 Arial,Helvetica,sans-serif; }
.vivsp-contact-card { display:grid; grid-template-columns:48px 1fr; gap:12px 14px; align-items:center; padding:20px; border:1px solid rgba(255,255,255,.12); border-radius:18px; color:#fff; background:rgba(255,255,255,.06); }
.vivsp-contact-card__icon { width:48px; height:48px; display:grid; place-items:center; border-radius:13px; color:var(--viv-primary-deep); background:color-mix(in srgb,var(--viv-primary) 48%,var(--viv-white)); }
.vivsp-contact-card__icon svg { width:24px; height:24px; }
.vivsp-contact-card h3 { margin:0; font:800 19px/1.2 Arial,Helvetica,sans-serif; }
.vivsp-contact-card p { margin:3px 0 0; color:rgba(255,255,255,.7); font:600 14px/1.4 Arial,Helvetica,sans-serif; }
.vivsp-contact-card > a { grid-column:1/-1; min-height:46px; display:flex; align-items:center; justify-content:center; padding:0 16px; border-radius:10px; color:#fff; background:var(--vivsp-deep); text-decoration:none; font:800 14px/1 Arial,Helvetica,sans-serif; transition:background .2s ease, transform .2s ease; }
.vivsp-contact-card > a:hover { color:#fff; background:var(--vivsp-teal-2); transform:translateY(-1px); }
.vivsp-contact-card--hours { min-height:145px; }
.vivsp-contact-card--hours strong { display:block; margin-top:6px; color:var(--viv-accent); font:800 14px/1.3 Arial,Helvetica,sans-serif; }

@media (max-width: 1160px) {
    .vivsp-hero__frame { grid-template-columns:minmax(0,1fr) minmax(370px,.82fr); gap:40px; padding:42px; }
    .vivsp-hero__visual { height:380px; }
    .vivsp-care__head { gap:42px; }
    .vivsp-faq__layout { gap:42px; }
    .vivsp-appointment__grid { grid-template-columns:minmax(0,1fr) minmax(330px,.72fr); }
}

@media (max-width: 920px) {
    .vivsp-shell { width:min(100% - 36px,780px); }
    .vivsp-hero { padding-top:24px; }
    .vivsp-hero__frame { grid-template-columns:1fr; padding:34px; }
    .vivsp-hero__visual { height:400px; }
    .vivsp-care__head { grid-template-columns:1fr; gap:22px; align-items:start; }
    .vivsp-care__head-aside { max-width:680px; justify-self:start; }
    .vivsp-care__journey { grid-template-columns:1fr 1fr; }
    .vivsp-care-step:last-child { grid-column:1 / -1; }
    .vivsp-faq__layout { grid-template-columns:1fr; }
    .vivsp-faq__intro { max-width:none; }
    .vivsp-appointment__grid { grid-template-columns:1fr; }
    .vivsp-contact-stack { grid-template-columns:1fr 1fr; }
    .vivsp-contact-stack__lead, .vivsp-contact-card--hours { grid-column:1/-1; }
}

@media (max-width: 640px) {
    .vivsp-shell { width:min(100% - 28px,560px); }
    .vivsp-hero { padding:20px 0 58px; }
    .vivsp-back { margin-bottom:16px; font-size:13px; }
    .vivsp-hero__frame { gap:28px; padding:26px 20px; border-radius:22px; }
    .vivsp-hero__kicker { margin-bottom:16px; font-size:10px; }
    .vivsp-eyebrow { font-size:11px; }
    .vivsp-hero h1 { font-size:clamp(40px,12vw,54px); }
    .vivsp-hero__intro { margin-top:17px; font-size:16.5px; }
    .vivsp-hero__actions { display:grid; grid-template-columns:1fr; }
    .vivsp-btn { width:100%; }
    .vivsp-hero__trust { display:grid; gap:10px; }
    .vivsp-hero__visual { height:315px; border-radius:18px; }
    .vivsp-hero__image-note { left:12px; right:12px; bottom:12px; display:grid; gap:4px; padding:12px; }
    .vivsp-hero__image-note strong { text-align:left; font-size:12px; }
    .vivsp-care { padding:68px 0 76px; }
    .vivsp-care__head { margin-bottom:32px; padding-bottom:24px; }
    .vivsp-care__head h2, .vivsp-faq__intro h2 { font-size:36px; }
    .vivsp-care__head-aside p, .vivsp-faq__intro > p { font-size:16px; }
    .vivsp-care__journey { grid-template-columns:1fr; gap:16px; }
    .vivsp-care__journey::before { display:none; }
    .vivsp-care-step:last-child { grid-column:auto; }
    .vivsp-care-step { min-height:0; padding:22px 20px 20px; }
    .vivsp-care-step__top { margin-bottom:26px; }
    .vivsp-care-step h3 { font-size:22px; }
    .vivsp-faq { padding:68px 0 78px; }
    .vivsp-faq__intro { padding:26px 22px; border-radius:20px; }
    .vivsp-accordion__button { min-height:68px; padding:17px 16px; font-size:15px; }
    .vivsp-accordion__button > span:first-child { gap:11px; }
    .vivsp-accordion__button small { flex-basis:26px; }
    .vivsp-accordion__panel { padding:0 50px 18px 54px; }
    .vivsp-appointment { padding:66px 0 76px; }
    .vivsp-appointment__head h2 { font-size:36px; }
    .vivsp-appointment__head p { font-size:16px; }
    .vivsp-form-card { padding:25px 18px; border-radius:20px; }
    .vivsp-form__grid { grid-template-columns:1fr; }
    .vivsp-field--wide { grid-column:auto; }
    .vivsp-form__specialty { align-items:flex-start; flex-direction:column; }
    .vivsp-form__specialty strong { text-align:left; }
    .vivsp-contact-stack { grid-template-columns:1fr; }
    .vivsp-contact-stack__lead, .vivsp-contact-card--hours { grid-column:auto; }
}
