/* SAVV Phase 3 — additive public-site refinement. Deliberately leave the generated
   Webcard page, its metadata, its custom CSS and interactive scripts intact.
   All selectors below come from the supplied public homepage. */

/* Navigation and links: subtle feedback without moving or hiding controls. */
.savv-header { border-bottom-color:#E3E3E8; box-shadow:0 2px 14px rgba(26,23,42,.035); }
.savv-header-nav a,
.savv-header-login,
.savv-mobile-menu a { text-underline-offset:4px; }
.savv-header-nav a:not(.is-active):hover,
.savv-header-login:hover,
.savv-mobile-menu a:not(.is-active):hover { text-decoration:underline; text-decoration-thickness:1px; }
.savv-header-cta,
.savv-mobile-menu .savv-mobile-cta { font-weight:700; }
.savv-header :where(a,button):focus-visible,
:where(.hr0,.hw0,.svb0,.svp0,.rv0,.bb0,.fq0,.pm0,.ft0) :where(a,button,summary,input):focus-visible {
    outline:2px solid #4832BB;
    outline-offset:4px;
}

/* Hero: retain image and layout, improve typographic rhythm and media boundary. */
.hr2 h1 { text-wrap:balance; }
.hr3 { max-width:510px; color:#4D4D56; }
.hr7 { color:#62626D; }
.hr8 { border:1px solid #E6E6EA; box-shadow:0 12px 34px rgba(27,25,42,.07); }
.hr5:focus-visible,.hr6:focus-visible { border-radius:6px; }

/* How it works: maintain the existing actual 3-step illustrated layout. */
.hw0 { background:#F4F4F6; }
.hw2 h2,.svb2 h2,.svp2 h2,.rv2 h2,.fq2 h2 { text-wrap:balance; }
.hw2 p,.svp2>p,.fq2>p { color:#555560; }
.hw4 { min-width:0; }
.hw5 { border:1px solid #E4E4E9; box-shadow:0 9px 25px rgba(28,25,42,.045); }
.hwc h3 { letter-spacing:-.015em; }
.hw4 :where(a,button):focus-visible { outline-offset:3px; }

/* Value proposition and real benefit list — improve scanability, not content. */
.svb3 { overflow:hidden; }
.svb3 img { display:block; }
.svb5 { color:#4F4F59; }
.svb7 { border-bottom-color:#E7E7EB; }
.svb7 h3 { letter-spacing:-.012em; }
.svb7 p { color:#555560; }
.svb8 a:focus-visible { border-radius:6px; }

/* Plans: retain accurate prices, toggles and existing active-state machinery. */
.svp0 { background:#F4F4F6; }
.svp-card { border-color:#DDDDE3; box-shadow:0 8px 25px rgba(29,26,46,.045); }
.svp-card.svp-plus { border-color:#CFC6FF; }
.svp-card-head { border-bottom-color:#E5E4EB; }
.svp-desc,.svp-note { color:#595963; }
.svp-btn { min-height:46px; }
.svp-toggle :where(button,input):focus-visible { outline-offset:3px; }

/* Reviews, frequently asked questions and support information. */
.rv0 { background:#F4F4F6; }
.rv5 { border-color:#E0E0E5; box-shadow:0 3px 14px rgba(29,26,46,.035); }
.rv5>p { color:#34343B; }
.rv8 { text-underline-offset:3px; }
.fq4 { border-bottom-color:#E2E2E7; }
.fq4 summary { min-height:52px; text-underline-offset:4px; }
.fq4 summary:hover { color:#4D36D2; }
.fq4[open] { border-bottom-color:#D0C8F7; }
.fq5 p { color:#50505B; }
.pm0 { border-color:#E5E5EA; }
.pm2 p { color:#575763; }
.pm4 { border-color:#E6E6EC; }
.ft0 { border-top-color:#E0E0E6; }
.ft5 a,.ft7 a { text-underline-offset:4px; }
.ft5 a:hover,.ft7 a:hover { text-decoration:underline; }

/* Accommodate large text and small phones without creating horizontal overflow. */
@media(max-width:900px) {
    .hr1 { gap:clamp(22px,4vw,40px); }
    .svp-card { padding:22px; }
}
@media(max-width:600px) {
    .hr1 { padding-top:42px; padding-bottom:51px; }
    .hr2 h1 { letter-spacing:-.045em; line-height:1.08; }
    .hr3 { line-height:1.6; }
    .hr4 { gap:14px 20px; }
    .hr8 { box-shadow:0 7px 23px rgba(27,25,42,.055); }
    .hw1,.svp1 { padding-top:56px; padding-bottom:60px; }
    .svb1 { padding-top:57px; padding-bottom:60px; }
    .rv1 { padding-top:50px; padding-bottom:54px; }
    .fq1 { padding-top:53px; padding-bottom:58px; }
    .hw2 { margin-bottom:29px; }
    .svp-card { padding:20px; }
    .fq4 summary { min-height:56px; }
    .ft5 a { line-height:1.6; }
}
@media(max-width:360px) {
    .hr1,.hw1,.svb1,.svp1,.rv1,.fq1,.pm1 { width:calc(100% - 30px); }
    .hr4 { gap:12px; }
    .svp-card { padding:17px; }
}
@media(prefers-reduced-motion:reduce) {
    html { scroll-behavior:auto!important; }
    .savv-header-cta,.hr5,.hr6 span { transition:none; }
}

/* Public Contact page. Form action, Turnstile, server status and required
   inputs stay as supplied; this is a purely visual extension. */
.sc0 { background:#FCFCFD; }
.sc3 h1 { text-wrap:balance; }
.sc3 p { color:#51515D; }
.sc4 { border:1px solid #E5E5EB; }
.sc6 { border-color:#E0DFE8; background:#F7F7FA; }
.sc6 span { color:#5C5D69; }
.sc7 { border-color:#DEDEE5; box-shadow:0 9px 28px rgba(30,26,44,.045); }
.scb label { color:#292932; }
.scb input,.scb textarea { border-color:#C8CAD1; }
.scb input::placeholder,.scb textarea::placeholder { color:#686977;opacity:1; }
.sc0 :where(a,button,input,textarea):focus-visible { outline:2px solid #4832BB;outline-offset:3px; }
@media(max-width:600px) {
    .sc0 { padding-top:49px;padding-bottom:65px; }
    .sc1 { gap:30px; }
    .sc7 { padding:23px; }
    .scb input,.scb textarea { font-size:16px; }
}
@media(max-width:360px) { .sc7 { padding:18px; } }
