/* NVM SERVICE PLAQUES + TOP BADGES v2 — чистые общие шаблоны услуг */

/* Component base for service pages.
   Replaces the legacy per-page WordPress typography resets that were removed
   from resource content. All 91 lists in service markup are decorative
   containers (custom bullets are drawn by markup, not by list-style), so the
   list reset stays as one shared component rule instead of 19 copies.
   Headings and paragraphs now take spacing from their components. */
#nvm-svc ul { list-style: none; margin: 0; padding: 0; }

/* Horizontal containment for service pages.
   Inner carousels (e.g. the HELEO4 mobile spectra slider) scroll inside their
   own overflow-x:auto track, but the page root must clip the overflow so the
   whole document never gains a horizontal scrollbar. overflow-x:clip is used
   instead of hidden so sticky/positioned children keep working. */
#nvm-svc { overflow-x: clip; }
#nvm-svc > * { min-width: 0; }

/* Border style restore.
   The service markup carries a partial Tailwind build: `.border` sets only
   border-width, while Tailwind's preflight rule that sets `border-style: solid`
   on every element was never ported. Without it the browser default `none`
   wins and declared card borders are simply not painted, which is what made
   white cards look flat on the light page background. */
#nvm-svc [class*="border"] { border-style: solid; }

/* Laser calculator theme.
   Every accent surface derives from --calc-accent, which the calculator swaps
   between coral ("Для неё") and mint ("Для него"). Previously these colours were
   hardcoded in the row templates, so half of the UI stayed coral in male mode. */
#novame-laser-root .nm-zone--on { border-color: var(--calc-accent); background: var(--calc-accent-soft); }
#novame-laser-root .nm-zone--off { border-color: #e6ecec; background: #fff; }
#novame-laser-root .nm-zone--off:hover { border-color: var(--calc-accent); }
#novame-laser-root .nm-tick--on { border-color: var(--calc-accent); background: var(--calc-accent); }
#novame-laser-root .nm-tick--off { border-color: #d8e2e0; background: #fff; }
#novame-laser-root .nm-zone-name--on { color: var(--calc-accent); }
#novame-laser-root .nm-chip-accent { background: var(--calc-accent); }
#novame-laser-root .nm-accent-text { color: var(--calc-accent); }

/* Complex/zone row: the name takes the free space and may wrap, the "Выгодно"
   tag follows it and drops onto the next line when the row is narrow, while the
   price is always kept on a single line at the trailing edge. */
#novame-laser-root .nm-row__main { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; min-width: 0; flex: 1 1 auto; }
#novame-laser-root .nm-row__name { min-width: 0; flex: 1 1 auto; }
#novame-laser-root .nm-row__tag { flex: 0 0 auto; }
#novame-laser-root .nm-row__price { flex: 0 0 auto; margin-left: 12px; white-space: nowrap; }

/* Summary panel: the course total and its per-session caption must never split
   the amount from the currency sign, which happened at 390px. */
#novame-laser-root #nm-total-price,
#novame-laser-root #nm-total-old,
#novame-laser-root #nm-per-session-label { white-space: nowrap; }

/* Calculator step selectors (duration / session count).
   Four columns leave only ~76px per control at 390px, which truncates labels
   such as "За 15 − 20%". Below the tablet breakpoint they wrap into 2x2, which
   matches the laser calculator and keeps 44px+ tap targets. */
