:root {
  --viv-forest: #084235;
  --viv-forest-dark: #032d25;
  --viv-lime: #a8e565;
  --viv-ivory: #fbfaf6;
  --viv-sage: #e9f0e7;
  --viv-muted: #687a72;
  --viv-hair: rgba(8, 66, 53, .12);
  --viv-red: #a4473b;
  --viv-red-soft: #fbefec;
  --viv-shadow: 0 22px 54px rgba(3, 45, 37, .10), 0 4px 12px rgba(3, 45, 37, .04);
}

html { scroll-behavior: smooth; }
body.viv-story-site { margin: 0; background: var(--viv-ivory); color: var(--viv-forest-dark); font-family: Inter, sans-serif; }
body.viv-story-site.admin-bar .viv-site-header { top: 32px; }
.viv-story-site *, .viv-story-site *::before, .viv-story-site *::after { box-sizing: border-box; }
.viv-story-site .site-cookie-consent { font-family: Inter, sans-serif; }
.viv-story-site .elementor-widget-heading .elementor-heading-title,
.viv-story-site .elementor-widget-text-editor,
.viv-story-site .elementor-button { font-family: inherit; }
.viv-story-site .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.viv-story-site .elementor-element { min-width: 0; }

.viv-site-header { position: sticky; z-index: 100; top: 0; width: 100%; border-bottom: 1px solid rgba(8, 66, 53, .08); background: rgba(251, 250, 246, .92); backdrop-filter: blur(16px); }
.viv-header-inner { display: flex !important; flex-direction: row !important; width: min(1240px, calc(100% - 48px)); min-height: 72px; margin: auto; align-items: center; justify-content: space-between; }
.viv-header-inner > .e-con { width: auto !important; }
.viv-header-logo img { display: block; width: 74px; height: auto; }
.viv-header-cta .elementor-button, .viv-cta-button .elementor-button { border: 1px solid var(--viv-forest) !important; border-radius: 9px; background: var(--viv-forest) !important; color: #fff !important; font-size: 13px; font-weight: 500; }
.viv-header-cta .elementor-button { padding: 11px 17px; }
.viv-cta-button .elementor-button { padding: 13px 20px; }

.viv-page { overflow: clip; background: var(--viv-ivory); }
.viv-section { position: relative; display: flex; width: 100%; min-height: 100svh; padding: clamp(96px, 10vw, 142px) max(28px, calc((100vw - 1240px) / 2)); align-items: center; }
.viv-section-inner { display: grid; width: 100%; grid-template-columns: minmax(300px, .88fr) minmax(420px, 1.12fr); gap: clamp(42px, 7vw, 100px); align-items: center; }
.viv-copy { display: grid; gap: 20px; align-content: center; }
.viv-copy .elementor-widget-heading, .viv-copy .elementor-widget-text-editor { margin: 0; }
.viv-copy h1, .viv-copy h2 { margin: 0; font-family: Manrope, sans-serif; font-weight: 400; letter-spacing: -.045em; color: var(--viv-forest-dark); }
.viv-copy h1 { max-width: 750px; font-size: clamp(46px, 6.4vw, 88px); line-height: .98; }
.viv-copy h2 { max-width: 590px; font-size: clamp(36px, 4.2vw, 62px); line-height: 1.02; }
.viv-copy .elementor-widget-text-editor { max-width: 560px; color: var(--viv-muted); font-size: clamp(16px, 1.35vw, 20px); line-height: 1.55; }
.viv-eyebrow .elementor-heading-title { color: var(--viv-forest); font-size: 12px !important; font-weight: 600 !important; letter-spacing: .13em !important; text-transform: uppercase; }

.viv-hero { min-height: calc(100svh - 72px); background: radial-gradient(circle at 78% 35%, rgba(168, 229, 101, .19), transparent 29%), var(--viv-ivory); }
.viv-hero .viv-section-inner { grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); }
.viv-hero-visual { position: relative; min-height: 520px; }
.viv-hero-orbit { position: absolute; inset: 50% auto auto 50%; width: min(430px, 80%); aspect-ratio: 1; border: 1px solid rgba(8, 66, 53, .11); border-radius: 50%; transform: translate(-50%, -50%); }
.viv-hero-orbit::before, .viv-hero-orbit::after { position: absolute; border: 1px solid rgba(8, 66, 53, .08); border-radius: 50%; content: ""; }
.viv-hero-orbit::before { inset: 13%; }
.viv-hero-orbit::after { inset: 30%; background: rgba(255,255,255,.82); box-shadow: 0 0 54px rgba(168,229,101,.28); }
.viv-hero-logo { position: absolute; z-index: 2; top: 50%; left: 50%; width: 105px; transform: translate(-50%, -50%); }
.viv-hero-logo img { width: 100%; }
.viv-hero-pill { position: absolute; z-index: 3; display: flex; min-width: 166px; padding: 14px 16px; border: 1px solid var(--viv-hair); border-radius: 14px; background: rgba(255,255,255,.94); box-shadow: var(--viv-shadow); align-items: center; gap: 10px; }
.viv-hero-pill:nth-of-type(2) { top: 18%; left: 4%; }
.viv-hero-pill:nth-of-type(3) { right: 0; bottom: 21%; }
.viv-hero-pill .elementor-widget-text-editor { color: var(--viv-forest-dark); font-size: 12px; line-height: 1.35; }
.viv-pill-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--viv-lime); }

.viv-who { min-height: 66svh; background: var(--viv-sage); text-align: center; }
.viv-who .viv-copy { width: min(900px, 100%); margin: auto; justify-items: center; }
.viv-who .elementor-widget-text-editor { max-width: none; color: var(--viv-forest); font-size: clamp(15px, 1.8vw, 22px); letter-spacing: .03em; }

