/* ==========================================================================
   Casa Alta Care System · pricing page, configurator and online quote
   Built on the Casa Alta theme tokens (colours, type, radii, easing).
   Fallback values only apply if the theme is not active.
   ========================================================================== */

.cacs {
	--c-bg: var(--bg, #F5EFE4);
	--c-bg-alt: var(--bg-alt, #EBE2D2);
	--c-surface: var(--surface, #FFFDF8);
	--c-ink: var(--ink, #1B2B2F);
	--c-ink-2: var(--ink-2, #3F4E50);
	--c-muted: var(--muted, #56605C);
	--c-olive: var(--olive, #56643F);
	--c-olive-light: var(--olive-light, #C9D3B2);
	--c-sea: var(--sea, #2C6378);
	--c-warn: var(--warn, #9A5B2E);
	--c-line: var(--line, rgba(27, 43, 47, .14));
	--c-serif: var(--serif, "Instrument Serif", Georgia, serif);
	--c-sans: var(--sans, "Hanken Grotesk", system-ui, sans-serif);
	--c-ease: var(--ease, cubic-bezier(.2, .7, .2, 1));
	--c-ease-out: var(--ease-out, cubic-bezier(.16, 1, .3, 1));
	--c-r-sm: var(--r-sm, 12px);
	--c-r-md: var(--r-md, 18px);
	--c-r-lg: var(--r-lg, 22px);
}

/* Hero ------------------------------------------------------------------- */
.cacs-hero__grid { align-items: center; }
.cacs-hero__media { position: relative; padding: 0 0 36px 36px; }
.cacs-hero__img { border-radius: var(--c-r-lg); aspect-ratio: 5 / 4.4; overflow: hidden; }
.cacs-hero__img img { width: 100%; height: 100%; object-fit: cover; }
.cacs-hero__card {
	position: absolute; left: 0; bottom: 0; max-width: 300px; display: flex; gap: 14px; align-items: center;
	padding: 18px 20px; border-radius: var(--c-r-md); background: var(--c-surface);
	box-shadow: 0 24px 48px -28px rgba(27, 43, 47, .5);
}
.cacs-hero__card p { font: 400 21px/1.2 var(--c-serif); }
.cacs-hero__badge { flex-shrink: 0; width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--c-olive); color: var(--c-bg); }
.cacs-points { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 4px; font-size: 15px; color: var(--c-ink-2); }
.cacs-points li { display: inline-flex; gap: 8px; align-items: center; }
.cacs-points .icon { color: var(--c-olive); stroke-width: 2.2; }

/* Mode switch (segmented control) --------------------------------------------- */
.cacs-plans { padding-top: clamp(24px, 3vw, 40px); scroll-margin-top: 100px; }
.cacs-mode-input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.cacs-switch-wrap { display: flex; flex-direction: column; align-items: center; gap: 12px; margin-bottom: 18px; }
.cacs-switch-label { font-size: 12px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--c-olive); }
.cacs-switch {
	position: relative; display: inline-grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0;
	padding: 5px; border-radius: 999px; background: var(--c-bg-alt); isolation: isolate; max-width: 100%;
}
.cacs-switch__opt {
	position: relative; z-index: 1; display: grid; place-items: center; min-height: 50px; padding: 0 24px;
	border-radius: 999px; font: 600 15px/1.15 var(--c-sans); color: var(--c-ink-2); text-align: center; cursor: pointer;
	transition: color .35s var(--c-ease); user-select: none; -webkit-tap-highlight-color: transparent;
}
.cacs-switch__opt:hover { color: var(--c-ink); }
.cacs-switch__thumb {
	position: absolute; z-index: 0; top: 5px; bottom: 5px; left: 5px; width: calc((100% - 10px) / 3);
	border-radius: 999px; background: var(--c-ink); box-shadow: 0 10px 24px -14px rgba(20, 33, 36, .7);
	transition: transform .55s var(--c-ease-out);
}
#cacs-mode-private:checked ~ .cacs-switch-wrap .cacs-switch__thumb { transform: translateX(0); }
#cacs-mode-long_term:checked ~ .cacs-switch-wrap .cacs-switch__thumb { transform: translateX(100%); }
#cacs-mode-holiday:checked ~ .cacs-switch-wrap .cacs-switch__thumb { transform: translateX(200%); }
#cacs-mode-private:checked ~ .cacs-switch-wrap [data-mode="private"],
#cacs-mode-long_term:checked ~ .cacs-switch-wrap [data-mode="long_term"],
#cacs-mode-holiday:checked ~ .cacs-switch-wrap [data-mode="holiday"] { color: var(--c-bg); }
#cacs-mode-private:focus-visible ~ .cacs-switch-wrap [data-mode="private"],
#cacs-mode-long_term:focus-visible ~ .cacs-switch-wrap [data-mode="long_term"],
#cacs-mode-holiday:focus-visible ~ .cacs-switch-wrap [data-mode="holiday"] { outline: 3px solid #7FB3C6; outline-offset: 3px; }

.cacs-panel { display: none; }
#cacs-mode-private:checked ~ .cacs-panels [data-mode="private"],
#cacs-mode-long_term:checked ~ .cacs-panels [data-mode="long_term"],
#cacs-mode-holiday:checked ~ .cacs-panels [data-mode="holiday"] { display: block; animation: cacs-in .6s var(--c-ease-out) both; }
.cacs-panel__intro { max-width: 720px; margin: 0 auto 32px; text-align: center; color: var(--c-ink-2); font-size: 17px; line-height: 1.6; min-height: 3.2em; }

@keyframes cacs-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes cacs-fade { from { opacity: 0; } to { opacity: 1; } }

/* Tier cards ------------------------------------------------------------------- */
.cacs-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; align-items: stretch; }
.cacs-card {
	position: relative; display: flex; flex-direction: column; gap: 16px; padding: 28px 24px 24px;
	border-radius: var(--c-r-lg); background: var(--c-surface); border: 1px solid var(--c-line);
	transition: transform .5s var(--c-ease), box-shadow .5s var(--c-ease), border-color .4s var(--c-ease);
}
.cacs-card:hover { transform: translateY(-4px); box-shadow: 0 26px 50px -32px rgba(27, 43, 47, .45); }
.cacs-card.is-recommended { border: 1.5px solid var(--c-ink); box-shadow: 0 22px 44px -34px rgba(27, 43, 47, .55); }
.cacs-card__badge {
	position: absolute; top: -12px; left: 24px; padding: 5px 12px; border-radius: 999px;
	background: var(--c-ink); color: var(--c-bg); font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
}
.cacs-card__head { display: flex; flex-direction: column; gap: 8px; }
.cacs-card__name { font: 400 34px/1 var(--c-serif); letter-spacing: -.01em; }
.cacs-card__guide { display: flex; gap: 8px; align-items: flex-start; padding: 8px 10px; border-radius: 10px; background: var(--c-bg); font-size: 14px; font-weight: 600; line-height: 1.35; color: var(--c-ink); }
.cacs-card__guide .icon { flex-shrink: 0; margin-top: 1px; color: var(--c-olive); }
.cacs-card__tagline { font-size: 15px; color: var(--c-ink-2); line-height: 1.5; min-height: 3em; }
.cacs-card__price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; padding: 14px 0; border-top: 1px solid var(--c-line); border-bottom: 1px solid var(--c-line); }
.cacs-card__price strong { font: 400 40px/1 var(--c-serif); letter-spacing: -.01em; }
.cacs-card__from { font-size: 14px; color: var(--c-muted); }
.cacs-card__unit { font-size: 13px; color: var(--c-muted); }
.cacs-card__list { display: flex; flex-direction: column; gap: 9px; font-size: 15px; line-height: 1.45; }
.cacs-card__list li { display: flex; gap: 10px; align-items: flex-start; }
.cacs-card__list .icon { flex-shrink: 0; margin-top: 3px; color: var(--c-olive); stroke-width: 2.2; }
.cacs-card__more { margin-top: -4px; }
.cacs-card__more summary {
	display: inline-flex; align-items: center; gap: 8px; min-height: 44px; cursor: pointer; list-style: none;
	font-size: 14px; font-weight: 600; color: var(--c-sea);
}
.cacs-card__more summary::-webkit-details-marker { display: none; }
.cacs-card__more summary .icon { transition: transform .4s var(--c-ease); }
.cacs-card__more[open] summary .icon { transform: rotate(45deg); }
.cacs-more-close { display: none; }
.cacs-card__more[open] .cacs-more-open { display: none; }
.cacs-card__more[open] .cacs-more-close { display: inline; }
.cacs-card__list--more { padding: 4px 0 8px; }
.cacs-card__note { font-size: 13px; color: var(--c-muted); line-height: 1.5; padding: 10px 12px; border-radius: 10px; background: var(--c-bg); }
.cacs-card__cta { margin-top: auto; }
.cacs-guide-note { max-width: 760px; margin: 28px auto 0; text-align: center; font-size: 14px; color: var(--c-muted); }

/* How it works / USP / guide ---------------------------------------------------- */
.cacs-steps { counter-reset: none; }
.cacs-steps .promise { background: var(--c-surface); }
.cacs-steps .h3 { font-size: 24px; }
.cacs-usp__grid { display: grid; grid-template-columns: 6fr 5fr; gap: clamp(40px, 6vw, 88px); align-items: end; }
.cacs-usp .h2 { margin-top: 18px; }
.cacs-topic { display: grid; grid-template-columns: 4fr 7fr; gap: clamp(28px, 5vw, 80px); padding: 40px 0; border-top: 1px solid var(--c-line); scroll-margin-top: 110px; }
.cacs-topic:last-child { border-bottom: 1px solid var(--c-line); }
.cacs-topic .prose ul { display: flex; flex-direction: column; gap: 8px; padding-left: 0; list-style: none; }
.cacs-topic .prose ul li { list-style: none; }
.cacs-topic .prose ul li { position: relative; padding-left: 22px; }
.cacs-topic .prose ul li::before { content: ""; position: absolute; left: 2px; top: .62em; width: 8px; height: 8px; border-radius: 50%; background: var(--c-olive-light); }

/* Mobile sticky CTA ------------------------------------------------------------- */
.cacs-sticky { position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 40; transform: translateY(140%); transition: transform .5s var(--c-ease-out); }
.cacs-sticky.is-visible { transform: none; }
.cacs-sticky .btn { box-shadow: 0 18px 40px -14px rgba(20, 33, 36, .55); }
@media (min-width: 1001px) { .cacs-sticky { display: none !important; } }

/* Modal & configurator ------------------------------------------------------------ */
.cacs-modal { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 20px; }
.cacs-modal[hidden] { display: none; }
.cacs-modal__backdrop { position: absolute; inset: 0; background: rgba(17, 28, 31, .56); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); animation: cacs-fade .35s var(--c-ease) both; }
.cacs-modal__panel {
	position: relative; width: min(920px, 100%); height: min(860px, calc(100dvh - 40px)); display: flex; flex-direction: column;
	border-radius: 26px; background: var(--c-bg); color: var(--c-ink); overflow: hidden; outline: none;
	box-shadow: 0 50px 100px -40px rgba(0, 0, 0, .6); animation: cacs-rise .55s var(--c-ease-out) both;
}
@keyframes cacs-rise { from { opacity: 0; transform: translateY(24px) scale(.985); } to { opacity: 1; transform: none; } }
body.cacs-modal-open { overflow: hidden; }
.cacs-loading { flex: 1; display: grid; place-items: center; }
.cacs-spinner { width: 34px; height: 34px; border-radius: 50%; border: 2.5px solid var(--c-line); border-top-color: var(--c-ink); animation: cacs-spin .9s linear infinite; }
@keyframes cacs-spin { to { transform: rotate(360deg); } }

.cfg-top { display: flex; align-items: center; gap: 16px; padding: 18px 22px 14px 26px; border-bottom: 1px solid var(--c-line); background: var(--c-bg); }
.cfg-progress { flex: 1; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.cfg-progress__step { display: flex; flex-direction: column; gap: 7px; font-size: 13px; font-weight: 600; color: var(--c-muted); }
.cfg-progress__bar { height: 3px; border-radius: 3px; background: var(--c-line); overflow: hidden; }
.cfg-progress__bar i { display: block; height: 100%; width: 0; background: var(--c-olive); transition: width .6s var(--c-ease-out); }
.cfg-progress__step.is-done, .cfg-progress__step.is-current { color: var(--c-ink); }
.cfg-close { flex-shrink: 0; width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(27, 43, 47, .25); background: transparent; display: grid; place-items: center; cursor: pointer; transition: background-color .3s, color .3s; }
.cfg-close:hover { background: var(--c-ink); color: var(--c-bg); }

.cfg-body { position: relative; flex: 1; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.cfg-screen { max-width: 720px; margin: 0 auto; padding: clamp(28px, 4vw, 44px) clamp(20px, 4vw, 40px) 32px; display: flex; flex-direction: column; gap: 22px; }
.cfg-screen.is-entering { animation: cfg-enter .5s var(--c-ease-out) both; }
.cfg-screen.is-entering-back { animation: cfg-enter-back .5s var(--c-ease-out) both; }
@keyframes cfg-enter { from { opacity: 0; transform: translateX(26px); } to { opacity: 1; transform: none; } }
@keyframes cfg-enter-back { from { opacity: 0; transform: translateX(-26px); } to { opacity: 1; transform: none; } }
.cfg-q { font: 400 clamp(30px, 3.6vw, 42px)/1.06 var(--c-serif); letter-spacing: -.01em; text-wrap: balance; outline: none; }
.cfg-help { margin-top: -10px; font-size: 16px; color: var(--c-ink-2); line-height: 1.6; }
.cfg-sub { font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--c-olive); margin-top: 6px; }

.cfg-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.cfg-options--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cfg-options--1 { grid-template-columns: 1fr; }
.cfg-options--tiers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cfg-opt { position: relative; display: block; cursor: pointer; }
.cfg-opt input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.cfg-opt__box {
	display: flex; align-items: center; gap: 14px; min-height: 76px; height: 100%; padding: 16px 18px;
	border-radius: 16px; border: 1.5px solid rgba(27, 43, 47, .16); background: var(--c-surface);
	transition: border-color .3s var(--c-ease), background-color .3s var(--c-ease), transform .25s var(--c-ease), box-shadow .3s var(--c-ease);
}
.cfg-opt:hover .cfg-opt__box { border-color: rgba(27, 43, 47, .5); transform: translateY(-2px); }
.cfg-opt input:checked + .cfg-opt__box { border-color: var(--c-ink); box-shadow: 0 0 0 1.5px var(--c-ink) inset, 0 16px 30px -24px rgba(27, 43, 47, .6); }
.cfg-opt input:focus-visible + .cfg-opt__box { outline: 3px solid #7FB3C6; outline-offset: 2px; }
.cfg-opt__icon { flex-shrink: 0; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: var(--c-bg); color: var(--c-olive); transition: background-color .3s, color .3s; }
.cfg-opt input:checked + .cfg-opt__box .cfg-opt__icon { background: var(--c-ink); color: var(--c-bg); }
.cfg-opt__text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.cfg-opt__label { font-size: 17px; font-weight: 600; line-height: 1.3; }
.cfg-opt__hint { font-size: 14px; color: var(--c-muted); line-height: 1.4; }
.cfg-opt__tick { margin-left: auto; flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid rgba(27, 43, 47, .25); display: grid; place-items: center; color: transparent; transition: all .3s var(--c-ease); }
.cfg-opt input:checked + .cfg-opt__box .cfg-opt__tick { background: var(--c-olive); border-color: var(--c-olive); color: #fff; }
.cfg-opt--check .cfg-opt__tick { border-radius: 8px; }
.cfg-opt__badge { display: inline-block; align-self: flex-start; margin-top: 4px; padding: 3px 9px; border-radius: 999px; background: var(--c-bg); font-size: 12px; font-weight: 600; color: var(--c-olive); }
.cfg-opt--tier .cfg-opt__label { font: 400 28px/1 var(--c-serif); }
.cfg-opt--tier .cfg-opt__box { align-items: flex-start; }

.cfg-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.cfg-pill { position: relative; }
.cfg-pill input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.cfg-pill span { display: grid; place-items: center; min-width: 58px; min-height: 58px; padding: 0 18px; border-radius: 16px; border: 1.5px solid rgba(27, 43, 47, .16); background: var(--c-surface); font-size: 18px; font-weight: 600; cursor: pointer; transition: all .3s var(--c-ease); }
.cfg-pill input:checked + span { background: var(--c-ink); color: var(--c-bg); border-color: var(--c-ink); }
.cfg-pill input:focus-visible + span { outline: 3px solid #7FB3C6; outline-offset: 2px; }

.cfg-steppers { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.cfg-stepper { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px; border-radius: 16px; background: var(--c-surface); border: 1.5px solid rgba(27, 43, 47, .16); }
.cfg-stepper__label { font-size: 17px; font-weight: 600; }
.cfg-stepper__ctrl { display: flex; align-items: center; gap: 10px; }
.cfg-stepper__btn { width: 48px; height: 48px; border-radius: 50%; border: 1.5px solid rgba(27, 43, 47, .3); background: transparent; display: grid; place-items: center; cursor: pointer; transition: background-color .25s, color .25s, transform .2s; }
.cfg-stepper__btn:hover:not(:disabled) { background: var(--c-ink); color: var(--c-bg); }
.cfg-stepper__btn:active:not(:disabled) { transform: scale(.94); }
.cfg-stepper__btn:disabled { opacity: .3; cursor: default; }
.cfg-stepper__val { min-width: 36px; text-align: center; font: 400 34px/1 var(--c-serif); }

.cfg-search { position: relative; }
.cfg-search .input { min-height: 60px; font-size: 18px; padding-left: 50px; }
.cfg-search__icon { position: absolute; left: 16px; top: 18px; color: var(--c-muted); pointer-events: none; }
.cfg-suggest { margin-top: 8px; border-radius: 16px; background: var(--c-surface); border: 1px solid var(--c-line); overflow: hidden; box-shadow: 0 24px 40px -30px rgba(27, 43, 47, .5); }
.cfg-suggest[hidden] { display: none; }
.cfg-suggest button { display: flex; width: 100%; align-items: baseline; justify-content: space-between; gap: 12px; min-height: 54px; padding: 12px 18px; border: 0; border-bottom: 1px solid var(--c-line); background: transparent; text-align: left; cursor: pointer; font-size: 17px; }
.cfg-suggest button:last-child { border-bottom: 0; }
.cfg-suggest button:hover, .cfg-suggest button.is-active { background: var(--c-bg); }
.cfg-suggest small { font-size: 13px; color: var(--c-muted); }
.cfg-town-picked { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px; border-radius: 16px; background: var(--c-surface); border: 1.5px solid var(--c-ink); }
.cfg-town-picked strong { font: 400 26px/1.1 var(--c-serif); }
.cfg-town-picked .icon { color: var(--c-olive); }
.cfg-notice { display: flex; flex-direction: column; gap: 12px; padding: 18px 20px; border-radius: 16px; background: #E3E9DA; color: var(--c-ink); font-size: 16px; line-height: 1.55; animation: cacs-in .5s var(--c-ease-out) both; }
.cfg-notice--warn { background: #F3E1D3; }
.cfg-notice .btn-row { gap: 10px; }
.cfg-info { display: flex; gap: 10px; align-items: flex-start; padding: 14px 16px; border-radius: 14px; background: var(--c-bg-alt); font-size: 15px; line-height: 1.5; color: var(--c-ink-2); }
.cfg-info .icon { flex-shrink: 0; color: var(--c-olive); margin-top: 2px; }
.cfg-included { font-size: 14px; color: var(--c-muted); }
.cfg-included strong { color: var(--c-ink); }
.cfg-screen .field label, .cfg-screen .field legend { font-size: 14px; }
.cfg-screen .input { min-height: 56px; font-size: 17px; }
.cfg-screen textarea.input { min-height: 110px; }
.cfg-field-help { font-size: 13px; color: var(--c-muted); }
.cfg-error { font-size: 14px; color: var(--c-warn); font-weight: 600; }
.cfg-screen .has-error .input { border-color: var(--c-warn); }
.cfg-summary { display: flex; flex-wrap: wrap; gap: 6px; }
.cfg-summary span { padding: 6px 12px; border-radius: 999px; background: var(--c-bg-alt); font-size: 13px; font-weight: 500; }
.cfg-calc { display: flex; gap: 12px; align-items: center; padding: 16px 18px; border-radius: 16px; background: var(--c-surface); border: 1px dashed rgba(27, 43, 47, .25); font: 400 22px/1.2 var(--c-serif); }
.cfg-calc .icon { color: var(--c-olive); flex-shrink: 0; }

.cfg-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 22px calc(14px + env(safe-area-inset-bottom)); border-top: 1px solid var(--c-line); background: var(--c-bg); }
.cfg-foot .btn[disabled] { opacity: .45; pointer-events: none; }
.cfg-back { min-height: 52px; padding: 0 18px; border: 0; background: transparent; display: inline-flex; align-items: center; gap: 8px; font: 600 15px var(--c-sans); color: var(--c-ink-2); cursor: pointer; border-radius: 999px; }
.cfg-back:hover { color: var(--c-ink); background: var(--c-bg-alt); }
.cfg-back[hidden] { visibility: hidden; display: inline-flex; }
.cfg-status { font-size: 13px; color: var(--c-muted); }

.cfg-done { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px; padding: 40px 24px; text-align: center; }
.cfg-done__ring { width: 84px; height: 84px; border-radius: 50%; border: 3px solid var(--c-line); border-top-color: var(--c-olive); animation: cacs-spin 1s linear infinite; }
.cfg-done p { font: 400 30px/1.15 var(--c-serif); max-width: 460px; }

/* Online quote ------------------------------------------------------------------ */
.cacs-q-hero { padding-bottom: 0; }
.cacs-q-body.section--tight { padding-top: clamp(20px, 3vw, 32px); }
.cacs-q-hero__grid { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; flex-wrap: wrap; }
.cacs-q-hero .page-title { margin-top: 12px; }
.cacs-q-meta { display: flex; gap: 28px; margin: 0; }
.cacs-q-meta div { display: flex; flex-direction: column; gap: 2px; }
.cacs-q-meta dt { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }
.cacs-q-meta dd { margin: 0; font-size: 16px; font-weight: 600; }
.cacs-q-property { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 18px; margin-top: 28px; padding: 16px 20px; border-radius: var(--c-r-md); background: var(--c-surface); }
.cacs-q-property__label { display: inline-flex; gap: 8px; align-items: center; font: 400 24px/1 var(--c-serif); }
.cacs-q-property__label .icon { color: var(--c-olive); }
.cacs-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cacs-chips li { padding: 7px 13px; border-radius: 999px; background: var(--c-bg); font-size: 14px; font-weight: 500; }
.cacs-q-notice { margin-bottom: 20px; padding: 14px 18px; border-radius: var(--c-r-sm); background: #DCE7EA; font-size: 15px; }
.cacs-q-notice--warn { background: #F3E1D3; color: #6B3D1C; }
.cacs-q-review { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 28px; padding: 22px 24px; border-radius: var(--c-r-md); background: #F3E1D3; color: #4E2C14; }
.cacs-q-review__icon { flex-shrink: 0; width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: var(--c-surface); color: var(--c-warn); }
.cacs-q-review .h3 { margin-bottom: 6px; }
.cacs-q-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.cacs-q-col { display: flex; flex-direction: column; gap: 14px; padding: clamp(24px, 3vw, 36px); border-radius: var(--c-r-lg); background: var(--c-surface); }
.cacs-q-plan__head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; }
.cacs-q-plan__price strong { font: 400 38px/1 var(--c-serif); }
.cacs-q-plan__price span { font-size: 14px; color: var(--c-muted); }
.cacs-q-plan__tag { color: var(--c-ink-2); }
.cacs-q-plan__visits { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 12px; background: var(--c-bg); font-size: 15px; }
.cacs-q-plan__visits .icon { color: var(--c-olive); flex-shrink: 0; margin-top: 2px; }
.cacs-q-sub { margin: 6px 0 2px; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--c-muted); }
.cacs-q-lines { display: flex; flex-direction: column; }
.cacs-q-lines li { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--c-line); }
.cacs-q-lines__name { display: flex; flex-direction: column; gap: 3px; }
.cacs-q-lines__name strong { font-weight: 600; font-size: 16px; }
.cacs-q-lines__name small { font-size: 13px; color: var(--c-muted); line-height: 1.45; }
.cacs-q-lines__price { flex-shrink: 0; text-align: right; font-weight: 700; font-size: 16px; white-space: nowrap; }
.cacs-q-lines__price small { display: block; font-weight: 500; font-size: 12px; color: var(--c-muted); }
.cacs-q-group + .cacs-q-group { margin-top: 10px; }
.cacs-q-travel { display: flex; gap: 10px; align-items: center; margin-top: auto; padding-top: 10px; font-size: 15px; font-weight: 600; color: var(--c-olive); }
.cacs-q-totals { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; margin-top: 20px; }
.cacs-q-total { padding: 24px 26px; border-radius: var(--c-r-lg); background: var(--c-surface); }
.cacs-q-total.is-main { background: var(--c-ink); color: var(--c-bg); }
.cacs-q-total.is-main .cacs-q-sub { color: var(--c-olive-light); }
.cacs-q-total dl { margin: 10px 0 0; display: flex; flex-direction: column; gap: 6px; }
.cacs-q-total dl div { display: flex; justify-content: space-between; gap: 12px; font-size: 15px; }
.cacs-q-total dd { margin: 0; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cacs-q-total__sum { margin-top: 6px; padding-top: 12px; border-top: 1px solid currentColor; font-weight: 700; }
.cacs-q-total__sum dd { font: 400 32px/1 var(--c-serif); }
.cacs-q-total.is-main .cacs-q-hint { color: var(--on-dark-2, #D8D2C4); }
.cacs-q-estimate { margin-top: 14px !important; padding-top: 12px; border-top: 1px dashed var(--c-line); }
.cacs-q-estimate div { font-size: 14px !important; color: var(--c-ink-2); }
.cacs-q-hint { margin-top: 8px; font-size: 13px; color: var(--c-muted); line-height: 1.5; }
.cacs-q-hint--center { text-align: center; }
.cacs-q-travel-long { margin-top: 16px; text-align: center; font-size: 14px; color: var(--c-ink-2); }
.cacs-q-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; gap: 16px; margin-top: 40px; scroll-margin-top: 120px; }
.cacs-q-proceed { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.cacs-q-done { display: flex; flex-direction: column; align-items: center; gap: 16px; max-width: 560px; text-align: center; }
.cacs-q-contact { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 20px; margin-top: 48px; padding: 28px; border-radius: var(--c-r-lg); background: var(--c-bg-alt); }
.cacs-q-disclaimer { margin-top: 24px; font-size: 13px; color: var(--c-muted); line-height: 1.6; text-align: center; max-width: 820px; margin-inline: auto; }
.cacs-q-missing { min-height: 50vh; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 20px; }
.cacs-q-missing__icon { width: 72px; height: 72px; border-radius: 50%; display: grid; place-items: center; background: var(--c-surface); color: var(--c-olive); }

/* Responsive --------------------------------------------------------------------- */
@media (max-width: 1180px) {
	.cacs-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1000px) {
	.cacs-hero__media { max-width: 560px; }
	.cacs-usp__grid, .cacs-topic, .cacs-q-grid { grid-template-columns: 1fr; }
	.cacs-topic { gap: 16px; }
}
@media (max-width: 700px) {
	.cacs-cards { grid-template-columns: 1fr; gap: 22px; }
	.cacs-card__tagline { min-height: 0; }
	.cacs-switch { width: 100%; }
	.cacs-switch__opt { padding: 0 8px; font-size: 14px; min-height: 54px; }
	.cacs-hero__media { padding: 0 0 30px 0; }
	.cacs-hero__card { left: 12px; right: 12px; max-width: none; }
	.cacs-modal { padding: 0; }
	.cacs-modal__panel { width: 100%; height: 100dvh; border-radius: 0; }
	.cfg-top { padding: 12px 12px 10px 16px; }
	.cfg-progress__step { font-size: 11px; }
	.cfg-options, .cfg-options--3, .cfg-options--tiers, .cfg-steppers { grid-template-columns: 1fr; }
	.cfg-opt__box { min-height: 68px; }
	.cfg-foot { padding-left: 12px; padding-right: 12px; }
	.cfg-foot .btn { flex: 1; }
	.cacs-q-meta { gap: 18px; flex-wrap: wrap; }
	.cacs-q-lines li { flex-direction: column; gap: 4px; }
	.cacs-q-lines__price { text-align: left; }
	.cacs-q-actions .btn, .cacs-q-proceed { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
	.cacs *, .cacs *::before, .cacs *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
