/* ==========================================================================
   Conversion pages: Maintenance Plans · Calculator · Get a Quote · Book a Visit · Thank you
   Builds on main.css tokens & components. Logical properties only (RTL-first).
   ========================================================================== */

/* ---- Hero extras ----------------------------------------------------------- */
.cv-hero-note, .cv-hero-emg { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 10px; font-size: var(--fs-small); color: #CDE6F2; }
.cv-hero-note .icon, .cv-hero-emg > .icon { color: #E7C98C; }
.cv-hero-emg a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--color-lagoon); }
.cv-hero-emg a:hover { color: #fff; }

/* ---- Shared bits ---------------------------------------------------------- */
.cv-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-block-start: var(--s-3); }
.cv-fieldset { border: 0; padding: 0; margin: 0 0 var(--s-3); min-width: 0; }
.cv-fieldset > legend, .cv-label { font-size: var(--fs-small); font-weight: 600; color: var(--color-deep); margin-block-end: 10px; padding: 0; }
.cv-error { margin-block-start: 10px; font-size: var(--fs-small); font-weight: 500; color: #B83232; }
.cv-faq__inner { max-width: 54rem; }
.dropzone--lg { padding-block: 56px; }
.dropzone__hint { font-size: var(--fs-xs); }

/* Chips (radio/checkbox) */
.cv-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cv-chip { position: relative; }
.cv-chip input { position: absolute; inset: 0; opacity: 0; cursor: pointer; margin: 0; }
.cv-chip > span {
	display: inline-flex; align-items: center; gap: 8px; min-height: 46px; padding: 0 18px; border-radius: var(--r-pill);
	border: 1.5px solid var(--color-line); background: #fff; font-size: .95rem; font-weight: 500; color: var(--color-text);
	transition: border-color var(--dur-1), background var(--dur-1), color var(--dur-1), box-shadow var(--dur-1);
}
.cv-chip > span .icon { width: 18px; height: 18px; color: var(--color-aqua-ink); }
.cv-chip:hover > span { border-color: #9FB4C4; }
.cv-chip input:checked + span { border-color: var(--color-primary); background: rgba(14,107,168,.06); color: var(--color-primary); font-weight: 600; box-shadow: 0 0 0 3px rgba(14,107,168,.1); }
.cv-chip input:focus-visible + span { outline: 3px solid var(--color-aqua); outline-offset: 2px; }

/* Choice cards */
.cv-choices { display: grid; gap: 12px; }
.cv-choices--2 { grid-template-columns: repeat(2, 1fr); }
.cv-choices--3 { grid-template-columns: repeat(3, 1fr); }
.cv-choice { position: relative; display: block; }
.cv-choice input { position: absolute; inset: 0; opacity: 0; cursor: pointer; margin: 0; z-index: 1; }
.cv-choice__body {
	position: relative; display: flex; gap: 14px; align-items: flex-start; height: 100%; padding: 18px; border-radius: var(--r-md);
	border: 1.5px solid var(--color-line); background: #fff;
	transition: border-color var(--dur-1), box-shadow var(--dur-2) var(--ease), transform var(--dur-2) var(--ease), background var(--dur-1);
}
.cv-choice:hover .cv-choice__body { border-color: #9FB4C4; transform: translateY(-2px); }
.cv-choice input:checked + .cv-choice__body { border-color: var(--color-primary); background: linear-gradient(135deg, rgba(14,107,168,.04), rgba(31,182,201,.08)); box-shadow: 0 0 0 3px rgba(14,107,168,.12), var(--shadow-sm); }
.cv-choice input:focus-visible + .cv-choice__body { outline: 3px solid var(--color-aqua); outline-offset: 2px; }
.cv-choice__icon { display: grid; place-items: center; flex: none; width: 44px; height: 44px; border-radius: 12px; background: var(--color-mist); color: var(--color-primary); transition: all var(--dur-2) var(--ease); }
.cv-choice input:checked + .cv-choice__body .cv-choice__icon { background: var(--gradient-button); color: #fff; }
.cv-choice__text { display: grid; gap: 4px; min-width: 0; padding-inline-end: 22px; }
.cv-choice__title { font-weight: 600; color: var(--color-deep); line-height: 1.4; }
.cv-choice__desc { font-size: var(--fs-small); color: var(--color-muted); line-height: 1.6; }
.cv-choice__check {
	position: absolute; inset-block-start: 14px; inset-inline-end: 14px; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%;
	border: 1.5px solid var(--color-line); color: transparent; transition: all var(--dur-1);
}
.cv-choice__check .icon { width: 14px; height: 14px; stroke-width: 2.6; }
.cv-choice input[type="checkbox"] + .cv-choice__body .cv-choice__check { border-radius: 6px; }
.cv-choice input:checked + .cv-choice__body .cv-choice__check { background: var(--color-primary); border-color: var(--color-primary); color: #fff; }
.cv-choices--compact .cv-choice__body { align-items: center; padding: 14px; }
.cv-choices--compact .cv-choice__icon { width: 38px; height: 38px; }

/* Finish swatches */
.cv-swatch { flex: none; width: 52px; height: 52px; border-radius: 12px; box-shadow: inset 0 0 0 1px rgba(10,37,64,.1); }
.cv-swatch--tile { background: linear-gradient(#fff 0 0) 0 0 / 50% 50% no-repeat, #E8F1F5; background-image: repeating-linear-gradient(0deg, transparent 0 12px, #C9D9E2 12px 13px), repeating-linear-gradient(90deg, #EAF5F9 0 12px, #C9D9E2 12px 13px); }
.cv-swatch--mosaic { background-image: repeating-linear-gradient(0deg, transparent 0 6px, rgba(255,255,255,.7) 6px 7px), repeating-linear-gradient(90deg, #1FB6C9 0 6px, rgba(255,255,255,.7) 6px 7px), linear-gradient(135deg, #0E6BA8, #1FB6C9); background-blend-mode: normal, multiply, normal; }
.cv-swatch--glass { background: url("../../img/caustics.webp") 0 0 / 70px, repeating-linear-gradient(45deg, #7FDBE6 0 5px, #1FB6C9 5px 10px); }
.cv-swatch--stone { background: radial-gradient(circle at 30% 30%, #EFE6D6, transparent 40%), radial-gradient(circle at 70% 70%, #D8C8AE, transparent 45%), #E9DCC6; }

/* Switch */
.cv-switch { position: relative; display: inline-flex; align-items: center; gap: 12px; min-height: 44px; cursor: pointer; font-weight: 600; color: var(--color-deep); margin-block-end: var(--s-2); }
.cv-switch input { position: absolute; opacity: 0; inset: 0; width: 100%; cursor: pointer; margin: 0; }
.cv-switch__track { position: relative; width: 48px; height: 28px; border-radius: var(--r-pill); background: #CBD7E1; transition: background var(--dur-2); flex: none; }
.cv-switch__thumb { position: absolute; inset-block-start: 3px; inset-inline-start: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: var(--shadow-sm); transition: inset-inline-start var(--dur-2) var(--ease); }
.cv-switch input:checked + .cv-switch__track { background: var(--color-error); }
.cv-switch input:checked + .cv-switch__track .cv-switch__thumb { inset-inline-start: 23px; }
.cv-switch input:focus-visible + .cv-switch__track { outline: 3px solid var(--color-aqua); outline-offset: 2px; }
.cv-emergency-panel { margin-block-end: var(--s-3); padding: 18px 20px; border-radius: var(--r-md); background: #FFF4F4; border: 1px solid rgba(214,69,69,.3); animation: heroIn .5s var(--ease) both; }
.cv-emergency-panel p { display: flex; gap: 10px; align-items: flex-start; color: #8E2A2A; font-weight: 500; }
.cv-emergency-panel p .icon { flex: none; margin-block-start: 3px; }
.cv-emergency-panel__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-block-start: 14px; }
.cv-emergency-panel .btn--primary { --btn-bg: linear-gradient(135deg, #C93B3B, #E05A5A); box-shadow: 0 12px 30px -12px rgba(214,69,69,.6); }
form.is-emergency .cv-chips { opacity: .55; }

/* ---- Plans page ----------------------------------------------------------- */
.cv-billing { display: flex; justify-content: center; margin-block: calc(var(--s-4) * -1) var(--s-6); }
.cv-billing .segmented { min-width: 300px; background: #fff; box-shadow: var(--shadow-sm); border-radius: var(--r-pill); }
.cv-billing .segmented span { border-radius: var(--r-pill); gap: 6px; padding-inline: 16px; }
.cv-billing .segmented input:checked + span { background: var(--color-deep); color: #fff; }
.cv-save { font-style: normal; font-size: var(--fs-xs); font-weight: 700; padding: 2px 8px; border-radius: var(--r-pill); background: rgba(200,161,90,.2); color: var(--color-gold-ink); }
.cv-billing input:checked + span .cv-save { background: rgba(231,201,140,.25); color: #E7C98C; }
.cv-price { display: contents; }
[data-billing="monthly"] .cv-price--yearly, [data-billing="yearly"] .cv-price--monthly { display: none; }
.cv-plans .plan-card .btn { margin-block-start: auto; }

.cv-compare { margin-block-start: var(--s-12); }
.cv-compare__title { font-size: var(--fs-h3); text-align: center; margin-block-end: var(--s-1); }
.cv-compare__title em { font-style: normal; background: linear-gradient(100deg, var(--color-primary), var(--color-aqua)); -webkit-background-clip: text; background-clip: text; color: transparent; }
html[lang^="en"] .cv-compare__title em { font-family: var(--font-accent); font-style: italic; font-weight: 400; }
.cv-compare__hint { display: none; justify-content: center; align-items: center; gap: 8px; font-size: var(--fs-xs); color: var(--color-muted); margin-block-end: 12px; }
.cv-table-wrap { overflow-x: auto; border-radius: var(--r-md); background: #fff; box-shadow: var(--shadow-sm); margin-block-start: var(--s-4); -webkit-overflow-scrolling: touch; }
.cv-table-wrap:focus-visible { outline: 3px solid var(--color-aqua); outline-offset: 3px; }
.cv-table { width: 100%; min-width: 640px; border-collapse: separate; border-spacing: 0; font-size: .97rem; }
.cv-table th, .cv-table td { padding: 16px 20px; border-block-end: 1px solid var(--color-line); text-align: center; }
.cv-table tbody tr:last-child > * { border-block-end: 0; }
.cv-table thead th { position: sticky; inset-block-start: 0; background: #fff; vertical-align: bottom; padding-block: 24px 18px; }
.cv-table th[scope="row"], .cv-table thead th:first-child { text-align: start; font-weight: 500; color: var(--color-text); position: sticky; inset-inline-start: 0; background: #fff; z-index: 1; }
.cv-table thead th:first-child { font-size: var(--fs-small); color: var(--color-muted); }
.cv-table__plan { display: block; font-family: var(--font-display); font-weight: 600; font-size: 1.1rem; color: var(--color-deep); }
.cv-table__price { display: block; margin-block-start: 4px; font-size: var(--fs-small); color: var(--color-muted); font-weight: 500; }
.cv-table .is-popular { background: rgba(31,182,201,.06); }
.cv-table thead .is-popular { background: var(--color-deep); border-start-start-radius: 0; }
.cv-table thead .is-popular .cv-table__plan { color: #fff; }
.cv-table thead .is-popular .cv-table__price { color: #A9BED1; }
.cv-yes { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: rgba(30,158,106,.12); color: var(--color-success); }
.cv-yes .icon { width: 16px; height: 16px; stroke-width: 2.6; }
.cv-no { color: #B6C3CE; font-weight: 600; }
.cv-val { font-weight: 600; color: var(--color-deep); }

.cv-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; counter-reset: s; }
.cv-step { position: relative; padding: 28px; border-radius: var(--r-md); background: #fff; box-shadow: var(--shadow-sm); overflow: hidden; }
.cv-step__num { position: absolute; inset-block-start: 14px; inset-inline-end: 20px; font-family: var(--font-display); font-size: 3rem; font-weight: 600; line-height: 1; color: rgba(14,107,168,.08); }
.cv-step__icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; background: var(--gradient-button); color: #fff; margin-block-end: 16px; box-shadow: var(--shadow-glow); }
.cv-step__title { font-size: 1.1rem; margin-block-end: 6px; }
.cv-step__text { font-size: .95rem; color: var(--color-muted); }

.cv-emergency { position: relative; isolation: isolate; overflow: hidden; padding-block: var(--s-8); background: linear-gradient(120deg, #0A2540, #3B1D2E 120%); color: #F1D9D9; }
.cv-emergency__inner { display: flex; align-items: center; gap: var(--s-4); flex-wrap: wrap; }
.cv-emergency__pulse { position: relative; display: grid; place-items: center; flex: none; width: 64px; height: 64px; border-radius: 50%; background: var(--color-error); color: #fff; }
.cv-emergency__pulse::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--color-error); animation: pulse 2.2s var(--ease) infinite; }
.cv-emergency__pulse .icon { width: 28px; height: 28px; }
.cv-emergency__copy { flex: 1 1 320px; }
.cv-emergency__title { color: #fff; font-size: var(--fs-h4); margin-block-end: 4px; }
.cv-emergency__actions { display: flex; flex-wrap: wrap; gap: 12px; }

.cv-book__grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2.5rem, 1.5rem + 4vw, 5rem); align-items: start; }
.cv-book__intro .section-head { margin-block-end: var(--s-4); }
.cv-aside { display: grid; gap: 14px; padding: 28px; border-radius: var(--r-md); background: var(--color-mist); }
.cv-aside__title { font-family: var(--font-display); font-weight: 600; font-size: 1.15rem; color: var(--color-deep); }
.cv-aside__list { display: grid; gap: 14px; list-style: none; padding: 0; margin: 0; }
.cv-aside__list li { display: flex; gap: 12px; align-items: flex-start; }
.cv-aside__n { display: grid; place-items: center; flex: none; width: 28px; height: 28px; border-radius: 50%; background: #fff; color: var(--color-primary); font-weight: 700; font-size: var(--fs-small); box-shadow: var(--shadow-sm); }
.cv-aside__hours { display: flex; gap: 10px; align-items: flex-start; font-size: var(--fs-small); color: var(--color-muted); padding-block-start: 14px; border-block-start: 1px solid var(--color-line); }
.cv-aside__hours .icon { color: var(--color-aqua-ink); flex: none; margin-block-start: 2px; }
.cv-aside__hours strong { color: var(--color-deep); }
.cv-aside--plan { background: #fff; border: 1px solid var(--color-line); justify-items: start; }
.cv-aside--wa { background: var(--color-deep); color: #C9D8E6; }
.cv-aside--wa .cv-aside__title { color: #fff; }
.cv-aside__phone { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: #fff; min-height: 44px; }
.cv-aside__phone .icon { color: var(--color-lagoon); }
.cv-aside__rating { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-block-start: 14px; border-block-start: 1px solid var(--color-line); font-size: var(--fs-small); }
.cv-aside__rating .g-badge__logo { width: 32px; height: 32px; background: #fff; }
.cv-aside__rating .g-badge__logo .icon { width: 18px; height: 18px; }
.cv-aside__rating strong { font-family: var(--font-display); font-size: 1.2rem; color: var(--color-deep); }
.cv-aside .checklist { margin-block: 0; }

/* ---- Wizard (quote + calculator) ------------------------------------------ */
.cv-wizard-card { box-shadow: var(--shadow-lg); }
.cv-stepper { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-block-end: 18px; list-style: none; padding: 0; }
.cv-stepper__item { display: flex; align-items: center; gap: 10px; font-size: var(--fs-small); color: var(--color-muted); font-weight: 500; }
.cv-stepper__num { position: relative; display: grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: 50%; border: 1.5px solid var(--color-line); font-weight: 700; font-size: .85rem; background: #fff; transition: all var(--dur-2) var(--ease); }
.cv-stepper__num .icon { position: absolute; width: 16px; height: 16px; stroke-width: 2.6; opacity: 0; }
.cv-stepper__item.is-current { color: var(--color-deep); font-weight: 600; }
.cv-stepper__item.is-current .cv-stepper__num { border-color: var(--color-primary); color: var(--color-primary); box-shadow: 0 0 0 4px rgba(14,107,168,.12); }
.cv-stepper__item.is-done .cv-stepper__num { background: var(--color-primary); border-color: var(--color-primary); color: transparent; }
.cv-stepper__item.is-done .cv-stepper__num .icon { opacity: 1; color: #fff; }
.cv-progress { height: 6px; border-radius: 6px; background: var(--color-mist); overflow: hidden; margin-block-end: var(--s-4); }
.cv-progress span { display: block; height: 100%; width: var(--p, 0%); border-radius: inherit; background: var(--gradient-button); transition: width .6s var(--ease); }
.cv-wstep { animation: heroIn .55s var(--ease) both; }
.cv-wstep__title { font-size: var(--fs-h4); margin-block-end: var(--s-3); }
.cv-wstep__title:focus { outline: none; }
.cv-wstep__sub { font-size: 1.02rem; margin-block: var(--s-4) 14px; }
.cv-wstep__lead { margin-block: calc(var(--s-2) * -1) var(--s-3); }
.cv-wizard__actions { padding-block-start: var(--s-3); border-block-start: 1px solid var(--color-line); }
.cv-wizard__next { margin-inline-start: auto; }

/* ---- Calculator ------------------------------------------------------------ */
.cv-calc__grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: clamp(2rem, 1rem + 3vw, 4rem); align-items: start; }
.cv-calc__top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-block-end: 10px; }
.cv-calc__count { font-size: var(--fs-xs); font-weight: 600; color: var(--color-aqua-ink); }
.cv-calc__name { font-family: var(--font-display); font-weight: 600; color: var(--color-deep); }
.cv-dots { display: flex; gap: 6px; list-style: none; padding: 0; margin: -18px 0 var(--s-4); }
.cv-dots li { flex: 1; height: 0; }
.cv-sliders { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.cv-area { display: flex; justify-content: space-between; align-items: baseline; margin-block-start: 8px; padding: 14px 18px; border-radius: var(--r-sm); background: var(--color-mist); font-size: var(--fs-small); color: var(--color-muted); }
.cv-area strong { font-family: var(--font-display); font-size: 1.4rem; color: var(--color-deep); }
.cv-city { max-width: 420px; }

.cv-summary { position: sticky; inset-block-start: calc(var(--header-h-compact) + 24px); display: grid; gap: 16px; padding: 24px; border-radius: var(--r-lg); background: var(--color-deep); color: #C9D8E6; box-shadow: var(--shadow-lg); }
.cv-summary__title { font-family: var(--font-display); font-weight: 600; color: #fff; font-size: 1.1rem; }
.cv-summary__preview { background: linear-gradient(#123B63, #0D2F52); }
.calc-mini__pool[data-shape="oval"] { border-radius: 50%; }
.calc-mini__pool[data-shape="freeform"] { border-radius: 46% 54% 38% 62% / 55% 40% 60% 45%; }
.calc-mini__pool[data-shape="l_shape"] { clip-path: polygon(0 0, 100% 0, 100% 55%, 55% 55%, 55% 100%, 0 100%); border-radius: 4px; }
.calc-mini__pool[data-finish="stone"] .calc-mini__water { background-color: #3E8E9A; }
.calc-mini__pool[data-finish="tile"] .calc-mini__water { filter: saturate(.8) brightness(1.08); }
.calc-mini__pool[data-finish="glass"] .calc-mini__water { filter: saturate(1.25) brightness(1.05); }
.cv-summary__list { display: grid; gap: 0; margin: 0; font-size: var(--fs-small); }
.cv-summary__list > div { display: flex; justify-content: space-between; gap: 12px; padding-block: 8px; border-block-end: 1px solid rgba(255,255,255,.08); }
.cv-summary__list dt { color: #8EA6BC; flex: none; }
.cv-summary__list dd { margin: 0; color: #fff; font-weight: 500; text-align: end; }
.cv-summary__estimate { display: grid; gap: 2px; padding: 16px; border-radius: var(--r-sm); background: rgba(255,255,255,.06); border: 1px solid rgba(200,161,90,.35); }
.cv-summary__estimate > span { font-size: var(--fs-xs); color: #D9C59B; }
.cv-summary__estimate strong { font-family: var(--font-display); font-size: 1.5rem; color: #fff; font-variant-numeric: tabular-nums; }
.cv-summary__estimate small { color: #8EA6BC; }

.cv-result__range { display: grid; gap: 6px; padding: 28px; border-radius: var(--r-md); text-align: center; background: var(--gradient-signature); color: #fff; margin-block-end: var(--s-3); position: relative; overflow: hidden; isolation: isolate; }
.cv-result__range::before { content: ""; position: absolute; inset: 0; z-index: -1; background: url("../../img/caustics.webp") 0 0 / 420px; opacity: .14; mix-blend-mode: screen; }
.cv-result__label { font-size: var(--fs-small); color: #CDE6F2; }
.cv-result__value { font-family: var(--font-display); font-weight: 600; font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.75rem); line-height: 1.2; font-variant-numeric: tabular-nums; }
.cv-result__dash { color: var(--color-lagoon); }
.cv-result__cur { font-size: .5em; color: #CDE6F2; }
.cv-result .notice { margin-block-end: var(--s-4); }
.cv-gate { display: grid; grid-template-columns: .9fr 1.1fr; gap: 24px; align-items: center; padding: 24px; border-radius: var(--r-md); background: var(--color-mist); }
.cv-gate__preview { display: grid; gap: 10px; filter: blur(3px); opacity: .7; user-select: none; }
.cv-gate__preview span { display: flex; justify-content: space-between; gap: 12px; padding: 12px 14px; border-radius: 10px; background: #fff; font-size: var(--fs-small); }
.cv-gate__preview em { font-style: normal; }
.cv-gate__preview i { display: block; width: 72px; height: 12px; border-radius: 6px; background: linear-gradient(90deg, #C9D9E2, #E3ECF1); align-self: center; }
.cv-gate__title { display: flex; align-items: center; gap: 8px; font-family: var(--font-display); font-weight: 600; font-size: 1.15rem; color: var(--color-deep); }
.cv-gate__title .icon { color: var(--color-primary); }
.cv-gate__form .muted { font-size: var(--fs-small); margin-block: 6px 16px; }
.cv-gate__form .form__grid { grid-template-columns: 1fr; gap: 12px; margin-block-end: 14px; }
.cv-breakdown { animation: heroIn .6s var(--ease) both; }
.cv-breakdown__title { font-size: var(--fs-h4); margin-block-end: 14px; }
.cv-breakdown__title:focus { outline: none; }
.cv-breakdown__table { width: 100%; border-collapse: collapse; }
.cv-breakdown__table th, .cv-breakdown__table td { padding: 14px 0; border-block-end: 1px solid var(--color-line); }
.cv-breakdown__table th { text-align: start; font-weight: 500; color: var(--color-text); }
.cv-breakdown__table td { text-align: end; font-variant-numeric: tabular-nums; font-weight: 600; color: var(--color-deep); }
.cv-breakdown__table tfoot th, .cv-breakdown__table tfoot td { border: 0; padding-block-start: 18px; font-family: var(--font-display); font-size: 1.15rem; font-weight: 600; color: var(--color-primary); }

/* ---- Thank you -------------------------------------------------------------- */
.cv-thanks { position: relative; isolation: isolate; overflow: hidden; padding-block: calc(var(--header-h) + var(--s-8)) clamp(6rem, 5rem + 4vw, 9rem); background: var(--gradient-signature); color: #fff; text-align: center; }
.cv-thanks .caustics { opacity: .2; }
.cv-thanks__inner { max-width: 46rem; }
.cv-thanks__mark { width: 96px; height: 96px; margin: 0 auto var(--s-3); }
.cv-thanks__mark svg { width: 100%; height: 100%; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.cv-thanks__ring { stroke: rgba(127,219,230,.5); stroke-width: 3; stroke-dasharray: 277; stroke-dashoffset: 277; animation: cvDraw 1s var(--ease) .1s forwards; }
.cv-thanks__tick { stroke: #fff; stroke-width: 5; stroke-dasharray: 60; stroke-dashoffset: 60; animation: cvDraw .6s var(--ease) .8s forwards; }
@keyframes cvDraw { to { stroke-dashoffset: 0; } }
.cv-thanks .eyebrow { justify-content: center; }
.cv-thanks__title { color: #fff; font-size: var(--fs-h2); }
.cv-thanks__title em { font-style: normal; background: var(--gradient-accent); -webkit-background-clip: text; background-clip: text; color: transparent; }
html[lang^="en"] .cv-thanks__title em { font-family: var(--font-accent); font-style: italic; font-weight: 400; }
.cv-thanks__lead { margin-block: var(--s-2); font-size: var(--fs-lead); color: rgba(255,255,255,.86); }
.cv-thanks__time { display: inline-flex; align-items: center; gap: 8px; padding: 8px 16px; border-radius: var(--r-pill); background: rgba(255,255,255,.1); font-size: var(--fs-small); color: #E7C98C; }
.cv-thanks__ctas { display: flex; justify-content: center; flex-wrap: wrap; gap: 12px; margin-block-start: var(--s-4); }
.cv-next__list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; list-style: none; padding: 0; margin: 0; }
.cv-next__item { position: relative; padding: 32px 28px; border-radius: var(--r-md); border: 1px solid var(--color-line); }
.cv-next__icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 14px; background: rgba(31,182,201,.12); color: var(--color-primary); margin-block-end: 18px; }
.cv-next__n { position: absolute; inset-block-start: 22px; inset-inline-end: 24px; font-family: var(--font-display); font-weight: 600; font-size: 2.4rem; color: rgba(14,107,168,.1); line-height: 1; }
.cv-next__item h3 { font-size: 1.15rem; margin-block-end: 6px; }
.cv-explore__title { font-size: var(--fs-h4); margin-block-end: var(--s-3); text-align: center; }
.cv-explore__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; list-style: none; padding: 0; margin: 0; }
.cv-explore__card { position: relative; border-radius: var(--r-md); overflow: hidden; aspect-ratio: 16 / 10; }
.cv-explore__card img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--ease); }
.cv-explore__card:hover img { transform: scale(1.06); }
.cv-explore__card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(6,24,43,.85), transparent 60%); pointer-events: none; }
.cv-explore__link { position: absolute; inset-inline: 20px; inset-block-end: 18px; z-index: 2; display: flex; align-items: center; justify-content: space-between; color: #fff; font-family: var(--font-display); font-weight: 600; font-size: 1.15rem; }

/* ---- Responsive -------------------------------------------------------------- */
@media (max-width: 1099px) {
	.cv-calc__grid { grid-template-columns: 1fr; }
	.cv-summary { position: static; order: -1; grid-template-columns: 140px 1fr; align-items: center; }
	.cv-summary__title, .cv-summary__estimate { grid-column: 1 / -1; }
	.cv-summary__list { display: none; }
	.cv-summary__preview { height: 90px; }
}
@media (max-width: 1023px) {
	.cv-book__grid { grid-template-columns: 1fr; }
	.cv-steps { grid-template-columns: repeat(2, 1fr); }
	.cv-gate { grid-template-columns: 1fr; }
	.cv-gate__preview { display: none; }
	.cv-next__list, .cv-explore__grid { grid-template-columns: 1fr; max-width: 520px; margin-inline: auto; }
	.cv-compare__hint { display: flex; }
}
@media (max-width: 767px) {
	.cv-choices--2, .cv-choices--3 { grid-template-columns: 1fr; }
	.cv-choices--compact { grid-template-columns: 1fr 1fr; }
	.cv-choices--compact .cv-choice__icon { display: none; }
	.cv-steps { grid-template-columns: 1fr; }
	.cv-sliders { grid-template-columns: 1fr; gap: 8px; }
	.cv-stepper__label { display: none; }
	.cv-stepper { grid-template-columns: repeat(4, auto); justify-content: space-between; }
	.cv-billing { margin-block-start: calc(var(--s-2) * -1); }
	.cv-billing .segmented { min-width: 0; width: 100%; }
	.cv-emergency__inner { text-align: start; }
	.cv-emergency__actions { width: 100%; }
	.cv-emergency__actions .btn { flex: 1 1 auto; }
	.cv-wizard__actions .btn--primary { flex: 1 1 auto; }
	.cv-wizard__actions .btn--ghost { flex: 0 0 auto; }
	/* Phones: compact live-estimate strip above the wizard (no preview tile), price always fits. */
	.cv-summary { grid-template-columns: 1fr; gap: 10px; padding: 16px 18px; }
	.cv-summary__preview { display: none; }
	.cv-summary__estimate { padding: 12px 14px; }
	.cv-summary__estimate strong { font-size: clamp(1rem, 4.6vw, 1.35rem); white-space: normal; overflow-wrap: anywhere; text-wrap: balance; }
	.cv-table th, .cv-table td { padding: 12px 14px; }
}
@media (prefers-reduced-motion: reduce) {
	.cv-thanks__ring, .cv-thanks__tick { stroke-dashoffset: 0; animation: none; }
}

/* Prices hidden: "Request price" in the price slot (cards + comparison table). */
.plan-card__price--ask { justify-content: flex-start; }
.cv-ask-price {
	display: inline-flex; align-items: center; gap: 10px; min-height: 52px;
	font-family: var(--font-display); font-size: clamp(1.35rem, 1.2rem + .5vw, 1.6rem); font-weight: 600; color: var(--color-deep);
	transition: color var(--dur-1);
}
.cv-ask-price .icon { width: 36px; height: 36px; padding: 8px; border-radius: 50%; background: var(--color-whatsapp); color: #fff; flex: none; transition: transform var(--dur-2) var(--ease); }
.cv-ask-price:hover { color: var(--color-primary); }
.cv-ask-price:hover .icon { transform: scale(1.08); }
.plan-card--popular .cv-ask-price { color: #fff; }
.plan-card--popular .cv-ask-price:hover { color: var(--color-lagoon); }
.cv-table__ask { display: inline-block; margin-block-start: 4px; font-size: var(--fs-xs); font-weight: 600; color: var(--color-aqua-ink); text-decoration: underline; text-underline-offset: 3px; }
.cv-table th.is-popular .cv-table__ask { color: var(--color-lagoon); }
