/* ==========================================================================
   DEVOSO 3.1 — practice page and interactive widgets
   (situations, risk gauge, calculator, timeline, flip cards, tools, booking).
   Author: Maks Odintsov
   ========================================================================== */

/* ─── Practice hero ──────────────────────────────────────────────────────── */
.dvp-hero { position: relative; overflow: hidden; isolation: isolate; background: var(--ink); color: #fff; padding: 2.5rem 0 0; }
.dvp-hero__mark { position: absolute; right: -3.75rem; top: 2.5rem; width: 32.5rem; height: 32.5rem; color: rgba(255,255,255,.028); animation: dvSpin 120s linear infinite; }
.dvp-hero__mark svg { width: 100%; height: 100%; stroke-width: .6; }
.dvp-hero__grid { display: grid; grid-template-columns: 1.25fr .85fr; gap: 3rem; align-items: start; padding-bottom: 2.5rem; }
.dvp-hero__grid > * { min-width: 0; }
.dvp-hero__title { font-family: var(--f-head); font-size: clamp(2.25rem, 4.6vw, 3.625rem); font-weight: 700; line-height: 1.08; letter-spacing: -.015em; color: #fff !important; margin: 1.25rem 0 0; }
.dvp-hero__lead { font-size: 1.125rem; line-height: 1.6; color: rgba(255,255,255,.76); margin: 1.125rem 0 0; max-width: 40rem; }
.dvp-hero__points { list-style: none; padding: 0; margin: 1.5rem 0 0; display: grid; gap: 0.625rem; }
.dvp-hero__points li { display: flex; gap: 0.75rem; align-items: flex-start; color: rgba(255,255,255,.88); font-size: 1rem; }
.dvp-hero__points svg { width: 1.375rem; height: 1.375rem; flex-shrink: 0; padding: 0.1875rem; border-radius: 50%; background: rgba(127,163,164,.18); color: var(--gold-300); }
.dvp-hero__cta { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.875rem; }
.dvp-hero__card { background: #fff; color: var(--ink); border-radius: var(--r-xl); padding: 1.625rem; box-shadow: 0 1.875rem 4.375rem rgba(0,0,0,.35); position: relative; }
.dvp-hero__card::before { content: ''; position: absolute; inset: -1px; border-radius: inherit; padding: 1px; background: linear-gradient(140deg, var(--gold), transparent 40%, var(--brand-400)); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; }
.dvp-hero__card-title { font-family: var(--f-head); font-size: 1.25rem; font-weight: 600; line-height: 1.3; margin: 0 0 0.875rem; }
.dvp-hero__card .cta-form { padding: 0 !important; background: none !important; box-shadow: none !important; }
.dvp-lawyer { display: flex; gap: 0.75rem; align-items: center; padding-bottom: 0.875rem; margin-bottom: 0.875rem; border-bottom: 1px solid var(--line); }
.dvp-lawyer__ava { position: relative; width: 3.25rem; height: 3.25rem; border-radius: 50%; background: var(--brand) center / cover; color: #fff; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.dvp-lawyer__ava i { position: absolute; right: 0; bottom: 1px; width: 0.75rem; height: 0.75rem; border-radius: 50%; background: #39c07f; border: 2px solid #fff; }
.dvp-lawyer strong { display: block; font-size: 0.9688rem; }
.dvp-lawyer small { display: block; color: var(--muted); font-size: 0.8125rem; }
.dvp-kpis { display: grid; grid-template-columns: repeat(3, 1fr) 1.1fr; margin: 0; border-top: 1px solid rgba(255,255,255,.12); }
.dvp-kpis > div { padding: 1.375rem 1.25rem 1.625rem; }
.dvp-kpis > div:first-child { padding-left: 0; }
.dvp-kpis > div + div { border-left: 1px solid rgba(255,255,255,.12); }
.dvp-kpis dt { font-family: var(--f-head); font-size: 2.125rem; font-weight: 700; line-height: 1; color: #fff; }
.dvp-kpis dd { margin: 0.5rem 0 0; font-size: 0.8438rem; color: rgba(255,255,255,.6); line-height: 1.4; }
.dvp-kpis__cta { display: flex; align-items: center; }
.dvp-kpis__cta a { display: flex; gap: 0.75rem; align-items: center; color: #fff; text-decoration: none; font-weight: 700; font-size: 1.125rem; }
.dvp-kpis__cta a:hover { color: var(--gold-300); }
.dvp-kpis__cta svg { width: 2.75rem; height: 2.75rem; padding: 0.6875rem; border-radius: 50%; background: var(--brand); color: #fff; animation: dvRing 3s infinite; }
.dvp-kpis__cta small { display: block; font-size: 0.75rem; font-weight: 500; color: rgba(255,255,255,.55); }
@keyframes dvRing { 0%, 100% { box-shadow: 0 0 0 0 rgba(107,29,61,.6); } 50% { box-shadow: 0 0 0 0.625rem rgba(107,29,61,0); } }

/* Section bar with progress */
.dvp-bar { position: sticky; top: 4.125rem; z-index: 1020; background: rgba(255,255,255,.97); backdrop-filter: blur(0.625rem); border-bottom: 1px solid var(--line); }
.admin-bar .dvp-bar { top: 6.125rem; }
.dvp-bar__in { display: flex; align-items: center; gap: 1.25rem; height: 3.5rem; }
.dvp-bar__title { font-family: var(--f-head); font-weight: 600; font-size: 1rem; white-space: nowrap; max-width: 15rem; overflow: hidden; text-overflow: ellipsis; color: var(--ink); }
.dvp-bar__list { flex: 1; min-width: 0; display: flex; gap: 2px; list-style: none; margin: 0; padding: 0; overflow-x: auto; scrollbar-width: none; }
.dvp-bar__list::-webkit-scrollbar { display: none; }
.dvp-bar__list a { display: block; padding: 0.5rem 0.75rem; border-radius: 0.5rem; font-size: 0.875rem; font-weight: 500; color: var(--muted); text-decoration: none; white-space: nowrap; transition: background .2s, color .2s; }
.dvp-bar__list a:hover { color: var(--ink); }
.dvp-bar__list a.is-active { background: var(--brand-50); color: var(--brand); font-weight: 600; }
.dvp-bar__progress { position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; }
.dvp-bar__progress i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--brand), var(--gold)); }

/* ─── Situations ─────────────────────────────────────────────────────────── */
.dvp-sit { display: grid; grid-template-columns: 21.25rem 1fr; gap: 1.25rem; align-items: start; }
.dvp-sit > * { min-width: 0; }
.dvp-sit__list { display: grid; gap: 0.5rem; }
.dvp-sit__tab { display: flex; align-items: center; gap: 0.875rem; width: 100%; text-align: left; padding: 1rem 1.125rem; border-radius: var(--r); border: 1.5px solid var(--line); background: #fff; color: var(--ink); font-weight: 600; font-size: 0.9375rem; line-height: 1.35; cursor: pointer; transition: border-color .2s, background .2s, transform .25s var(--ease), box-shadow .25s; }
.dvp-sit__tab:hover { border-color: var(--brand-400); transform: translateX(0.1875rem); }
.dvp-sit__tab.is-active { background: var(--ink); border-color: var(--ink); color: #fff; box-shadow: var(--sh-2); transform: translateX(0.375rem); }
.dvp-sit__n { font-family: var(--f-head); font-size: 0.9375rem; color: var(--muted-2); min-width: 1.375rem; }
.dvp-sit__tab.is-active .dvp-sit__n { color: var(--gold); }
.dvp-sit__t { flex: 1; }
.dvp-urg { width: 0.5625rem; height: 0.5625rem; border-radius: 50%; flex-shrink: 0; }
.dvp-urg--high { background: var(--bad); box-shadow: 0 0 0 0.1875rem rgba(179,38,30,.15); }
.dvp-urg--medium { background: var(--warn); }
.dvp-urg--low { background: var(--ok); }
.dvp-sit__panel { background: #fff; border: 1px solid var(--line); border-radius: var(--r-xl); padding: 2rem; box-shadow: var(--sh-1); }
.dvp-sit__panel.is-active { animation: dvStep .45s var(--ease); }
.dvp-sit__head h3 { font-size: 1.625rem; margin: 0.75rem 0 0.5rem; color: var(--ink); }
.dvp-sit__head p { color: var(--muted); font-size: 1rem; margin: 0; }
.dvp-badge { display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.25rem 0.625rem; border-radius: 0.375rem; font-size: 0.75rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.dvp-badge::before { content: ''; width: 0.375rem; height: 0.375rem; border-radius: 50%; background: currentColor; }
.dvp-badge--high { background: #fbe9e7; color: var(--bad); }
.dvp-badge--medium { background: #fbf1df; color: #8a5a10; }
.dvp-badge--low { background: #e6f3ec; color: var(--ok); }
.dvp-sit__cols { display: grid; grid-template-columns: 1.1fr 1fr; gap: 1.75rem; margin: 1.625rem 0; padding: 1.625rem 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.dvp-sit__cols > * { min-width: 0; }
.dvp-sit h4 { font-size: 0.8125rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin: 0 0 0.875rem; display: flex; justify-content: space-between; align-items: center; }
.dvp-sit h4 small { font-size: 0.75rem; letter-spacing: 0; color: var(--brand); background: var(--brand-50); padding: 2px 0.5rem; border-radius: 0.625rem; }
.dvp-do { list-style: none; counter-reset: d; padding: 0; margin: 0; display: grid; gap: 0.75rem; }
.dvp-do li { counter-increment: d; position: relative; padding-left: 2.375rem; font-size: 0.9375rem; line-height: 1.5; color: var(--text); }
.dvp-do li::before { content: counter(d); position: absolute; left: 0; top: -1px; width: 1.625rem; height: 1.625rem; border-radius: 50%; background: var(--brand-50); color: var(--brand); font-weight: 700; font-size: 0.8125rem; display: flex; align-items: center; justify-content: center; }
.dvp-doc { display: flex; gap: 0.625rem; align-items: flex-start; padding: 0.5625rem 0.75rem; margin-bottom: 0.375rem; border-radius: 0.625rem; background: var(--sand); font-size: 0.9062rem; line-height: 1.4; cursor: pointer; transition: background .2s, opacity .2s; }
.dvp-doc input { margin-top: 0.1875rem; accent-color: var(--ok); width: 1rem; height: 1rem; flex-shrink: 0; }
.dvp-doc:has(input:checked) { background: #e6f3ec; }
.dvp-doc:has(input:checked) span { text-decoration: line-through; opacity: .6; }
.dvp-docs__bar { display: block; height: 0.25rem; border-radius: 0.25rem; background: var(--line); overflow: hidden; margin-top: 0.625rem; }
.dvp-docs__bar i { display: block; height: 100%; width: 0; background: var(--ok); transition: width .4s var(--ease); }
.dvp-sit__foot { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.dvp-sit__time { display: inline-flex; gap: 0.5rem; align-items: center; font-size: 0.9062rem; color: var(--muted); max-width: 32.5rem; }
.dvp-sit__time svg { width: 1.125rem; height: 1.125rem; color: var(--brand); flex-shrink: 0; }

/* ─── Risk test ──────────────────────────────────────────────────────────── */
.dvp-risk { display: grid; grid-template-columns: 1.4fr 1fr; gap: 1.5rem; align-items: start; }
.dvp-risk > * { min-width: 0; }
.dvp-risk__items { display: grid; grid-template-columns: 1fr 1fr; gap: 0.625rem; }
.dvp-risk__item { position: relative; display: flex; gap: 0.75rem; align-items: flex-start; padding: 1rem; border-radius: var(--r); background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.85); font-size: 0.9375rem; line-height: 1.45; cursor: pointer; transition: background .2s, border-color .2s, transform .2s; }
.dvp-risk__item:hover { border-color: rgba(127,163,164,.5); }
.dvp-risk__item input { position: absolute; opacity: 0; }
.dvp-risk__box { width: 1.375rem; height: 1.375rem; border-radius: 0.375rem; border: 1.5px solid rgba(255,255,255,.35); flex-shrink: 0; display: flex; align-items: center; justify-content: center; transition: background .2s, border-color .2s; }
.dvp-risk__box svg { width: 0.875rem; height: 0.875rem; color: #fff; opacity: 0; transform: scale(.5); transition: opacity .2s, transform .25s var(--ease); }
.dvp-risk__item:has(input:checked) { background: rgba(107,29,61,.28); border-color: var(--brand-400); color: #fff; }
.dvp-risk__item input:checked + .dvp-risk__box { background: var(--brand); border-color: var(--brand); }
.dvp-risk__item input:checked + .dvp-risk__box svg { opacity: 1; transform: none; }
.dvp-risk__item input:focus-visible + .dvp-risk__box { box-shadow: 0 0 0 0.1875rem rgba(127,163,164,.5); }
.dvp-risk__res { position: sticky; top: 8.75rem; background: #fff; color: var(--ink); border-radius: var(--r-xl); padding: 1.75rem; text-align: center; box-shadow: 0 1.875rem 3.75rem rgba(0,0,0,.35); }
.dvp-gauge svg { width: 100%; max-width: 16.25rem; display: block; margin: 0 auto; overflow: visible; }
.dvp-gauge__bg, .dvp-gauge__val { fill: none; stroke-width: 16; stroke-linecap: round; }
.dvp-gauge__bg { stroke: var(--sand); }
.dvp-gauge__val { stroke: url(#dvpG); stroke-dasharray: 100; stroke-dashoffset: 100; transition: stroke-dashoffset .8s var(--ease); }
.dvp-gauge__needle { stroke: var(--ink); stroke-width: 3; stroke-linecap: round; transform-origin: 6.875rem 7rem; transform: rotate(-90deg); transition: transform .8s cubic-bezier(.34,1.56,.64,1); }
.dvp-gauge__hub { fill: var(--ink); }
.dvp-risk__pct { font-family: var(--f-head); font-size: 2.75rem; font-weight: 700; line-height: 1; margin-top: 0.5rem; }
.dvp-risk__res h3 { font-size: 1.375rem; margin: 0.625rem 0 0.375rem; color: var(--ink) !important; }
.dvp-risk__res p { color: var(--muted); font-size: 0.9375rem; min-height: 4.125rem; margin-bottom: 1.125rem; }
.dvp-risk__res[data-level="1"] .dvp-risk__pct { color: var(--warn); }
.dvp-risk__res[data-level="2"] .dvp-risk__pct { color: var(--brand); }

/* ─── Areas (expandable) ─────────────────────────────────────────────────── */
.dvp-areas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.875rem; align-items: start; }
.dvp-area { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); transition: box-shadow .3s, border-color .3s; }
.dvp-area[open] { box-shadow: var(--sh-2); border-color: transparent; }
.dvp-area summary { list-style: none; display: flex; gap: 0.875rem; align-items: center; padding: 1.25rem; cursor: pointer; }
.dvp-area summary::-webkit-details-marker { display: none; }
.dvp-area__ico { width: 2.875rem; height: 2.875rem; border-radius: 0.75rem; background: var(--brand-50); color: var(--brand); display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background .3s, color .3s, transform .3s; }
.dvp-area__ico svg { width: 1.375rem; height: 1.375rem; }
.dvp-area[open] .dvp-area__ico, .dvp-area:hover .dvp-area__ico { background: var(--brand); color: #fff; transform: rotate(-6deg); }
.dvp-area__t { flex: 1; font-family: var(--f-head); font-size: 1.125rem; font-weight: 600; line-height: 1.3; color: var(--ink); }
.dvp-area__t small { display: block; font-family: var(--f-body); font-size: 0.7188rem; font-weight: 700; letter-spacing: .1em; color: var(--muted-2); }
.dvp-area[open] .v3-acc__ico { background: var(--brand); transform: rotate(180deg); }
.dvp-area[open] .v3-acc__ico::before, .dvp-area[open] .v3-acc__ico::after { background: #fff; }
.dvp-area[open] .v3-acc__ico::after { transform: rotate(0); }
.dvp-area__body { padding: 0 1.25rem 1.25rem; animation: dvStep .35s var(--ease); }
.dvp-area__body p { color: var(--muted); font-size: 0.9375rem; line-height: 1.6; margin: 0 0 0.75rem; }
.dvp-area__body .svc-checklist li { font-size: 0.9062rem; }

/* ─── Process timeline ───────────────────────────────────────────────────── */
.dvp-proc { display: grid; grid-template-columns: .9fr 1.1fr; gap: 3.5rem; align-items: start; }
.dvp-proc > * { min-width: 0; }
.dvp-proc__intro { position: sticky; top: 9.375rem; }
.dvp-steps { position: relative; padding-left: 4rem; }
.dvp-steps ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.875rem; }
.dvp-steps__line { position: absolute; left: 1.3125rem; top: 1.375rem; bottom: 1.375rem; width: 2px; background: var(--line); border-radius: 2px; }
.dvp-steps__line i { position: absolute; left: 0; top: 0; width: 100%; height: calc(var(--p, 0) * 100%); background: linear-gradient(var(--brand), var(--gold)); border-radius: 2px; }
.dvp-step { position: relative; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 1.25rem 1.375rem; transition: box-shadow .3s, border-color .3s; }
.dvp-step:hover { box-shadow: var(--sh-2); border-color: transparent; }
.dvp-step__n { position: absolute; left: -4rem; top: 1rem; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: #fff; border: 2px solid var(--line); color: var(--muted); font-family: var(--f-head); font-weight: 700; font-size: 1.125rem; display: flex; align-items: center; justify-content: center; transition: background .4s, border-color .4s, color .4s, transform .4s var(--ease); }
.dvp-step.is-on .dvp-step__n { background: var(--brand); border-color: var(--brand); color: #fff; transform: scale(1.06); }
.dvp-step h3 { font-size: 1.1875rem; margin: 0 0 0.375rem; color: var(--ink); }
.dvp-step p { margin: 0; color: var(--muted); font-size: 0.9375rem; line-height: 1.6; }

/* ─── Calculator ─────────────────────────────────────────────────────────── */
.dvp-calc { display: grid; grid-template-columns: 1.4fr 1fr; gap: 1.5rem; align-items: start; }
.dvp-calc > * { min-width: 0; }
.dvp-calc__form { background: #fff; border: 1px solid var(--line); border-radius: var(--r-xl); padding: 1.75rem; display: grid; gap: 1.5rem; }
.dvp-calc__opt { border: 0; padding: 0; margin: 0; min-width: 0; }
.dvp-calc__opt legend { display: flex; gap: 0.625rem; align-items: center; font-weight: 700; font-size: 1rem; color: var(--ink); margin-bottom: 0.75rem; float: none; width: auto; }
.dvp-calc__opt legend span { width: 1.625rem; height: 1.625rem; border-radius: 50%; background: var(--ink); color: var(--gold-300); font-size: 0.8125rem; display: inline-flex; align-items: center; justify-content: center; }
.dvp-seg { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.dvp-seg label { position: relative; margin: 0; cursor: pointer; }
.dvp-seg input { position: absolute; opacity: 0; }
.dvp-seg span { display: inline-flex; align-items: center; min-height: 2.75rem; padding: 0.5rem 1rem; border-radius: 0.625rem; border: 1.5px solid var(--line); font-size: 0.9062rem; font-weight: 500; color: var(--ink); line-height: 1.3; transition: border-color .2s, background .2s, color .2s, transform .2s; }
.dvp-seg label:hover span { border-color: var(--brand-400); }
.dvp-seg input:checked + span { background: var(--brand); border-color: var(--brand); color: #fff; box-shadow: 0 0.375rem 1rem rgba(107,29,61,.25); }
.dvp-seg input:focus-visible + span { box-shadow: 0 0 0 0.1875rem rgba(107,29,61,.25); }
.dvp-calc__res { position: sticky; top: 8.75rem; background: linear-gradient(160deg, var(--ink), var(--ink-2)); color: #fff; border-radius: var(--r-xl); padding: 1.875rem; overflow: hidden; }
.dvp-calc__res::after { content: ''; position: absolute; right: -5rem; top: -5rem; width: 13.75rem; height: 13.75rem; border-radius: 50%; background: radial-gradient(circle, rgba(107,29,61,.6), transparent 65%); pointer-events: none; }
.dvp-calc__lbl { font-size: 0.7812rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gold); }
.dvp-calc__sum { font-family: var(--f-head); font-size: 2.75rem; font-weight: 700; line-height: 1.1; margin: 0.5rem 0 1.125rem; }
.dvp-calc__from { font-size: 1.125rem; font-family: var(--f-body); font-weight: 500; color: rgba(255,255,255,.6); }
.dvp-calc__sum b { display: inline-block; }
.dvp-calc__sum b.is-bump { animation: dvBump .4s var(--ease); }
@keyframes dvBump { 40% { transform: scale(1.06); color: var(--gold-300); } }
.dvp-calc__lines { list-style: none; padding: 1rem 0; margin: 0 0 0.875rem; border-top: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12); display: grid; gap: 0.5rem; font-size: 0.875rem; }
.dvp-calc__lines li { display: flex; justify-content: space-between; gap: 0.75rem; color: rgba(255,255,255,.72); }
.dvp-calc__lines b { color: #fff; white-space: nowrap; font-weight: 600; }
.dvp-calc__note { font-size: 0.8125rem; color: rgba(255,255,255,.55); line-height: 1.5; margin: 0 0 1.125rem; }
.dvp-calc__more { display: block; text-align: center; margin-top: 0.75rem; color: var(--gold-300); font-size: 0.875rem; text-decoration: none; }
.dvp-calc__more:hover { color: #fff; }

/* ─── Plans ──────────────────────────────────────────────────────────────── */
.dvp-plans { display: grid; grid-template-columns: repeat(var(--n, 3), 1fr); gap: 1rem; align-items: stretch; }
.dvp-plan { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: var(--r-xl); padding: 1.875rem 1.625rem; transition: transform .35s var(--ease), box-shadow .35s; }
.dvp-plan:hover { transform: translateY(-0.25rem); box-shadow: var(--sh-2); }
.dvp-plan.is-featured { background: linear-gradient(160deg, var(--ink), var(--ink-2)); color: #fff; border-color: transparent; box-shadow: var(--sh-3); }
.dvp-plan.is-featured h3, .dvp-plan.is-featured .dvp-plan__price { color: #fff !important; }
.dvp-plan.is-featured p, .dvp-plan.is-featured .svc-checklist li { color: rgba(255,255,255,.75); }
.dvp-plan.is-featured .svc-checklist svg { background: rgba(127,163,164,.2); color: var(--gold-300); }
.dvp-plan__badge { position: absolute; top: -0.75rem; left: 1.625rem; background: var(--gold); color: var(--ink); font-size: 0.75rem; font-weight: 700; padding: 0.25rem 0.75rem; border-radius: 1.25rem; }
.dvp-plan__label { font-size: 0.7812rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--brand); }
.dvp-plan.is-featured .dvp-plan__label { color: var(--gold); }
.dvp-plan h3 { font-size: 1.375rem; margin: 0.5rem 0 0.75rem; color: var(--ink); }
.dvp-plan__price { font-family: var(--f-head); font-size: 1.875rem; font-weight: 700; color: var(--ink); line-height: 1.1; }
.dvp-plan__price small { display: block; font-family: var(--f-body); font-size: 0.8438rem; font-weight: 500; color: var(--muted); margin-top: 0.25rem; }
.dvp-plan.is-featured .dvp-plan__price small { color: rgba(255,255,255,.6); }
.dvp-plan p { color: var(--muted); font-size: 0.9375rem; margin: 0.875rem 0 0; }
.dvp-plan .svc-checklist { margin: 1.125rem 0 1.5rem; }
.dvp-plan .dv-btn { margin-top: auto; }
.dvp-plan.is-featured .dv-btn--brand { background: #fff; color: var(--brand); box-shadow: none; }

/* ─── Deliverables / bonuses ─────────────────────────────────────────────── */
.dvp-deliv { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r-xl); overflow: hidden; }
.dvp-deliv__item { background: #fff; padding: 1.875rem 1.75rem; position: relative; transition: background .3s; }
.dvp-deliv__item:hover { background: var(--paper); }
.dvp-deliv__ico { width: 3.125rem; height: 3.125rem; border-radius: 0.875rem; border: 1.5px solid var(--brand-100); color: var(--brand); display: flex; align-items: center; justify-content: center; margin-bottom: 1.125rem; transition: background .3s, color .3s, transform .3s; }
.dvp-deliv__item:hover .dvp-deliv__ico { background: var(--brand); color: #fff; border-color: var(--brand); transform: translateY(-0.1875rem); }
.dvp-deliv__ico svg { width: 1.5rem; height: 1.5rem; }
.dvp-deliv__item h3 { font-size: 1.1875rem; margin: 0 0 0.5rem; color: var(--ink); }
.dvp-deliv__item p { margin: 0; color: var(--muted); font-size: 0.9375rem; line-height: 1.6; }
.dv-sec--sand .dvp-deliv__item { background: #fff; }

/* Stats / infobox */
.dvp-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr)); gap: 0; }
.dvp-stats > div { padding: 0.625rem 1.5rem; border-left: 1px solid rgba(255,255,255,.14); }
.dvp-stats b { display: block; font-family: var(--f-head); font-size: 2.875rem; font-weight: 700; color: #fff; line-height: 1; }
.dvp-stats span { display: block; margin-top: 0.5rem; color: rgba(255,255,255,.65); font-size: 0.9062rem; }
.dvp-info { display: grid; grid-template-columns: auto 1fr auto; gap: 1.5rem; align-items: center; padding: 2rem; border-radius: var(--r-xl); background: var(--brand-50); border: 1px solid var(--brand-100); }
.dvp-info__ico { width: 4rem; height: 4rem; border-radius: 1.125rem; background: var(--brand); color: #fff; display: flex; align-items: center; justify-content: center; }
.dvp-info__ico svg { width: 1.875rem; height: 1.875rem; }
.dvp-info h2 { font-size: 1.625rem; margin: 0 0 0.375rem; color: var(--ink); }
.dvp-info p { margin: 0; color: var(--muted); }

/* ─── Flip cases ─────────────────────────────────────────────────────────── */
.dvp-cases { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.dvp-case { position: relative; display: block; width: 100%; min-height: 16.25rem; padding: 0; border: 0; background: none; text-align: left; perspective: 75rem; cursor: pointer; font: inherit; color: inherit; }
.dvp-case__face, .dvp-case__back { position: absolute; inset: 0; display: flex; flex-direction: column; gap: 0.625rem; padding: 1.625rem; border-radius: var(--r-xl); backface-visibility: hidden; -webkit-backface-visibility: hidden; transition: transform .7s var(--ease); }
.dvp-case__face { background: #fff; border: 1px solid var(--line); }
.dvp-case__back { background: linear-gradient(160deg, var(--brand), var(--brand-600)); color: #fff; transform: rotateY(180deg); justify-content: center; }
.dvp-case__back small { font-size: 0.7812rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gold-300); }
.dvp-case__back span { font-family: var(--f-head); font-size: 1.3125rem; line-height: 1.4; }
.dvp-case.has-back.is-flipped .dvp-case__face, .dvp-case.has-back:hover .dvp-case__face { transform: rotateY(-180deg); }
.dvp-case.has-back.is-flipped .dvp-case__back, .dvp-case.has-back:hover .dvp-case__back { transform: rotateY(0); }
.dvp-case:not(.has-back) { cursor: default; }
@media (hover: none) { .dvp-case.has-back:hover .dvp-case__face { transform: none; } .dvp-case.has-back:hover .dvp-case__back { transform: rotateY(180deg); } .dvp-case.has-back.is-flipped .dvp-case__face { transform: rotateY(-180deg); } .dvp-case.has-back.is-flipped .dvp-case__back { transform: rotateY(0); } }
.dvp-case__top { display: flex; justify-content: space-between; align-items: center; }
.dvp-case__ico { width: 2.75rem; height: 2.75rem; border-radius: 0.75rem; background: var(--brand-50); color: var(--brand); display: flex; align-items: center; justify-content: center; }
.dvp-case__ico svg { width: 1.375rem; height: 1.375rem; }
.dvp-case__top small { font-size: 0.75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted-2); }
.dvp-case strong { font-family: var(--f-head); font-size: 1.25rem; font-weight: 600; line-height: 1.3; color: var(--ink); }
.dvp-case__desc { color: var(--muted); font-size: 0.9062rem; line-height: 1.55; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; }
.dvp-case__hint { margin-top: auto; font-size: 0.8125rem; font-weight: 700; color: var(--brand); }
.dvp-note { margin: 1.375rem 0 0; color: var(--muted); font-size: 0.875rem; display: flex; flex-wrap: wrap; gap: 0.375rem 1rem; align-items: center; }

/* ─── Laws + industries ──────────────────────────────────────────────────── */
.dvp-laws { display: grid; grid-template-columns: 1.5fr 1fr; gap: 2.5rem; align-items: start; }
.dvp-laws > * { min-width: 0; }
.dvp-laws__list { display: grid; gap: 0.625rem; }
.dvp-law { display: flex; gap: 1rem; align-items: center; padding: 1.125rem 1.25rem; border-radius: var(--r); background: #fff; border: 1px solid var(--line); text-decoration: none; color: var(--ink); transition: border-color .25s, box-shadow .25s, transform .25s var(--ease); }
.dvp-law:hover { border-color: var(--brand-400); box-shadow: var(--sh-1); transform: translateX(0.25rem); color: var(--ink); }
.dvp-law__ico { width: 2.625rem; height: 2.625rem; border-radius: 0.625rem; background: var(--sand); color: var(--brand); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.dvp-law__ico svg { width: 1.25rem; height: 1.25rem; }
.dvp-law b { display: block; font-weight: 600; font-size: 0.9688rem; }
.dvp-law small { display: block; color: var(--muted); font-size: 0.8438rem; margin-top: 2px; }
.dvp-law > span:nth-child(2) { flex: 1; min-width: 0; }
.dvp-law__go { color: var(--brand); font-size: 1.125rem; transition: transform .25s; }
.dvp-law:hover .dvp-law__go { transform: translate(0.1875rem, -0.1875rem); }
.dvp-inds { position: sticky; top: 8.75rem; padding: 1.75rem; border-radius: var(--r-xl); background: linear-gradient(160deg, var(--ink), var(--ink-2)); color: #fff; }
.dvp-inds .dv-eyebrow { color: var(--gold); }
.dvp-inds h3 { color: #fff !important; font-size: 1.5rem; margin: 0 0 1.125rem; }
.dvp-inds__chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.25rem; }
.dvp-inds__chips a { display: inline-flex; gap: 0.5rem; align-items: center; padding: 0.5625rem 0.875rem; border-radius: 1.875rem; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); color: #fff; text-decoration: none; font-size: 0.875rem; font-weight: 500; transition: background .2s, border-color .2s; }
.dvp-inds__chips a:hover { background: var(--brand); border-color: var(--brand); }
.dvp-inds__chips svg { width: 1rem; height: 1rem; color: var(--gold-300); }
.dvp-inds .dv-link { color: var(--gold-300); }

/* FAQ search */
.dvp-faqsearch { display: flex; gap: 0.625rem; align-items: center; height: 3.125rem; padding: 0 1rem; border: 1.5px solid var(--line); border-radius: var(--r-sm); background: #fff; margin-top: 1.375rem; transition: border-color .2s, box-shadow .2s; }
.dvp-faqsearch:focus-within { border-color: var(--brand); box-shadow: 0 0 0 0.1875rem rgba(107,29,61,.12); }
.dvp-faqsearch svg { width: 1.125rem; height: 1.125rem; color: var(--muted); }
.dvp-faqsearch input { flex: 1; min-width: 0; border: 0; outline: 0; font-size: 0.9688rem; background: none; }
.dvp-faq-empty { color: var(--muted); padding: 1rem; }
.v3-acc__item mark { background: var(--brand-100); padding: 0 2px; border-radius: 0.1875rem; }

/* CTA */
.dvp-cta { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: center; padding: 3rem; border-radius: var(--r-xl); background: radial-gradient(60% 80% at 0% 100%, rgba(107,29,61,.5), transparent 60%), linear-gradient(160deg, var(--ink), var(--ink-2)); color: #fff; }
.dvp-cta > * { min-width: 0; }
.dvp-cta .dv-eyebrow { color: var(--gold); }
.dvp-cta h2 { color: #fff !important; font-size: 2.125rem; margin: 0 0 0.75rem; }
.dvp-cta p { color: rgba(255,255,255,.75); }
.dvp-cta ul { list-style: none; padding: 0; margin: 1.25rem 0; display: grid; gap: 0.625rem; }
.dvp-cta li { display: flex; gap: 0.625rem; align-items: center; }
.dvp-cta li svg { width: 1.25rem; height: 1.25rem; color: var(--gold); }
.dvp-cta .dv-link { color: var(--gold-300); }
.dvp-cta__form { background: #fff; color: var(--ink); border-radius: var(--r-lg); padding: 1.625rem; }
.dvp-cta__form .cta-form { padding: 0 !important; background: none !important; box-shadow: none !important; }

/* ─── Shared widget bits (tools, pricing, booking) ───────────────────────── */
.dvw-tabs { display: flex; flex-wrap: wrap; gap: 0.375rem; padding: 0.375rem; background: var(--sand); border-radius: 0.875rem; margin-bottom: 1.5rem; }
.dvw-tabs button { flex: 1 1 auto; display: inline-flex; gap: 0.5rem; align-items: center; justify-content: center; border: 0; background: none; padding: 0.75rem 1.125rem; border-radius: 0.625rem; font-weight: 600; color: var(--muted); font-size: 0.9375rem; transition: background .2s, color .2s, box-shadow .2s; }
.dvw-tabs button svg { width: 1.125rem; height: 1.125rem; }
.dvw-tabs button.is-active { background: #fff; color: var(--brand); box-shadow: var(--sh-1); }
.dvw-panel { display: none; } .dvw-panel.is-active { display: block; animation: dvStep .4s var(--ease); }
.dvw-tool { display: grid; grid-template-columns: 1.2fr 1fr; gap: 1.5rem; align-items: start; }
.dvw-tool > * { min-width: 0; }
.dvw-form { background: #fff; border: 1px solid var(--line); border-radius: var(--r-xl); padding: 1.75rem; display: grid; gap: 1rem; }
.dvw-form h2 { font-size: 1.625rem; margin: 0; }
.dvw-form > p { color: var(--muted); margin: 0; }
.dvw-field { display: grid; gap: 0.375rem; }
.dvw-field > span { font-size: 0.875rem; font-weight: 600; color: var(--ink); }
.dvw-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.dvw-res { position: sticky; top: 6.875rem; background: linear-gradient(160deg, var(--ink), var(--ink-2)); color: #fff; border-radius: var(--r-xl); padding: 1.75rem; }
.dvw-res h3 { color: #fff !important; font-size: 1.25rem; margin: 0 0 0.875rem; }
.dvw-res__big { font-family: var(--f-head); font-size: 2.5rem; font-weight: 700; line-height: 1.1; margin: 0.25rem 0 1rem; }
.dvw-res__lbl { font-size: 0.7812rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gold); }
.dvw-res ul { list-style: none; padding: 0.875rem 0; margin: 0 0 0.875rem; border-top: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12); display: grid; gap: 0.5rem; font-size: 0.9062rem; }
.dvw-res li { display: flex; justify-content: space-between; gap: 0.75rem; color: rgba(255,255,255,.72); }
.dvw-res li b { color: #fff; font-weight: 600; text-align: right; }
.dvw-res__note { font-size: 0.8125rem; color: rgba(255,255,255,.55); margin: 0 0 1rem; line-height: 1.5; }
.dvw-res .dv-btn--brand { width: 100%; }
.dvw-checks { display: grid; gap: 0.5rem; }
.dvw-check { display: flex; gap: 0.75rem; align-items: flex-start; padding: 0.875rem 1rem; border-radius: 0.75rem; border: 1.5px solid var(--line); cursor: pointer; font-size: 0.9375rem; line-height: 1.45; transition: border-color .2s, background .2s; }
.dvw-check input { margin-top: 0.1875rem; width: 1.125rem; height: 1.125rem; accent-color: var(--brand); flex-shrink: 0; }
.dvw-check:has(input:checked) { border-color: var(--ok); background: #f1f8f4; }
.dvw-meter { height: 0.625rem; border-radius: 0.625rem; background: rgba(255,255,255,.12); overflow: hidden; margin: 0.625rem 0 1rem; }
.dvw-meter i { display: block; height: 100%; width: 0; border-radius: 0.625rem; background: linear-gradient(90deg, var(--bad), var(--warn), var(--ok)); background-size: 300% 100%; transition: width .6s var(--ease); }
.dvw-date { display: flex; flex-direction: column; gap: 0.25rem; }
.dvw-alert { padding: 0.75rem 0.875rem; border-radius: 0.625rem; font-size: 0.875rem; background: rgba(255,255,255,.08); color: rgba(255,255,255,.85); }
.dvw-alert--bad { background: rgba(179,38,30,.25); }
.dvw-alert--ok { background: rgba(47,138,91,.25); }

/* Booking */
.dvb { display: grid; grid-template-columns: 1.3fr 1fr; gap: 1.5rem; align-items: start; }
.dvb > * { min-width: 0; }
.dvb__box { background: #fff; border: 1px solid var(--line); border-radius: var(--r-xl); padding: 1.75rem; }
.dvb__step { display: flex; gap: 0.625rem; align-items: center; font-weight: 700; color: var(--ink); margin: 0 0 0.875rem; font-size: 1rem; }
.dvb__step span { width: 1.75rem; height: 1.75rem; border-radius: 50%; background: var(--ink); color: var(--gold-300); font-size: 0.8125rem; display: inline-flex; align-items: center; justify-content: center; }
.dvb__fmt { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.625rem; margin-bottom: 1.625rem; }
.dvb__fmt label { position: relative; margin: 0; cursor: pointer; }
.dvb__fmt input { position: absolute; opacity: 0; }
.dvb__fmt span { display: flex; flex-direction: column; gap: 0.375rem; align-items: flex-start; padding: 1rem; height: 100%; border: 1.5px solid var(--line); border-radius: var(--r); font-weight: 600; transition: border-color .2s, background .2s; }
.dvb__fmt span svg { width: 1.375rem; height: 1.375rem; color: var(--brand); }
.dvb__fmt span small { font-weight: 500; color: var(--muted); font-size: 0.8125rem; }
.dvb__fmt input:checked + span { border-color: var(--brand); background: var(--brand-50); }
.dvb__cal-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.625rem; }
.dvb__cal-head b { font-family: var(--f-head); font-size: 1.25rem; text-transform: capitalize; }
.dvb__cal-head button { width: 2.375rem; height: 2.375rem; border-radius: 0.625rem; border: 1px solid var(--line); background: #fff; font-size: 1.125rem; }
.dvb__cal-head button:hover:not(:disabled) { border-color: var(--brand); color: var(--brand); }
.dvb__cal-head button:disabled { opacity: .35; }
.dvb__dow, .dvb__days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 0.375rem; }
.dvb__dow span { text-align: center; font-size: 0.75rem; font-weight: 700; color: var(--muted-2); text-transform: uppercase; padding: 0.25rem 0; }
.dvb__days button { height: 2.875rem; border: 0; border-radius: 0.625rem; background: var(--sand); font-weight: 600; font-size: 0.9375rem; color: var(--ink); transition: background .2s, color .2s, transform .2s; }
.dvb__days button:hover:not(:disabled) { background: var(--brand-100); transform: translateY(-2px); }
.dvb__days button:disabled { background: none; color: var(--line-2); cursor: default; }
.dvb__days button.is-today { box-shadow: inset 0 0 0 1.5px var(--gold); }
.dvb__days button.is-sel { background: var(--brand); color: #fff; }
.dvb__days span { display: block; }
.dvb__slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(5.375rem, 1fr)); gap: 0.5rem; margin-top: 1.5rem; }
.dvb__slots button { height: 2.75rem; border: 1.5px solid var(--line); border-radius: 0.625rem; background: #fff; font-weight: 600; color: var(--ink); transition: border-color .2s, background .2s, color .2s; }
.dvb__slots button:hover:not(:disabled) { border-color: var(--brand); color: var(--brand); }
.dvb__slots button:disabled { text-decoration: line-through; color: var(--line-2); background: var(--paper); }
.dvb__slots button.is-sel { background: var(--brand); border-color: var(--brand); color: #fff; }
.dvb__sum { position: sticky; top: 6.875rem; }
.dvb__ticket { background: linear-gradient(160deg, var(--ink), var(--ink-2)); color: #fff; border-radius: var(--r-xl); padding: 1.75rem; position: relative; overflow: hidden; }
.dvb__ticket::before, .dvb__ticket::after { content: ''; position: absolute; top: 8.25rem; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: #fff; }
.dvb__ticket::before { left: -0.875rem; } .dvb__ticket::after { right: -0.875rem; }
.dvb__ticket h3 { color: #fff !important; font-size: 1.375rem; margin: 0 0 1.125rem; }
.dvb__ticket dl { margin: 0 0 1.125rem; padding-bottom: 1.125rem; border-bottom: 1.5px dashed rgba(255,255,255,.2); display: grid; gap: 0.625rem; }
.dvb__ticket dl div { display: flex; justify-content: space-between; gap: 0.625rem; }
.dvb__ticket dt { color: rgba(255,255,255,.6); font-weight: 500; font-size: 0.875rem; }
.dvb__ticket dd { margin: 0; font-weight: 600; text-align: right; }
.dvb__ticket .dv-input { background: rgba(255,255,255,.95); }
.dvb__ticket form { display: grid; gap: 0.625rem; }
.dvb__ticket .v3-consent { color: rgba(255,255,255,.6); }
.dvb__done { text-align: center; padding: 1.25rem 0; }
.dvb__done .v3-thanks__ico { margin-bottom: 0.625rem; }

/* ─── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width: 1199.98px) {
    .dvp-areas { grid-template-columns: 1fr 1fr; }
    .dvp-kpis { grid-template-columns: repeat(3, 1fr); }
    .dvp-kpis__cta { display: none !important; }
}
@media (max-width: 991.98px) {
    .dvp-hero__grid, .dvp-sit, .dvp-risk, .dvp-proc, .dvp-calc, .dvp-laws, .dvp-cta, .dvw-tool, .dvb { grid-template-columns: 1fr; }
    .dvp-sit__list { grid-auto-flow: column; grid-auto-columns: minmax(15rem, 80%); overflow-x: auto; padding-bottom: 0.375rem; scroll-snap-type: x mandatory; }
    .dvp-sit__tab { scroll-snap-align: start; }
    .dvp-sit__tab.is-active, .dvp-sit__tab:hover { transform: none; }
    .dvp-risk__res, .dvp-calc__res, .dvp-proc__intro, .dvp-inds, .dvw-res, .dvb__sum { position: static; }
    .dvp-cases, .dvp-deliv { grid-template-columns: 1fr 1fr; }
    .dvp-plans { grid-template-columns: 1fr; }
    .dvp-cta { padding: 1.75rem 1.375rem; }
    .dvp-bar { top: 4rem; }
    .dvp-bar__title { display: none; }
    .dvp-bar .dv-btn { display: none; }
    .dvp-hero__mark { width: 20rem; height: 20rem; }
}
@media (max-width: 575.98px) {
    .dvp-kpis { grid-template-columns: 1fr; }
    .dvp-kpis > div { padding: 1rem 0; }
    .dvp-kpis > div + div { border-left: 0; border-top: 1px solid rgba(255,255,255,.12); }
    .dvp-areas, .dvp-cases, .dvp-deliv, .dvp-risk__items, .dvp-sit__cols, .dvw-row, .dvb__fmt { grid-template-columns: 1fr; }
    .dvp-sit__panel, .dvp-calc__form, .dvw-form, .dvb__box { padding: 1.25rem; }
    .dvp-info { grid-template-columns: 1fr; text-align: left; }
    .dvp-hero__cta .dv-btn { width: 100%; }
    .dvp-calc__sum, .dvw-res__big { font-size: 2.125rem; }
    .dvp-stats > div { border-left: 0; padding: 0.75rem 0; }
}

/* ─── Inner page hero extras ─────────────────────────────────────────────── */
.dv-phero { padding: 3rem 0 3.5rem; }
.dv-phero .v3-phero__title { margin-top: 1.125rem; }
.dv-phero__cta { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.75rem; }
.dv-phero__chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1.625rem; }
.dv-phero__chips a { display: inline-flex; gap: 0.5rem; align-items: center; padding: 0.5625rem 1rem; border-radius: 1.875rem; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); color: #fff; text-decoration: none; font-size: 0.9062rem; font-weight: 500; transition: background .2s, border-color .2s, transform .2s; }
.dv-phero__chips a:hover { background: var(--brand); border-color: var(--brand); color: #fff; transform: translateY(-2px); }
.dv-phero__chips svg { width: 1.0625rem; height: 1.0625rem; color: var(--gold-300); }
.dv-phero__chips a:hover svg { color: #fff; }
.dv-phero__stats { display: flex; flex-wrap: wrap; gap: 0; margin: 1.75rem 0 0; }
.dv-phero__stats > div { padding: 0 1.75rem; border-left: 1px solid rgba(255,255,255,.14); }
.dv-phero__stats > div:first-child { padding-left: 0; border-left: 0; }
.dv-phero__stats dt { font-family: var(--f-head); font-size: 2.125rem; font-weight: 700; color: #fff; line-height: 1; }
.dv-phero__stats dd { margin: 0.375rem 0 0; color: rgba(255,255,255,.6); font-size: 0.875rem; }
.dv-muted { color: var(--muted); font-size: 0.8438rem; line-height: 1.5; }
.sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.dv-input.is-invalid { border-color: var(--bad) !important; }

/* Tools */
.dvw-how { background: var(--sand); border-radius: 0.75rem; padding: 0.75rem 1rem; font-size: 0.9062rem; }
.dvw-how summary { cursor: pointer; font-weight: 600; color: var(--brand); }
.dvw-how p { margin: 0.625rem 0 0; color: var(--muted); line-height: 1.6; }
.dvw-res__big small { font-size: 1.25rem; color: rgba(255,255,255,.5); }
.dvw-cost__head { display: grid; grid-template-columns: 1fr; gap: 1rem; margin-bottom: 1.25rem; }
.dvw-cost__head h2 { font-size: 1.625rem; margin: 0 0 0.375rem; }
.dvw-cost__head p { color: var(--muted); margin: 0; }
.dvw-chips { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.75rem; }
.dvw-chips button { display: inline-flex; gap: 0.5rem; align-items: center; border: 1.5px solid var(--line); background: #fff; border-radius: 1.875rem; padding: 0.5625rem 1rem; font-weight: 600; font-size: 0.9062rem; color: var(--ink); transition: border-color .2s, background .2s, color .2s; }
.dvw-chips button small { font-size: 0.75rem; color: var(--muted); background: var(--sand); border-radius: 0.625rem; padding: 1px 0.4375rem; }
.dvw-chips button:hover { border-color: var(--brand); }
.dvw-chips button.is-active { background: var(--ink); border-color: var(--ink); color: #fff; }
.dvw-chips button.is-active small { background: rgba(255,255,255,.15); color: #fff; }
.dvp-cases--all { grid-template-columns: repeat(3, 1fr); }
.dvp-case[hidden] { display: none; }
.dvp-case__link { font-style: normal; font-size: 0.8125rem; color: var(--gold-300); margin-top: 0.375rem; }

/* Industries */
.dvi-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; perspective: 62.5rem; }
.dvi-card { position: relative; display: flex; flex-direction: column; gap: 0.625rem; padding: 1.5rem; border-radius: var(--r-xl); background: #fff; border: 1px solid var(--line); text-decoration: none; color: var(--ink); overflow: hidden; transition: transform .25s ease-out, box-shadow .35s, border-color .35s, opacity .7s var(--ease); scroll-margin-top: 7.5rem; }
.dvi-card::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 0.1875rem; background: linear-gradient(90deg, var(--brand), var(--gold)); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--ease); }
.dvi-card:hover { box-shadow: var(--sh-3); border-color: transparent; color: var(--ink); }
.dvi-card:hover::after, .dvi-card:target::after { transform: scaleX(1); }
.dvi-card:target { box-shadow: 0 0 0 2px var(--brand), var(--sh-2); }
.dvi-card__ico { width: 3.25rem; height: 3.25rem; border-radius: 0.875rem; background: var(--ink); color: var(--gold-300); display: flex; align-items: center; justify-content: center; transition: background .3s, transform .3s; }
.dvi-card:hover .dvi-card__ico { background: var(--brand); color: #fff; transform: rotate(-6deg); }
.dvi-card__ico svg { width: 1.625rem; height: 1.625rem; }
.dvi-card__t { font-family: var(--f-head); font-size: 1.3125rem; font-weight: 600; }
.dvi-card__d { color: var(--muted); font-size: 0.9062rem; line-height: 1.55; }
.dvi-card__list { display: grid; gap: 0.375rem; margin-top: 0.25rem; padding-top: 0.75rem; border-top: 1px dashed var(--line); }
.dvi-card__list span { display: flex; gap: 0.5rem; align-items: flex-start; font-size: 0.8438rem; color: var(--text); line-height: 1.4; }
.dvi-card__list svg { width: 1rem; height: 1rem; flex-shrink: 0; color: var(--brand); margin-top: 1px; }
.dvi-card__go { margin-top: auto; padding-top: 0.5rem; font-weight: 600; color: var(--brand); font-size: 0.9062rem; }
.dvi-matrix { overflow-x: auto; border-radius: var(--r-xl); background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); }
.dvi-matrix table { width: 100%; border-collapse: collapse; min-width: 47.5rem; }
.dvi-matrix th, .dvi-matrix td { padding: 0.875rem 0.75rem; text-align: center; border-bottom: 1px solid rgba(255,255,255,.08); transition: background .2s; }
.dvi-matrix thead th { font-size: 0.8125rem; font-weight: 600; vertical-align: bottom; }
.dvi-matrix thead a { color: rgba(255,255,255,.8); text-decoration: none; }
.dvi-matrix thead a:hover { color: var(--gold-300); }
.dvi-matrix tbody th { text-align: left; white-space: nowrap; }
.dvi-matrix tbody th a { display: inline-flex; gap: 0.625rem; align-items: center; color: #fff; text-decoration: none; font-weight: 600; font-size: 0.9375rem; }
.dvi-matrix tbody th svg { width: 1.125rem; height: 1.125rem; color: var(--gold-300); }
.dvi-matrix td i { display: inline-block; width: 0.625rem; height: 0.625rem; border-radius: 50%; background: rgba(255,255,255,.12); transition: transform .3s var(--ease), background .3s, box-shadow .3s; }
.dvi-matrix td i.is-on { width: 1rem; height: 1rem; background: var(--brand-400); box-shadow: 0 0 0 0.25rem rgba(154,58,98,.2); }
.dvi-matrix .is-col, .dvi-matrix tr.is-row > * { background: rgba(255,255,255,.05); }
.dvi-matrix tr.is-row td i.is-on, .dvi-matrix td.is-col i.is-on { transform: scale(1.25); background: var(--gold); box-shadow: 0 0 0 0.3125rem rgba(127,163,164,.25); }
.dvi-chal { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.875rem; }
.dvi-chal__item { display: flex; gap: 1.125rem; align-items: flex-start; padding: 1.5rem; border-radius: var(--r-lg); background: #fff; border: 1px solid var(--line); transition: box-shadow .3s, transform .3s var(--ease); }
.dvi-chal__item:hover { box-shadow: var(--sh-2); transform: translateY(-0.1875rem); }
.dvi-chal__item span { font-family: var(--f-head); font-size: 1.875rem; font-weight: 700; color: var(--brand); line-height: 1; }
.dvi-chal__item p { margin: 0.25rem 0 0; font-size: 1.0312rem; font-weight: 500; color: var(--ink); line-height: 1.5; }
.dvi-chips { display: flex; flex-wrap: wrap; gap: 0.625rem; }
.dvi-chips a { display: inline-flex; gap: 0.625rem; align-items: center; padding: 0.75rem 1.125rem; border-radius: var(--r); background: #fff; border: 1px solid var(--line); color: var(--ink); text-decoration: none; font-weight: 600; transition: border-color .2s, transform .2s, box-shadow .2s; }
.dvi-chips a:hover { border-color: var(--brand); transform: translateY(-2px); box-shadow: var(--sh-1); color: var(--brand); }
.dvi-chips svg { width: 1.25rem; height: 1.25rem; color: var(--brand); }
.dvi-cmp { border-radius: var(--r-xl); overflow: hidden; border: 1px solid var(--line); background: #fff; }
.dvi-cmp__row { display: grid; grid-template-columns: 1fr 1.6fr 1.2fr; gap: 1.25rem; padding: 1.125rem 1.5rem; border-top: 1px solid var(--line); font-size: 0.9375rem; color: var(--text); }
.dvi-cmp__row b { font-family: var(--f-head); font-size: 1.125rem; color: var(--ink); }
.dvi-cmp__row--head { border-top: 0; background: var(--ink); color: rgba(255,255,255,.7); font-size: 0.7812rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }

/* Pricing rows */
.dvr-list { display: grid; gap: 0.625rem; }
.dvr-row { display: grid; grid-template-columns: auto 1fr auto auto; gap: 1.25rem; align-items: center; padding: 1.125rem 1.375rem; border-radius: var(--r-lg); background: #fff; border: 1px solid var(--line); text-decoration: none; color: var(--ink); transition: border-color .25s, box-shadow .25s, transform .25s var(--ease); }
.dvr-row:hover { border-color: transparent; box-shadow: var(--sh-2); transform: translateX(0.25rem); color: var(--ink); }
.dvr-row__ico { width: 3rem; height: 3rem; border-radius: 0.75rem; background: var(--brand-50); color: var(--brand); display: flex; align-items: center; justify-content: center; }
.dvr-row__ico svg { width: 1.375rem; height: 1.375rem; }
.dvr-row__t b { display: block; font-family: var(--f-head); font-size: 1.1875rem; font-weight: 600; }
.dvr-row__t small { display: block; color: var(--muted); font-size: 0.875rem; margin-top: 2px; }
.dvr-row__p { font-family: var(--f-head); font-size: 1.375rem; font-weight: 700; text-align: right; white-space: nowrap; }
.dvr-row__p small { display: block; font-family: var(--f-body); font-size: 0.75rem; font-weight: 500; color: var(--muted); }
.dvr-row__go { width: 2.375rem; height: 2.375rem; border-radius: 50%; border: 1px solid var(--line); display: flex; align-items: center; justify-content: center; color: var(--brand); transition: background .25s, color .25s; }
.dvr-row:hover .dvr-row__go { background: var(--brand); color: #fff; border-color: var(--brand); }

@media (max-width: 1199.98px) { .dvi-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 991.98px) { .dvp-cases--all { grid-template-columns: 1fr 1fr; } .dvi-chal { grid-template-columns: 1fr; } .dvi-cmp__row { grid-template-columns: 1fr; gap: 0.375rem; } .dvi-cmp__row--head { display: none; } }
@media (max-width: 575.98px) {
    .dvi-grid, .dvp-cases--all { grid-template-columns: 1fr; }
    .dvr-row { grid-template-columns: auto 1fr; }
    .dvr-row__p { grid-column: 2; text-align: left; }
    .dvr-row__go { display: none; }
    .dv-phero__stats > div { padding: 0 1.125rem; }
    .dv-phero__cta .dv-btn { width: 100%; }
}