.viv-context { background: var(--viv-ivory); }
.viv-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.viv-stat { display: grid; min-height: 150px; padding: 28px; border: 1px solid rgba(8,66,53,.07); border-radius: 14px; background: #fff; box-shadow: 0 14px 38px rgba(3,45,37,.06); align-content: center; gap: 11px; text-align: center; }
.viv-stat .elementor-heading-title { color: var(--viv-forest-dark); font-family: Manrope, sans-serif; font-size: clamp(30px, 3.1vw, 46px); font-weight: 400; letter-spacing: -.04em; }
.viv-stat .elementor-widget-text-editor { color: var(--viv-muted); font-size: 13px; line-height: 1.45; }

.viv-problem-section { background: linear-gradient(135deg, #f8f8f3, #eef3e9); }
.viv-problem-canvas { position: relative; min-height: 520px; overflow: hidden; border: 1px solid rgba(8,66,53,.08); border-radius: 22px; background: radial-gradient(circle at 75% 22%, rgba(168,229,101,.12), transparent 32%), rgba(255,255,255,.52); box-shadow: var(--viv-shadow); }
.viv-work-world { position: absolute; inset: 0; will-change: transform; }
.viv-work-card { position: absolute; z-index: 2; display: grid; width: min(330px, calc(100% - 52px)); min-height: 128px; padding: 18px; border: 1px solid rgba(8,66,53,.08); border-radius: 14px; background: rgba(255,255,255,.97); box-shadow: var(--viv-shadow); gap: 12px; opacity: 0; visibility: hidden; transform: translateY(10px); }
.viv-work-card.is-active, .viv-work-card.is-arriving { opacity: 1; visibility: visible; }
.viv-work-card.is-decided::after { position: absolute; top: 15px; right: 15px; display: grid; width: 22px; height: 22px; border-radius: 50%; background: rgba(168,229,101,.24); color: var(--viv-forest); content: "✓"; place-items: center; font-size: 11px; }
.viv-work-card.viv-alert.is-decided::after { background: rgba(164,71,59,.13); color: var(--viv-red); content: "!"; }
.viv-work-context .elementor-heading-title { padding-right: 28px; color: var(--viv-muted); font-size: 11px; font-weight: 500; letter-spacing: .02em; }
.viv-work-action .elementor-heading-title { color: var(--viv-forest-dark); font-size: 16px; font-weight: 500; line-height: 1.35; }
.viv-work-checks { display: grid; gap: 5px; }
.viv-work-check { display: grid; grid-template-columns: 1fr auto; gap: 10px; padding: 6px 8px; border-radius: 7px; background: #f5f7f3; opacity: .34; transform: translateY(2px); transition: opacity .25s ease, transform .25s ease, background .25s ease; }
.viv-work-check.is-revealed { opacity: 1; transform: none; }
.viv-work-check.viv-check-alert.is-revealed { background: var(--viv-red-soft); }
.viv-work-check .elementor-widget-heading:first-child .elementor-heading-title { color: var(--viv-forest-dark); font-size: 10px; font-weight: 500; }
.viv-work-check .elementor-widget-heading:last-child .elementor-heading-title { color: var(--viv-muted); font-size: 9px; font-weight: 400; text-align: right; }
.viv-work-connector,
.viv-work-connector.viv-connector-red { position: absolute; z-index: 1; background: var(--viv-forest-dark); transform-origin: left top; }
.viv-progress { position: absolute; z-index: 4; right: 18px; bottom: 14px; left: 18px; display: grid; grid-template-columns: repeat(6, 1fr); opacity: 0; transition: opacity .25s ease; }
.viv-progress.is-visible { opacity: 1; }
.viv-progress::before { position: absolute; top: 4px; right: 8.333%; left: 8.333%; height: 1px; background: rgba(8,66,53,.12); content: ""; }
.viv-progress-day { position: relative; display: grid; justify-items: center; gap: 4px; }
.viv-progress-day::before { z-index: 1; width: 7px; height: 7px; border: 2px solid #f5f6f1; border-radius: 50%; background: #bac5bf; content: ""; }
.viv-progress-day.is-active::before { background: var(--viv-lime); box-shadow: 0 0 0 3px rgba(168,229,101,.2); }
.viv-progress-day.is-complete::before { background: var(--viv-forest); }
.viv-progress-day .elementor-heading-title { color: var(--viv-muted); font-size: 9px; font-weight: 500; }
.viv-restart { position: absolute; z-index: 5; right: 20px; top: 18px; opacity: 0; pointer-events: none; }
.viv-restart.is-visible { opacity: 1; pointer-events: auto; }
.viv-restart .elementor-button { padding: 8px 11px; border: 1px solid var(--viv-hair); border-radius: 999px; background: rgba(255,255,255,.92); color: var(--viv-forest); font-size: 10px; }

.viv-solution-wrap { background: var(--viv-forest-dark); }
.viv-solution-slide { min-height: 100svh; background: var(--viv-forest-dark); color: #fff; }
.viv-solution-slide .viv-copy h2 { color: #f6f5ef; }
.viv-solution-slide .viv-copy .elementor-widget-text-editor { color: rgba(246,245,239,.68); }
.viv-solution-visual { position: relative; display: grid; min-height: 470px; padding: 34px; overflow: hidden; border: 1px solid rgba(255,255,255,.55); border-radius: 22px; background: radial-gradient(circle at 80% 22%, rgba(168,229,101,.12), transparent 31%), linear-gradient(145deg,#fbfaf7,#f2f3ec); box-shadow: 0 24px 70px rgba(0,0,0,.2); color: var(--viv-forest-dark); }
.viv-ui-card { display: grid; width: min(460px, 94%); margin: auto; padding: 18px; border: 1px solid var(--viv-hair); border-radius: 14px; background: rgba(255,255,255,.97); box-shadow: var(--viv-shadow); gap: 11px; }
.viv-ui-card .elementor-heading-title { color: var(--viv-forest-dark); font-size: 14px; font-weight: 500; line-height: 1.35; }
.viv-ui-card .elementor-widget-text-editor { color: var(--viv-muted); font-size: 11px; line-height: 1.45; }
.viv-ui-kicker .elementor-heading-title { color: var(--viv-muted); font-size: 10px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; }
.viv-ui-row { display: flex; padding: 10px 11px; border-radius: 9px; background: #f4f7f2; align-items: center; gap: 10px; }
.viv-ui-row.viv-warning { background: var(--viv-red-soft); }
.viv-ui-row > .elementor-widget-heading:first-child { flex: 1; }
.viv-ui-row > .elementor-widget-heading:last-child { flex: 0 0 auto; }
.viv-ui-row .elementor-heading-title { font-size: 11px; }
.viv-ui-row > .elementor-widget-heading:last-child .elementor-heading-title { color: var(--viv-muted); font-size: 9px; font-weight: 400; text-align: right; }
.viv-outcome-layout { display:grid; grid-template-columns:minmax(0,1.25fr) 64px minmax(150px,.75fr); align-items:center; padding:42px !important; }
.viv-outcome-brief { display:block !important; width:100%; height:auto; padding:0; overflow:hidden; border:1px solid rgba(8,66,53,.055); border-radius:12px; background:rgba(255,255,255,.96); box-shadow:0 18px 44px rgba(5,39,31,.07),0 3px 10px rgba(5,39,31,.028); color:var(--forest-dark); gap:normal; }
.viv-outcome-head { display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important; align-items:center; gap:10px; padding:14px 16px 12px; border-bottom:1px solid rgba(8,66,53,.08); }
.viv-avatar { display:grid; width:29px !important; height:29px; border-radius:50%; background:rgba(8,66,53,.08); place-items:center; }
.viv-avatar .elementor-heading-title { color:var(--forest) !important; font-size:.64rem; font-weight:600 !important; line-height:29px; text-align:center; }
.viv-outcome-brief .viv-person { display:block !important; width:auto !important; min-width:0; flex:0 1 auto !important; color:var(--forest-dark); line-height:1.55; }
.viv-outcome-brief .viv-person b { display:block; color:var(--forest-dark); font-size:.79rem; font-weight:500; line-height:1.55; }
.viv-outcome-brief .viv-person span { display:block; color:var(--muted); font-size:.68rem; line-height:24.8px; }
.viv-outcome-brief .viv-send { width:auto !important; margin-left:auto; color:var(--muted) !important; font-size:.8rem; font-weight:400; line-height:1.55; }
.viv-outcome-body { display:block !important; padding:12px 16px 16px; }
.viv-outcome-brief .viv-to { display:flex !important; align-items:center; gap:6px; margin:9px 0 8px !important; color:var(--muted) !important; font-size:.7rem; font-weight:400; line-height:1.55; }
.viv-outcome-brief .viv-ask { color:var(--forest-dark) !important; font-size:.82rem; font-weight:400; line-height:1.4; }
.viv-attach { display:flex !important; flex-direction:row !important; align-items:center; gap:10px; padding:9px 10px; border-radius:9px; background:#f4f5f1; }
.viv-outcome-body .viv-attach { margin-top:12px; }
.viv-outcome-brief .viv-attach-icon { display:grid; width:23px !important; height:23px; flex:0 0 23px; border-radius:7px; background:rgba(8,66,53,.07); color:var(--forest-dark) !important; font-size:.7rem; font-style:normal; line-height:1; place-items:center; }
.viv-outcome-brief .viv-attach-copy { display:block !important; min-width:0; flex:1; color:var(--muted) !important; line-height:1.55; text-align:left; }
.viv-outcome-brief .viv-attach-copy b { display:block; color:var(--muted); font-size:.72rem; font-weight:500; line-height:1.55; }
.viv-outcome-brief .viv-attach-copy span { display:block; color:var(--muted); font-size:.65rem; line-height:1.55; }
.viv-outcome-line { height: 1px; background: repeating-linear-gradient(90deg, rgba(8,66,53,.45) 0 4px, transparent 4px 8px); }
.viv-outcome-ack { display:grid !important; justify-items:center; gap:20px; text-align:center; }
.viv-outcome-ack .elementor-widget-text-editor { color:var(--forest-dark); font-size:.82rem; line-height:1.4; }
.viv-outcome-ack .elementor-widget-text-editor span { display:block; color:var(--muted); }
.viv-orb { display:grid; width:92px; height:92px; margin:auto; border:1px solid rgba(8,66,53,.08); border-radius:50%; background:rgba(255,255,255,.94); box-shadow:0 0 0 18px rgba(168,229,101,.08),0 0 46px 18px rgba(168,229,101,.34); color:var(--forest-dark); place-items:center; }
.viv-orb img { width: 52%; }
.viv-plan { display: grid; grid-template-columns: .72fr 1.28fr; gap: 14px; align-items: stretch; }
.viv-plan-summary { justify-content: center; background: linear-gradient(155deg,#f7f9f5,#e9f0e7); }
.viv-plan-list { display: grid; gap: 7px; }
.viv-plan-item { display: grid; grid-template-columns: 24px 1fr; padding: 9px; border-radius: 8px; background: #f4f7f2; align-items: center; gap: 9px; }
.viv-plan-number { display: grid; width: 24px; height: 24px; border-radius: 7px; background: rgba(8,66,53,.08); place-items: center; }
.viv-plan-number .elementor-heading-title { font-size: 10px; text-align: center; }
.viv-plan-item .elementor-heading-title { font-size: 10px; }
.viv-phone-layout { display: grid; grid-template-columns: 230px 52px 110px; align-items: center; justify-content: center; }
.viv-phone { display: grid; width: 230px; min-height: 400px; padding: 36px 12px 16px; border-radius: 42px; background: #151a18; box-shadow: 0 28px 58px rgba(3,45,37,.22); }
.viv-phone-screen { display: grid; padding: 20px 13px; border-radius: 31px; background: #fafaf7; align-content: start; gap: 8px; }
.viv-phone-screen::before { width: 32px; height: 32px; margin: 0 auto 4px; border-radius: 50%; background: #dfe7e2; color: var(--viv-forest); content: "V"; display: grid; place-items: center; font-size: 11px; }
.viv-phone-message { padding: 10px; border-radius: 9px; background: #fff; box-shadow: 0 5px 16px rgba(3,45,37,.05); }
.viv-phone-message .elementor-widget-text-editor { color: var(--viv-forest-dark); font-size: 10px; line-height: 1.45; }
.viv-option { padding:9px 11px; border-radius:9px; background:#fff; box-shadow:0 5px 16px rgba(5,39,31,.045); }
.viv-option .elementor-widget-text-editor { color:var(--viv-forest-dark); font-size:10px; line-height:1.35; }
.viv-bank-option { display: grid; grid-template-columns: 25px 1fr; min-height: 36px; padding: 6px 8px; border-radius: 8px; background: #eef1ec; align-items: center; gap: 8px; }
.viv-bank-option img { width: 21px; max-height: 21px; object-fit: contain; }
.viv-bank-option .elementor-heading-title { font-size: 10px; font-weight: 500; }
.viv-natwest-mark { width:18px !important; height:18px; border-radius:4px; background:linear-gradient(45deg,#4c2b8f 0 45%,transparent 45% 55%,#4c2b8f 55%); }
.viv-phone-line { height: 1px; background: repeating-linear-gradient(90deg,rgba(8,66,53,.45) 0 4px,transparent 4px 8px); }
.viv-connected { padding: 10px; border-radius: 12px; background: #fff; box-shadow: var(--viv-shadow); text-align: center; }
.viv-connected .elementor-heading-title { font-size: 10px; }
.viv-evaluation { width: min(500px, 95%); }
.viv-evaluation-result { border-left: 3px solid var(--viv-red); }
.viv-request-list { display: grid; gap: 6px; }
.viv-request-list .viv-ui-row { background: #eef1ec; }
.viv-followup-timeline { display: grid; grid-template-columns: auto 1fr auto 1fr auto; width: min(520px, 100%); margin: 0 auto 24px; align-items: center; }
.viv-followup-timeline::before { display: none; }
.viv-followup-timeline .elementor-heading-title { color: var(--viv-muted); font-size: 10px; }
.viv-followup-rule { height: 1px; background: var(--viv-hair); }
.viv-message { width: min(410px, 94%); }
.viv-message + .viv-message { margin-top: 9px; }
.viv-message.viv-message-response { margin-left: auto; background: #f1f5ee; }
.viv-evidence-grid { display: grid; grid-template-columns: minmax(0,1fr) 112px; gap: 30px; align-items: center; }
.viv-evidence-list { display: grid; gap: 8px; }
.viv-evidence-list .viv-ui-row { background: #fff; box-shadow: 0 8px 20px rgba(3,45,37,.05); }
.viv-audit-list { display: grid; gap: 2px; }
.viv-audit-row { display: grid; grid-template-columns: 48px 1fr; padding: 6px 8px; border-radius: 6px; gap: 10px; }
.viv-audit-row:nth-child(5) { background: var(--viv-red-soft); }
.viv-audit-basis { margin:1px 8px 5px 58px; padding:7px 9px; border-left:2px solid #c9760f; border-radius:0 7px 7px 0; background:#fff4e6; color:var(--viv-muted); font-size:9px; }
.viv-audit-row > .elementor-widget-heading:first-child .elementor-heading-title { color: var(--viv-muted); font-size: 9px; font-weight: 400; }
.viv-audit-row > .elementor-widget-heading:last-child .elementor-heading-title { font-size: 10px; }
.viv-complete-card { width: min(430px, 96%); }
.viv-complete-head { padding-bottom: 11px; border-bottom: 1px solid var(--viv-hair); }
.viv-complete-head .elementor-heading-title { font-size: 17px; }
.viv-complete-row { display: grid; grid-template-columns: 1fr auto; padding: 11px; border-radius: 8px; background: #f5f7f3; gap: 12px; }
.viv-complete-row .elementor-heading-title { font-size: 11px; }
.viv-complete-row > .elementor-widget-heading:last-child .elementor-heading-title { padding: 3px 6px; border-radius: 999px; background: rgba(168,229,101,.18); color: var(--viv-forest); font-size: 9px; }
.viv-boundary { display: grid; grid-template-columns: 1fr 1px 1fr; gap: 24px; align-items: center; }
.viv-boundary-rule { width: 1px; height: 210px; background: var(--viv-hair); }
.viv-boundary-side { display: grid; justify-items: center; gap: 10px; text-align: center; }
.viv-boundary-side > .elementor-widget-image img { width: 68px; }
.viv-boundary-side > .elementor-widget-heading .elementor-heading-title { font-size: 12px; }

.viv-scale { background: var(--viv-sage); }
.viv-case-stack { position: relative; display: grid; width: min(470px, 92%); margin: auto; gap: 9px; padding: 18px; border: 1px solid var(--viv-hair); border-radius: 16px; background: rgba(255,255,255,.88); box-shadow: var(--viv-shadow); }
.viv-case-row { display: grid; grid-template-columns: 1fr auto; padding: 12px; border-radius: 9px; background: #fff; gap: 10px; }
.viv-case-row .elementor-heading-title { font-size: 11px; }
.viv-case-row > .elementor-widget-heading:last-child .elementor-heading-title { color: var(--viv-muted); font-size: 9px; font-weight: 400; }
.viv-final-cta { min-height: 76svh; background: radial-gradient(circle at 72% 30%, rgba(168,229,101,.22), transparent 34%), var(--viv-ivory); text-align: center; }
.viv-final-cta .viv-copy { width: min(850px,100%); margin: auto; justify-items: center; }
.viv-final-cta .elementor-widget-text-editor { max-width: 680px; }

.viv-site-footer { background: var(--viv-forest-dark); color: #fff; }
.viv-footer-inner { display: grid; width: min(1240px, calc(100% - 48px)); min-height: 230px; margin: auto; padding: 54px 0; grid-template-columns: 1fr auto; align-items: start; gap: 40px; }
.viv-footer-logo img { width: 78px; filter: brightness(0) invert(1); }
.viv-footer-copy .elementor-widget-text-editor, .viv-footer-link .elementor-button { color: rgba(255,255,255,.68); font-size: 12px; }
.viv-footer-link .elementor-button { padding: 0; background: transparent; }

@media (max-width: 1080px) {
  body.viv-story-site.admin-bar .viv-site-header { top: 46px; }
  .viv-section { min-height: auto; padding: 104px 22px 64px; }
  .viv-section-inner, .viv-hero .viv-section-inner { grid-template-columns: 1fr; gap: 34px; }
  .viv-copy h1 { font-size: clamp(42px, 12vw, 62px); }
  .viv-copy h2 { font-size: clamp(34px, 9vw, 48px); }
  .viv-copy .elementor-widget-text-editor { font-size: 17px; }
  .viv-hero-visual { min-height: 390px; }
  .viv-who { min-height: 58svh; }
  .viv-context .viv-section-inner { grid-template-columns: 1fr; }
  .viv-problem-canvas { min-height: 500px; }
  .viv-solution-slide { min-height: auto; }
  .viv-solution-visual { min-height: 450px; padding: 18px; }
  .viv-plan { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .viv-header-inner { width: calc(100% - 32px); min-height: 64px; }
  .viv-header-logo img { width: 64px; }
  .viv-section { padding: 88px 18px 52px; }
  .viv-stats { gap: 10px; }
  .viv-stat { min-height: 132px; padding: 18px 12px; }
  .viv-stat .elementor-heading-title { font-size: 30px; }
  .viv-problem-canvas { min-height: 460px; border-radius: 16px; }
  .viv-work-card { width: calc(100% - 36px); min-height: 120px; padding: 15px; }
  .viv-work-action .elementor-heading-title { font-size: 14px; }
  .viv-solution-visual { min-height: 430px; border-radius: 16px; }
  .viv-outcome-layout { grid-template-columns: 1fr 34px 68px; }
  .viv-orb { width: 62px; height: 62px; box-shadow: 0 0 0 10px rgba(168,229,101,.1),0 0 28px rgba(168,229,101,.3); }
  .viv-orb img { width: 36px; }
  .viv-phone-layout { grid-template-columns: 178px 25px 70px; }
  .viv-phone { width: 178px; min-height: 350px; padding: 30px 8px 12px; border-radius: 34px; }
  .viv-phone-screen { padding: 14px 9px; border-radius: 26px; }
  .viv-connected { padding: 7px; }
  .viv-connected .elementor-heading-title { font-size: 8px; }
  .viv-evidence-grid { grid-template-columns: 1fr 68px; gap: 16px; }
  .viv-boundary { grid-template-columns: 1fr; }
  .viv-boundary-rule { width: 80%; height: 1px; }
  .viv-footer-inner { width: calc(100% - 36px); grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .viv-work-card, .viv-work-check { transition: none; }
}

/* Qualification, confirmation and blog pages. */
.viv-standard-page { min-height: calc(100svh - 72px); padding: 148px 24px 104px; background: radial-gradient(circle at 82% 12%, rgba(168,229,101,.16), transparent 28%), var(--viv-ivory); }
.viv-standard-inner { display: grid !important; width: min(1120px, 100%); margin: 0 auto; gap: 48px; }
.viv-page-intro { display: grid !important; max-width: 760px; gap: 17px; }
.viv-page-intro .elementor-widget-heading, .viv-page-intro .elementor-widget-text-editor { margin: 0; }
.viv-page-intro h1 { margin: 0; color: var(--viv-forest-dark); font-family: Manrope, sans-serif; font-size: clamp(42px, 6vw, 72px); font-weight: 400; letter-spacing: -.045em; line-height: 1.02; }
.viv-page-intro .elementor-widget-text-editor { max-width: 650px; color: var(--viv-muted); font-size: 18px; line-height: 1.55; }
.viv-page-kicker .elementor-heading-title { color: var(--viv-forest); font-size: 11px !important; font-weight: 600 !important; letter-spacing: .13em !important; text-transform: uppercase; }
.viv-contact-layout { display: grid !important; grid-template-columns: minmax(0, .72fr) minmax(520px, 1.28fr); gap: clamp(32px, 6vw, 76px); align-items: start; }
.viv-contact-aside { display: grid !important; gap: 14px; padding-top: 8px; }
.viv-contact-aside .elementor-heading-title { color: var(--viv-forest-dark); font-family: Manrope, sans-serif; font-size: 25px; font-weight: 400; }
.viv-contact-points { display: grid !important; gap: 8px; }
.viv-contact-point { display: grid !important; grid-template-columns: 28px 1fr; grid-template-areas: "marker title" "marker copy"; padding: 14px 0; border-bottom: 1px solid var(--viv-hair); align-items: start; column-gap: 10px; row-gap: 3px; }
.viv-contact-point::before { display: grid; width: 24px; height: 24px; grid-area: marker; margin-top: 1px; border-radius: 50%; background: rgba(168,229,101,.2); color: var(--viv-forest); content: "✓"; place-items: center; font-size: 10px; }
.viv-contact-point > .elementor-widget-heading { grid-area: title; }
.viv-contact-point > .elementor-widget-text-editor { grid-area: copy; }
.viv-contact-point .elementor-heading-title { color: var(--viv-forest-dark); font-family: Inter, sans-serif; font-size: 13px; font-weight: 500; line-height: 1.4; }
.viv-contact-point .elementor-widget-text-editor,
.viv-contact-point .elementor-widget-text-editor p { margin: 0; color: var(--viv-muted); font-size: 12px; line-height: 1.55; }
.viv-qualification-form { display: grid; padding: clamp(24px, 4vw, 42px); border: 1px solid var(--viv-hair); border-radius: 18px; background: rgba(255,255,255,.94); box-shadow: var(--viv-shadow); gap: 22px; }
.viv-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.viv-qualification-form label { display: grid; color: var(--viv-forest-dark); font-size: 12px; font-weight: 500; gap: 7px; }
.viv-qualification-form input, .viv-qualification-form select, .viv-qualification-form textarea { width: 100%; min-height: 48px; padding: 12px 13px; border: 1px solid rgba(8,66,53,.18); border-radius: 8px; outline: none; background: #fbfcf9; color: var(--viv-forest-dark); font: 400 14px/1.45 Inter, sans-serif; transition: border-color .18s ease, box-shadow .18s ease; }
.viv-qualification-form textarea { min-height: 126px; resize: vertical; }
.viv-qualification-form input:focus, .viv-qualification-form select:focus, .viv-qualification-form textarea:focus { border-color: var(--viv-forest); box-shadow: 0 0 0 3px rgba(8,66,53,.08); }
.viv-form-wide { display: grid; }
.viv-form-choices { display: grid; margin: 0; padding: 0; border: 0; gap: 7px; }
.viv-form-choices legend { padding: 0; color: var(--viv-forest-dark); font-size: 12px; font-weight: 500; }
.viv-form-choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.viv-qualification-form .viv-form-choice { display: flex !important; min-height: 44px; padding: 9px 10px; border: 1px solid rgba(8,66,53,.13); border-radius: 8px; background: #f6f8f4; align-items: center; gap: 8px; cursor: pointer; }
.viv-qualification-form .viv-form-choice input { width: 16px; height: 16px; min-height: 16px; flex: 0 0 16px; margin: 0; padding: 0; accent-color: var(--viv-forest); }
.viv-qualification-form .viv-form-choice span { font-size: 12px; font-weight: 400; line-height: 1.3; }
.viv-turnstile-wrap { width: 100%; min-height: 65px; overflow: hidden; }
.viv-turnstile-wrap .cf-turnstile { width: 100%; }
.viv-form-footer { display: flex; align-items: flex-start; flex-direction: column; gap: 10px; }
.viv-form-footer p { max-width: 350px; margin: 0; color: var(--viv-muted); font-size: 10px; line-height: 1.5; }
.viv-form-footer button { display: inline-flex; min-height: 48px; padding: 0 20px; border: 0; border-radius: 8px; background: var(--viv-forest-dark); color: #fff; font: 500 13px Inter, sans-serif; align-items: center; gap: 13px; cursor: pointer; }
.viv-form-footer button:hover { background: var(--viv-forest); }
.viv-form-honeypot { position: absolute !important; left: -10000px !important; }
.viv-form-notice { margin: 0; padding: 11px 13px; border-radius: 8px; background: var(--viv-red-soft); color: var(--viv-red); font-size: 12px; }
.viv-success-page { display: grid !important; min-height: calc(100svh - 72px); padding: 148px 24px 112px; background: radial-gradient(circle at 82% 12%, rgba(168,229,101,.16), transparent 28%), var(--viv-ivory); place-items: center; }
.viv-success-shell { display: grid !important; width: 100%; place-items: center; }
.viv-success-inner { display: grid !important; width: min(1120px,100%); grid-template-columns: minmax(0,.72fr) minmax(480px,1.28fr); gap: clamp(40px,7vw,84px); align-items: start; }
.viv-success-confirmation { display: grid !important; padding-top: 42px; gap: 18px; }
.viv-success-status .elementor-heading-title { color: var(--viv-forest); font-family: Inter,sans-serif; font-size: 11px !important; font-weight: 600 !important; letter-spacing: .13em !important; text-transform: uppercase; }
.viv-success-inner h1 { margin: 4px 0 10px; color: var(--viv-forest-dark); font-family: Manrope,sans-serif; font-size: clamp(44px,5vw,66px); font-weight: 400; letter-spacing: -.045em; line-height: 1.04; }
.viv-success-confirmation .elementor-widget-text-editor { max-width: 470px; color: var(--viv-muted); font-size: 18px; line-height: 1.58; }
.viv-success-scheduling { margin-top: 4px; font-size: 14px !important; }
.viv-success-resources-widget .elementor-widget-container { width: 100%; }
.viv-success-resources { width: 100%; padding: clamp(28px,4vw,42px); border: 1px solid var(--viv-hair); border-radius: 18px; background: rgba(255,255,255,.94); box-shadow: var(--viv-shadow); }
.viv-success-resources-kicker { margin: 0 0 16px; color: var(--viv-forest); font-size: 11px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.viv-success-resource-list { display: grid; }
.viv-success-resource { margin: 0; padding: 22px 0; border-top: 1px solid var(--viv-hair); }
.viv-success-resource a { display: grid; color: inherit; text-decoration: none; gap: 8px; }
.viv-success-resource-title { color: var(--viv-forest-dark); font-family: Manrope,sans-serif; font-size: 22px; font-weight: 400; letter-spacing: -.025em; line-height: 1.22; }
.viv-success-resource-summary { max-width: 470px; color: var(--viv-muted); font-size: 13px; line-height: 1.55; }
.viv-success-resource-link { display: inline-flex; margin-top: 2px; color: var(--viv-forest); font-size: 12px; font-weight: 600; align-items: center; gap: 7px; }
.viv-success-resource-link span { color: var(--viv-lime); transition: transform .18s ease; }
.viv-success-resource a:hover .viv-success-resource-title,
.viv-success-resource a:focus-visible .viv-success-resource-title { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
.viv-success-resource a:hover .viv-success-resource-link span,
.viv-success-resource a:focus-visible .viv-success-resource-link span { transform: translateX(3px); }
.viv-blog-page { padding-bottom: 120px; }
.viv-blog-page .viv-page-intro h1 { font-size:clamp(1.85rem,2.8vw,2.7rem); letter-spacing:-.02em; line-height:1.1; }
.viv-blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.viv-blog-card { display: grid; overflow: hidden; border: 1px solid var(--viv-hair); border-radius: 15px; background: rgba(255,255,255,.92); box-shadow: 0 13px 34px rgba(3,45,37,.055); }
.viv-blog-card__image { display: block; height: 190px; overflow: hidden; background: linear-gradient(145deg, var(--viv-sage), #f7f7ef); }
.viv-blog-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.viv-blog-card:hover .viv-blog-card__image img { transform: scale(1.025); }
.viv-blog-card__image span { display: block; width: 100%; height: 100%; background: radial-gradient(circle at 76% 28%, rgba(168,229,101,.45), transparent 25%), linear-gradient(145deg,#e5ede2,#f8f7f0); }
.viv-blog-card__body { display: grid; min-height: 245px; padding: 22px; align-content: start; gap: 12px; }
.viv-blog-card__meta { margin: 0; color: var(--viv-muted); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.viv-blog-card h2 { margin: 0; font-family: Manrope, sans-serif; font-size: 21px; font-weight: 400; letter-spacing: -.025em; line-height: 1.25; }
.viv-blog-card h2 a { color: var(--viv-forest-dark); text-decoration: none; }
.viv-blog-card__body > p:not(.viv-blog-card__meta) { margin: 0; color: var(--viv-muted); font-size: 12px; line-height: 1.55; }
.viv-blog-card__link { margin-top: auto; color: var(--viv-forest); font-size: 12px; font-weight: 600; text-decoration: none; }
.viv-blog-pagination { display:flex; margin-top:48px; justify-content:center; align-items:center; gap:8px; }
.viv-blog-pagination .page-numbers { display:inline-flex; min-width:40px; height:40px; padding:0 12px; border:1px solid var(--viv-hair); border-radius:8px; background:rgba(255,255,255,.78); color:var(--viv-forest); align-items:center; justify-content:center; font-size:13px; font-weight:600; text-decoration:none; transition:background .2s ease,color .2s ease,border-color .2s ease; }
.viv-blog-pagination .page-numbers:hover,
.viv-blog-pagination .page-numbers:focus-visible { border-color:var(--viv-forest); background:#fff; }
.viv-blog-pagination .page-numbers.current { border-color:var(--viv-forest); background:var(--viv-forest); color:#fff; }

@media (max-width: 900px) {
  .viv-contact-layout { grid-template-columns: 1fr; }
  .viv-success-inner { grid-template-columns: 1fr; }
  .viv-success-confirmation { max-width: 650px; padding-top: 0; }
  .viv-blog-grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 640px) {
  .viv-standard-page { padding: 112px 18px 72px; }
  .viv-standard-inner { gap: 34px; }
  .viv-page-intro h1 { font-size: 42px; }
  .viv-page-intro .elementor-widget-text-editor { font-size: 16px; }
  .viv-form-grid, .viv-blog-grid { grid-template-columns: 1fr; }
  .viv-form-choice-grid { grid-template-columns: 1fr 1fr; }
  .viv-form-footer { align-items: stretch; flex-direction: column; }
  .viv-form-footer button { justify-content: center; }
  .viv-success-page { padding: 112px 18px 76px; }
  .viv-success-inner { gap: 48px; }
  .viv-success-inner h1 { font-size: 43px; }
  .viv-success-confirmation .elementor-widget-text-editor { font-size: 16px; }
  .viv-success-scheduling { font-size: 14px !important; }
  .viv-success-resources { padding: 26px 22px; border-radius: 14px; }
  .viv-success-resource { padding: 19px 0; }
  .viv-success-resource-title { font-size: 20px; }
}

/* WYSIWYG parity layer: the Elementor containers retain the approved story geometry. */
:root { --ivory:#fbfaf6; --paper:#fff; --forest:#084235; --forest-dark:#05271f; --sage:#a9b7a5; --lime:#a8e565; --muted:#63736c; --hair:rgba(8,66,53,.14); --header-bg:#fbfaf6; }
body.viv-story-site { background:var(--ivory); color:var(--forest-dark); font-size:16px; line-height:1.55; }
.viv-story-site .elementor-location-header { position:relative; z-index:30; }
.topbar { position:fixed !important; z-index:30 !important; top:0; right:0; left:0; display:flex !important; flex-direction:row !important; width:100%; padding:20px clamp(28px,5vw,80px) !important; align-items:center !important; justify-content:space-between !important; background:transparent; transition:background 180ms ease; }
.topbar > .e-con { width:auto !important; }
.topbar .brand { width:52px !important; }
.topbar .brand { margin-left:0 !important; }
.topbar .brand img { display:block; width:52px; height:22px; object-fit:contain; }
.topbar .btn { width:auto !important; }
.topbar .btn .elementor-button, .chapter-cta .elementor-button { min-height:46px; padding:12px 22px; border:1px solid var(--forest-dark) !important; border-radius:3px; background:var(--forest-dark) !important; color:#f6f5ef !important; font-size:.85rem; font-weight:500; }
body.solution-active .topbar { background:var(--forest-dark); }
body.solution-active .topbar .brand img { filter:brightness(0) invert(1); }
body.solution-active .topbar .btn .elementor-button { border-color:var(--lime) !important; background:var(--lime) !important; color:var(--forest-dark) !important; }
.viv-page { display:block !important; overflow:visible; background:var(--ivory); }
.silk { position:fixed; z-index:0; inset:0; width:100%; height:100%; pointer-events:none; background:linear-gradient(110deg,transparent 58%,rgba(169,183,165,.065) 58.1%,transparent 58.25%); }
.rail { position:fixed; z-index:25; top:calc(50% + 23px); left:14px; width:auto !important; transform:translateY(-50%); }
.rail ol { display:grid; gap:15px; margin:0; padding:0; list-style:none; }
.rail a { display:flex; align-items:center; gap:10px; color:var(--muted); font-size:.58rem; font-weight:500; letter-spacing:.16em; text-decoration:none; text-transform:uppercase; }
.rail i { display:block; width:18px; height:1px; background:var(--hair); transition:width 400ms,background 400ms; }
.rail span { opacity:0; transition:opacity 300ms; }
.rail a:hover span, .rail a:focus-visible span { opacity:1; }
.rail a:hover i { width:34px; background:var(--lime); }
.rail a.is-active { color:var(--forest-dark); }
.rail a.is-active span { opacity:1; }
.rail a.is-active i { width:34px; background:var(--lime); }
body.solution-active .rail a { color:rgba(244,244,240,.66); }
.track, .stage, .frame, .mobile-story { display:block !important; width:100%; max-width:none; }
.track, .stage, .frame { height:auto; min-height:0; padding:0; }
.copy, .visual { display:contents !important; }
.mobile-slide { position:relative; z-index:1; display:grid; width:100%; grid-template-columns:minmax(300px,560px) minmax(0,1fr); align-items:center; gap:clamp(36px,5vw,82px); min-height:100vh; min-height:100svh; padding:104px max(46px,calc((100vw - 1240px)/2)) 64px; overflow:hidden; background:#fbfaf6; }
.mobile-story > .mobile-slide:nth-of-type(even) { background:#e9f0e7; }
.chap { position:relative; z-index:2; display:grid !important; width:100%; height:auto; gap:0; opacity:1; visibility:visible; pointer-events:auto; }
.chap .elementor-widget-heading, .chap .elementor-widget-text-editor { margin:0; }
.chap h1, .chap h2, .chap .elementor-heading-title { margin:0; color:var(--forest-dark); font-family:Manrope,sans-serif; font-weight:400 !important; letter-spacing:-.02em; line-height:1.1; }
.chap h1 { font-size:clamp(1.85rem,2.8vw,2.7rem); }
.chap h2 { font-size:clamp(1.35rem,1.9vw,1.8rem); line-height:1.2; }
.chap .note { max-width:36rem; margin-top:14px; color:var(--muted); font-size:clamp(.92rem,1vw,1rem); font-weight:300; }
.chap .chapter-cta { width:auto !important; margin-top:22px; justify-self:start; }
.scene { position:relative; display:block !important; width:100%; height:min(70vh,720px); opacity:1; visibility:visible; }
.scene > .inner { position:relative; display:grid !important; width:100%; height:100%; place-items:center; }
.mobile-slide[data-group="home"] .chap { align-self:end; margin-bottom:5vh; }
.mobile-slide[data-group="home"] .scene { align-self:center; }
.hero-art-wrap { display:grid !important; width:100%; height:100%; place-items:center; }
.hero-art { width:100% !important; }
.hero-art img { display:block; width:min(680px,100%); max-width:none; max-height:100%; object-fit:contain; opacity:.52; mix-blend-mode:multiply; filter:saturate(.58) contrast(.88); -webkit-mask-image:radial-gradient(ellipse 68% 66% at 54% 48%,#000 42%,rgba(0,0,0,.72) 66%,transparent 100%); mask-image:radial-gradient(ellipse 68% 66% at 54% 48%,#000 42%,rgba(0,0,0,.72) 66%,transparent 100%); }
.who { display:grid !important; width:min(620px,84%); }
.who__boxes { display:grid !important; grid-template-columns:1fr 1fr; gap:22px; }
.who__box { display:flex !important; min-height:188px; flex-direction:column !important; justify-content:center; padding:34px 28px; border-radius:12px; background:rgba(255,255,255,.82); box-shadow:0 10px 26px rgba(5,39,31,.05); text-align:center; }
.who__box .elementor-heading-title { color:var(--forest-dark); font-family:Inter,sans-serif; font-size:clamp(1.85rem,2.75vw,2.45rem); font-weight:400 !important; }
.who__box .elementor-widget-text-editor { margin-top:8px; color:var(--muted); font-size:.9rem; font-weight:300; }
.viv-story-site .stats,
.viv-story-site .viv-stats { display:grid !important; width:min(560px,80%) !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:26px 40px !important; }
.viv-story-site .stats > .viv-stat,
.viv-story-site .viv-stats > .viv-stat { display:flex !important; width:auto !important; min-height:132px; flex-direction:column !important; align-items:center; justify-content:center; gap:0 !important; padding:22px 24px !important; border:0 !important; border-radius:12px !important; background:rgba(255,255,255,.82) !important; box-shadow:0 10px 26px rgba(5,39,31,.05),0 2px 7px rgba(5,39,31,.022) !important; text-align:center; }
.viv-story-site .stats .viv-stat .elementor-heading-title,
.viv-story-site .viv-stats .viv-stat .elementor-heading-title { color:var(--forest-dark) !important; font-family:Inter,sans-serif !important; font-size:clamp(1.7rem,2.6vw,2.4rem) !important; font-weight:400 !important; line-height:1.55 !important; letter-spacing:-.02em !important; }
.viv-story-site .stats .viv-stat .elementor-widget-text-editor,
.viv-story-site .viv-stats .viv-stat .elementor-widget-text-editor { margin-top:6px; color:var(--muted); font-size:.86rem; font-weight:300; line-height:1.55; }
.viv-story-site .stats .source,
.viv-story-site .viv-stats .source { grid-column:1/-1 !important; margin:4px 0 0 !important; color:var(--muted) !important; font-size:.72rem !important; font-weight:400; line-height:1.55; text-align:left; }
.solution-sequence { position:relative; z-index:2; height:calc(var(--solution-count)*100vh); height:calc(var(--solution-count)*100svh); background:var(--forest-dark); }
.solution-stage { position:sticky; top:0; display:block !important; width:100%; height:100vh; height:100svh; overflow:hidden; background:var(--forest-dark); }
.solution-stage .mobile-slide { position:absolute; z-index:1; inset:0; width:100%; height:100vh; height:100svh; min-height:100vh; min-height:100svh; background:var(--forest-dark); color:#f4f4f0; opacity:0; visibility:hidden; pointer-events:none; transform:translateY(18px) scale(.992); transition:opacity 340ms cubic-bezier(.22,.61,.36,1),transform 440ms cubic-bezier(.22,.61,.36,1),visibility 0s linear 440ms; }
.solution-stage .mobile-slide.is-before { transform:translateY(-18px) scale(.992); }
.solution-stage .mobile-slide.is-current { z-index:2; opacity:1; visibility:visible; pointer-events:auto; transform:none; transition-delay:0s; }
.solution-stage .chap h2 { color:#f4f4f0; }
.solution-stage .chap .note { color:rgba(244,244,240,.68); }
.solution-stage .viv-solution-visual { width:min(650px,100%); height:min(500px,92%); min-height:420px; padding:42px; }
.mobile-slide[data-group="scale"] { background:#e9f0e7; }
.mobile-slide[data-group="cta"] { min-height:72vh; background:#fbfaf6; }
.cta-art { position:absolute; inset:0; background:radial-gradient(circle at 78% 30%,rgba(168,229,101,.18),transparent 30%); }
.site-footer { position:relative; z-index:4; display:block !important; padding:72px max(46px,calc((100vw - 1152px)/2)) !important; background:#002a21; color:rgba(244,244,240,.72); }
.site-footer__grid { display:grid !important; grid-template-columns:2fr repeat(3,1fr) !important; gap:20px !important; max-width:1152px; margin:0 auto !important; }
.site-footer__grid--product-hidden { grid-template-columns:2fr repeat(2,1fr) !important; }
.site-footer__grid--product-hidden .site-footer__product { display:none !important; }
.site-footer__brand { display:flex !important; flex-direction:column !important; align-items:flex-start !important; gap:16px !important; }
.site-footer__logo { width:82px !important; }
.site-footer__logo img { display:block; width:82px; height:34px; object-fit:contain; }
.site-footer__label .elementor-heading-title,.site-footer__heading .elementor-heading-title { color:inherit; font-size:.78rem; font-weight:500; letter-spacing:.02em; }
.site-footer__label .elementor-heading-title { color:rgba(244,244,240,.72) !important; }
.site-footer__heading .elementor-heading-title { color:var(--lime) !important; }
.site-footer__nav { display:grid !important; align-content:start !important; gap:14px !important; }
.site-footer a,
.site-footer__nav .elementor-widget-text-editor,
.site-footer__email .elementor-widget-container { color:rgba(244,244,240,.66) !important; text-decoration:none; }
.site-footer__bottom { display:flex !important; flex-direction:row !important; align-items:center !important; justify-content:space-between !important; gap:32px !important; max-width:1152px; margin:64px auto 0 !important; padding-top:28px !important; border-top:1px solid rgba(244,244,240,.12); }
.site-footer__bottom .elementor-heading-title { color:rgba(244,244,240,.58) !important; font-size:.74rem; font-weight:400; }
.site-footer__legal,
.site-footer__legal .elementor-widget-container { display:flex !important; flex-direction:row !important; flex-wrap:wrap !important; justify-content:flex-end !important; gap:34px !important; font-size:.74rem; }

@media (min-width:1180px) { .mobile-slide .chap { transform:translateX(calc(clamp(150px,10.5vw,180px) - max(46px,calc((100vw - 1240px)/2)))); } }
@media (min-width:1180px) {
  .mobile-slide[data-group="cta"] .chap { transform:translateX(calc(clamp(210px,13vw,240px) - max(46px,calc((100vw - 1240px)/2)))); }
  .mobile-slide[data-group="home"] .scene { width:calc(100% + max(46px,(100vw - 1240px)/2)); margin-right:min(-46px,(1240px - 100vw)/2); }
  .mobile-slide[data-group="home"] .scene > .inner { justify-items:end; }
  .mobile-slide[data-group="home"] .hero-art img { width:100% !important; max-height:none; }
}
@media (max-width:1080px) {
  .topbar { padding:20px 20px 18px !important; background:var(--header-bg); box-shadow:0 1px 0 rgba(8,66,53,.06); }
  .topbar .brand { margin-left:26px !important; }
  .rail { display:none !important; }
  .mobile-slide { grid-template-columns:minmax(0,1fr); grid-template-rows:auto minmax(360px,1fr); gap:22px; min-height:100svh; padding:108px 20px 40px; }
  .solution-stage .mobile-slide { height:100dvh; min-height:100dvh; }
  .scene { height:auto; min-height:52svh; }
  .scene > .inner { min-height:52svh; }
  .mobile-slide[data-group="home"] { grid-template-rows:minmax(0,1fr) auto; min-height:720px; padding-bottom:30px; }
  .mobile-slide[data-group="home"] .scene { grid-row:1; width:calc(100% + 60px); min-height:0; margin-left:-40px; }
  .mobile-slide[data-group="home"] .chap { grid-row:2; margin-bottom:0; padding-right:26px; padding-left:26px; transform:translateY(-46px); }
  .hero-art { visibility:hidden; }
  .chap h1 { font-size:1.85rem; }
  .chap h2 { font-size:clamp(1.55rem,7vw,2.15rem); }
  .chap .note { font-size:1rem; }
  .who,.stats,.viv-stats { width:100% !important; }
  .viv-story-site .stats,.viv-story-site .viv-stats { gap:10px !important; }
  .viv-story-site .stats > .viv-stat,.viv-story-site .viv-stats > .viv-stat { min-height:116px; padding:16px 14px !important; }
  .viv-story-site .who__boxes { gap:10px; }
  .viv-story-site .who__box { min-height:132px; padding:22px; }
  .viv-story-site .who__box .elementor-heading-title { font-size:1.4rem !important; }
  .viv-story-site .who__box .elementor-widget-text-editor { margin-top:10px; }
  .solution-stage .viv-solution-visual { height:52svh; min-height:0; max-height:52svh; padding:18px; }
  .site-footer { padding:48px 20px 34px !important; }
  .site-footer__grid { grid-template-columns:1fr 1fr !important; gap:42px 28px !important; }
	.site-footer__grid--product-hidden { grid-template-columns:1fr 1fr !important; }
  .site-footer__brand { grid-column:1/-1; }
  .site-footer__bottom { align-items:flex-start !important; flex-direction:column !important; gap:24px !important; margin-top:48px !important; }
  .site-footer__legal,
  .site-footer__legal .elementor-widget-container { justify-content:flex-start !important; gap:14px 24px !important; }
}
@media (max-width:640px) {
  .topbar .brand img { width:52px; }
  .topbar .btn .elementor-button { min-height:46px; padding:12px 22px; }
  .who__boxes { grid-template-columns:1fr; gap:10px; }
  .who__box { min-height:132px; padding:22px; }
  .viv-story-site .stats,.viv-story-site .viv-stats { gap:10px !important; }
  .viv-story-site .stats > .viv-stat,.viv-story-site .viv-stats > .viv-stat { min-height:116px; padding:16px 14px !important; }
  .viv-problem-canvas { min-height:52svh; }
  .solution-stage .viv-solution-visual { height:48svh; min-height:0; max-height:48svh; padding:12px; }
}

/* Exact parity corrections from the approved HTML reference. */
.viv-story-site .chap h1,
.viv-story-site .chap h2,
.viv-story-site .chap .elementor-heading-title,
.viv-story-site .viv-page-intro h1,
.viv-story-site .viv-contact-aside .elementor-heading-title,
.viv-story-site .viv-blog-card h2,
.viv-story-site .viv-success-inner h1 {
  font-family:Manrope,sans-serif !important;
}
.viv-story-site .scene,
.viv-story-site .scene *,
.viv-story-site .who__box .elementor-heading-title,
.viv-story-site .stats .elementor-heading-title {
  font-family:Inter,sans-serif !important;
}
.topbar .brand {
  display:block !important;
  width:52px !important;
  height:22px !important;
  min-height:22px;
  align-self:center !important;
}
.topbar .brand .elementor-widget-container,
.topbar .brand a {
  display:block;
  width:52px;
  height:22px;
}
.topbar .brand img {
  width:52px !important;
  height:22px !important;
  margin:0 !important;
}
.topbar .btn .elementor-button {
  display:inline-flex;
  min-height:47px;
  align-items:center;
  line-height:1.55;
}
.who__box .elementor-heading-title {
  font-size:clamp(1.55rem,2.1vw,1.95rem) !important;
  letter-spacing:-.02em !important;
}
.who__box .elementor-widget-text-editor {
  margin-top:14px;
  font-size:.84rem;
}
.viv-story-site .chap h2.elementor-heading-title {
  color:var(--forest-dark) !important;
  letter-spacing:-.01em !important;
  line-height:1.2 !important;
}
.viv-story-site .chap h1.elementor-heading-title { color:var(--forest-dark) !important; }
.viv-story-site .solution-stage .chap h2.elementor-heading-title { color:#f4f4f0 !important; }
.viv-story-site .topbar.elementor-element .btn.elementor-widget .elementor-button,
.viv-story-site .mobile-slide .chapter-cta.elementor-widget .elementor-button {
  min-height:0 !important;
  padding:12px 22px !important;
  line-height:1.55 !important;
}
.viv-story-site .chap-who .who__sectors,
.viv-story-site .chap-who .note {
  max-width:none;
  margin-top:22px;
  color:var(--forest);
  font-family:Inter,sans-serif;
  font-size:.72rem;
  font-weight:500;
  line-height:1.55;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.viv-story-site .who__box {
  text-align:left;
}
.viv-story-site .who__box .elementor-heading-title {
  color:var(--forest-dark) !important;
  line-height:1.55 !important;
  text-align:left;
}
.viv-story-site .who__box .elementor-widget-text-editor {
  font-weight:400;
  text-align:left;
}
.viv-problem-canvas {
  width:min(600px,100%);
  min-height:0;
  aspect-ratio:3 / 2;
  border:1px solid rgba(8,66,53,.055);
  border-radius:16px;
  background:rgba(255,255,255,.2);
  box-shadow:none;
  isolation:isolate;
}
.viv-work-card {
  width:min(370px,calc(100vw - 64px));
  min-height:0;
  padding:17px 18px 18px;
  border-color:rgba(8,66,53,.055);
  border-radius:12px;
  background:rgba(255,255,255,.98);
  box-shadow:0 18px 44px rgba(5,39,31,.07),0 3px 10px rgba(5,39,31,.028);
}
.viv-work-card.is-active {
  border-color:rgba(8,66,53,.11);
  box-shadow:0 20px 48px rgba(5,39,31,.1),0 3px 10px rgba(5,39,31,.035);
}
.viv-work-card.is-decided::after {
  top:16px;
  right:auto;
  bottom:16px;
  left:0;
  width:3px;
  height:auto;
  border-radius:0 3px 3px 0;
  background:var(--lime);
  color:transparent;
  content:"";
}
.viv-work-card.viv-alert.is-decided::after {
  background:#a4473b;
  color:transparent;
  content:"";
}
.solution-stage .viv-solution-visual {
  border-radius:18px;
  background:radial-gradient(circle at 78% 24%,rgba(168,229,101,.1),transparent 30%),linear-gradient(145deg,#fbfaf7 0%,#f5f4ee 100%);
  box-shadow:0 24px 64px rgba(3,34,27,.105),0 4px 16px rgba(3,34,27,.04);
}
.mobile-story > .mobile-slide:nth-of-type(even) { background:initial; }
.mobile-story > .mobile-slide:nth-child(even) { background:#e9f0e7; }
.mobile-story > .mobile-slide[data-group="cta"] {
  min-height:100vh;
  min-height:100svh;
  background:#fbfaf6 !important;
}
.cta-art {
  overflow:hidden;
  background:transparent;
}
.cta-art::before {
  position:absolute;
  top:4%;
  right:-10%;
  width:66%;
  aspect-ratio:1;
  border:1px solid rgba(8,66,53,.09);
  border-radius:50%;
  content:"";
}
.cta-art::after {
  position:absolute;
  right:0;
  bottom:0;
  width:54%;
  height:43%;
  border-radius:100% 0 0;
  background:rgba(169,183,165,.16);
  content:"";
}
.site-footer .elementor-widget-heading,
.site-footer .elementor-widget-text-editor,
.site-footer p,
.site-footer h2 { margin:0; }
.site-footer__label .elementor-heading-title,
.site-footer__heading .elementor-heading-title,
.site-footer__bottom .elementor-heading-title,
.site-footer__nav,
.site-footer__email,
.site-footer__legal { line-height:1.55; }
.site-footer__logo,
.site-footer__logo .elementor-widget-container,
.site-footer__logo a,
.site-footer__logo img {
  width:82px !important;
  height:34px !important;
}
.site-footer__email,
.site-footer__email .elementor-widget-container {
  font-size:.88rem;
  line-height:1.55;
}
.site-footer__bottom .elementor-widget-heading,
.site-footer__bottom .elementor-heading-title,
.site-footer__bottom,
.site-footer__legal,
.site-footer__legal .elementor-widget-container {
  font-size:.74rem;
  line-height:1.55;
}
.viv-case-stack {
  z-index:0;
  width:min(400px,86%);
  padding:18px 16px;
  border:1px solid rgba(8,66,53,.055);
  border-radius:12px;
  background:rgba(255,255,255,.94);
  box-shadow:0 18px 44px rgba(5,39,31,.07),0 3px 10px rgba(5,39,31,.028);
  isolation:isolate;
}
.viv-case-stack::before,
.viv-case-stack::after {
  position:absolute;
  z-index:-2;
  inset:0;
  border:1px solid rgba(8,66,53,.055);
  border-radius:12px;
  background:rgba(255,255,255,.72);
  box-shadow:0 10px 26px rgba(5,39,31,.05),0 2px 7px rgba(5,39,31,.022);
  content:"";
}
.viv-case-stack::before { transform:translate(-24px,24px); }
.viv-case-stack::after { z-index:-1; transform:translate(-12px,12px); }
.viv-case-row {
  grid-template-columns:1fr;
  gap:0;
  padding:10px 12px;
  border:1px solid rgba(8,66,53,.055);
  border-radius:9px;
  box-shadow:0 10px 26px rgba(5,39,31,.05),0 2px 7px rgba(5,39,31,.022);
}
.viv-case-row > .elementor-widget-heading:first-child .elementor-heading-title {
  display:flex;
  align-items:center;
  gap:9px;
}
.viv-case-row > .elementor-widget-heading:first-child .elementor-heading-title::before {
  display:grid;
  width:24px;
  height:24px;
  flex:0 0 24px;
  border-radius:7px;
  background:rgba(8,66,53,.07);
  content:"▤";
  place-items:center;
  font-size:.66rem;
}
.viv-case-row > .elementor-widget-heading:last-child .elementor-heading-title {
  margin-top:5px;
  padding-left:33px;
  text-align:left;
}

@media (max-width:1080px) {
  .hero-art {
    visibility:visible;
    opacity:.42;
  }
  .solution-stage .mobile-slide {
    transition:none;
    will-change:transform;
  }
  .mobile-story > .mobile-slide[data-group="cta"] {
    grid-template-rows:auto;
    min-height:0;
    padding-bottom:56px;
  }
  .mobile-story > .mobile-slide[data-group="cta"] .chap { z-index:1; }
  .mobile-story > .mobile-slide[data-group="cta"] .scene {
    position:absolute;
    inset:0;
    min-height:0;
    pointer-events:none;
  }
  .mobile-story > .mobile-slide[data-group="cta"] .scene > .inner {
    height:100%;
    min-height:0;
  }
  .chap h1,
  .viv-blog-page .viv-page-intro h1 { font-size:1.7rem; }
  .chap h2 { font-size:1.45rem; }
  .viv-problem-canvas {
    width:100%;
    min-height:320px;
    aspect-ratio:1 / 1;
  }
  .viv-work-card {
    width:min(330px,calc(100vw - 32px));
    padding:14px;
  }
  .viv-case-stack {
    width:calc(100% - 20px);
    padding:10px;
    transform:translateX(10px);
  }
  .viv-case-stack::before { transform:translate(-16px,16px); }
  .viv-case-stack::after { transform:translate(-8px,8px); }
}

/* Authoritative parity with the approved HTML components. */
.viv-story-loading .frame { opacity:0; }
.frame { opacity:1; transition:opacity 160ms ease; }
.topbar .btn .elementor-button,
.viv-header-cta .elementor-button,
.viv-cta-button .elementor-button,
.chapter-cta .elementor-button,
.mobile-slide[data-group="cta"] .chapter-cta .elementor-button,
.viv-form-footer button,
.viv-success-actions .elementor-button {
  display:inline-flex !important;
  width:auto !important;
  height:auto !important;
  min-height:0 !important;
  padding:12px 22px !important;
  border:1px solid var(--forest-dark) !important;
  border-radius:3px !important;
  background:var(--forest-dark) !important;
  box-shadow:none !important;
  color:#f6f5ef !important;
  line-height:1.55 !important;
  align-items:center;
  justify-content:center;
  gap:9px;
  font-family:Inter,sans-serif !important;
  font-size:.85rem !important;
  font-weight:500 !important;
  line-height:1 !important;
  letter-spacing:0 !important;
  text-decoration:none !important;
  white-space:nowrap;
  appearance:none;
}
.topbar .btn .elementor-button:hover,
.topbar .btn .elementor-button:focus-visible,
.viv-header-cta .elementor-button:hover,
.viv-header-cta .elementor-button:focus-visible,
.viv-cta-button .elementor-button:hover,
.viv-cta-button .elementor-button:focus-visible,
.chapter-cta .elementor-button:hover,
.chapter-cta .elementor-button:focus-visible,
.mobile-slide[data-group="cta"] .chapter-cta .elementor-button:hover,
.mobile-slide[data-group="cta"] .chapter-cta .elementor-button:focus-visible,
.viv-form-footer button:hover,
.viv-form-footer button:focus-visible,
.viv-success-actions .elementor-button:hover,
.viv-success-actions .elementor-button:focus-visible {
  border-color:var(--forest-dark) !important;
  background:transparent !important;
  color:var(--forest-dark) !important;
}
.viv-success-actions .viv-button-secondary .elementor-button {
  background:transparent !important;
  color:var(--forest-dark) !important;
}

.viv-work-context .elementor-heading-title {
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-bottom:11px;
  padding:0;
  color:var(--muted);
  font-size:.62rem;
  font-weight:600 !important;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.viv-work-context .elementor-heading-title::before {
  display:grid;
  width:22px;
  height:22px;
  flex:0 0 22px;
  border-radius:50%;
  background:rgba(8,66,53,.08);
  color:var(--forest);
  content:"▤";
  place-items:center;
  font-size:.62rem;
  letter-spacing:0;
}
.viv-owner-system .viv-work-context .elementor-heading-title::before { content:"⚙"; }
.viv-owner-sarah .viv-work-context .elementor-heading-title::before { content:"S"; }
.viv-owner-james .viv-work-context .elementor-heading-title::before { background:rgba(52,136,214,.11); color:#286896; content:"J"; }
.viv-owner-provider .viv-work-context .elementor-heading-title::before { background:rgba(201,118,15,.11); color:#c9760f; content:"C"; }
.viv-owner-application .viv-work-context .elementor-heading-title::before { display:none; }
.viv-work-action .elementor-heading-title {
  display:flex;
  align-items:center;
  gap:12px;
  font-size:1rem;
  font-weight:600 !important;
  line-height:1.3;
}
.viv-work-action .elementor-heading-title::before {
  display:grid;
  width:36px;
  height:36px;
  flex:0 0 36px;
  border-radius:10px;
  background:rgba(8,66,53,.07);
  color:var(--forest);
  content:"→";
  place-items:center;
  font-size:.86rem;
}
.viv-owner-application .viv-work-action .elementor-heading-title::before { content:"↳"; }
.viv-owner-james .viv-work-action .elementor-heading-title::before { content:"↑"; }
.viv-owner-provider .viv-work-action .elementor-heading-title::before { content:"↑"; }
.viv-alert .viv-work-action .elementor-heading-title::before { background:rgba(201,118,15,.12); color:#c9760f; content:"!"; }
.viv-work-check {
  grid-template-columns:18px minmax(0,1fr) auto;
  align-items:center;
  min-height:25px;
  padding:4px 8px;
  gap:9px;
}
.viv-work-check::before {
  display:grid;
  width:18px;
  height:18px;
  border-radius:50%;
  background:rgba(8,66,53,.07);
  color:var(--muted);
  content:"·";
  place-items:center;
  font-size:.58rem;
}
.viv-work-check::before { grid-column:1; grid-row:1; }
.viv-work-check > .elementor-widget-heading:first-of-type { grid-column:2; grid-row:1; }
.viv-work-check > .elementor-widget-heading:last-of-type { grid-column:3; grid-row:1; }
.viv-work-check.is-revealed::before { background:rgba(168,229,101,.3); color:var(--forest); content:"✓"; }
.viv-work-check.viv-check-alert.is-revealed::before { background:rgba(201,118,15,.14); color:#c9760f; content:"!"; }
.viv-work-check .elementor-widget-heading:first-of-type .elementor-heading-title { font-size:.72rem; font-weight:400 !important; }
.viv-work-check .elementor-widget-heading:last-of-type .elementor-heading-title { font-size:.64rem; }

.solution-stage .viv-solution-visual {
  width:min(650px,100%);
  height:min(500px,92%);
  min-height:420px;
  padding:34px;
  isolation:isolate;
}
.solution-stage .viv-solution-visual::before {
  position:absolute;
  z-index:-1;
  inset:0;
  background:linear-gradient(110deg,transparent 0 52%,rgba(8,66,53,.025) 52% 52.2%,transparent 52.2%);
  content:"";
}
.viv-phone-layout { grid-template-columns:minmax(220px,1fr) 70px 110px; grid-auto-rows:max-content; align-content:start; justify-content:center; justify-items:center; gap:0; padding:26px 38px !important; }
.viv-evidence-request-layout { grid-template-columns:minmax(220px,1fr) 70px 130px; align-content:start; padding:26px 38px !important; }
.viv-plan-visual { padding:34px !important; }
.viv-plan { position:absolute; inset:34px; width:auto; height:auto; grid-template-columns:minmax(150px,.72fr) minmax(250px,1.28fr); gap:14px; }
.viv-plan-summary,
.viv-plan-card { width:100%; height:100%; margin:0; border-color:rgba(8,66,53,.055); border-radius:12px; }
.viv-plan-summary { display:flex !important; flex-direction:column !important; align-items:flex-start; justify-content:center; gap:0; padding:30px 24px; background:linear-gradient(155deg,rgba(247,249,245,.98),rgba(233,240,231,.98)); }
.viv-plan-summary .viv-ui-kicker .elementor-heading-title { font-size:.68rem; }
.viv-plan-summary > .elementor-widget-heading:nth-child(2) .elementor-heading-title { max-width:180px; font-size:1.32rem; line-height:1.08; }
.viv-plan-summary > .elementor-widget-text-editor { margin-top:8px; color:var(--muted); font-size:.68rem; }
.viv-plan-state { margin-top:22px; }
.viv-plan-state .elementor-heading-title { display:inline-flex; width:auto; padding:6px 9px; border-radius:999px; background:rgba(168,229,101,.2); color:var(--forest); font-size:.7rem; font-weight:500 !important; }
.viv-plan-card { position:relative; display:flex !important; min-width:0; flex-direction:column !important; gap:0; padding:20px 24px 18px; }
.viv-plan-head { display:flex !important; min-height:28px; flex-direction:row !important; align-items:center; justify-content:space-between; gap:14px; margin-bottom:13px; }
.viv-plan-head > .viv-ui-kicker .elementor-heading-title { font-size:1rem; text-transform:none; }
.viv-plan-route { width:auto !important; }
.viv-plan-route .elementor-heading-title { padding:5px 9px; border:1px solid rgba(8,66,53,.09); border-radius:999px; color:var(--muted); font-size:.66rem; font-weight:400 !important; line-height:1.55; }
.viv-plan-list { display:grid !important; min-height:0; gap:7px; align-content:start; }
.viv-plan-item { position:relative; grid-template-columns:28px minmax(0,1fr) auto; min-height:58px; padding:8px 10px; gap:10px; box-shadow:0 4px 14px rgba(5,39,31,.035); }
.viv-plan-item + .viv-plan-item::before { position:absolute; top:-8px; left:23px; width:1px; height:8px; background:var(--hair); content:""; }
.viv-plan-item::after { color:var(--muted); font-size:.6rem; }
.viv-plan-item:first-child::after { padding:4px 7px; border-radius:999px; background:rgba(8,66,53,.06); content:"First"; }
.viv-plan-item:nth-child(3)::after { padding:4px 7px; border-radius:999px; background:rgba(8,66,53,.06); content:"Next"; }
.viv-plan-item:nth-child(3) { background:#fff4e6; }
.viv-plan-item:nth-child(4) { background:rgba(168,229,101,.11); }
.viv-plan-number { width:28px; height:28px; }
.viv-plan-copy { display:grid !important; min-width:0; gap:2px; }
.viv-plan-copy .elementor-heading-title { font-size:.76rem; font-weight:500 !important; }
.viv-plan-copy .elementor-widget-text-editor { color:var(--muted); font-size:.65rem; line-height:1.25; }
.viv-phone {
  position:relative;
  display:flex;
  width:240px;
  min-height:0;
  aspect-ratio:9 / 18.7;
  padding:30px 9px 16px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:46px;
  background:#111513;
  box-shadow:0 30px 66px rgba(5,39,31,.24),inset 0 0 0 1px rgba(0,0,0,.5);
  transform:translateY(32px);
}
.viv-phone::before {
  position:absolute;
  top:88px;
  left:-4px;
  width:4px;
  height:54px;
  border-radius:3px 0 0 3px;
  background:#171b19;
  box-shadow:0 68px 0 #171b19;
  content:"";
}
.viv-phone::after {
  position:absolute;
  top:118px;
  right:-4px;
  width:4px;
  height:72px;
  border-radius:0 3px 3px 0;
  background:#171b19;
  content:"";
}
.viv-phone-notch {
  position:absolute;
  z-index:2;
  top:9px;
  left:50%;
  width:76px !important;
  height:18px;
  min-height:18px;
  border-radius:999px;
  background:#050706;
  box-shadow:inset -12px 0 0 rgba(255,255,255,.025);
  transform:translateX(-50%);
}
.viv-phone-screen {
  width:100%;
  height:100%;
  padding:16px 13px 20px;
  overflow:hidden;
  border-radius:36px;
  background:linear-gradient(180deg,#fafaf7 0%,#f5f6f2 100%);
  align-content:start;
  gap:10px;
}
.viv-phone-screen::before {
  display:none;
}
.viv-phone-brand { display:flex !important; min-height:38px; margin:0 0 3px; flex-direction:row !important; align-items:center; justify-content:center; }
.viv-phone-avatar {
  display:grid;
  width:32px !important;
  height:32px;
  min-height:32px;
  margin:0;
  border-radius:50%;
  background:#aeb8b7;
  box-shadow:0 6px 16px rgba(5,39,31,.08);
  place-items:center;
}
.viv-phone-avatar .elementor-widget-container { display:contents; }
.viv-phone-avatar .elementor-heading-title { display:grid; width:100%; height:100%; color:#fff !important; font-size:.68rem; font-weight:400 !important; line-height:1; place-items:center; transform:translateY(.5px); }
.viv-phone-message { padding:12px; border-radius:9px; background:rgba(255,255,255,.98); box-shadow:0 10px 26px rgba(5,39,31,.05),0 2px 7px rgba(5,39,31,.022); }
.viv-phone-message .elementor-widget-text-editor { font-size:.7rem; line-height:1.44; }
.viv-phone-screen > .viv-ui-kicker { margin-top:8px; }
.viv-bank-option { grid-template-columns:22px minmax(0,1fr); min-height:34px; padding:5px 7px; gap:8px; }
.viv-bank-option img { width:18px; height:18px; }
.viv-bank-option .elementor-heading-title { font-size:.63rem; }
.viv-phone-line { position:relative; }
.viv-phone-line::after { position:absolute; top:50%; right:-3.5px; width:7px; height:7px; border-radius:50%; background:var(--forest-dark); content:""; transform:translateY(-50%); }
.viv-connected {
  display:inline-flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  width:auto !important;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 13px;
  border:1px solid rgba(8,66,53,.055);
  border-radius:12px;
  background:rgba(255,255,255,.96);
  box-shadow:0 10px 26px rgba(5,39,31,.05),0 2px 7px rgba(5,39,31,.022);
  text-align:left;
}
.viv-connected > .elementor-widget-heading { width:auto !important; flex:0 0 auto; }
.viv-connected .elementor-heading-title { font-size:.7rem; font-weight:500 !important; white-space:nowrap; }
.viv-connected-icon {
  display:grid !important;
  width:22px !important;
  height:22px;
  flex:0 0 22px !important;
  border-radius:50%;
  background:rgba(105,180,138,.18);
  place-items:center;
}
.viv-connected-icon .elementor-heading-title {
  color:var(--forest);
  font-size:.65rem;
  font-weight:600 !important;
  line-height:22px;
  text-align:center;
}

.viv-chip .elementor-heading-title { display:inline-flex; padding:5px 10px; border-radius:999px; background:rgba(168,229,101,.22); color:var(--forest); font-size:.72rem; font-weight:500 !important; white-space:nowrap; }

.viv-result-visual { grid-template-rows:auto 26px auto; place-items:center; align-content:center; padding:36px !important; }
.viv-evaluation-decision { display:block !important; width:auto !important; justify-self:center; margin-bottom:12px; line-height:1.55; text-align:center; }
.viv-evaluation-decision .elementor-widget-text-editor { color:var(--muted); font-size:.62rem; line-height:1.55; text-align:center; }
.viv-evaluation-path { position:relative; width:1px !important; height:26px; background:repeating-linear-gradient(180deg,rgba(8,66,53,.38) 0 4px,transparent 4px 8px); }
.viv-evaluation-path::after { position:absolute; right:50%; bottom:-3.5px; width:7px; height:7px; border-radius:50%; background:var(--forest-dark); content:""; transform:translateX(50%); }
.viv-evaluation { width:min(430px,90%); padding:0; overflow:hidden; gap:0; }
.viv-evaluation-row { display:flex !important; flex-direction:row !important; width:100% !important; min-height:72px; align-items:center; flex-wrap:nowrap !important; gap:11px; padding:13px 14px; }
.viv-evaluation-row > * { min-width:0; }
.viv-evaluation-logo { display:grid !important; width:34px !important; height:34px; flex:0 0 34px !important; border-radius:9px; background:rgba(0,174,239,.08); place-items:center; }
.viv-evaluation-logo .elementor-widget-container { display:grid; width:34px; height:34px; place-items:center; }
.viv-evaluation-logo img { width:22px; height:22px; object-fit:contain; }
.viv-evaluation-copy { display:grid !important; width:auto !important; flex:1 1 auto !important; gap:1px; }
.viv-evaluation-copy .elementor-heading-title { font-size:.82rem; font-weight:500 !important; }
.viv-evaluation-copy .elementor-widget-text-editor { color:var(--muted); font-size:.7rem; }
.viv-evaluation-value { display:grid !important; width:auto !important; min-width:max-content; margin-left:auto; flex:0 0 auto !important; gap:0; text-align:right; }
.viv-evaluation-value .elementor-heading-title { font-size:1rem; font-weight:400 !important; }
.viv-evaluation-value .elementor-widget-text-editor { color:var(--muted); font-size:.62rem; }
.viv-evaluation-warning { width:calc(100% - 24px) !important; min-height:72px; margin:0 12px 12px; border-radius:9px; background:#fbefec; }
.viv-evaluation-warning-icon { width:34px !important; height:34px; flex:0 0 34px !important; border-radius:9px; background:rgba(177,74,60,.1); }
.viv-evaluation-warning-icon .elementor-heading-title { color:#a4473b; line-height:34px; text-align:center; }
.viv-evaluation-warning .viv-evaluation-copy .elementor-heading-title { color:#8f3d34; }

.viv-request-context { display:grid !important; width:auto !important; justify-self:center; justify-items:center; gap:22px; }
.viv-route-symbol { display:grid; width:34px !important; height:34px; padding:8px; border-radius:50%; background:rgba(105,180,138,.12); color:var(--forest); place-items:center; }
.viv-route-symbol .elementor-widget-container { display:grid; width:100%; height:100%; place-items:center; }
.viv-route-symbol svg { display:block; width:100%; height:100%; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.6; }
.viv-evidence-request-layout .viv-phone { width:240px; transform:translateY(32px); }
.viv-evidence-request-layout .viv-option { display:grid !important; grid-template-columns:16px minmax(0,1fr); align-items:center; gap:7px; padding:8px 10px; border:0; border-radius:9px; background:#eef1ec; box-shadow:none; }
.viv-evidence-request-layout .viv-option-icon { display:grid; width:16px !important; height:16px; border:1px solid rgba(8,66,53,.22); border-radius:50%; color:var(--forest); place-items:center; }
.viv-evidence-request-layout .viv-option-icon .elementor-heading-title { color:inherit; font-size:.48rem; font-weight:400 !important; line-height:14px; text-align:center; transform:translateY(.5px); }
.viv-evidence-request-layout .viv-option .elementor-widget-text-editor { font-size:.68rem; line-height:1.3; }
.viv-evidence-request-layout .viv-phone-line { transform:translateY(-28px); }
.viv-evidence-request-layout .viv-phone-line::before { position:absolute; top:0; left:100%; width:19px; height:1px; background:repeating-linear-gradient(90deg,rgba(8,66,53,.45) 0 4px,transparent 4px 8px); content:""; }
.viv-evidence-request-layout .viv-phone-line::after { right:-22.5px; }

.viv-followup-timeline { grid-template-columns:auto 1fr 8px 1fr auto 1fr 8px 1fr auto 1fr 8px; width:100%; min-height:18px; margin:0; align-items:center; }
.viv-followup-visual { align-content:center; gap:32px; padding:38px 44px !important; }
.viv-followup-dot { width:8px !important; height:8px; border-radius:50%; background:var(--hair); }
.viv-followup-dot-current { background:var(--lime); }
.viv-followup-thread { display:grid !important; width:min(410px,94%); margin:0 auto; gap:9px; }
.viv-message { width:100%; height:90px; margin:0; padding:11px 13px; grid-template-rows:28px auto; align-content:start; gap:6px; box-shadow:0 10px 26px rgba(5,39,31,.05),0 2px 7px rgba(5,39,31,.022); }
.viv-followup-thread .viv-message + .viv-message { margin-top:0; }
.viv-message:first-child { width:88%; justify-self:end; background:#f2f5ef; }
.viv-message-response { background:rgba(255,255,255,.96); }
.viv-message-head { display:flex !important; height:28px; min-height:28px; flex-direction:row !important; flex-wrap:nowrap !important; align-items:center; gap:10px; }
.viv-message-avatar { display:grid; width:28px !important; height:28px; border-radius:50%; background:rgba(8,66,53,.08); place-items:center; }
.viv-message-avatar .elementor-heading-title { line-height:28px; text-align:center; }
.viv-message-person { display:grid !important; width:auto !important; min-width:0; flex:1 1 auto; gap:0; }
.viv-message-person .elementor-heading-title { font-size:.72rem; }
.viv-message-person .elementor-widget-text-editor { color:var(--muted); font-size:.64rem; }
.viv-message-time { width:auto !important; margin-left:auto; }
.viv-message-time .elementor-heading-title { color:var(--muted); font-size:.72rem; font-weight:400 !important; }

.viv-evidence-visual { grid-template-columns:minmax(250px,1.25fr) minmax(130px,.75fr); align-items:center; gap:54px; padding:36px 48px !important; }
.viv-evidence-list { gap:9px; }
.viv-evidence-row { position:relative; z-index:2; display:grid !important; grid-template-columns:34px minmax(0,1fr) auto; min-height:54px; align-items:center; gap:10px; padding:9px 11px; border:1px solid rgba(8,66,53,.055); border-radius:12px; background:rgba(255,255,255,.96); box-shadow:0 10px 26px rgba(5,39,31,.05),0 2px 7px rgba(5,39,31,.022); }
.viv-evidence-icon { display:grid; width:34px !important; height:34px; border-radius:9px; background:rgba(8,66,53,.07); place-items:center; }
.viv-evidence-icon .elementor-heading-title { line-height:34px; text-align:center; }
.viv-evidence-row > .elementor-widget-heading:nth-child(2) .elementor-heading-title { font-size:.75rem; font-weight:500 !important; }
.viv-evidence-lines { position:absolute; z-index:1; top:22%; right:15%; width:44% !important; height:58%; overflow:visible; }
.viv-evidence-lines .elementor-widget-container,
.viv-evidence-lines svg { display:block; width:100%; height:100%; overflow:visible; }
.viv-evidence-lines path { fill:none; stroke:rgba(8,66,53,.38); stroke-width:1.25; }
.viv-evidence-target { position:relative; z-index:2; justify-self:center; }

.viv-audit-visual { place-items:center; padding:24px 30px !important; }
.viv-audit-card { display:block !important; width:min(490px,94%); min-height:348px; max-height:94%; padding:12px 14px; overflow:hidden; }
.viv-audit-top { display:flex !important; flex-direction:row !important; flex-wrap:nowrap !important; align-items:center; justify-content:space-between; padding:2px 2px 8px; }
.viv-audit-top > .elementor-widget-heading { width:auto !important; }
.viv-audit-top > .elementor-widget-heading:first-child .elementor-heading-title { font-size:.82rem; }
.viv-audit-top > .elementor-widget-heading:last-child .elementor-heading-title { color:var(--muted); font-size:.72rem; font-weight:400 !important; }
.viv-audit-list { position:relative; }
.viv-audit-list::before { position:absolute; top:17px; bottom:17px; left:54px; width:1px; background:var(--hair); content:""; }
.viv-audit-row { position:relative; grid-template-columns:38px 10px 1fr; align-items:start; gap:8px; }
.viv-audit-row::before { position:relative; z-index:1; grid-column:2; grid-row:1; width:7px; height:7px; margin-top:7px; border:2px solid #fff; border-radius:50%; background:var(--forest); box-shadow:0 0 0 1px var(--hair); content:""; }
.viv-audit-row > .elementor-widget-heading:first-child { grid-column:1; grid-row:1; }
.viv-audit-row > .elementor-widget-heading:last-child { grid-column:3; grid-row:1; }
.viv-complete-visual { place-items:center; padding:36px !important; }
.viv-complete-row { position:relative; display:grid !important; grid-template-columns:18px minmax(0,1fr) auto; align-items:center; }
.viv-complete-row::before { display:grid; width:18px; height:18px; border-radius:50%; background:rgba(105,180,138,.16); color:var(--forest); content:"✓"; place-items:center; font-size:.62rem; }
.viv-complete-row::before { grid-column:1; grid-row:1; }
.viv-complete-row > .elementor-widget-heading:first-of-type { width:auto !important; min-width:0; grid-column:2; grid-row:1; }
.viv-complete-row > .elementor-widget-heading:last-of-type { width:auto !important; grid-column:3; grid-row:1; }
.viv-complete-card { display:block !important; width:min(400px,90%); height:auto !important; padding:10px; overflow:hidden; box-shadow:0 10px 26px rgba(5,39,31,.05),0 2px 7px rgba(5,39,31,.022); }
.viv-complete-head { display:flex !important; flex-direction:row !important; align-items:center; gap:10px; padding:7px 8px 13px; border:0; }
.viv-complete-head > .elementor-widget-heading { width:auto !important; }
.viv-complete-head .elementor-heading-title { font-size:.96rem; }
.viv-complete-head-icon { display:grid !important; width:28px !important; height:28px; flex:0 0 28px; border-radius:50%; background:rgba(105,180,138,.18); place-items:center; }
.viv-complete-head-icon .elementor-heading-title { color:var(--forest); font-size:.72rem; line-height:28px; text-align:center; }
.viv-complete-row { min-height:48px; margin-top:6px; padding:10px 12px; background:#f6f8f4; }
.viv-complete-row .elementor-heading-title { font-size:.79rem; }
.viv-complete-row > .elementor-widget-heading:last-child .elementor-heading-title { padding:4px 7px; background:rgba(105,180,138,.1); font-size:.68rem; }
.viv-boundary-visual { place-items:center; padding:38px 28px !important; }
.viv-boundary { width:100%; max-width:550px; grid-template-columns:1fr 1px 1fr; gap:22px; }
.viv-boundary-side { align-content:center; }
.viv-boundary-side > .elementor-widget-image img { width:48px; height:20px; object-fit:contain; }
.viv-boundary-side > .elementor-widget-heading .elementor-heading-title { font-size:.82rem; }
.viv-boundary-side .viv-ui-row { display:grid !important; width:100%; margin-top:16px; padding:12px 13px; border:1px solid rgba(8,66,53,.055); border-radius:12px; background:rgba(255,255,255,.96); box-shadow:0 10px 26px rgba(5,39,31,.05),0 2px 7px rgba(5,39,31,.022); gap:7px; }
.viv-boundary-side .viv-ui-row > .elementor-widget-heading { width:100%; }
.viv-boundary-side .viv-ui-row .elementor-heading-title { text-align:center !important; }
.viv-boundary-side:first-child .viv-ui-row > .elementor-widget-heading:first-child .elementor-heading-title { display:flex; align-items:center; gap:9px; font-size:.8rem; }
.viv-boundary-side:first-child .viv-ui-row > .elementor-widget-heading:first-child .elementor-heading-title::before { display:grid; width:24px; height:24px; border-radius:7px; background:rgba(8,66,53,.07); content:"▤"; place-items:center; font-size:.66rem; }
.viv-boundary-side:first-child .viv-ui-row > .elementor-widget-heading:last-child .elementor-heading-title { display:inline-flex; width:auto; justify-self:center; padding:5px 10px; border-radius:999px; background:rgba(168,229,101,.22); color:var(--forest); font-size:.72rem; }
.viv-boundary-side:last-child .viv-ui-row > .elementor-widget-heading:first-child .elementor-heading-title { font-size:.86rem; font-weight:400 !important; }
.viv-boundary-side:last-child .viv-ui-row > .elementor-widget-heading:last-child .elementor-heading-title { display:block; margin-top:5px; padding:12px 18px; border-radius:3px; background:var(--forest-dark); color:#f6f5ef; font-size:.75rem; font-weight:500 !important; }
.viv-boundary-rule { position:relative; height:230px; border-left:1px dashed rgba(8,66,53,.3); background:transparent; }

/* Visual cards use shadow and surface contrast consistently; borders are reserved for controls and connectors. */
.solution-stage .viv-ui-card,
.solution-stage .viv-evidence-row,
.solution-stage .viv-boundary-side .viv-ui-row { border:0 !important; }
.viv-boundary-rule::after { position:absolute; top:50%; left:50%; padding:4px 0; background:#f7f6f1; color:var(--forest); content:"→"; font-size:1.3rem; transform:translate(-50%,-50%); }

.viv-case-stack {
  position:relative;
  display:block;
  width:min(400px,86%);
  margin:auto;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  isolation:isolate;
}
.viv-case-stack::before,
.viv-case-stack::after {
  position:absolute;
  inset:0;
  border:1px solid rgba(8,66,53,.055);
  border-radius:12px;
  box-shadow:0 10px 26px rgba(5,39,31,.05),0 2px 7px rgba(5,39,31,.022);
  content:"";
}
.viv-case-stack::before { z-index:0; background:rgba(255,255,255,.72); transform:translate(-24px,24px); }
.viv-case-stack::after { z-index:1; background:rgba(255,255,255,.72); transform:translate(-12px,12px); }
.viv-case-stack-front {
  position:relative;
  z-index:2;
  display:grid;
  gap:8px;
  padding:18px 16px;
  border:1px solid rgba(8,66,53,.055);
  border-radius:12px;
  background:rgba(255,255,255,.94);
  box-shadow:0 18px 44px rgba(5,39,31,.07),0 3px 10px rgba(5,39,31,.028);
}
.viv-case-row { border:1px solid rgba(8,66,53,.055); background:rgba(255,255,255,.98); }
.viv-case-row { min-height:69.3px; padding:11px 13px; }
.viv-case-row > .elementor-widget-heading:first-child .elementor-heading-title { color:var(--forest-dark); font-size:.8rem; font-weight:500 !important; line-height:1.55; }
.viv-case-row > .elementor-widget-heading:last-child .elementor-heading-title { display:flex; align-items:center; gap:7px; margin-top:5px; padding-left:0; color:var(--muted); font-size:.74rem; font-weight:400 !important; line-height:1.55; text-align:left; }
.viv-case-row > .elementor-widget-heading:last-child .elementor-heading-title::before { content:"●"; }
.viv-case-row:first-child > .elementor-widget-heading:last-child .elementor-heading-title::before { content:"✓"; }
.site-footer__label .elementor-heading-title,
.site-footer__heading .elementor-heading-title { font-weight:500 !important; }
.site-footer__bottom .elementor-heading-title { font-weight:400 !important; }

.cta-art::before { top:-19.4%; right:-17.8%; width:66.667%; height:auto !important; aspect-ratio:1; }
.cta-art::after { top:37.5%; right:0; bottom:auto; width:53.333%; height:29%; }

@media (max-width:1080px) {
  .viv-story-loading .frame { opacity:0; }
  .viv-case-stack {
    width:calc(100% - 20px);
    padding:0;
    transform:translateX(10px);
  }
  .viv-case-stack::before { transform:translate(-16px,16px); }
  .viv-case-stack::after { transform:translate(-8px,8px); }
  .viv-case-stack-front { padding:10px; }
  .viv-case-row { padding:10px; }
  .mobile-slide[data-group="home"] { height:100dvh; min-height:100dvh; }
  .mobile-slide[data-group="home"] .scene > .inner { min-height:0; }
  .solution-stage .viv-solution-visual { width:100%; height:52svh !important; min-height:52svh !important; max-height:52svh !important; flex:0 0 52svh; padding:18px; }
  .viv-outcome-layout { grid-template-columns:minmax(0,1fr) 34px 78px; padding:16px !important; }
  .viv-outcome-brief { height:auto; }
  .viv-outcome-head { padding:9px; }
  .viv-outcome-body { padding:10px; }
  .viv-outcome-brief .viv-ask { font-size:.67rem; }
  .viv-attach { padding:7px; }
  .viv-outcome-layout .viv-orb { width:58px; height:58px; box-shadow:0 0 0 12px rgba(168,229,101,.07),0 0 28px 12px rgba(168,229,101,.28); }
  .viv-outcome-ack { gap:12px; }
  .viv-outcome-ack .elementor-widget-text-editor { font-size:.58rem; }
  .viv-plan-visual { padding:12px !important; }
  .viv-plan { inset:12px; }
  .viv-phone-layout { grid-template-columns:minmax(150px,1fr) 34px 62px; align-content:start; justify-content:center; padding:12px !important; }
  .viv-evidence-request-layout { grid-template-columns:minmax(150px,1fr) 34px 76px; align-content:start; padding:12px !important; }
  .viv-plan { grid-template-columns:1fr; grid-template-rows:auto 1fr; gap:8px; }
  .viv-plan { inset:12px; }
  .viv-plan-summary { display:grid !important; height:auto; grid-template-columns:1fr auto; padding:10px 11px; }
  .viv-plan-summary { height:81px; min-height:81px; align-content:center; gap:0; overflow:hidden; }
  .viv-plan-summary > .viv-ui-kicker { grid-column:1; grid-row:1; }
  .viv-plan-summary > .elementor-widget-heading:nth-child(2) { grid-column:1; grid-row:2; }
  .viv-plan-summary > .elementor-widget-text-editor { grid-column:1; grid-row:3; }
  .viv-plan-summary > .viv-plan-state { grid-column:2; grid-row:1 / 4; }
  .viv-plan-summary > .elementor-widget-heading:nth-child(2) .elementor-heading-title { max-width:none; font-size:.75rem; }
  .viv-plan-state { grid-column:2; grid-row:1 / 4; align-self:center; margin:0; }
  .viv-plan-card { padding:8px; }
  .viv-plan-head { min-height:0; margin-bottom:6px; }
  .viv-plan-item { min-height:42px; padding:5px 7px; }
  .viv-plan-item::after { display:none; }
  .viv-plan-item:last-child .viv-plan-number .elementor-heading-title { font-size:0; }
  .viv-plan-item:last-child .viv-plan-number .elementor-heading-title::before { content:"✓"; font-size:.7rem; }
  .viv-phone { width:min(190px,50vw); padding:27px 8px 14px; border-radius:40px; transform:translateY(20px); }
  .viv-phone-notch { top:8px; width:62px !important; height:16px; min-height:16px; }
  .viv-phone-avatar { width:30px !important; height:30px; min-height:30px; }
  .viv-phone-screen { padding:12px 10px 15px; border-radius:31px; }
  .viv-phone-message { padding:8px 9px; }
  .viv-phone-message .elementor-widget-text-editor { font-size:.62rem; line-height:1.38; }
  .viv-phone-screen > .viv-ui-kicker { margin-top:6px; }
  .viv-bank-option { grid-template-columns:18px minmax(0,1fr); min-height:27px; padding:3px 5px; gap:5px; }
  .viv-bank-option img { width:15px; height:15px; }
  .viv-bank-option .elementor-heading-title { font-size:.52rem; }
  .viv-connected { gap:5px; padding:7px 8px; }
  .viv-connected-icon { width:16px !important; height:16px; flex-basis:16px !important; }
  .viv-connected-icon .elementor-heading-title { font-size:.48rem; line-height:16px; }
  .viv-connected .elementor-heading-title { font-size:.5rem; }
  .viv-request-context { gap:14px; }
  .viv-route-symbol { width:28px !important; height:28px; }
  .viv-evidence-request-layout .viv-phone { width:min(190px,50vw); transform:translateY(20px); }
  .viv-evidence-request-layout .viv-option { grid-template-columns:13px minmax(0,1fr); gap:7px; padding:6px 7px; }
  .viv-evidence-request-layout .viv-option-icon { width:13px !important; height:13px; }
  .viv-evidence-request-layout .viv-option-icon .elementor-heading-title { font-size:.4rem; line-height:11px; }
  .viv-evidence-request-layout .viv-option .elementor-widget-text-editor { font-size:.54rem; }
  .viv-evidence-request-layout .viv-phone-line { transform:translateY(-21px); }
  .viv-evidence-request-layout .viv-phone-line::before { width:7px; }
  .viv-evidence-request-layout .viv-phone-line::after { right:-10.5px; }
  .viv-result-visual { grid-template-rows:auto 18px auto; padding:16px !important; }
  .viv-evaluation-decision { margin-bottom:8px; }
  .viv-evaluation-decision .elementor-widget-text-editor { font-size:.52rem; }
  .viv-evaluation-path { height:18px; }
  .viv-evaluation { width:100%; }
  .viv-evaluation-row { min-height:70px; padding:12px; }
  .viv-followup-visual { gap:22px; padding:24px 18px !important; }
  .viv-evidence-visual { grid-template-columns:minmax(180px,1fr) 72px; gap:22px; padding:22px 18px !important; }
  .viv-evidence-list { gap:7px; }
  .viv-evidence-row { min-height:41px; grid-template-columns:25px minmax(0,1fr) auto; gap:6px; padding:8px; }
  .viv-evidence-icon { width:25px !important; height:25px; }
  .viv-evidence-icon .elementor-heading-title { line-height:25px; font-size:.58rem; }
  .viv-evidence-row > .elementor-widget-heading:nth-child(2) .elementor-heading-title { font-size:.58rem; }
  .viv-evidence-row .viv-chip .elementor-heading-title { padding:3px 5px; font-size:.48rem; }
  .viv-evidence-lines { top:22%; right:11%; width:40% !important; height:58%; }
  .viv-evidence-target { width:62px; height:62px; box-shadow:0 0 0 10px rgba(168,229,101,.07),0 0 28px 10px rgba(168,229,101,.25); }
  .viv-message { height:84px; padding:9px 10px; font-size:.62rem; }
  .viv-message:first-child { width:92%; }
  .viv-audit-list::before { top:12px; bottom:12px; left:35px; }
  .viv-audit-visual { padding:12px !important; }
  .viv-audit-card { width:100%; min-height:258px; max-height:100%; padding:8px 9px; }
  .viv-audit-top { padding-bottom:4px; }
  .viv-audit-top > .elementor-widget-heading:first-child .elementor-heading-title { font-size:.64rem; }
  .viv-audit-top > .elementor-widget-heading:last-child .elementor-heading-title { font-size:.58rem; }
  .viv-audit-row { grid-template-columns:27px 8px 1fr; gap:4px; padding:3px 2px; }
  .viv-audit-row::before { width:6px; height:6px; margin-top:5px; }
  .viv-audit-row > .elementor-widget-heading:first-child .elementor-heading-title { font-size:.53rem; }
  .viv-audit-row > .elementor-widget-heading:last-child .elementor-heading-title { font-size:.6rem; line-height:1.2; }
  .viv-audit-basis { margin:1px 3px 2px 40px; padding:4px 6px; font-size:.53rem; }
  .viv-complete-visual { padding:16px !important; }
  .viv-complete-card { width:100%; }
  .viv-complete-head { padding:6px 6px 10px; }
  .viv-complete-head .elementor-heading-title { font-size:.82rem; }
  .viv-complete-row { min-height:40px; margin-top:5px; padding:8px 9px; }
  .viv-complete-row .elementor-heading-title { font-size:.64rem; }
  .viv-complete-row > .elementor-widget-heading:last-child .elementor-heading-title { padding:3px 5px; font-size:.56rem; }
  .viv-boundary { grid-template-columns:1fr; width:100%; min-height:344px; max-width:300px; gap:10px; }
  .viv-boundary-visual { padding:16px !important; }
  .viv-boundary-rule { display:none !important; }
  .site-footer__legal,
  .site-footer__legal .elementor-widget-container { justify-content:flex-start !important; gap:14px 24px !important; }
  .mobile-story > .mobile-slide[data-group="cta"] { padding-bottom:54.5px; }
  .site-footer { padding-bottom:32px !important; }
}

@media (max-width:360px) {
  .viv-phone-layout { grid-template-columns:166px 12px 66px; padding:8px !important; }
  .viv-evidence-request-layout { grid-template-columns:166px 12px 70px; }
  .viv-phone { width:166px; padding:24px 7px 12px; border-radius:35px; }
  .viv-phone-notch { top:7px; width:56px !important; height:14px; min-height:14px; }
  .viv-phone-screen { padding:9px 8px 11px; border-radius:28px; gap:5px; }
  .viv-phone-avatar { width:26px !important; height:26px; min-height:26px; margin-bottom:1px; }
  .viv-phone-brand { min-height:30px; margin-bottom:1px; }
  .viv-phone-avatar .elementor-heading-title { font-size:.56rem; }
  .viv-phone-message { padding:6px 7px; }
  .viv-phone-message .elementor-widget-text-editor { font-size:.54rem; line-height:1.28; }
  .viv-phone-screen > .viv-ui-kicker { margin-top:4px; }
  .viv-phone-screen .viv-ui-kicker .elementor-heading-title { font-size:.48rem; }
  .viv-bank-option { grid-template-columns:15px minmax(0,1fr); min-height:23px; padding:2px 4px; gap:4px; }
  .viv-bank-option img { width:13px; height:13px; }
  .viv-bank-option .elementor-heading-title { font-size:.46rem; }
  .viv-connected { width:66px; gap:3px; padding:5px 4px; }
  .viv-connected-icon { width:14px !important; height:14px; flex-basis:14px !important; }
  .viv-connected-icon .elementor-heading-title { font-size:.43rem; line-height:14px; }
  .viv-connected .elementor-heading-title { font-size:.43rem; }
  .viv-evidence-request-layout .viv-request-context { gap:10px; }
  .viv-evidence-request-layout .viv-orb { width:56px; height:56px; }
  .viv-evidence-request-layout .viv-phone-line { transform:translateY(-19px); }
  .viv-option { padding:7px 8px; }
  .viv-option .elementor-widget-text-editor { font-size:.52rem; }
  .viv-evidence-request-layout .viv-option { padding:6px 7px; }
}

@media (prefers-reduced-motion:reduce) {
  .frame { transition:none; }
}
