/* OSVI v2 — homepage sections (index.html / index-2.html). Shared parts are in v2-base.css. */

/* ---------------- hero ---------------- */
.hv2-hero { background: var(--v2-tint); padding: 0 var(--v2-pad); }
.hv2-hero__inner { max-width: 1280px; margin: 0 auto; padding-top: clamp(32px, 5vw, 64px); display: flex; gap: 48px; flex-wrap: wrap; align-items: flex-end; }
.hv2-hero__text { flex: 1 1 520px; min-width: 0; padding-bottom: 72px; }
.hv2-welcome { display: inline-flex; align-items: center; gap: 10px; background: #fff; border: 1px solid #EADDE8; border-radius: 999px; padding: 6px 16px 6px 6px; font-size: 13px; font-weight: 600; color: var(--v2-ink-2); margin: 0; }
.hv2-welcome__live { background: #E7F6EE; color: #17663A; font-weight: 800; font-size: 12px; padding: 4px 10px; border-radius: 999px; display: inline-flex; align-items: center; gap: 6px; }
.hv2-welcome__live::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--v2-green); }
.v2 .hv2-hero h1 { margin-top: 24px; font-size: clamp(44px, 6vw, 80px); line-height: .98; letter-spacing: -0.045em; }
.hv2-hero h1 .v2-serif { color: var(--v2-magenta); }
.hv2-sub { margin: 22px 0 0; font-size: clamp(17px, 1.6vw, 20px); line-height: 1.55; color: var(--v2-ink-2); max-width: 520px; }
.hv2-free { margin: 30px 0 0; font-size: 17px; font-weight: 800; }
.hv2-free span { color: var(--v2-magenta); text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 5px; }
.hv2-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 16px; }
.hv2-cta .v2-btn--primary { box-shadow: 0 14px 30px rgba(140,54,136,.32); }
.hv2-stats { display: flex; flex-wrap: wrap; margin: 40px 0 0; padding: 0; background: #fff; border: 1px solid #EFE2ED; border-radius: 22px; max-width: 620px; }
.hv2-stats > div { flex: 1 1 130px; padding: 20px; border-right: 1px solid #F1E5EF; }
.hv2-stats > div:last-child { border-right: 0; }
.hv2-stats dt { font-size: 13px; color: var(--v2-ink-2); font-weight: 600; margin-top: 6px; order: 2; }
.hv2-stats dd { margin: 0; font-size: 34px; font-weight: 800; letter-spacing: -0.04em; line-height: 1; order: 1; }
.hv2-stats > div { display: flex; flex-direction: column; }
.hv2-stats dd span { color: var(--v2-magenta); }
/* fixed-width digits so the "+" doesn't wobble while the numbers count up */
.hv2-stats dd { font-variant-numeric: tabular-nums; }

.hv2-hero__media { flex: 1 1 420px; min-width: 0; position: relative; align-self: stretch; display: flex; align-items: flex-end; min-height: 600px; }
.hv2-hero__halo { position: absolute; right: 4%; bottom: 0; width: 88%; aspect-ratio: 1 / 1; border-radius: 50%; background: #F1DDEE; }
.hv2-hero__arch { position: relative; width: 100%; height: 600px; border-radius: 300px 300px 0 0; overflow: hidden; background: #EBD4E8; }
.hv2-hero__arch img { width: 100%; height: calc(100% - 44px); margin-top: 44px; object-fit: cover; object-position: center top; display: block; }
.hv2-chip { position: absolute; border-radius: 18px; padding: 14px 18px; box-shadow: 0 18px 44px rgba(43,16,41,.16); display: flex; align-items: center; gap: 12px; z-index: 2; }
.hv2-chip--name { left: -24px; bottom: 120px; background: #fff; }
.hv2-chip--name .hv2-chip__icon { width: 44px; height: 44px; border-radius: 12px; background: var(--v2-magenta); display: flex; align-items: center; justify-content: center; flex: none; }
.hv2-chip strong { display: block; font-weight: 800; font-size: 16px; }
.hv2-chip small { display: block; font-size: 12px; color: var(--v2-ink-2); }
.hv2-chip--ins { right: -16px; top: auto; bottom: 225px; /* on the shoulder (anchored to the photo's bottom, like on phones) */ background: var(--v2-plum); color: #fff; flex-direction: column; align-items: flex-start; gap: 2px; box-shadow: 0 18px 44px rgba(43,16,41,.24); }
/* tablets and small laptops (768-1079px) show the photo full width and larger: the shoulder sits lower */
@media (min-width: 768px) and (max-width: 1079px) { .hv2-chip--ins { bottom: 110px; } }
.hv2-chip--ins strong { font-size: 15px; }
.hv2-chip--ins small { color: #E9CFE6; }
.hv2-float { animation: hv2-float 5s ease-in-out infinite; }
.hv2-float2 { animation: hv2-float 6s ease-in-out 1.2s infinite; }
@keyframes hv2-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }

/* ---------------- enquiry form bar ---------------- */
.hv2-form-wrap { padding: 0 var(--v2-pad); position: relative; z-index: 2; }
.hv2-form { max-width: 1280px; margin: 0 auto; background: #fff; border-radius: 28px; box-shadow: 0 30px 70px rgba(43,16,41,.14); border: 1px solid #F0E6EE; padding: 22px; display: flex; gap: 14px; flex-wrap: wrap; align-items: flex-end; transform: translateY(-36px); scroll-margin-top: 80px; }
.hv2-form__intro { flex: 1 1 210px; min-width: 0; align-self: center; }
.hv2-form__intro h2 { font-size: 18px; letter-spacing: -0.01em; }
.hv2-form__intro p { font-size: 13px; color: var(--v2-ink-2); margin: 4px 0 0; }
.hv2-field { flex: 1 1 160px; display: flex; flex-direction: column; gap: 6px; font-size: 12px; font-weight: 700; color: var(--v2-ink-2); min-width: 0; }
.hv2-field--service { flex-basis: 190px; }
.hv2-field select, .hv2-field input { height: 52px; border: 1.5px solid #E7DCE5; background: #FCF9FB; border-radius: 14px; padding: 0 14px; font-size: 15px; color: var(--v2-ink); width: 100%; min-width: 0; }
.hv2-field select { padding-right: 8px; }
.hv2-field select:focus, .hv2-field input:focus { border-color: var(--v2-magenta); outline: none; box-shadow: 0 0 0 3px rgba(140,54,136,.2); }
.hv2-form__submit { flex: 0 1 150px; height: 52px; border: 0; border-radius: 14px; background: var(--v2-magenta); color: #fff; font-size: 16px; font-weight: 700; cursor: pointer; }
.hv2-form__submit:hover { background: var(--v2-magenta-hover); }
@media (max-width: 767px) {
  .hv2-form { flex-direction: column; align-items: stretch; transform: translateY(-24px); padding: 20px; border-radius: 24px; }
  .hv2-field, .hv2-form__intro, .hv2-form__submit { flex: none; }
  .hv2-form__submit { width: 100%; }
}

/* ---------------- Google rating badge ---------------- */
.v2 .hv2-grating { display: inline-flex; align-items: center; gap: 10px; margin-top: 18px; background: #fff; border: 1px solid #EADDE8; border-radius: 999px; padding: 6px 16px 6px 6px; min-height: 44px; color: var(--v2-ink); font-size: 14px; font-weight: 600; }
.v2 .hv2-grating:hover { border-color: var(--v2-magenta); color: var(--v2-ink); }
.hv2-grating__g { width: 32px; height: 32px; border-radius: 50%; background: #F4F4F4; color: #4285F4; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.hv2-grating strong { font-weight: 800; }
.hv2-grating__stars { color: #E8A317; letter-spacing: 1px; }

/* ---------------- trusted by: partner logos ---------------- */
.hv2-trust { padding: 8px 0 40px; }
.hv2-trust__head { max-width: 1280px; margin: 0 auto; padding: 0 var(--v2-pad); display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; }
.v2 .hv2-trust__title { font-size: 13px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--v2-muted); }
.v2 .hv2-trust__all { font-size: 14px; font-weight: 700; padding: 6px 0; }
.hv2-trust__viewport { overflow: hidden; margin-top: 16px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.hv2-trust__track { display: flex; width: max-content; animation: hv2-marq var(--dur, 60s) linear infinite; }
/* second row scrolls the other way */
.hv2-trust__track--rev { animation-direction: reverse; }
.hv2-trust__viewport + .hv2-trust__viewport { margin-top: 12px; }
.hv2-trust__viewport:hover .hv2-trust__track { animation-play-state: paused; }
.hv2-trust__group { display: flex; gap: 14px; margin: 0; padding: 0 7px; list-style: none; flex: none; }
.hv2-trust__group li { width: 168px; height: 76px; flex: none; background: #fff; border: 1px solid var(--v2-line); border-radius: 18px; display: flex; align-items: center; justify-content: center; padding: 12px 18px; }
.hv2-trust__group img { max-width: 100%; max-height: 46px; width: auto; height: auto; object-fit: contain; filter: grayscale(1); opacity: .75; transition: filter .25s ease, opacity .25s ease; }
/* logos on a dark tile (made for dark backgrounds) always show in colour */
.hv2-trust__group li:hover img, .hv2-trust__group li.has-bg img { filter: none; opacity: 1; }

/* services marquee ("Our services" strip): in v2-base.css, shared with the UniLiv page */

/* ---------------- UniLiv card ---------------- */
.hv2-uniliv { padding: 72px var(--v2-pad) 0; }
.hv2-uniliv__card { max-width: 1280px; margin: 0 auto; background: #fff; border: 1px solid #EFE2ED; border-radius: 28px; padding: 24px 28px; display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; box-shadow: 0 14px 40px rgba(43,16,41,.06); }
.hv2-uniliv__left { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.hv2-uniliv__logos { display: flex; align-items: center; gap: 12px; background: var(--v2-tint); border-radius: 16px; padding: 12px 16px; }
.hv2-uniliv__logos span { font-weight: 800; color: #8A7F8C; }
.hv2-uniliv__logos img.hv2-uniliv__osvi { height: 40px; width: auto; display: block; }
.hv2-uniliv__logos img.hv2-uniliv__ul { height: 28px; width: auto; display: block; }
/* both logos fit side by side on phones */
@media (max-width: 479px) {
  .hv2-uniliv__logos { gap: 8px; padding: 12px; }
  .hv2-uniliv__logos img.hv2-uniliv__osvi { height: 32px; }
  .hv2-uniliv__logos img.hv2-uniliv__ul { height: 21px; }
}
@media (max-width: 359px) {
  .hv2-uniliv__logos img.hv2-uniliv__osvi { height: 25px; }
  .hv2-uniliv__logos img.hv2-uniliv__ul { height: 16px; }
}
.hv2-uniliv h2 { font-size: 20px; letter-spacing: -0.01em; }
.hv2-uniliv p { font-size: 15px; color: var(--v2-magenta); font-weight: 700; margin: 2px 0 0; }
.v2 .hv2-uniliv .v2-btn { background: var(--v2-plum); color: #fff; flex: none; }
/* benefit pills fill the middle of the card (same offers as the UniLiv page) */
.hv2-uniliv__perks { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; flex: 1 1 300px; justify-content: center; }
.hv2-uniliv__perks li { display: inline-flex; align-items: center; gap: 7px; background: var(--v2-tint-2); color: var(--v2-magenta); font-size: 13px; font-weight: 700; padding: 8px 12px; border-radius: 999px; white-space: nowrap; }
@media (max-width: 767px) { .hv2-uniliv__perks { justify-content: flex-start; } .hv2-uniliv__card { padding: 20px; } }

/* ---------------- section heading ---------------- */
.hv2-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.v2 .hv2-h2 { margin-top: 16px; font-size: clamp(32px, 4.4vw, 56px); line-height: 1.04; }
.hv2-h2 .v2-serif { color: var(--v2-magenta); }

/* ---------------- our services ---------------- */
.hv2-services { padding: 88px var(--v2-pad); scroll-margin-top: 20px; }
.hv2-browse { font-weight: 700; font-size: 15px; display: inline-flex; align-items: center; gap: 8px; border: 1.5px solid var(--v2-line-2); background: #fff; min-height: 48px; padding: 0 20px; border-radius: 999px; color: var(--v2-ink); cursor: pointer; }
.hv2-browse:hover { border-color: var(--v2-magenta); color: var(--v2-magenta); }
.hv2-svc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; margin: 44px 0 0; padding: 0; list-style: none; }
@media (min-width: 1024px) { .hv2-svc-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.v2 .hv2-svc { display: flex; flex-direction: column; gap: 18px; padding: 22px; border-radius: 22px; border: 1px solid var(--v2-line); background: #fff; color: var(--v2-ink); height: 100%; }
.hv2-svc__icon { width: 54px; height: 54px; border-radius: 16px; background: var(--v2-tint-2); display: flex; align-items: center; justify-content: center; }
.hv2-svc__name { font-size: 17px; font-weight: 800; line-height: 1.3; }
.hv2-svc__more { font-size: 13px; font-weight: 700; color: var(--v2-magenta); margin-top: auto; }
.hv2-svc-item { position: relative; }
.v2 .hv2-svc__wa { position: absolute; top: 18px; right: 18px; width: 44px; height: 44px; border-radius: 50%; background: #E7F6EE; color: var(--v2-wa); display: flex; align-items: center; justify-content: center; transition: background .2s ease, color .2s ease, transform .2s ease; }
.v2 .hv2-svc__wa:hover { background: var(--v2-wa); color: #fff; transform: scale(1.06); }
@media (max-width: 599px) {
  .hv2-svc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .v2 .hv2-svc { padding: 16px; gap: 12px; }
  .hv2-svc__name { font-size: 15px; }
}

/* ---------------- how it works ---------------- */
.hv2-how { padding: 0 var(--v2-pad) 96px; }
.hv2-how__panel { max-width: 1280px; margin: 0 auto; background: var(--v2-tint); border-radius: 40px; padding: clamp(28px, 5vw, 64px); }
.hv2-how__top { display: flex; justify-content: space-between; gap: 32px; flex-wrap: wrap; align-items: flex-end; }
.hv2-how__top > div { flex: 1 1 460px; min-width: 0; }
.hv2-how__top p { flex: 1 1 380px; margin: 0; font-size: 17px; line-height: 1.6; color: var(--v2-ink-2); max-width: 480px; }
/* steps on a timeline: a line through all five that fills as you scroll (--p, 0..1, set by v2-home.js) */
.hv2-steps { --p: 0; position: relative; display: grid; grid-template-columns: 1fr; gap: 16px; margin: 48px 0 0; padding: 0 0 0 40px; list-style: none; }
.hv2-timeline { position: absolute; left: 13px; top: 30px; bottom: 30px; width: 4px; border-radius: 4px; background: #E9D6E6; list-style: none; }
.hv2-timeline__fill { position: absolute; inset: 0; border-radius: 4px; background: linear-gradient(180deg, var(--v2-magenta), #E58BDE); transform-origin: top; transform: scaleY(var(--p)); }
.hv2-step { position: relative; }
.hv2-step::before { content: ""; position: absolute; left: -35px; top: 30px; width: 18px; height: 18px; border-radius: 50%; background: #fff; border: 4px solid #E9D6E6; transition: border-color .3s ease, background .3s ease, transform .3s ease; }
.hv2-step.is-on::before { border-color: var(--v2-magenta); background: var(--v2-magenta); transform: scale(1.1); }
.hv2-step { transition: box-shadow .3s ease, transform .3s ease; }
.hv2-step.is-on { box-shadow: 0 14px 34px rgba(140,54,136,.12); }
@media (min-width: 1024px) {
  .hv2-steps { grid-template-columns: repeat(5, minmax(0, 1fr)); padding: 40px 0 0; }
  .hv2-timeline { left: 36px; right: 36px; top: 11px; bottom: auto; width: auto; height: 4px; }
  .hv2-timeline__fill { transform-origin: left; transform: scaleX(var(--p)); }
  .hv2-step::before { left: 26px; top: -38px; }
}
.hv2-step { background: #fff; border-radius: 24px; padding: 26px; }
.hv2-step__num { font-size: 44px; font-weight: 800; color: #A0679A; letter-spacing: -0.04em; line-height: 1; }
.hv2-step__text { font-size: 18px; font-weight: 800; margin-top: 18px; line-height: 1.3; }
.hv2-step--last { background: var(--v2-magenta); color: #fff; }
.hv2-step--last .hv2-step__num { color: #E2B9DE; }

/* ---------------- why OSVI ---------------- */
.hv2-why { background: var(--v2-plum); color: #fff; padding: 96px var(--v2-pad); }
.hv2-why .hv2-h2 { max-width: 680px; }
.hv2-why .hv2-h2 .v2-serif { color: var(--v2-accent-dark); }
.hv2-why__lead { color: var(--v2-on-dark); font-size: 17px; line-height: 1.6; max-width: 480px; margin: 0; }
.hv2-why__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr)); gap: 16px; margin: 48px 0 0; padding: 0; list-style: none; }
.hv2-why__card { background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); border-radius: 24px; padding: 26px; }
.hv2-why__icon { width: 48px; height: 48px; border-radius: 14px; background: var(--v2-magenta); display: flex; align-items: center; justify-content: center; }
.v2 .hv2-why__card h3 { font-size: 19px; margin-top: 18px; letter-spacing: -0.02em; }
.hv2-why__card p { font-size: 15px; color: var(--v2-on-dark); line-height: 1.6; margin: 6px 0 0; }

/* ---------------- testimonials ---------------- */
.hv2-reviews { padding: 96px var(--v2-pad) 88px; }
.hv2-arrows { display: flex; align-items: center; gap: 10px; }
.hv2-arrow { width: 52px; height: 52px; border-radius: 50%; border: 1.5px solid var(--v2-line-2); background: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; color: var(--v2-ink); }
.hv2-arrow--next { border: 0; background: var(--v2-magenta); color: #fff; }
.hv2-arrow:hover { border-color: var(--v2-magenta); }
.hv2-arrow--next:hover { background: var(--v2-magenta-hover); }
.hv2-viewport { overflow: hidden; margin-top: 44px; touch-action: pan-y; }
.hv2-track { display: flex; gap: 20px; transition: transform .5s ease; }
.hv2-review { margin: 0; flex: 0 0 calc((100% - 40px) / 3); background: var(--v2-tint); color: var(--v2-ink); border-radius: 28px; padding: 30px; display: flex; flex-direction: column; justify-content: space-between; gap: 26px; min-height: 260px; }
.hv2-review.is-magenta { background: var(--v2-magenta); color: #fff; }
.hv2-review.is-green { background: #EEF5EF; }
.hv2-review__top { display: flex; justify-content: space-between; align-items: center; }
.hv2-stars { font-size: 18px; letter-spacing: 2px; color: #E4D4E2; }
.hv2-stars .on { color: #E8A317; }
.hv2-review.is-magenta .hv2-stars { color: rgba(255,255,255,.35); }
.hv2-review.is-magenta .hv2-stars .on { color: #FFC94A; }
.hv2-review__score { font-size: 13px; font-weight: 800; }
.hv2-review blockquote { margin: 16px 0 0; font-size: 17px; line-height: 1.6; font-weight: 500; }
.hv2-review figcaption { display: flex; align-items: center; gap: 12px; }
.hv2-avatar { width: 46px; height: 46px; border-radius: 50%; background: var(--v2-magenta); color: #fff; font-weight: 800; display: flex; align-items: center; justify-content: center; flex: none; }
.hv2-review.is-magenta .hv2-avatar { background: #fff; color: var(--v2-magenta); }
.hv2-review.is-green .hv2-avatar { background: #2E7A5C; }
.hv2-who { display: flex; flex-direction: column; }
.hv2-who strong { font-weight: 800; }
.hv2-who span { font-size: 13px; color: var(--v2-ink-2); }
.hv2-review.is-magenta .hv2-who span { color: #F3E3F1; }
@media (max-width: 1023px) { .hv2-review { flex-basis: calc((100% - 20px) / 2); } }
@media (max-width: 767px) { .hv2-review { flex-basis: 100%; } }

.hv2-reviews__foot { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: 32px; }
.hv2-dots { display: flex; gap: 4px; align-items: center; flex-wrap: wrap; }
.hv2-dot { width: 24px; height: 24px; border: 0; padding: 0; background: transparent; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.hv2-dot::before { content: ""; width: 8px; height: 8px; border-radius: 4px; background: #E4D4E2; transition: width .25s ease, background .25s ease; }
.hv2-dot[aria-current="true"] { width: 36px; }
.hv2-dot[aria-current="true"]::before { width: 28px; background: var(--v2-magenta); }
.hv2-review-links { display: flex; gap: 10px; flex-wrap: wrap; }
.v2 .hv2-google { display: inline-flex; align-items: center; gap: 12px; border: 1.5px solid var(--v2-line-2); padding: 6px 20px 6px 6px; min-height: 48px; border-radius: 999px; color: var(--v2-ink); font-weight: 700; background: #fff; }
.hv2-google__g { width: 36px; height: 36px; border-radius: 50%; background: #F4F4F4; display: flex; align-items: center; justify-content: center; font-weight: 800; color: #4285F4; }
.hv2-addreview { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 0 20px; border-radius: 999px; border: 0; background: var(--v2-magenta); color: #fff; font-weight: 700; cursor: pointer; }
.hv2-addreview:hover { background: var(--v2-magenta-hover); }

/* review form (existing feature, review.js) */
.hv2-rvform { margin-top: 24px; background: var(--v2-tint); border-radius: 28px; padding: clamp(20px, 3vw, 32px); display: grid; gap: 16px; scroll-margin-top: 24px; }
.hv2-rvform[hidden] { display: none; }
.hv2-rvform .rv-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.hv2-rvform .rv-field { display: flex; flex-direction: column; gap: 6px; font-weight: 700; font-size: 14px; }
.hv2-rvform input, .hv2-rvform textarea { border: 1.5px solid #E7DCE5; background: #fff; border-radius: 14px; padding: 12px 14px; font-size: 15px; width: 100%; }
.hv2-rvform input { height: 50px; }
.hv2-rvform input:focus, .hv2-rvform textarea:focus { border-color: var(--v2-magenta); outline: none; box-shadow: 0 0 0 3px rgba(140,54,136,.2); }
.hv2-rvform .rv-stars { display: flex; gap: 4px; }
.hv2-rvform .rv-star { width: 44px; height: 44px; border: 0; background: transparent; cursor: pointer; font-size: 28px; line-height: 1; color: #D9C8D7; padding: 0; }
.hv2-rvform .rv-star.is-on { color: #E8A317; }
.hv2-rvform .rv-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.hv2-rvform .rv-submit { justify-self: start; min-height: 50px; padding: 0 28px; border-radius: 999px; border: 0; background: var(--v2-magenta); color: #fff; font-weight: 700; cursor: pointer; }
.hv2-rvform .rv-submit:disabled { opacity: .6; }
.hv2-rvform .rv-note { margin: 0; font-size: 13px; color: var(--v2-ink-2); }
.hv2-rvform .rv-msg { margin: 0; font-weight: 700; color: #B3261E; min-height: 1.5em; }
.hv2-rvform .rv-msg.is-ok { color: #17663A; }

/* ---------------- emergency band ---------------- */
.hv2-emergency { padding: 0 var(--v2-pad) 96px; }
.hv2-emergency__panel { max-width: 1280px; margin: 0 auto; background: var(--v2-magenta); border-radius: 40px; color: #fff; padding: clamp(32px, 6vw, 72px); display: flex; justify-content: space-between; align-items: center; gap: 32px; flex-wrap: wrap; }
.hv2-emergency__panel > div:first-child { flex: 1 1 420px; min-width: 0; }
.hv2-emergency__tag { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; background: rgba(255,255,255,.14); padding: 6px 12px; border-radius: 999px; }
.hv2-emergency__tag::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #FFD84D; }
.hv2-emergency .hv2-h2 .v2-serif { color: #F7D3F3; }
.hv2-emergency p { margin: 14px 0 0; font-size: 17px; color: #F3E3F1; }
.hv2-emergency__btns { display: flex; gap: 12px; flex-wrap: wrap; }
.hv2-quick { margin-top: 22px; }
.v2 .hv2-quick__label { margin: 0; font-size: 14px; font-weight: 600; color: #F3E3F1; }
.hv2-quick__list { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.v2 .hv2-quick__list a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 999px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.28); color: #fff; font-weight: 700; font-size: 14px; transition: background .2s ease, color .2s ease; }
.v2 .hv2-quick__list a:hover { background: #fff; color: var(--v2-wa); }
.hv2-quick__list .v2-wa-svg { width: 16px; height: 16px; }

@media (max-width: 767px) {
  .hv2-hero__text { padding-bottom: 8px; flex-basis: 100%; }
  .hv2-hero__media { min-height: 440px; flex-basis: 100%; }
  .hv2-hero__arch { height: 440px; border-radius: 220px 220px 0 0; }
  .hv2-chip { padding: 10px 14px; }
  .hv2-chip--name { left: 0; bottom: 24px; }
  .hv2-chip--name .hv2-chip__icon { width: 36px; height: 36px; }
  .hv2-chip strong { font-size: 14px; }
  .hv2-chip--ins { right: 0; top: auto; bottom: 108px; }
  .hv2-chip--ins strong { font-size: 13px; }
  .hv2-stats dd { font-size: 28px; }
  .hv2-stats > div { padding: 16px 14px; }
  .hv2-cta .v2-btn { flex: 1 1 100%; }
  .hv2-uniliv { padding-top: 56px; }
  .hv2-services, .hv2-why, .hv2-reviews { padding-top: 64px; padding-bottom: 64px; }
  .hv2-emergency__btns .v2-btn { flex: 1 1 100%; }
  .hv2-reviews__foot { flex-direction: column; align-items: flex-start; }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .hv2-hero__media { min-height: 560px; }
  .hv2-hero__arch { height: 560px; }
  .hv2-chip--name { left: 0; }
  .hv2-chip--ins { right: 0; top: auto; }
}

@media (prefers-reduced-motion: reduce) {
  .hv2-float, .hv2-float2, .hv2-marquee__track, .hv2-trust__track { animation: none; }
  .hv2-trust__viewport { overflow-x: auto; }
  .hv2-trust__group[aria-hidden] { display: none; }
  .hv2-step, .hv2-step::before, .hv2-svc__wa { transition: none; }
  .hv2-track { transition: none; }
}

/* ---------------- phones: a calm first screen ----------------
   Same words as on desktop (welcome chip, headline, full description), set a little
   smaller and tighter, with the two buttons side by side, so the greeting, headline,
   description, offer and both buttons all fit on the first screen (the sticky
   emergency bar only appears once these buttons scroll away). */
.hv2-cta__short { display: none; }
@media (max-width: 599px) {
  .hv2-hero__inner { padding-top: 18px; }
  .hv2-welcome { font-size: 12px; gap: 8px; padding: 4px 12px 4px 4px; }
  .hv2-welcome__live { font-size: 11px; padding: 3px 8px; }
  .v2 .hv2-hero h1 { margin-top: 14px; font-size: clamp(32px, 9.6vw, 40px); line-height: 1.05; letter-spacing: -0.04em; }
  .hv2-sub { margin-top: 12px; font-size: 15.5px; line-height: 1.5; }
  .hv2-free { margin-top: 18px; font-size: 16px; }
  .hv2-cta__long { display: none; }
  .hv2-cta__short { display: inline; }
  .hv2-cta { flex-wrap: nowrap; gap: 10px; margin-top: 10px; }
  .hv2-cta .v2-btn { flex: 1 1 0; min-width: 0; padding-left: 12px; padding-right: 12px; }
  .v2 .hv2-grating { margin-top: 14px; }
}
/* The headline's height changes a little while its two web fonts arrive one after the other
   (and from ~400px it even fits on 2 lines in the stand-in font, 3 in the real one). Room for
   the tallest of those states is kept, so the description and buttons below never jump. */
@media (max-width: 439px) { .v2 .hv2-hero h1 { min-height: 3.45em; } }
@media (min-width: 440px) and (max-width: 599px) { .v2 .hv2-hero h1 { min-height: 2.35em; } }
/* stats box on phones: two numbers on the first row, the third on its own row, no stray divider */
@media (max-width: 599px) {
  .hv2-stats > div:nth-child(2) { border-right: 0; }
  .hv2-stats > div:nth-child(3) { border-top: 1px solid #F1E5EF; }
}