@media (max-width: 767px) {
  #nvm-svc .grid.grid-cols-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Simulator slider (RSL vibro-compression, Icoone intensity).
   The live value used to sit between the two scale captions, so at 390px the
   three labels touched and read as "дренажМощность". The value now lives above
   the track next to its label; the scale below keeps only the two endpoints. */
#nvm-svc .nvm-sim__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
#nvm-svc .nvm-sim__label { flex: 1 1 auto; min-width: 0; }
#nvm-svc .nvm-sim__value { flex: 0 0 auto; white-space: nowrap; color: var(--calc-accent, var(--c-primary, #bc5850)); }
#nvm-svc .nvm-sim__range { accent-color: var(--calc-accent, var(--c-primary, #bc5850)); }
#nvm-svc .nvm-sim__scale { display: flex; justify-content: space-between; gap: 12px; margin-top: 10px; }
#nvm-svc .nvm-sim__scale > span { flex: 0 1 auto; min-width: 0; }
#nvm-svc .nvm-sim__scale > span:last-child { text-align: right; }

/* Simulator shell.
   The dark panel utility only existed inside the Icoone page styles, so the RSL
   simulator rendered on a transparent background and its canvas floated on the
   white page. Declaring it once here gives both modules (and any future one)
   the same surface without duplicating page-level CSS. */
#nvm-svc .bg-slate-950 { background-color: rgb(2 6 23); }
/* Type inside the dark shell: the simulator heading and legend inherited the
   page ink colour, which is unreadable on the near-black surface. */
#nvm-svc .bg-slate-950 h2,
#nvm-svc .bg-slate-950 h3,
#nvm-svc .bg-slate-950 h4 { color: #f8fafc; }
#nvm-svc .bg-slate-950 p,
#nvm-svc .bg-slate-950 span:not([class*="text-"]),
#nvm-svc .bg-slate-950 div:not([class*="text-"]):not([class*="bg-"]) { color: #cbd5e1; }

/* Card token: white cards sitting on the light page background need a hairline
   so they read as separate surfaces. Applies only to cards that declare a
   white background and a card radius but no border of their own. */
#nvm-svc .bg-white.rounded-2xl:not([class*="border-"]),
#nvm-svc .bg-white.rounded-3xl:not([class*="border-"]):not(.nvm-price-frame-free),
#nvm-svc .bg-white.rounded-xl:not([class*="border-"]) {
  border: 1px solid #d8e2e0;
  box-shadow: 0 4px 14px rgba(15, 23, 42, .06);
}
#nvm-svc .border-none { border-style: none; }
#nvm-svc .border-dashed { border-style: dashed; }
#nvm-svc .border-dotted { border-style: dotted; }

/* Mobile hero gap standard: one component rule for every hero markup variant.
   Replaces the removed nv_base_css patch that used 35px with !important and
   only covered part of the pages. */
@media (max-width: 1024px) {
  #nvm-svc .nvm-mobile-hero-photo,
  #nvm-aq .nvm-mobile-hero-photo { margin: 0 0 24px; }
  #nvm-aq .nvm-hero { gap: 0; }
  #nvm-aq .nvm-hero-media { margin-bottom: 24px; }
}

/* Section plaque: centred heading and centred note, symmetric inner padding.
   Notes are matched by position inside the plaque (not by adjacency), because
   legacy markup places extra nodes between the heading and the note. */
