/* MYRON-WEB-006 — design refinement: system components on top of V3 (same colours, type, logo).
   1. Route: work sequence with full rows (3 + 3 for six steps) and a connecting line.
   2. Balanced grids: card grids pick the column count that fills every row.
   3. Information blocks: approach, what you get, directions, stages, notes.
   4. Request panel: forms of catalogs and calculators as wide as their section.
   5. Calculator total: sticky panel on desktop, compact bar on phones. */

/* ---------------------------------------------------------------- 1. route */
.route{--gap:28px;--mk:40px;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px var(--gap)}
.route__i{position:relative;min-width:0}
.route__n{position:relative;z-index:1;display:grid;place-items:center;width:var(--mk);height:var(--mk);border-radius:50%;background:var(--navy);color:#fff;font:700 15px/1 var(--f-head);font-variant-numeric:tabular-nums;margin-bottom:18px;box-shadow:0 0 0 6px #fff}
.sec--subtle .route__n{box-shadow:0 0 0 6px var(--g50)}
.route__i:last-child .route__n{background:var(--red)}
.route__b b{display:block;font:700 17px/1.3 var(--f-head);color:var(--navy);margin-bottom:6px;text-wrap:balance}
.route__b p{margin:0;font-size:15px;line-height:1.55;color:var(--g700);max-width:34ch}
/* connector: from this station to the next one in the same row; ::after is the filled part */
.route__i::before,.route__i::after{content:"";position:absolute;top:calc(var(--mk) / 2 - 1px);left:calc(var(--mk) + 10px);width:calc(100% - var(--mk) - 20px + var(--gap));height:2px;border-radius:2px;background:var(--g200)}
.route__i::after{background:var(--navy);transform-origin:left center}
.route__i:last-child::before,.route__i:last-child::after{display:none}
.route[data-n="3"] .route__i:nth-child(3n)::before,.route[data-n="3"] .route__i:nth-child(3n)::after,
.route[data-n="6"] .route__i:nth-child(3n)::before,.route[data-n="6"] .route__i:nth-child(3n)::after,
.route[data-n="9"] .route__i:nth-child(3n)::before,.route[data-n="9"] .route__i:nth-child(3n)::after{display:none}
.route[data-n="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.route[data-n="4"]{grid-template-columns:repeat(4,minmax(0,1fr))}
.route[data-n="5"]{grid-template-columns:repeat(5,minmax(0,1fr));--gap:22px}
.route[data-n="7"],.route[data-n="8"]{grid-template-columns:repeat(4,minmax(0,1fr))}
.route[data-n="7"] .route__i:nth-child(4n)::before,.route[data-n="7"] .route__i:nth-child(4n)::after,
.route[data-n="8"] .route__i:nth-child(4n)::before,.route[data-n="8"] .route__i:nth-child(4n)::after{display:none}
/* five steps on a narrower desktop: 3 + 2, the second row centred */
@media (min-width:1024px) and (max-width:1239px){
  .route[data-n="5"]{grid-template-columns:repeat(6,minmax(0,1fr));--gap:28px}
  .route[data-n="5"] .route__i{grid-column:span 2}
  .route[data-n="5"] .route__i:nth-child(4){grid-column:2 / span 2}
  .route[data-n="5"] .route__i:nth-child(3)::before,.route[data-n="5"] .route__i:nth-child(3)::after{display:none}
}
/* one vertical route below desktop */
@media (max-width:1023px){
  .route,.route[data-n]{grid-template-columns:1fr;gap:0;max-width:640px}
  .route[data-n="5"] .route__i{grid-column:auto}
  .route__i{display:grid;grid-template-columns:var(--mk) minmax(0,1fr);gap:0 18px;padding-bottom:26px}
  .route__i:last-child{padding-bottom:0}
  .route__n{margin:0}
  .route__b{padding-top:8px}
  .route__b p{max-width:none}
  .route[data-n] .route__i:not(:last-child)::before,.route[data-n] .route__i:not(:last-child)::after{display:block;top:calc(var(--mk) + 6px);left:calc(var(--mk) / 2 - 1px);width:2px;height:calc(100% - var(--mk) - 12px)}
  .route[data-n] .route__i::after{transform-origin:center top}
}
/* one moment of motion: the route is drawn station by station when it comes into view */
@media (prefers-reduced-motion:no-preference){
  .route[data-anim] .route__n{transition:background-color .35s var(--ease),color .35s var(--ease),box-shadow .35s var(--ease)}
  .route[data-anim] .route__i::after{transition:transform .5s var(--ease)}
  .route[data-anim]:not(.is-in) .route__n{background:#fff;color:var(--navy);box-shadow:0 0 0 6px #fff,inset 0 0 0 2px var(--g300)}
  .sec--subtle .route[data-anim]:not(.is-in) .route__n{box-shadow:0 0 0 6px var(--g50),inset 0 0 0 2px var(--g300)}
  .route[data-anim]:not(.is-in) .route__i::after{transform:scaleX(0)}
  .route__i:nth-child(2) .route__n{transition-delay:.3s}.route__i:nth-child(1)::after{transition-delay:.05s}
  .route__i:nth-child(3) .route__n{transition-delay:.6s}.route__i:nth-child(2)::after{transition-delay:.35s}
  .route__i:nth-child(4) .route__n{transition-delay:.9s}.route__i:nth-child(3)::after{transition-delay:.65s}
  .route__i:nth-child(5) .route__n{transition-delay:1.2s}.route__i:nth-child(4)::after{transition-delay:.95s}
  .route__i:nth-child(6) .route__n{transition-delay:1.5s}.route__i:nth-child(5)::after{transition-delay:1.25s}
  .route__i:nth-child(7) .route__n{transition-delay:1.8s}.route__i:nth-child(6)::after{transition-delay:1.55s}
  .route__i:nth-child(8) .route__n{transition-delay:2.1s}.route__i:nth-child(7)::after{transition-delay:1.85s}
  .route__i:nth-child(9) .route__n{transition-delay:2.4s}.route__i:nth-child(8)::after{transition-delay:2.15s}
}
@media (prefers-reduced-motion:no-preference) and (max-width:1023px){
  .route[data-anim]:not(.is-in) .route__i::after{transform:scaleY(0)}
}

/* ---------------------------------------------------------------- 2. balanced grids */
/* data-cols from bal_cols(): rows are full; when the count has no divisor the last row is centred */
.bal{--c:3;--g:16px;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--g)}
.bal>*{flex:0 0 calc((100% - (var(--c) - 1) * var(--g)) / var(--c));min-width:0}
.bal[data-cols="1"]{--c:1}.bal[data-cols="2"]{--c:2}.bal[data-cols="4"]{--c:4}.bal[data-cols="5"]{--c:5}
.checks.bal{--g:20px}
/* tablet only: on phones (≤640) every balanced grid is one column — these more specific rules must not reach it */
@media (min-width:641px) and (max-width:1023px){
  .bal[data-cols="4"]{--c:2}
  .bal[data-cols="5"]{--c:3}
  .bal[data-cols="3"]:not([data-n="3"]){--c:2}
  .bal[data-cols="3"][data-n="6"],.bal[data-cols="3"][data-n="9"]{--c:3}
  .checkgrid.bal[data-cols="3"]:not([data-n="6"]):not([data-n="9"]){--c:2}
  .risks.bal[data-cols="3"]{--c:2}
}
@media (max-width:640px){
  .bal,.bal[data-cols]{--c:1}
}

/* ---------------------------------------------------------------- 3. information blocks */
/* tasks: plain cards, no numbering (not a sequence) */
.scen__i{gap:8px;padding:24px}
.scen__i h3{font-size:17.5px}
.scen__i p{font-size:15px}

/* approach: one statement on the left, the points of the method on the right */
.explain{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:start}
.explain__head h2{font-size:clamp(26px,1.3rem + 1vw,34px);line-height:1.2;margin-bottom:16px}
.explain__head p{font-size:18px;line-height:1.55;color:var(--g700);max-width:44ch}
.explain__pts{display:grid}
.explain__pt{padding:20px 0;border-top:1px solid var(--g200)}
.explain__pt:first-child{border-top:0;padding-top:4px}
.explain__pt h3{font-size:17.5px;margin-bottom:6px}
.explain__pt p{font-size:15.5px;line-height:1.6;color:var(--g700);max-width:62ch}
@media (min-width:1024px){.explain__head{position:sticky;top:calc(var(--hdr) + 72px)}}
@media (max-width:1023px){.explain{grid-template-columns:1fr;gap:20px}}

/* legal directions: one card per area of law, typical matters and a way to ask */
.dirs{--g:20px}
.dir{display:flex;flex-direction:column;background:#fff;border:1px solid var(--g200);border-radius:var(--r-lg);padding:26px 26px 22px;transition:border-color .2s}
.dir:hover{border-color:var(--g300)}
.dir h3{font-size:19px;margin-bottom:8px}
.dir>p{font-size:15px;line-height:1.55;color:var(--g700);margin-bottom:14px}
.dir ul{list-style:none;margin:0 0 18px;padding:14px 0 0;border-top:1px solid var(--g100);display:grid;gap:8px}
.dir li{position:relative;padding-left:16px;font-size:14.5px;line-height:1.45;color:var(--g900)}
.dir li::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:2px;border-radius:2px;background:var(--red)}
.dir__go{margin-top:auto;display:inline-flex;align-items:center;gap:6px;font:600 14.5px/1 var(--f-head);color:var(--red)}
.dir__go .ic{width:16px;height:16px;transition:transform .2s var(--ease)}
.dir__go:hover .ic{transform:translateX(3px)}

/* stages of production when an inspection can be done: a segmented track, the usual choice marked */
.stages{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(var(--n,5),minmax(0,1fr));gap:4px}
.stages[data-n="2"]{--n:2}.stages[data-n="3"]{--n:3}.stages[data-n="4"]{--n:4}.stages[data-n="6"]{--n:6}
.stage{position:relative;padding:22px 18px 4px 0}
.stage::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:var(--g200)}
.stage:first-child::before{border-radius:6px 0 0 6px}.stage:last-child::before{border-radius:0 6px 6px 0}
.stage--key::before{background:var(--red)}
.stage b{display:block;font:700 16px/1.3 var(--f-head);color:var(--navy);margin-bottom:6px}
.stage p{font-size:14.5px;line-height:1.5;color:var(--g700)}
.stage__tag{display:inline-block;margin:0 0 8px;padding:3px 8px;border-radius:6px;background:var(--red-50);color:var(--red);font:600 12px/1.3 var(--f-head)}
@media (max-width:1023px){
  .stages,.stages[data-n]{grid-template-columns:1fr;gap:0}
  .stage{padding:0 0 18px 24px}
  .stage::before,.stage:first-child::before,.stage:last-child::before{left:0;right:auto;top:0;bottom:4px;width:4px;height:auto;border-radius:4px}
}

/* risks: the problem, then what we do about it */
.risks.bal{--g:16px}
.risk{display:flex;flex-direction:column;border-left-width:3px;padding:20px 20px 18px}
.risk__r b{font:700 16px/1.35 var(--f-head);color:var(--navy)}
.risk__h{font-size:15px}

/* checks: short items, equal rows */
.checkgrid.bal{--g:10px}
.checkgrid li{align-items:center;min-height:56px}

/* what the client gets: the result as a document, next to the action that starts the work */
.gets{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:center;background:var(--g50);border-radius:20px;padding:44px}
.gets__head h2{font-size:clamp(26px,1.3rem + 1vw,34px);line-height:1.2;margin-bottom:14px}
.gets__head p{font-size:17px;line-height:1.55;color:var(--g700);margin-bottom:24px;max-width:42ch}
.gets__list{list-style:none;margin:0;padding:6px 28px;background:#fff;border-radius:14px;box-shadow:var(--sh-1)}
.gets__list li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:14px;padding:16px 0;border-top:1px solid var(--g100)}
.gets__list li:first-child{border-top:0}
.gets__list .ic{width:22px;height:22px;color:var(--red);margin-top:1px}
.gets__list b{display:block;font:600 16px/1.35 var(--f-head);color:var(--navy)}
.gets__list p{margin-top:4px;font-size:14.5px;line-height:1.5;color:var(--g700)}
@media (max-width:1023px){.gets{grid-template-columns:1fr;gap:28px;padding:32px}}
@media (max-width:640px){.gets{padding:22px 16px;border-radius:16px}.gets__list{padding:2px 18px}.gets__head .btn{width:100%}}

/* notes worth knowing before ordering */
.notes{border:1px solid var(--g200);border-radius:var(--r-lg);padding:30px 32px}
.notes h2{font-size:22px;margin-bottom:20px}
.notes__list{--g:28px;justify-content:flex-start}
.note{border-left:2px solid var(--navy);padding-left:16px}
.note h3{font-size:16px;margin-bottom:6px}
.note p{font-size:14.5px;line-height:1.55;color:var(--g700)}
@media (max-width:640px){.notes{padding:22px 18px}.notes__list{--g:20px}}

/* ---------------------------------------------------------------- 4. request panel */
/* catalog and calculator forms: as wide as the section; context on the left, two columns of fields on the right */
form.form--panel.form--req{max-width:none;display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:0;padding:0;overflow:hidden;border:0;border-radius:20px;background:#fff;box-shadow:var(--sh-2);margin-top:32px}
.rp__aside{background:var(--navy-900);color:#fff;padding:36px 32px;display:flex;flex-direction:column;gap:16px}
.form--panel .rp__aside h3{color:#fff;font-size:22px;line-height:1.25;margin:0}
.form--panel .rp__aside .fhint{color:rgba(255,255,255,.8);font-size:15.5px;margin:0}
.rp__pick{margin:0;padding:14px 16px;border-radius:12px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12)}
.rp__pick small{display:block;font-size:12.5px;color:rgba(255,255,255,.7);margin-bottom:4px}
.rp__pick b{display:block;font:600 15.5px/1.35 var(--f-head);color:#fff}
.rp__pick[hidden]{display:none}
.rp__next{list-style:none;margin:auto 0 0;padding:16px 0 0;border-top:1px solid rgba(255,255,255,.12);display:grid;gap:12px;counter-reset:rp}
.rp__next li{counter-increment:rp;display:grid;grid-template-columns:26px minmax(0,1fr);gap:12px;font-size:14.5px;line-height:1.45;color:rgba(255,255,255,.85)}
.rp__next li::before{content:counter(rp);width:26px;height:26px;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);display:grid;place-items:center;font:700 12px/1 var(--f-head);color:#fff}
.rp__main{padding:32px 36px;min-width:0}
.form--panel .fbody{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;align-items:start}
.form--panel .fbody>*{grid-column:1 / -1}
.form--panel .fbody>.fld:has(input[name="name"]),.form--panel .fbody>.fld:has(input[name="contact"]){grid-column:auto}
.form--panel .fbody>.fld--check{grid-column:1;align-self:center;margin:0}
.form--panel .fbody>button[type=submit]{grid-column:2;justify-self:end;min-width:240px}
.form--panel .fgrid{gap:0 18px}
.form--panel .fld textarea{min-height:76px}
.form--panel .fok{padding:12px 0}
@media (max-width:1023px){
  form.form--panel.form--req{grid-template-columns:1fr}
  .rp__aside{padding:26px 24px}
  .rp__next{margin-top:4px}
  .rp__main{padding:24px}
}
@media (max-width:640px){
  form.form--panel.form--req{border-radius:16px;margin-top:24px}
  .rp__aside{padding:22px 18px}.rp__main{padding:20px 16px}
  .rp__next{display:none}
  .form--panel .fbody{grid-template-columns:1fr}
  .form--panel .fbody>*,.form--panel .fbody>.fld--check,.form--panel .fbody>button[type=submit]{grid-column:1}
  .form--panel .fbody>.fld--check{margin-bottom:16px}
  .form--panel .fbody>button[type=submit]{justify-self:stretch;min-width:0}
}

/* ---------------------------------------------------------------- 5. calculator total */
.rsum__head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.rsum__toggle{display:none}
.rsum__lbl{font:600 12.5px/1.3 var(--f-head);color:rgba(255,255,255,.7);margin:4px 0 6px}
.rsum__items{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:6px}
.rsum__items li{display:flex;justify-content:space-between;align-items:baseline;gap:12px;font-size:13.5px;line-height:1.4;color:rgba(255,255,255,.85)}
.rsum__items b{flex:none;font:600 13.5px var(--f-head);color:#fff;font-variant-numeric:tabular-nums;text-align:right}
.rsum__items:empty,.rsum__items:empty + .rsum__req[hidden]{display:none}
.rsum__det{display:grid;gap:4px}
.rsum__row b{font-variant-numeric:tabular-nums}
@media (max-width:1023px){
  .rcalc__sum{position:sticky;top:auto;bottom:0;z-index:40;margin-inline:calc(var(--gut) * -1);border-radius:18px 18px 0 0;padding:14px var(--gut) calc(14px + env(safe-area-inset-bottom));gap:10px;box-shadow:0 -14px 34px -16px rgba(10,18,34,.55)}
  .rcalc__sum h3{font-size:15px}
  .rsum__toggle{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:18px;border:1px solid rgba(255,255,255,.25);background:transparent;color:#fff;font:600 13.5px/1 var(--f-head);cursor:pointer}
  .rsum__toggle .ic{width:14px;height:14px;transform:rotate(180deg);transition:transform .2s var(--ease)}
  .rcalc__sum.is-open .rsum__toggle .ic{transform:none}
  .rsum{gap:4px}
  .rsum__row{padding-bottom:4px}
  .rsum__row b{font-size:19px}
  .rcalc__sum:not(.is-open) .rsum__det{display:none}
  .rcalc__sum.is-open .rsum__det{max-height:46vh;overflow:auto;overscroll-behavior:contain}
  .rcalc__sum .btn{min-height:46px}
}

/* ---------------------------------------------------------------- 6. pages */
/* warehouses: city chips → map → panel of the chosen city; map and panel the same height on desktop */
.whmap{align-items:stretch;gap:24px}
.whmap__left{display:flex;flex-direction:column;gap:14px}
.whmap .whcities{margin:0;order:-1}
.whmap__chart{flex:1;min-height:300px;aspect-ratio:auto}
.whmap__panel{display:flex;flex-direction:column;padding:24px 26px}
.whmap__panel .whp{flex:1;align-content:start}
.whp .ticks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px}
.whp__a{margin-top:6px}
.whmap__panel .cat__note{margin-top:14px;font-size:13px}
@media (max-width:1023px){.whmap__chart{min-height:0;aspect-ratio:100/58;flex:none}}
@media (max-width:640px){.whp .ticks{grid-template-columns:1fr}}

/* personal storage: visible actions on the navy block */
.b2c__a{align-items:center;gap:12px}
.b2c__a .btn--light{background:transparent}
.b2c__a .btn--light:hover{background:#fff;color:var(--navy)}
.b2c__link{border:0;background:none;padding:6px 2px;color:#fff;font:600 15px/1.3 var(--f-head);text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(255,255,255,.5);cursor:pointer}
.b2c__link:hover{text-decoration-color:#fff}
@media (max-width:640px){.b2c__a .btn{width:100%}}

/* accounting: cards, comparison and request at one width; features start at the top of each card */
.apack .ticks{align-content:start;gap:10px}
.apack .ticks li{font-size:15px}
.acmp__h{font-size:20px;margin:40px 0 14px}
.acmp{margin-top:0;border:1px solid var(--g200);border-radius:var(--r-lg);background:#fff}
.acmp .cmp{border:0;border-radius:0;table-layout:fixed}
.cmp__c0{width:34%}
.acmp .cmp th,.acmp .cmp td{padding:12px 16px;font-size:14.5px}
.acmp .cmp thead th{font-size:14.5px;line-height:1.3;vertical-align:bottom}
.acmp .cmp tbody tr:last-child th,.acmp .cmp tbody tr:last-child td{border-bottom:0}
.acmp .cmp tbody tr:hover{background:var(--g25)}
#packages .cat__note{margin-top:12px}
/* phones: the first column stays in place while the packages scroll */
@media (max-width:760px){
  .acmp .cmp{min-width:600px}
  .cmp__c0{width:200px}
  .acmp .cmp th[scope="row"],.acmp .cmp thead th:first-child{position:sticky;left:0;z-index:1;background:#fff;box-shadow:1px 0 0 var(--g100)}
  .acmp .cmp thead th:first-child{background:var(--g50)}
  .acmp .cmp th,.acmp .cmp td{padding:10px 12px;font-size:13.5px}
}

/* translators: request block while no profile is published; catalog cards; staff preview marks */
.trnpick{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;align-items:start}
.trnpick__head h2{font-size:clamp(26px,1.3rem + 1vw,34px);line-height:1.2;margin-bottom:14px}
.trnpick__head p{font-size:17px;line-height:1.55;color:var(--g700);max-width:46ch}
.trnpick__cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.trnpick__cols>div{background:var(--g50);border-radius:var(--r-lg);padding:22px 24px}
.trnpick__cols h3{font-size:16px;margin-bottom:12px}
.trnpick__cols .ticks li{font-size:15px}
@media (max-width:1023px){.trnpick{grid-template-columns:1fr;gap:24px}}
@media (max-width:640px){.trnpick__cols{grid-template-columns:1fr}}
.staffnote{display:flex;gap:10px;align-items:flex-start;margin:0 0 18px;padding:12px 16px;border-radius:12px;background:#fff8e6;border:1px solid #f1d58a;font-size:14px;line-height:1.45;color:#5c4400}
.staffnote .ic{flex:none;width:18px;height:18px;margin-top:1px}
.pcard2{padding:22px;gap:12px}
.pcard2__h img,.pcard2__ph{width:84px;height:84px}
.pcard2__h h3{font-size:18px;margin-bottom:2px}
.pcard2__about{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.pcard2 .xcard__f{margin-top:auto;padding-top:12px;border-top:1px solid var(--g100)}
.pcard2.is-draft{border-style:dashed;border-color:#e0b84a}
.pcard2__draft{align-self:flex-start;margin:0;padding:3px 8px;border-radius:6px;background:#fff3d1;color:#6b4e00;font:600 12px/1.3 var(--f-head)}
.pfilters .bsort select{min-height:44px}

/* business tours: route cover while a tour has no photo; photos of other events are marked as illustrations */
.xcard__img--tour{place-items:stretch}
.xcard__img--tour>img{width:100%;height:100%;object-fit:cover}
.tcover{position:relative;display:flex;flex-direction:column;justify-content:space-between;width:100%;height:100%;padding:18px 20px 20px;color:#fff;background:linear-gradient(150deg,var(--navy-700),var(--navy-950));overflow:hidden}
.tcover::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:28px 28px}
.tcover>*{position:relative}
.tcover__ind{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;margin-top:22px;font:700 19px/1.2 var(--f-head);letter-spacing:-.01em}
.tcover__ind .ic{width:22px;height:22px;color:#ff8a98}
.tcover__route{display:flex;align-items:flex-start;gap:0;padding-top:6px}
.tcover__route span{position:relative;flex:1;min-width:0;padding-top:20px;font:600 12.5px/1.3 var(--f-head);color:rgba(255,255,255,.85);overflow-wrap:anywhere}
.tcover__route span::before{content:"";position:absolute;left:0;top:3px;width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.15)}
.tcover__route span::after{content:"";position:absolute;left:14px;right:4px;top:7px;height:2px;background:rgba(255,255,255,.35)}
.tcover__route span:last-child{flex:0 1 auto}
.tcover__route span:last-child::after{display:none}
.tcover__route span:last-child::before{background:var(--red);box-shadow:0 0 0 4px rgba(178,0,21,.3)}
.tcover--lg{min-height:320px;border-radius:12px;padding:28px 32px 30px}
.tcover--lg .tcover__ind{font-size:26px}
.tcover--lg .tcover__route span{font-size:14.5px}
.gallery--cover{display:block}
.xcard__ill{position:absolute;right:10px;bottom:10px;padding:3px 8px;border-radius:6px;background:rgba(10,18,34,.72);color:#fff;font:600 11.5px/1.3 var(--f-head)}
.gallery-fig{margin:0}
.gallery__note{margin-top:8px;font-size:13px;color:var(--g600)}
.gallery img:last-child:nth-child(even){grid-column:1 / -1}
.xcard__img--tour:has(.tcover) .xcard__tag{display:none}
@media (min-width:1024px){.rcalc{grid-template-columns:minmax(0,1.6fr) minmax(310px,1fr)}}
.rsum__row{flex-wrap:wrap;column-gap:10px}
.rsum__row b{font-size:clamp(18px,1.3rem + .4vw,22px);white-space:nowrap}
.rsum__items li{min-width:0}.rsum__items li span{min-width:0;overflow-wrap:anywhere}
.rcalc__sum{min-width:0}
/* narrow phones (320–400 px): action buttons keep one line */
@media (max-width:400px){
  .whp__a{display:grid;grid-template-columns:1fr}
  .whp__a .btn,.b2c__a .btn,.rcalc__sum .btn{white-space:nowrap;font-size:14.5px;padding-inline:12px}
  .b2c__a .btn .ic{margin-right:4px}
}
