/* ==========================================================================
   DEVOSO 4.7 — «Інструменти» (calculators) and «Поставити питання» (ask).
   Loaded only on these two templates, after v42.css (inc/tools47.php).
   Palette: --k black, teal #4e6c6e / #7fa3a4 / #b5cfcf, track #e3eded,
   plum #6b1d3d only as a tiny accent. Sizes in rem.
   Author: Maks Odintsov
   ========================================================================== */

:root {
    --t47-teal: #4e6c6e;
    --t47-teal-2: #7fa3a4;
    --t47-teal-3: #b5cfcf;
    --t47-track: #e3eded;
    --t47-plum: #6b1d3d;
    --t47-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ---------- Tabs, segments, checkboxes: no plum fills ---------- */
.dvw-tabs button.is-active { color: var(--k); }
.dvw-tabs button.is-active svg { color: var(--t47-teal); }
.dvw-tabs button:focus-visible { outline: 2px solid var(--t47-teal-2); outline-offset: 2px; }
.dvw-panel .dvp-seg input:checked + span,
.dvw-cost__pick input:checked + span { background: var(--k) !important; border-color: var(--k) !important; color: #fff !important; }
.dvw-panel .dvp-seg input:focus-visible + span { outline: 2px solid var(--t47-teal-2); outline-offset: 2px; }
.dvw-check input { accent-color: var(--t47-teal); }
.dvw-check:hover { border-color: var(--t47-teal-3); }
.dvw-check:has(input:checked) { border-color: var(--t47-teal-2); background: #f1f6f6; }
.dvw-res__lbl { color: var(--t47-teal-3); }
.dvw-panel .dvp-calc__res::after { background: radial-gradient(circle, rgba(127,163,164,.28), transparent 65%); }

/* ---------- Result meters (audit readiness, limitation period) ---------- */
.dvw-meter { position: relative; height: .75rem; border-radius: 1rem; background: rgba(255,255,255,.1); overflow: visible; margin: .875rem 0 1.125rem; box-shadow: inset 0 1px 2px rgba(0,0,0,.25); }
.dvw-meter i {
    position: relative; display: block; height: 100%; width: 0; min-width: .75rem; border-radius: 1rem;
    background: linear-gradient(90deg, var(--t47-teal), var(--t47-teal-2) 70%, var(--t47-teal-3)) !important;
    background-size: 100% 100% !important; background-position: 0 0 !important;
    box-shadow: 0 0 .75rem rgba(127,163,164,.35);
    transition: width .6s var(--t47-ease);
}
/* Thumb at the end of the fill: dark with a white ring */
.dvw-meter i::after {
    content: ''; position: absolute; right: -.1rem; top: 50%; width: 1.125rem; height: 1.125rem; margin-top: -.5625rem;
    border-radius: 50%; background: var(--k); border: .1875rem solid #fff; box-shadow: 0 .125rem .5rem rgba(0,0,0,.35);
}
/* Urgent deadline: the fill ends in a hint of plum */
.dvw-meter.is-late i { background: linear-gradient(90deg, var(--t47-teal), var(--t47-teal-2) 55%, #a0607a) !important; }
.dvw-meter.is-late i::after { background: var(--t47-plum); }
/* Scale under the deadline bar: start · today · end */
.dvw-scale { display: flex; justify-content: space-between; gap: .75rem; margin: -.375rem 0 1rem; font-size: .75rem; color: rgba(255,255,255,.55); }
.dvw-scale b { color: rgba(255,255,255,.85); font-weight: 600; }
.dvw-scale span:last-child { text-align: right; }

/* Audit: one segment per checklist item */
.dvw-meter.is-seg { overflow: hidden; box-shadow: none; background: none; height: .625rem; }
.dvw-meter.is-seg::before { content: ''; position: absolute; inset: 0; background: rgba(255,255,255,.1); }
.dvw-meter.is-seg, .dvw-meter.is-seg i {
    -webkit-mask: repeating-linear-gradient(90deg, #000 0 calc(100% / var(--n, 8) - .25rem), transparent calc(100% / var(--n, 8) - .25rem) calc(100% / var(--n, 8)));
            mask: repeating-linear-gradient(90deg, #000 0 calc(100% / var(--n, 8) - .25rem), transparent calc(100% / var(--n, 8) - .25rem) calc(100% / var(--n, 8)));
}
.dvw-meter.is-seg { width: calc(100% + .25rem); }
.dvw-meter.is-seg i { background: linear-gradient(90deg, var(--t47-teal-2), var(--t47-teal-3)) !important; -webkit-mask: none; mask: none; border-radius: 0; min-width: 0; box-shadow: none; }
.dvw-meter.is-seg i::after { display: none; }

/* Alerts on the dark result panel */
.dvw-alert { border-left: .1875rem solid rgba(255,255,255,.2); line-height: 1.5; }
.dvw-alert--ok { background: rgba(127,163,164,.16); border-left-color: var(--t47-teal-2); }
.dvw-alert--bad { background: rgba(107,29,61,.32); border-left-color: #b4708b; }

/* ---------- Penalty: composition bar (debt / interest / inflation) ---------- */
.dvw-split { margin: -.25rem 0 1rem; }
.dvw-split__bar { display: flex; gap: .1875rem; height: .75rem; border-radius: 1rem; overflow: hidden; background: rgba(255,255,255,.1); }
.dvw-split__bar i { display: block; height: 100%; width: 0; transition: width .6s var(--t47-ease); }
.dvw-split__bar i[data-k="debt"] { background: linear-gradient(90deg, #3d5658, var(--t47-teal)); }
.dvw-split__bar i[data-k="rate"] { background: var(--t47-teal-2); }
.dvw-split__bar i[data-k="infl"] { background: var(--t47-teal-3); }
.dvw-split__bar i.is-zero { display: none; }
.dvw-split__leg { list-style: none; display: flex !important; flex-wrap: wrap; gap: .375rem 1rem; margin: .625rem 0 0 !important; padding: 0 !important; border: 0 !important; font-size: .78rem !important; }
.dvw-split__leg li { display: inline-flex !important; align-items: center; gap: .375rem; color: rgba(255,255,255,.7) !important; }
.dvw-split__leg li[hidden] { display: none !important; }
.dvw-split__leg li::before { content: ''; width: .5rem; height: .5rem; border-radius: 50%; background: var(--c); }
.dvw-split__leg b { color: #fff; font-weight: 600; }

/* ---------- Generic form bars: range, progress, meter ---------- */
.dvw-panel input[type="range"], .dvq input[type="range"] {
    --p: 50%;
    -webkit-appearance: none; appearance: none; width: 100%; height: 1.5rem; margin: .25rem 0; background: transparent; cursor: pointer;
}
.dvw-panel input[type="range"]:focus-visible, .dvq input[type="range"]:focus-visible { outline: 2px solid var(--t47-teal-2); outline-offset: 3px; border-radius: 1rem; }
.dvw-panel input[type="range"]::-webkit-slider-runnable-track, .dvq input[type="range"]::-webkit-slider-runnable-track {
    height: .5rem; border-radius: 1rem;
    background: linear-gradient(90deg, var(--t47-teal), var(--t47-teal-2)) 0 0 / var(--p) 100% no-repeat, var(--t47-track);
}
.dvw-panel input[type="range"]::-webkit-slider-thumb, .dvq input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none; appearance: none; width: 1.25rem; height: 1.25rem; margin-top: -.375rem; border-radius: 50%;
    background: var(--k); border: .1875rem solid #fff; box-shadow: 0 0 0 1px rgba(18,23,24,.2), 0 .125rem .5rem rgba(18,23,24,.3);
    transition: transform .15s;
}
.dvw-panel input[type="range"]:active::-webkit-slider-thumb { transform: scale(1.12); }
.dvw-panel input[type="range"]::-moz-range-track, .dvq input[type="range"]::-moz-range-track { height: .5rem; border-radius: 1rem; background: var(--t47-track); border: 0; }
.dvw-panel input[type="range"]::-moz-range-progress, .dvq input[type="range"]::-moz-range-progress { height: .5rem; border-radius: 1rem; background: linear-gradient(90deg, var(--t47-teal), var(--t47-teal-2)); }
.dvw-panel input[type="range"]::-moz-range-thumb, .dvq input[type="range"]::-moz-range-thumb {
    width: .875rem; height: .875rem; border-radius: 50%; background: var(--k); border: .1875rem solid #fff; box-shadow: 0 0 0 1px rgba(18,23,24,.2), 0 .125rem .5rem rgba(18,23,24,.3);
}
.dvw-panel progress, .dvw-panel meter {
    -webkit-appearance: none; appearance: none; display: block; width: 100%; height: .5rem; border: 0; border-radius: 1rem; background: var(--t47-track); overflow: hidden;
}
.dvw-panel progress::-webkit-progress-bar { background: var(--t47-track); border-radius: 1rem; }
.dvw-panel progress::-webkit-progress-value { background: linear-gradient(90deg, var(--t47-teal), var(--t47-teal-2)); border-radius: 1rem; }
.dvw-panel progress::-moz-progress-bar { background: linear-gradient(90deg, var(--t47-teal), var(--t47-teal-2)); border-radius: 1rem; }
.dvw-panel meter::-webkit-meter-bar { background: var(--t47-track); border: 0; border-radius: 1rem; height: .5rem; }
.dvw-panel meter::-webkit-meter-optimum-value { background: linear-gradient(90deg, var(--t47-teal), var(--t47-teal-2)); border-radius: 1rem; }
.dvw-panel meter::-webkit-meter-suboptimum-value { background: var(--t47-teal-2); border-radius: 1rem; }
.dvw-panel meter::-webkit-meter-even-less-good-value { background: var(--k); border-radius: 1rem; }
.dvw-panel meter::-moz-meter-bar { background: linear-gradient(90deg, var(--t47-teal), var(--t47-teal-2)); border-radius: 1rem; }

/* ---------- «Як рахуємо» card ---------- */
.dvh { border: 1px solid var(--t47-track); border-radius: 1rem; background: linear-gradient(180deg, #f6f9f8, #fff 3.5rem); overflow: hidden; transition: border-color .25s, box-shadow .25s; }
.dvh:hover, .dvh.is-open { border-color: var(--t47-teal-3); }
.dvh.is-open { box-shadow: 0 .75rem 2rem -1.25rem rgba(18,23,24,.35); }
.dvh__head {
    display: flex; align-items: center; gap: .875rem; width: 100%; margin: 0; padding: .875rem 1rem; border: 0; background: none;
    font: inherit; color: var(--k); text-align: left; cursor: pointer;
}
.dvh__head:focus-visible { outline: 2px solid var(--t47-teal-2); outline-offset: -2px; border-radius: 1rem; }
.dvh__ico { flex: none; display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: .75rem; background: var(--k); color: var(--t47-teal-3); }
.dvh__ico svg { width: 1.25rem; height: 1.25rem; }
.dvh__t { display: grid; gap: .125rem; min-width: 0; }
.dvh__title { font-family: var(--f-head); font-weight: 700; font-size: 1.0625rem; line-height: 1.2; }
.dvh__sub { font-size: .8125rem; color: var(--muted, #5f6b6d); line-height: 1.35; }
.dvh__tog { position: relative; flex: none; margin-left: auto; width: 2rem; height: 2rem; border-radius: 50%; border: 1px solid #d3e0e0; background: #fff; transition: background .25s, border-color .25s, transform .35s var(--t47-ease); }
.dvh__tog::before, .dvh__tog::after { content: ''; position: absolute; left: 50%; top: 50%; width: .75rem; height: .125rem; margin: -.0625rem 0 0 -.375rem; border-radius: .125rem; background: var(--k); transition: transform .35s var(--t47-ease), background .25s; }
.dvh__tog::after { transform: rotate(90deg); }
.dvh__head:hover .dvh__tog { border-color: var(--t47-teal-2); }
.dvh.is-open .dvh__tog { background: var(--k); border-color: var(--k); transform: rotate(180deg); }
.dvh.is-open .dvh__tog::before, .dvh.is-open .dvh__tog::after { background: #fff; }
.dvh.is-open .dvh__tog::after { transform: rotate(0deg); }

.dvh.is-ready .dvh__body { overflow: hidden; transition: height .4s var(--t47-ease), visibility 0s linear .4s; }
.dvh.is-ready:not(.is-open) .dvh__body { height: 0; visibility: hidden; }
.dvh.is-ready.is-open .dvh__body { visibility: visible; transition: height .4s var(--t47-ease), visibility 0s; }
.dvh__in { display: grid; gap: .875rem; padding: .125rem 1rem 1.125rem; }
.dvh.is-ready .dvh__in { opacity: 0; transform: translateY(-.375rem); transition: opacity .3s, transform .4s var(--t47-ease); }
.dvh.is-open .dvh__in { opacity: 1; transform: none; transition-delay: .08s; }

.dvh__formula { display: grid; gap: .4375rem; margin: 0; padding: .875rem 1rem; border-radius: .75rem; background: var(--k); color: rgba(255,255,255,.8); font-size: .875rem; line-height: 1.7; }
.dvh__formula p { margin: 0; }
.dvh__res { color: var(--t47-teal-3); font-weight: 700; }
.dvh__formula var { font-style: normal; display: inline-block; padding: 0 .4375rem; border-radius: .375rem; background: rgba(127,163,164,.2); color: #fff; line-height: 1.55; }

.dvh__steps { list-style: none; counter-reset: dvh; margin: 0; padding: 0; display: grid; gap: .5rem; }
.dvh__steps li { counter-increment: dvh; position: relative; padding-left: 2.125rem; font-size: .9062rem; line-height: 1.5; color: var(--k-2); }
.dvh__steps li::before {
    content: counter(dvh); position: absolute; left: 0; top: -.0625rem; display: grid; place-items: center; width: 1.5rem; height: 1.5rem;
    border-radius: 50%; background: var(--t47-track); color: var(--t47-teal); font-size: .75rem; font-weight: 700;
}
.dvh__text { margin: 0; font-size: .875rem; line-height: 1.6; color: var(--muted, #5f6b6d); }
.dvh__law { display: flex; gap: .625rem; align-items: flex-start; margin: 0; padding: .625rem .75rem; border-radius: .625rem; background: var(--k-soft); font-size: .8438rem; line-height: 1.5; color: var(--k-2); }
.dvh__law svg { flex: none; width: 1.125rem; height: 1.125rem; margin-top: .0625rem; color: var(--t47-teal); }
.dvh__law b { color: var(--k); }
.dvh__disc { display: flex; gap: .5rem; align-items: center; margin: 0; font-size: .78rem; color: #7a8587; }
.dvh__disc::before { content: ''; flex: none; width: .375rem; height: .375rem; border-radius: 50%; background: var(--t47-plum); }
.dvw-cost__how { margin-top: 1.25rem; }
.dvw-form .dvh { margin-top: .25rem; }
.dvw-how { display: none; }

@media (prefers-reduced-motion: reduce) {
    .dvh.is-ready .dvh__body, .dvh__in, .dvh__tog, .dvh__tog::before, .dvh__tog::after, .dvw-meter i, .dvw-split__bar i { transition: none !important; }
}

/* ---------- Ask page: designed body content ---------- */
.dva-page .dv-prose:has(.dvq) { max-width: none; }
.dvq { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.4fr); gap: 2.5rem; align-items: start; }
.dvq__intro {
    position: sticky; top: 7rem; overflow: hidden; padding: 2.25rem 2rem; border-radius: 1.5rem; color: #fff;
    background: radial-gradient(120% 80% at 100% 0, rgba(127,163,164,.22), transparent 60%), linear-gradient(160deg, var(--k), var(--k-2));
}
.dvq__eyebrow { display: inline-flex; align-items: center; gap: .625rem; font-size: .75rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--t47-teal-3); }
.dvq__eyebrow::before { content: ''; width: 1.5rem; height: 1px; background: var(--t47-teal-2); }
.dvq__title { margin: .875rem 0 .75rem; font-family: var(--f-head); font-size: 1.75rem; font-weight: 700; line-height: 1.2; color: #fff; }
.dvq__lead p { margin: 0 0 .75rem; font-size: .9688rem; line-height: 1.65; color: rgba(255,255,255,.72); }
.dvq__lead strong { color: #fff; font-weight: 600; }
.dvq__lead a { color: var(--t47-teal-3); }
.dvq__call {
    display: flex; align-items: center; gap: .875rem; margin-top: 1.25rem; padding: .875rem 1rem; border-radius: 1rem;
    background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14); color: #fff !important; text-decoration: none !important;
    font-weight: 600; font-size: 1.0625rem; transition: background .25s, border-color .25s, transform .25s;
}
.dvq__call:hover { background: rgba(127,163,164,.18); border-color: var(--t47-teal-2); transform: translateY(-.125rem); }
.dvq__call svg { flex: none; width: 2.5rem; height: 2.5rem; padding: .625rem; border-radius: 50%; background: #fff; color: var(--k); }
.dvq__call span { display: grid; gap: .125rem; }
.dvq__call small { font-size: .75rem; font-weight: 500; color: rgba(255,255,255,.6); }

.dvq__cards { display: grid; gap: 1rem; counter-reset: dvq; }
.dvq__card {
    position: relative; display: grid; gap: .75rem; padding: 1.5rem 1.625rem 1.625rem; border-radius: 1.25rem;
    background: #fff; border: 1px solid var(--t47-track); transition: border-color .25s, box-shadow .25s, transform .25s;
}
.dvq__card:hover { border-color: var(--t47-teal-3); box-shadow: 0 1.25rem 2.5rem -1.75rem rgba(18,23,24,.45); transform: translateY(-.125rem); }
.dvq__top { display: flex; align-items: center; justify-content: space-between; }
.dvq__ico { order: -1; display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: .875rem; background: #eef4f4; color: var(--t47-teal); }
.dvq__ico svg { width: 1.375rem; height: 1.375rem; }
.dvq__num { font-family: var(--f-head); font-size: 2rem; font-weight: 700; line-height: 1; color: var(--t47-track); transition: color .25s; }
.dvq__card:hover .dvq__num { color: var(--t47-teal-3); }
.dvq .dvq__h { margin: .25rem 0 0; font-family: var(--f-head); font-size: 1.45rem; line-height: 1.25; color: var(--k); }
.dvq__txt { font-size: .9688rem; line-height: 1.65; color: #4a5658; }
.dvq__txt > :last-child { margin-bottom: 0; }
.dvq__txt p { margin: 0 0 .75rem; }
.dvq__txt strong { color: var(--k); }
.dvq__txt a:not(.dvq__chip) { color: var(--t47-teal); font-weight: 600; text-decoration: underline; text-decoration-color: var(--t47-teal-3); text-underline-offset: .2em; transition: color .2s; }
.dvq__txt a:not(.dvq__chip):hover { color: var(--k); text-decoration-color: currentColor; }
.dvq__txt ul, .dvq__txt ol { list-style: none; margin: 0 0 .75rem; padding: 0; display: grid; gap: .625rem; }
.dvq__txt li { position: relative; margin: 0; padding-left: 1.875rem; }
.dvq__txt li::before {
    content: ''; position: absolute; left: 0; top: .2rem; width: 1.25rem; height: 1.25rem; border-radius: 50%;
    background: #e3eded url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 10.5l2.6 2.6L14 7.5' fill='none' stroke='%234e6c6e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / .875rem no-repeat;
}
.dvq__chip {
    display: inline-flex; align-items: center; gap: .4375rem; padding: .25rem .75rem .25rem .5rem; border-radius: 2rem; vertical-align: middle;
    background: var(--k-soft); border: 1px solid var(--t47-track); color: var(--k) !important; font-weight: 600; text-decoration: none !important; white-space: nowrap;
    transition: background .2s, border-color .2s, color .2s;
}
.dvq__chip svg { width: 1rem; height: 1rem; color: var(--t47-teal); transition: color .2s; }
.dvq__chip:hover { background: var(--k); border-color: var(--k); color: #fff !important; }
.dvq__chip:hover svg { color: var(--t47-teal-3); }
.dvq__pills { padding-top: .25rem; }
.dvq__pills .dv-pills { margin: 0; }
.dvq__pills .dv-pill { background: var(--k) !important; border-color: var(--k) !important; color: #fff !important; box-shadow: none !important; }
.dvq__pills .dv-pill svg { color: var(--t47-teal-3) !important; }
.dvq__pills .dv-pill:hover { background: var(--t47-teal) !important; border-color: var(--t47-teal) !important; }
.dvq__pills .dv-pill:hover svg { color: #fff !important; }

@media (max-width: 61.25rem) {
    .dvq { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
    .dvq__intro { position: static; padding: 1.75rem 1.5rem; }
}
@media (max-width: 30rem) {
    .dvq__card { padding: 1.25rem 1.125rem 1.375rem; }
    .dvq .dvq__h { font-size: 1.2rem; }
    .dvq__title { font-size: 1.35rem; }
    .dvq__chip { white-space: normal; }
    .dvh__head { padding: .75rem .875rem; gap: .75rem; }
    .dvh__in { padding: .125rem .875rem 1rem; }
    .dvh__formula { padding: .75rem .875rem; font-size: .8125rem; }
    .dvw-split__leg { gap: .25rem .75rem; }
}