#nvm-svc .nvm-section-plaque,
#nvm-aq .nvm-head {
  box-sizing: border-box;
  text-align: center;
}
#nvm-svc .nvm-section-plaque > h2,
#nvm-svc .nvm-section-plaque > h3,
#nvm-aq .nvm-head .nvm-h2 {
  margin: 0;
  text-align: center;
}
#nvm-svc .nvm-section-plaque > p,
#nvm-svc .nvm-section-plaque > blockquote,
#nvm-aq .nvm-head .nvm-lead {
  max-width: 900px;
  margin: 20px auto 0;
  text-align: center;
}
#nvm-svc .nvm-section-plaque > h2:first-child,
#nvm-svc .nvm-section-plaque > h3:first-child,
#nvm-svc .nvm-section-plaque > p:first-child,
#nvm-svc .nvm-section-plaque > blockquote:first-child,
#nvm-aq .nvm-head > :first-child {
  margin-top: 0;
}
/* NVM service top badge, caption and PLLA spacing standard v9 — exact header gap and exact CTA-to-breadcrumb gap. */
@media(min-width:1025px){
  #nvm-svc .nvm-service-hero-shell{padding-top:30px!important;padding-bottom:0!important;}
  #nvm-aq > .nvm-sec:first-of-type{padding-top:30px!important;padding-bottom:0!important;}
  #nvm-svc #novame-heleo-root > #nvm-h4-pc-hero{padding-top:30px!important;padding-bottom:0!important;}
  #nvm-svc>#novame-laser-root>.nvm-top-badge-wrap,
  #nvm-svc>.nvm-top-badge-wrap{margin-top:30px!important;}
  /* PLLA: parent padding prevents first-child margin collapsing against the root. */
  #nvm-svc>#novame-pla-root{padding-top:30px!important;}
  #nvm-svc>#novame-pla-root>.nvm-top-badge-wrap{margin-top:0!important;}
  .nvm-top-badge-wrap{box-sizing:border-box!important;display:block!important;position:relative!important;left:auto!important;transform:none!important;width:700px!important;max-width:700px!important;height:32px!important;min-height:32px!important;max-height:32px!important;margin-right:auto!important;margin-bottom:30px!important;margin-left:auto!important;padding:0!important;}
  .nvm-badge-std{box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;width:700px!important;max-width:700px!important;height:32px!important;min-height:32px!important;max-height:32px!important;margin:0!important;padding:0 24px!important;color:#1A7F74!important;font:700 16px/1 Bellota,Arial,sans-serif!important;letter-spacing:.01em!important;text-align:center!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;background:rgba(26,127,116,.06)!important;border:1px solid rgba(26,127,116,.5)!important;border-radius:999px!important;box-shadow:none!important;}
}
@media(max-width:1024px){
  #nvm-svc .nvm-section-plaque{padding:20px;}
  #nvm-svc .nvm-service-hero-shell{padding-top:20px!important;padding-bottom:0!important;}
  #nvm-aq > .nvm-sec:first-of-type{padding-top:20px!important;padding-bottom:0!important;}
  #nvm-svc #novame-heleo-root > #nvm-h4-pc-hero{padding-top:20px!important;padding-bottom:0!important;}
  #nvm-svc>#novame-laser-root>.nvm-top-badge-wrap,
  #nvm-svc>.nvm-top-badge-wrap{margin-top:20px!important;}
  /* PLLA: match mobile badge standard without margin collapsing. */
  #nvm-svc>#novame-pla-root{padding-top:20px!important;}
  #nvm-svc>#novame-pla-root>.nvm-top-badge-wrap{margin-top:0!important;}
  .nvm-top-badge-wrap{box-sizing:border-box!important;display:block!important;position:relative!important;left:auto!important;transform:none!important;width:300px!important;max-width:calc(100vw - 32px)!important;height:32px!important;min-height:32px!important;max-height:32px!important;margin-right:auto!important;margin-bottom:30px!important;margin-left:auto!important;padding:0!important;}
  .nvm-badge-std{box-sizing:border-box!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;width:300px!important;max-width:100%!important;height:32px!important;min-height:32px!important;max-height:32px!important;margin:0!important;padding:0 14px!important;color:#1A7F74!important;font:700 13px/1 Bellota,Arial,sans-serif!important;letter-spacing:.01em!important;text-align:center!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;background:rgba(26,127,116,.06)!important;border:1px solid rgba(26,127,116,.5)!important;border-radius:999px!important;box-shadow:none!important;}
}

/* NVM CANVAS WORKAREAS v1 — единый ПК-шаблон внешней рабочей области */
@media(min-width:1025px){#nvm-svc .nvm-canvas-workarea{box-sizing:border-box!important;width:1240px!important;max-width:100%!important;margin-inline:auto!important}#nvm-svc .nvm-canvas-stage{width:100%!important;max-width:none!important}#novame-glow-root .nvm-canvas-bleed{width:calc(100% + 64px)!important;max-width:none!important;margin-inline:-32px!important}}

/* NVM THREE PHOTO STANDARD v1 — AFT-пигментация: три равные карточки 1×1 */
@media(min-width:1025px){#novame-pigment-root .nvm-three-photo-standard{box-sizing:border-box!important;width:1240px!important;max-width:100%!important;margin-inline:auto!important;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:20px!important}#novame-pigment-root .nvm-three-photo-standard>div{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:16px!important}#novame-pigment-root .nvm-three-photo-standard>div>div:first-child{width:100%!important;max-width:none!important;aspect-ratio:1!important}#novame-pigment-root .nvm-three-photo-standard>div>div:last-child{width:100%!important;max-width:none!important;text-align:center!important}}
@media(max-width:1024px){#novame-pigment-root .nvm-three-photo-standard{box-sizing:border-box!important;width:calc(100% + 12px)!important;max-width:none!important;margin-inline:-6px!important;display:grid!important;gap:20px!important}#novame-pigment-root .nvm-three-photo-standard>div{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:12px!important}#novame-pigment-root .nvm-three-photo-standard>div>div:first-child{width:100%!important;max-width:none!important;aspect-ratio:1!important}#novame-pigment-root .nvm-three-photo-standard>div>div:last-child{width:100%!important;max-width:none!important;text-align:center!important}}

/* NVM SERVICE 1240 MOBILE GEOMETRY v1 — единый отступ 10 px от viewport */
@media(max-width:1024px){#nvm-svc .nvm-service-1240{box-sizing:border-box!important;position:relative!important;left:50%!important;transform:translateX(-50%)!important;width:calc(100vw - 20px)!important;max-width:none!important;margin-left:0!important;margin-right:0!important}}
/* NVM PLLA COMPARE TABLE v1 — isolated mobile comparison table */
@media(max-width:767px){
  .nvm-plla-compare-scroll{overflow-x:visible!important}
  .nvm-plla-compare-table{width:100%!important;table-layout:fixed!important;font-size:11px!important}
  .nvm-plla-compare-table th,.nvm-plla-compare-table td{padding:8px 4px!important;vertical-align:top!important;overflow-wrap:anywhere!important;word-break:break-word!important}
  .nvm-plla-compare-table th:nth-child(1),.nvm-plla-compare-table td:nth-child(1){width:31%!important}
  .nvm-plla-compare-table th:nth-child(2),.nvm-plla-compare-table td:nth-child(2){width:31%!important}
  .nvm-plla-compare-table th:nth-child(3),.nvm-plla-compare-table td:nth-child(3){width:38%!important}
}

/* Clean service hero core. The top badge is intentionally excluded. */
.nvm-hero-core {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 720px) 420px;
  justify-content: space-between;
  align-items: start;
  column-gap: 100px;
}
.nvm-hero-core__content {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
}
/* D7: bottom of the actions row aligns with the bottom of the media frame. */
@media (min-width: 1025px) {
  .nvm-hero-core { align-items: stretch; }
  .nvm-hero-core__media--desktop { align-self: stretch; }
  .nvm-hero-core__content > .nvm-hero-core__benefits { margin-top: auto; }
}
.nvm-hero-core__media--mobile { display: none; }
.nvm-hero-core__media--desktop {
  display: block;
  width: 420px;
  align-self: start;
}
.nvm-hero-core__frame {
  position: relative;
  width: 100%;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  border: 4px solid #fff;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 18px 40px rgba(15, 23, 42, .14);
}
.nvm-hero-core__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.nvm-hero-core__shade {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, transparent 48%, rgba(15, 23, 42, .5) 100%);
}
.nvm-hero-core__caption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  padding: 12px 16px;
  border: 0;
  border-top: 1px solid rgba(255,255,255,.72);
  border-radius: 0;
  background: rgba(255,255,255,.96);
  color: #0f172a;
  text-align: center;
  box-shadow: none;
}
/* Aquapure uses .nvm-glass rather than the clean hero caption class. */
#nvm-aq .nvm-glass{
  right:0!important;
  bottom:0!important;
  left:0!important;
  padding:12px 16px!important;
  border:0!important;
  border-top:1px solid rgba(255,255,255,.42)!important;
  border-radius:0!important;
  background:rgba(15,23,42,.94)!important;
  color:#fff!important;
  box-shadow:none!important;
}
#nvm-aq .nvm-glass p{color:#fff!important;}
#nvm-aq .nvm-glass p+p{color:rgba(255,255,255,.86)!important;}
.nvm-hero-core__caption-title,
.nvm-hero-core__caption-text { margin: 0; }
.nvm-hero-core__caption-title { font-size: 14px; font-weight: 800; line-height: 1.25; }
.nvm-hero-core__caption-text { margin-top: 4px; font-size: 13px; font-weight: 700; line-height: 1.3; color: #334155; }
.nvm-hero-core__title {
  margin: 0;
  color: #0f172a;
  font-size: 48px;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.025em;
}
.nvm-hero-core__accent { color: #bc5850; }
.nvm-hero-core__description {
  max-width: 640px;
  margin: 20px 0 0;
  color: #1e293b;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.48;
}
.nvm-hero-core__benefits {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  width: 720px;
  max-width: 100%;
  margin-top: 24px;
}
.nvm-hero-core__benefit {
  display: flex;
  align-items: center;
  min-height: 72px;
  padding: 16px;
  border: 1px solid #d8e2e0;
  border-left: 3px solid #bc5850;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(15,23,42,.06);
}
.nvm-hero-core__benefit--mint { border-left-color: #1a7f74; }
.nvm-hero-core__benefit-icon {
  margin-right: 12px;
}
.nvm-service-icon {
  display: inline-flex;
  flex: 0 0 28px;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.nvm-service-icon > .nvm-service-icon__glyph {
  display: block;
  width: 20px;
  height: 20px;
  max-width: 100%;
  max-height: 100%;
}
.nvm-hero-core__benefit-title,
.nvm-hero-core__benefit-text { margin: 0; }
.nvm-hero-core__benefit-title { color: #0f172a; font-size: 16px; font-weight: 700; line-height: 1.2; }
.nvm-hero-core__benefit-text { margin-top: 3px; color: #475569; font-size: 14px; font-weight: 600; line-height: 1.25; }
.nvm-hero-core__actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  width: 720px;
  max-width: 100%;
  margin-top: 20px;
  padding-top: 0;
}
.nvm-hero-core__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  height: 56px;
  padding: 0 28px;
  border: 1px solid #d8e2e0;
  border-radius: 999px;
  color: #0f172a;
  background: #fff;
  font-size: 16px;
  font-weight: 600;
  line-height: 1;
  text-decoration: none;
}
.nvm-hero-core__button--primary { border-color: #bc5850; color: #fff; background: #bc5850; }
.nvm-hero-core__button .nvm-ico { width: 18px; height: 18px; margin-left: 10px; }
@media (max-width: 1024px) {
  .nvm-hero-core {
    width: calc(100% - 32px);
    margin-right: 16px;
    margin-left: 16px;
    display: flex;
    flex-direction: column;
    gap: 0;
  }
  .nvm-hero-core__media--desktop { display: none; }
  /* D1: explicit breathing room between the mobile hero media and the H1. */
  .nvm-hero-core__media--mobile { display: block; order: -1; width: 100%; margin-bottom: 24px; }
  .nvm-hero-core__content { order: 2; min-height: 0; align-items: center; text-align: center; }
  .nvm-hero-core__frame { width: 100%; border-width: 0; border-radius: 10px; }
  .nvm-hero-core__title { width: 100%; margin-top: 0; font-size: 28px; line-height: 1.18; }
  .nvm-hero-core__description { width: 100%; max-width: none; margin-top: 20px; font-size: 15px; line-height: 1.42; }
  .nvm-hero-core__benefits { grid-template-columns: 1fr; gap: 20px; width: 100%; margin-top: 20px; }
  .nvm-hero-core__benefit { min-height: 76px; text-align: left; }
  .nvm-hero-core__actions { grid-template-columns: 1fr; gap: 20px; width: 100%; margin-top: 20px; padding-top: 0; }
  .nvm-hero-core__button { width: 100%; height: 52px; }
}

/* NVM breadcrumb standard v2 — centered; exact CTA-to-breadcrumb gap. */
@media(min-width:1025px){
  .nvm-breadcrumbs{box-sizing:border-box;width:min(1240px,calc(100% - 32px));margin:24px auto 32px;padding:0;font-family:'Bellota','Inter',sans-serif;}
}
@media(max-width:1024px){
  .nvm-breadcrumbs{box-sizing:border-box;width:calc(100% - 32px);margin:16px 16px 24px;padding:0;font-family:'Bellota','Inter',sans-serif;}
}
.nvm-breadcrumbs__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;min-height:28px;color:#6b7280;font-size:14px;line-height:1.35;text-align:center;}
.nvm-breadcrumbs__link{color:#536963;text-decoration:none;text-underline-offset:3px;}
.nvm-breadcrumbs__link:hover,.nvm-breadcrumbs__link:focus-visible{color:#c75d51;text-decoration:underline;}
.nvm-breadcrumbs__separator{color:#a8aaa8;user-select:none;}
.nvm-breadcrumbs__current{color:#1f2937;}
@media(max-width:1024px){.nvm-breadcrumbs__inner{font-size:12px;gap:5px;min-height:24px;}}

/* Unified calculator booking CTA */
.nvm-calc-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 52px;
  padding: 0 20px;
  /* Inherits the calculator accent so the CTA follows the gender theme
     (coral for the default state, mint for "Для него"). Falls back to the
     brand primary when the CTA is used outside a themed calculator. */
  border: 1px solid var(--calc-accent, var(--c-primary, #bc5850));
  border-radius: 14px;
  background: var(--calc-accent, var(--c-primary, #bc5850));
  color: #fff;
  font: 600 16px/1.2 'Bellota', 'Inter', sans-serif;
  text-decoration: none;
}
.nvm-calc-cta:hover,
.nvm-calc-cta:focus-visible { background: color-mix(in srgb, var(--calc-accent, var(--c-primary, #bc5850)) 88%, #000); border-color: color-mix(in srgb, var(--calc-accent, var(--c-primary, #bc5850)) 88%, #000); color: #fff; }
.nvm-calc-cta__icon { width: 20px; height: 20px; margin-right: 10px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 1024px) { .nvm-calc-cta { width: 100%; } }

/* Aquapure hero: three balanced benefits */
#nvm-aq .nvm-grid2.nvm-hero-benefits--three { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
@media (max-width: 1024px) { #nvm-aq .nvm-grid2.nvm-hero-benefits--three { grid-template-columns: 1fr; gap: 20px; } }

/* Service content media: aspect-ratio belongs to the container, never to a stretched image. */
#nvm-svc .aspect-\[16\/9\] > picture,
#nvm-svc .aspect-square > picture {
  display: block;
  width: 100%;
  height: 100%;
}

#nvm-svc .aspect-\[16\/9\] > picture > img,
#nvm-svc .aspect-square > picture > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Science layout: concise mechanism beside media, long-form content below the row.
   The media column must stay on the first row next to .nvm-science__top, so the
   long-form block is explicitly placed on the second row across all columns. */
@media (min-width: 1025px) {
  #nvm-svc .nvm-science-layout { row-gap: 48px; }
  #nvm-svc .nvm-science-layout > .nvm-science__column { display: contents; }
  #nvm-svc .nvm-science-layout .nvm-science__top { grid-row: 1; grid-column: 1 / span 7; align-self: start; }
  #nvm-svc .nvm-science-layout > .nvm-science__column ~ * { grid-row: 1; grid-column: 8 / -1; align-self: start; }
  #nvm-svc .nvm-science-layout .nvm-science__long { grid-row: 2; grid-column: 1 / -1; width: 100%; margin: 0; }
}

/* Shared service price layout. Existing filters and table/list logic remain untouched. */
#nvm-svc .nvm-price-layout-standard {
  box-sizing: border-box;
  width: min(1240px, calc(100% - 32px));
  margin-inline: auto;
  padding-block: 40px;
}
#nvm-svc .nvm-price-layout-standard > .max-w-7xl {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}
#nvm-svc .nvm-price-layout-standard .nvm-section-plaque {
  margin-bottom: 40px;
}
#nvm-svc .nvm-price-layout-standard .bg-white {
  background: #fff;
}
@media (max-width: 1024px) {
  #nvm-svc .nvm-price-layout-standard {
    width: calc(100% - 32px);
    max-width: none;
    margin-inline: auto;
    padding-block: 20px;
  }
  #nvm-svc .nvm-price-layout-standard .nvm-section-plaque {
    margin-bottom: 20px;
  }
}


/* NVM ICOONE PRICE SECTIONS v1 — structured programme and tariff columns. */
#nvm-icoone-price .nvm-icoone-price__table { table-layout: fixed; }
#nvm-icoone-price .nvm-icoone-price__table thead th { vertical-align: middle; line-height: 1.25; }
#nvm-icoone-price .nvm-icoone-price__table thead th:first-child { width: 33%; }
#nvm-icoone-price .nvm-icoone-price__table thead th + th,
#nvm-icoone-price .nvm-icoone-price__table tbody td + td { border-left: 1px solid #d8e2e0; }
#nvm-icoone-price .nvm-icoone-price__table tbody tr + tr td { border-top: 1px solid #d8e2e0; }
#nvm-icoone-price .nvm-icoone-price__table tbody td:first-child { padding-right: 28px; }
@media (max-width: 639px) {
  #nvm-icoone-price .nvm-icoone-price__mobile { display: grid; gap: 20px; }
  #nvm-icoone-price .nvm-icoone-price__mobile > div { margin-top: 0; }
  #nvm-icoone-price .nvm-icoone-price__mobile > div > div:first-child { gap: 12px; }
}


/* NVM PHONE VIDEO v1 — one reusable phone shell; video loading and playback logic remain in chunk-service-video. */

/* Подпись внутри корпуса видео: белая плашка, прижата к нижней кромке экрана. */

/* Подпись симулятора над холстом. Позиционирование задаёт компонент целиком —
   утилиты absolute/top/left/z из разметки убраны, поэтому конфликта нет.
   Мобильный: обычный блок в потоке над холстом, по центру, на всю ширину.
   ПК: плашка лежит поверх тёмной панели в левом верхнем углу. */
#nvm-svc .nvm-canvas-badge {
  position: static;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 100%;
  min-height: 36px;
  margin: 0 0 12px;
  padding: 6px 10px;
  font-size: 13px;
  line-height: 1.2;
  text-align: center;
  white-space: nowrap;
}
@media (min-width: 1024px) {
  #nvm-svc .nvm-canvas-badge {
    position: absolute;
    top: 16px;
    left: 16px;
    z-index: 10;
    width: auto;
    margin: 0;
    text-align: left;
    white-space: nowrap;
  }
}

/* NVM POKAZ COMPONENT v1 */
/* ==========================================================================
   NVM — блоки показаний и противопоказаний (компонент вместо инлайн-стилей).
   Ранее геометрия и цвета этих блоков задавались инлайн с !important на
   каждой странице услуг (до 65 объявлений на страницу). Компонент повторяет
   ту же визуальную форму, но правится в одном месте и без !important.
   ========================================================================== */
.nvm-pokaz-setka {
  display: block;
  max-width: 1240px;
  margin: 0 auto;
  background: transparent;
}
.nvm-pokaz {
  border: 1px solid rgba(184, 92, 79, .5);
  border-left: 3px solid #b85c4f;
  border-radius: 20px;
  padding: 20px;
  margin: 0 0 20px;
  box-shadow: none;
  background: transparent;
}
.nvm-pokaz--terra { border-color: rgba(184, 92, 79, .5); border-left-color: #b85c4f; }
.nvm-pokaz--myata { border-color: rgba(26, 127, 116, .5); border-left-color: #1a7f74; }
.nvm-pokaz--zhelt { border-color: rgba(200, 145, 47, .5); border-left-color: #c8912f; }
.nvm-pokaz-znak {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  background: transparent;
  color: #b85c4f;
}
.nvm-pokaz--myata .nvm-pokaz-znak { color: #1a7f74; }
.nvm-pokaz--zhelt .nvm-pokaz-znak { color: #c8912f; }

/* Точечные акценты, ранее заданные инлайн. */
.nvm-accent-left--coral { border-left-color: #bc5850; }
.nvm-accent-left--teal { border-left-color: #1a7f74; }
.nvm-text--coral { color: #bc5850; }
.nvm-text--teal { color: #1a7f74; }
.nvm-bg--coral { background-color: #bc5850; }
.nvm-bg--teal { background-color: #1a7f74; }
.nvm-accent-color--coral { accent-color: #bc5850; }
.nvm-mt-32 { margin-top: 32px; }

/* Остаточные инлайн-декларации, вынесенные в классы. */
.nvm-accent-left--teal-box {
  border-left: 3px solid #1a7f74;
}
.nvm-metric-row {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  font-weight: 700;
  color: #44403c;
  margin-bottom: 4px;
}
.nvm-text--ink { color: #0c0a09; font-weight: 800; }
.nvm-note-box {
  background-color: #f5f5f4;
  border: 1px solid #cbd5e1;
  padding: 12px;
  border-radius: 12px;
}
.nvm-canvas-surface { background-color: #fff; border-color: #cbd5e1; }


/* Табличные и справочные элементы страниц услуг, ранее заданные инлайн. */
.nvm-meta-label {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: #57534e;
  text-transform: uppercase;
  line-height: 1.2;
}

.nvm-meta-value {
  display: block;
  font-size: 13px;
  font-weight: 800;
  color: #1c1917;
  margin-top: 4px;
}
.nvm-meta-hint {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  font-weight: 800;
  color: #0369a1;
  margin-top: 4px;
  line-height: 1.2;
}
.nvm-body-13 {
  font-size: 13px;
  font-weight: 700;
  color: #1c1917;
  line-height: 1.5;
}
.nvm-note-muted {
  color: #78716c;
  font-size: 13px;
  font-weight: 600;
  margin: 0;
}
.nvm-divider-top {
  border-top: 1px solid #cbd5e1;
  margin-top: 32px;
  padding-top: 16px;
}
.nvm-soft-box {
  background-color: #fafaf9;
  border: 1px solid #cbd5e1;
  padding: 16px;
  border-radius: 12px;
}
.nvm-grid-2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.nvm-accent-left--coral-only {
  border-left: 3px solid #bc5850;
  border-top: 0;
  border-right: 0;
  border-bottom: 0;
  padding-left: 18px;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  margin: 0;
}
.nvm-panel-dark {
  background-color: #1e293b;
  color: #f8fafc;
}
.nvm-max-100 { max-width: 100%; }
.nvm-accent-color--teal { accent-color: #1a7f74; }

/* Тёмная панель симулятора: заголовок, подпись и легенда. */
.nvm-panel-dark__kicker {
  color: #bc5850;
  font-weight: 900;
  font-size: 13px;
}
.nvm-panel-dark__title {
  color: #fff;
  font-weight: 800;
  font-size: 20px;
  margin: 4px 0 0;
  line-height: 1.3;
}
.nvm-panel-dark__meta {
  color: #cbd5e1;
  font-size: 13px;
  font-weight: 700;
}
.nvm-panel-light {
  background-color: #fff;
  color: #1c1917;
  padding: 24px;
}
.nvm-panel-light__title {
  color: #1c1917;
  border-bottom: 1px solid #cbd5e1;
  font-size: 18px;
  font-weight: 800;
  margin: 0 0 16px;
  padding-bottom: 12px;
}
.nvm-progress-fill--coral { background-color: #bc5850; transition: width .1s ease; }
.nvm-progress-fill--teal { background-color: #1a7f74; transition: width .3s ease; }
.nvm-section-divider {
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid #e2e8f0;
}
.nvm-mt-24 { margin-top: 1.5rem; }
.nvm-text--rose-soft { color: #fbefec; opacity: .8; }
.nvm-text--coral-soft { color: #e3a79f; }

.nvm-fw-800 { font-weight: 800; }

.nvm-meta-caption-alt {
  font-size: 13px;
  font-weight: 800;
  color: #57534e;
  text-transform: uppercase;
  margin: 0 0 8px;
}

/* R9 — mobile-only static label above interactive canvas. */
.nvm-canvas-badge--mobile { position: relative; z-index: 20; flex: 0 0 auto; background: rgba(15, 23, 42, .88); color: #e2e8f0; border: 1px solid rgba(148, 163, 184, .4); border-radius: 999px; }
@media (min-width: 1024px) { .nvm-canvas-badge--mobile { display: none; } }
