/* ══════════════════════════════════════════════════════════════════════════
   css/ivf-cost-calculator.css — THE IVF COST CALCULATOR  (prefix fw-ivc)
   /ivf-cost-calculator, /ivf-cost-calculator/<country>[/<treatment>]

   Rebuilt 28 Sep 2026 as an app that is also a page: a country rail, a
   three-step builder beside an estimate that stays in view, and four
   charts drawn as inline SVG by PHP (so they are in the HTML a crawler
   reads) and redrawn by the script when you add cycles or extras.

   House rules, all kept: bright grounds only, depth from blurred brand
   discs and tinted whites; no max-width on any section or text (the grid
   holds the measure); colour only from :root, chart marks from --dv-*;
   28px / 14px gutters. The tool band holds an application, so it is
   exempt from the 55vh cap. The estimate is the one tinted surface: it
   is the answer, and it has to read as one object while it moves.

   NO INLINE STYLES. A chart's positions are SVG attributes (x, width,
   cx as percentages), never style="…".

   MOTION: the script adds .is-js to <main>; controls that only work with
   the script (cycles, sort) stay hidden without it. .is-busy dims the
   answer while the next one is fetched. prefers-reduced-motion turns
   every transition off.
   ══════════════════════════════════════════════════════════════════════════ */

/* ══════════════════════════════════════════════════════════════
   00 · TOKENS & PRIMITIVES
   ══════════════════════════════════════════════════════════════ */
.fw-ivc-page{
	--pad:28px;
	--ink:var(--dk-d);
	--line:color-mix(in srgb, var(--dk) 9%, transparent);
	--line-soft:color-mix(in srgb, var(--dk) 5.5%, transparent);
	--sec:clamp(48px, 8vh, 96px);
	--ease:cubic-bezier(.22,1,.36,1);
	--ease-pop:cubic-bezier(.34,1.56,.64,1);
	--sticky-top:132px;
	background:var(--wh);
}
.fw-ivc{display:block;position:relative;transition:opacity .25s var(--ease)}
.fw-ivc em{font-family:var(--ff);font-style:normal}
.fw-ivc.is-busy{opacity:.55;pointer-events:none}
.fw-ivc-inner{position:relative;z-index:1;width:100%;padding-inline:var(--pad)}
.fw-ivc-sec{position:relative;padding:var(--sec) 0}
.fw-ivc-sec + .fw-ivc-sec{border-top:1px solid var(--line-soft)}

/* Chart colours, one class per categorical slot, fixed order. */
.fw-ivc-c1{fill:var(--dv-c1);background:var(--dv-c1)}
.fw-ivc-c2{fill:var(--dv-c2);background:var(--dv-c2)}
.fw-ivc-c3{fill:var(--dv-c3);background:var(--dv-c3)}
.fw-ivc-c4{fill:var(--dv-c4);background:var(--dv-c4)}
.fw-ivc-c5{fill:var(--dv-c5);background:var(--dv-c5)}
.fw-ivc-c6{fill:var(--dv-c6);background:var(--dv-c6)}
.fw-ivc-key{display:inline-block;width:10px;height:10px;border-radius:3px;flex:none}

/* Script-only controls. */
.fw-ivc:not(.is-js) .fw-ivc-step--js{display:none}

/* ── type ── */
.fw-ivc-head{display:flex;flex-direction:column;gap:10px;margin-bottom:clamp(22px, 3.4vh, 36px)}
.fw-ivc-head--row{flex-direction:row;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.fw-ivc-eyebrow{
	display:inline-flex;align-items:center;gap:8px;margin:0;
	font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--pk-dd)
}
.fw-ivc-eyebrow .fw-ico{width:16px;height:16px;flex:none}
.fw-ivc-h2{
	margin:0;font-family:var(--ff);font-weight:600;color:var(--ink);
	font-size:clamp(26px, 4.2vh, 42px);line-height:1.12;letter-spacing:-.02em;text-wrap:balance
}
.fw-ivc-h3{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-family:var(--ff);font-size:16px;font-weight:600;color:var(--ink)}
.fw-ivc-sub,.fw-ivc-lead{margin:0;font-size:clamp(14.5px, 1.9vh, 17px);line-height:1.65;color:var(--g6);text-wrap:pretty}
.fw-ivc-lead{font-size:clamp(16px, 2.2vh, 19.5px);color:var(--g7)}
.fw-ivc-hint{margin:12px 0 0;font-size:13.5px;line-height:1.6;color:var(--g5)}
.fw-ivc-legend{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;margin:6px 0 0;font-size:12.5px;color:var(--g6)}
.fw-ivc-legend .fw-ivc-key{margin-right:-6px}

/* ── buttons & links ── */
.fw-ivc-btn{
	display:inline-flex;align-items:center;justify-content:center;gap:9px;
	min-height:48px;padding:0 22px;border-radius:999px;
	background:var(--pk-dd);color:var(--wh);font-size:15px;font-weight:600;
	box-shadow:var(--pk-glow);transition:transform .25s var(--ease), background .25s var(--ease), box-shadow .25s var(--ease)
}
.fw-ivc-btn:hover{color:var(--wh);background:var(--pk-d);transform:translateY(-1px);box-shadow:var(--pk-glow-lg)}
.fw-ivc-btn--ghost{background:var(--wh);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.fw-ivc-btn--ghost:hover{background:var(--pk-wash);color:var(--pk-dd);box-shadow:inset 0 0 0 1px var(--pk-edge)}
.fw-ivc-btn .bi{transition:transform .25s var(--ease)}
.fw-ivc-btn:hover .bi{transform:translateX(3px)}
.fw-ivc-more{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--pk-dd)}
.fw-ivc-more:hover{color:var(--pk-d)}
.fw-ivc-more .bi{transition:transform .25s var(--ease)}
.fw-ivc-more:hover .bi{transform:translateX(4px)}

/* ══════════════════════════════════════════════════════════════
   01 · MASTHEAD — the answer first
   ══════════════════════════════════════════════════════════════ */
/* Canvas colours a span inside a heading over a one-class rule, so the
   second line is scoped through the page (see the masthead's own note). */
.fw-ivc .fw-ivc-mast .fw-mast__h1 span{color:var(--pk-dd);font-size:.64em;line-height:1.2;margin-top:.3em;letter-spacing:-.015em}
.fw-ivc-answer{
	display:grid;gap:6px;margin:clamp(14px, 2.4vh, 24px) 0 clamp(10px, 1.8vh, 18px);
	padding:0 0 0 18px;border-left:3px solid var(--pk)
}
.fw-ivc-answer__for{display:flex;align-items:center;gap:9px;margin:0;font-size:14px;font-weight:600;color:var(--g7)}
.fw-ivc-answer__flag{width:22px;height:auto;aspect-ratio:4/3;border-radius:3px;box-shadow:0 0 0 1px var(--line)}
.fw-ivc-answer__fig{
	margin:0;font-family:var(--ff);font-weight:700;color:var(--ink);
	font-size:clamp(30px, 3.3vw, 54px);line-height:1.05;letter-spacing:-.025em;font-variant-numeric:tabular-nums
}
.fw-ivc-answer__fig small{font-size:.36em;font-weight:500;letter-spacing:0;color:var(--g6)}
.fw-ivc-answer__src{display:flex;align-items:center;gap:8px;margin:0;font-size:13px;color:var(--g6)}
.fw-ivc-live{position:relative;width:8px;height:8px;border-radius:50%;background:var(--mt-d);flex:none}
.fw-ivc-live::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--mt);opacity:0;animation:fw-ivc-ping 2.4s var(--ease) infinite}
@keyframes fw-ivc-ping{0%{transform:scale(.5);opacity:.8}100%{transform:scale(1.6);opacity:0}}
.fw-ivc-stats .fw-mast__stat-t b{font-variant-numeric:tabular-nums}

.fw-ivc-cover{aspect-ratio:4/3.4;max-height:min(66vh, 640px)}
.fw-ivc-cover__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 40%}

/* ══════════════════════════════════════════════════════════════
   02 · RAILS — countries, clinics, doctors
   A scroll-snap row that starts on the gutter and runs off the
   right edge, so a swipe is the obvious gesture.
   ══════════════════════════════════════════════════════════════ */
.fw-ivc-rail{
	display:grid;grid-auto-flow:column;grid-auto-columns:clamp(220px, 19vw, 300px);gap:16px;
	margin:0;padding:6px var(--pad) 18px;list-style:none;
	overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);
	scrollbar-width:none
}
.fw-ivc-rail::-webkit-scrollbar{display:none}
.fw-ivc-rail__item{scroll-snap-align:start;min-width:0}
.fw-ivc-arrows{display:flex;gap:8px}
.fw-ivc-arrow{
	width:46px;height:46px;border-radius:50%;display:grid;place-items:center;
	background:var(--wh);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink);font-size:18px;
	transition:background .2s var(--ease), color .2s var(--ease), box-shadow .2s var(--ease)
}
.fw-ivc-arrow:hover{background:var(--pk-dd);color:var(--wh);box-shadow:none}
.fw-ivc-arrow:disabled{opacity:.35;pointer-events:none}

/* ── a country ── */
.fw-ivc-where{padding-bottom:clamp(20px, 3vh, 36px);background:linear-gradient(180deg, var(--paper-p3), var(--wh))}
.fw-ivc-where + .fw-ivc-tool{border-top:0}
.fw-ivc-ctry{
	position:relative;display:flex;flex-direction:column;justify-content:space-between;
	aspect-ratio:4/4.6;border-radius:22px;overflow:hidden;isolation:isolate;
	padding:14px;color:var(--wh);background:linear-gradient(150deg, var(--bl-d), var(--pk-dd));
	box-shadow:0 0 0 1px var(--line-soft);transition:transform .35s var(--ease), box-shadow .35s var(--ease)
}
.fw-ivc-ctry:hover{color:var(--wh);transform:translateY(-4px);box-shadow:var(--sh-soft)}
.fw-ivc-ctry__pic{position:absolute;inset:0;z-index:-1}
.fw-ivc-ctry__pic img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.fw-ivc-ctry:hover .fw-ivc-ctry__pic img{transform:scale(1.06)}
.fw-ivc-ctry__pic::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, var(--ink-a12) 0%, transparent 34%, var(--veil) 70%, var(--ink-a40) 100%)}
.fw-ivc-ctry__top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.fw-ivc-ctry__flag{width:34px;height:auto;aspect-ratio:4/3;border-radius:5px;box-shadow:0 0 0 2px var(--wh-a20)}
.fw-ivc-ctry__n{padding:5px 10px;border-radius:999px;background:var(--wh-a20);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:12px;font-weight:600}
.fw-ivc-ctry__body{display:grid;gap:3px}
.fw-ivc-ctry__name{font-size:21px;font-weight:600;line-height:1.15;letter-spacing:-.01em}
.fw-ivc-ctry__from{font-size:14px;opacity:.94}
.fw-ivc-ctry__from strong{font-size:17px;font-weight:700}
.fw-ivc-ctry__what{font-size:12px;opacity:.8}
.fw-ivc-ctry__tick{
	position:absolute;top:50%;left:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;
	display:grid;place-items:center;background:var(--pk);color:var(--wh);font-size:26px;
	transform:scale(0);transition:transform .45s var(--ease-pop)
}
.fw-ivc-ctry.is-on{box-shadow:0 0 0 3px var(--wh), 0 0 0 6px var(--pk)}
.fw-ivc-ctry.is-on .fw-ivc-ctry__tick{transform:scale(1)}
.fw-ivc-ctry.is-on .fw-ivc-ctry__pic img{transform:scale(1.04)}

/* ══════════════════════════════════════════════════════════════
   03 · THE CALCULATOR
   ══════════════════════════════════════════════════════════════ */
.fw-ivc-tool{overflow:clip}
.fw-ivc-tool::before{
	content:"";position:absolute;z-index:0;top:10%;right:-8%;width:44vw;height:44vw;border-radius:50%;
	background:var(--pk);opacity:.07;filter:blur(110px);pointer-events:none
}
.fw-ivc-app{display:grid;grid-template-columns:minmax(0, 1.25fr) minmax(0, 1fr);gap:clamp(28px, 4vw, 64px);align-items:start}

.fw-ivc-steps{display:grid;grid-template-columns:minmax(0, 1fr);gap:clamp(26px, 4vh, 38px)}
.fw-ivc-step__hd{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 14px;font-size:17px;font-weight:600;color:var(--ink)}
.fw-ivc-step__hd b{
	width:30px;height:30px;border-radius:50%;display:grid;place-items:center;
	background:var(--pk-l);color:var(--pk-dd);font-size:14px;font-weight:700
}
.fw-ivc-step__hd small{margin-left:auto;font-size:12.5px;font-weight:500;color:var(--g5)}

.fw-ivc-group + .fw-ivc-group{margin-top:16px}
.fw-ivc-group__hd{display:flex;align-items:center;gap:8px;margin:0 0 9px;font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--g6)}
.fw-ivc-group__hd img{width:20px;height:20px;object-fit:contain}
.fw-ivc-chips{display:grid;grid-template-columns:repeat(auto-fill, minmax(190px, 1fr));gap:10px;margin:0;padding:0;list-style:none}
.fw-ivc-chip{
	position:relative;display:grid;gap:3px;height:100%;padding:13px 16px 13px 44px;border-radius:16px;
	background:var(--wh);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink);
	transition:box-shadow .25s var(--ease), background .25s var(--ease), transform .25s var(--ease)
}
.fw-ivc-chip::before{
	content:"";position:absolute;left:16px;top:16px;width:18px;height:18px;border-radius:50%;
	box-shadow:inset 0 0 0 2px var(--g3);transition:box-shadow .25s var(--ease)
}
.fw-ivc-chip:hover{color:var(--ink);box-shadow:inset 0 0 0 1px var(--pk-edge);transform:translateY(-1px)}
.fw-ivc-chip.is-on{background:var(--pk-wash);box-shadow:inset 0 0 0 2px var(--pk)}
.fw-ivc-chip.is-on::before{box-shadow:inset 0 0 0 6px var(--pk)}
.fw-ivc-chip__name{font-size:15px;font-weight:600;line-height:1.3}
.fw-ivc-chip__from{font-size:12.5px;color:var(--g6)}

/* Cycles: a segmented control. */
.fw-ivc-seg{display:inline-grid;grid-auto-flow:column;grid-auto-columns:minmax(88px, 1fr);gap:4px;padding:4px;border-radius:18px;background:var(--g1)}
.fw-ivc-seg__btn{
	display:flex;align-items:baseline;justify-content:center;gap:6px;padding:12px 16px;border-radius:14px;
	color:var(--g6);font-size:13.5px;transition:background .25s var(--ease), color .25s var(--ease), box-shadow .25s var(--ease)
}
.fw-ivc-seg__btn b{font-size:20px;font-weight:700;color:inherit}
.fw-ivc-seg__btn:hover{color:var(--ink)}
.fw-ivc-seg__btn.is-on{background:var(--wh);color:var(--pk-dd);box-shadow:0 2px 10px var(--ink-a06), 0 0 0 1px var(--line-soft)}

/* Extras: switches. */
.fw-ivc-extras{display:grid;grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));gap:10px;margin:0;padding:0;list-style:none}
.fw-ivc-extra{
	display:flex;align-items:center;gap:14px;height:100%;margin:0;padding:13px 16px;border-radius:16px;cursor:pointer;
	box-shadow:inset 0 0 0 1px var(--line);transition:box-shadow .25s var(--ease), background .25s var(--ease)
}
.fw-ivc-extra input{position:absolute;opacity:0;pointer-events:none}
.fw-ivc-extra__sw{position:relative;width:40px;height:24px;flex:none;border-radius:999px;background:var(--g3);transition:background .25s var(--ease)}
.fw-ivc-extra__sw::after{
	content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--wh);
	box-shadow:0 1px 3px var(--ink-a12);transition:transform .3s var(--ease-pop)
}
.fw-ivc-extra__t{display:grid;gap:2px;min-width:0}
.fw-ivc-extra__t b{font-size:14.5px;font-weight:600;color:var(--ink)}
.fw-ivc-extra__t small{font-size:12.5px;color:var(--g6)}
.fw-ivc-extra:has(input:checked){background:var(--pk-wash);box-shadow:inset 0 0 0 2px var(--pk)}
.fw-ivc-extra input:checked + .fw-ivc-extra__sw{background:var(--pk)}
.fw-ivc-extra input:checked + .fw-ivc-extra__sw::after{transform:translateX(16px)}
.fw-ivc-extra input:focus-visible + .fw-ivc-extra__sw{box-shadow:0 0 0 3px var(--pk-ring)}

/* ── the estimate ── */
.fw-ivc-est{position:sticky;top:var(--sticky-top)}
.fw-ivc-est__in{
	display:grid;gap:14px;padding:clamp(22px, 2.4vw, 32px);border-radius:26px;
	background:linear-gradient(160deg, var(--pk-wash), var(--wh) 55%, var(--bl-wash));
	box-shadow:inset 0 0 0 1px var(--pk-t2), var(--sh-soft)
}
.fw-ivc-est__hd{display:flex;align-items:center;justify-content:space-between;margin:0;font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--g6)}
.fw-ivc-est__where{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border-radius:999px;background:var(--wh);box-shadow:inset 0 0 0 1px var(--line);letter-spacing:.04em;color:var(--ink)}
.fw-ivc-est__where img{width:18px;height:auto;aspect-ratio:4/3;border-radius:2px}
.fw-ivc-est__total{
	margin:0;font-family:var(--ff);font-weight:700;color:var(--ink);
	font-size:clamp(28px, 2.6vw, 44px);line-height:1.08;letter-spacing:-.025em;font-variant-numeric:tabular-nums
}
.fw-ivc-est__basis{margin:-6px 0 0;font-size:14px;color:var(--g6)}
.fw-ivc-est__thin{display:flex;gap:8px;align-items:flex-start;margin:0;padding:10px 12px;border-radius:12px;background:var(--go-l);color:var(--go-ink);font-size:13px;line-height:1.5}
.fw-ivc-est__thin[hidden]{display:none}

.fw-ivc-stack{display:grid;gap:10px}
.fw-ivc-stack__bar{display:block;width:100%;height:14px;border-radius:7px;overflow:hidden;background:var(--g1)}
.fw-ivc-stack__bar rect{transition:x .5s var(--ease), width .5s var(--ease)}
.fw-ivc-lines{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.fw-ivc-line{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--g7)}
.fw-ivc-line a{color:var(--ink);font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fw-ivc-line a:hover{color:var(--pk-dd)}
.fw-ivc-line i:not(.fw-ivc-key){font-style:normal;font-size:12px;color:var(--g5)}
.fw-ivc-line span{margin-left:auto;font-weight:600;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}

.fw-ivc-dist{display:grid;gap:6px;padding-top:14px;border-top:1px dashed var(--line)}
.fw-ivc-dist__hd{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:0;font-size:14px;font-weight:600;color:var(--ink)}
.fw-ivc-dist__hd small{font-size:12px;font-weight:500;color:var(--g5)}
.fw-ivc-dist__svg{display:block;width:100%;height:34px;overflow:visible}
.fw-ivc-dist__track{fill:var(--g2)}
.fw-ivc-dist__span{stroke:var(--dv-c2);stroke-width:4;stroke-linecap:round;opacity:.35}
.fw-ivc-dist__mid{stroke:var(--g5);stroke-width:1.5;stroke-dasharray:3 3}
.fw-ivc-dist__dot{fill:var(--dv-c1);stroke:var(--wh);stroke-width:2.5;transition:r .2s var(--ease)}
.fw-ivc-dist__dot:hover{r:8}
.fw-ivc-dist__axis{display:flex;justify-content:space-between;gap:8px;margin:0;font-size:11.5px;color:var(--g5)}
.fw-ivc-dist__axis span{display:grid}
.fw-ivc-dist__axis span:nth-child(2){text-align:center}
.fw-ivc-dist__axis span:last-child{text-align:right}
.fw-ivc-dist__axis b{font-size:13px;color:var(--ink);font-variant-numeric:tabular-nums}

.fw-ivc-est__note{margin:0;font-size:12.5px;line-height:1.55;color:var(--g5)}
.fw-ivc-est__acts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fw-ivc-est__acts .fw-ivc-btn{padding:0 14px}

/* A total that has just changed pulses once. */
.fw-ivc-est__total.is-new{animation:fw-ivc-pop .5s var(--ease)}
@keyframes fw-ivc-pop{40%{color:var(--pk-dd);transform:scale(1.025)}}

/* ══════════════════════════════════════════════════════════════
   04 · TREATMENTS SIDE BY SIDE, and CITIES — two range charts
   Text head on one side, the chart on the other, the same grid.
   ══════════════════════════════════════════════════════════════ */
.fw-ivc-split{display:grid;grid-template-columns:minmax(0, .8fr) minmax(0, 1.4fr);gap:clamp(28px, 5vw, 80px);align-items:start}
.fw-ivc-split .fw-ivc-head{margin:0;position:sticky;top:var(--sticky-top)}
.fw-ivc-split--flip{grid-template-columns:minmax(0, 1.4fr) minmax(0, .8fr)}
.fw-ivc-split--flip .fw-ivc-head{order:2}

.fw-ivc-bars{display:grid;margin:0;padding:0;list-style:none}
.fw-ivc-bars li + li{border-top:1px solid var(--line-soft)}
.fw-ivc-bars__row{
	display:grid;grid-template-columns:minmax(150px, .9fr) minmax(0, 1.3fr) auto;align-items:center;gap:18px;
	padding:12px 12px;margin:0 -12px;border-radius:14px;color:var(--ink);transition:background .2s var(--ease)
}
.fw-ivc-bars__row:hover{color:var(--ink);background:var(--g0)}
.fw-ivc-bars__row.is-on{background:var(--pk-wash)}
.fw-ivc-bars__name{display:grid;gap:2px;font-size:15px;font-weight:600;line-height:1.3}
.fw-ivc-bars__name small{font-size:12px;font-weight:500;color:var(--g5)}
.fw-ivc-bars__trk{display:block;width:100%;height:20px}
.fw-ivc-bars__bg{fill:var(--g1)}
.fw-ivc-bars__fill{fill:var(--dv-c2);transition:x .6s var(--ease), width .6s var(--ease)}
.fw-ivc-bars__row.is-on .fw-ivc-bars__fill{fill:var(--dv-c1)}
.fw-ivc-bars__val{font-size:14px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums;text-align:right}

.fw-ivc-cities{background:linear-gradient(180deg, var(--wh), var(--paper-b5))}
.fw-ivc-cityrows{display:grid;margin:0;padding:0;list-style:none}
.fw-ivc-city{
	display:grid;grid-template-columns:34px minmax(120px, .8fr) minmax(0, 1.3fr) auto auto;align-items:center;gap:16px;
	padding:14px 0
}
.fw-ivc-city + .fw-ivc-city{border-top:1px solid var(--line-soft)}
.fw-ivc-city__rank{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--bl-l);color:var(--bl-ink);font-size:14px;font-weight:700}
.fw-ivc-city:first-child .fw-ivc-city__rank{background:var(--mt-l);color:var(--mt-ink)}
.fw-ivc-city__name{display:grid;gap:2px;font-size:15.5px;font-weight:600;color:var(--ink)}
.fw-ivc-city__name small{font-size:12px;font-weight:500;color:var(--g5)}
.fw-ivc-city__trk{display:block;width:100%;height:24px;overflow:visible}
.fw-ivc-city__base{stroke:var(--g2);stroke-width:2}
.fw-ivc-city__span{stroke:var(--dv-c2);stroke-width:6;stroke-linecap:round;opacity:.4}
.fw-ivc-city__lo,.fw-ivc-city__hi{fill:var(--wh);stroke:var(--dv-c2);stroke-width:3}
.fw-ivc-city__lo{fill:var(--dv-c2)}
.fw-ivc-city__val{font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;font-variant-numeric:tabular-nums}
.fw-ivc-city__go{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:var(--pk-dd)}

/* ══════════════════════════════════════════════════════════════
   05 · CLINICS & DOCTORS
   ══════════════════════════════════════════════════════════════ */
.fw-ivc-rail--clinics{grid-auto-columns:clamp(260px, 24vw, 360px)}
.fw-ivc-cl{display:flex;flex-direction:column;height:100%}
.fw-ivc-cl__pic{position:relative;display:block;aspect-ratio:16/10;border-radius:20px;overflow:hidden;background:linear-gradient(140deg, var(--bl-l), var(--pk-l))}
.fw-ivc-cl__pic img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.fw-ivc-cl:hover .fw-ivc-cl__pic img{transform:scale(1.05)}
.fw-ivc-cl__mono{position:absolute;inset:0;display:grid;place-items:center;font-size:56px;font-weight:700;color:var(--pk-dd);opacity:.5}
.fw-ivc-cl__tag{
	position:absolute;left:12px;top:12px;padding:6px 11px;border-radius:999px;
	background:var(--wh);color:var(--mt-ink);font-size:12px;font-weight:600;box-shadow:0 4px 14px var(--ink-a12)
}
.fw-ivc-cl__body{display:flex;flex-direction:column;gap:9px;flex:1;padding:16px 4px 4px}
.fw-ivc-cl__meta{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0;font-size:13px;color:var(--g6)}
.fw-ivc-cl__meta .bi{margin-right:5px}
.fw-ivc-cl__star{font-weight:600;color:var(--ink)}
.fw-ivc-cl__star .bi{color:var(--go)}
.fw-ivc-cl__star small{font-weight:400;color:var(--g5)}
.fw-ivc-cl__name{margin:0;font-family:var(--ff);font-size:17.5px;font-weight:600;line-height:1.3;letter-spacing:-.01em}
.fw-ivc-cl__name a{color:var(--ink)}
.fw-ivc-cl__name a:hover{color:var(--pk-dd)}
.fw-ivc-cl__price{display:grid;gap:1px;margin:2px 0 0}
.fw-ivc-cl__price small{font-size:12px;color:var(--g5)}
.fw-ivc-cl__price b{font-size:19px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.fw-ivc-cl__pos{display:block;width:100%;height:12px;overflow:visible}
.fw-ivc-cl__pos-bg{fill:var(--g1)}
.fw-ivc-cl__pos-span{fill:var(--dv-c2);opacity:.35}
.fw-ivc-cl__pos-dot{fill:var(--dv-c1);stroke:var(--wh);stroke-width:2}
.fw-ivc-cl__plan{margin:0;padding:9px 12px;border-radius:12px;background:var(--pk-wash);font-size:13px;color:var(--g7)}
.fw-ivc-cl__plan b{color:var(--pk-dd);font-variant-numeric:tabular-nums}
.fw-ivc-cl__plan[hidden]{display:none}
.fw-ivc-cl__go{display:inline-flex;align-items:center;gap:6px;margin-top:auto;padding-top:4px;font-size:14px;font-weight:600;color:var(--pk-dd)}
.fw-ivc-clinics > .fw-ivc-inner:last-child{margin-top:8px}

.fw-ivc-sort{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--g1)}
.fw-ivc-sort__btn{padding:9px 16px;border-radius:999px;font-size:13.5px;font-weight:600;color:var(--g6);transition:background .2s var(--ease), color .2s var(--ease)}
.fw-ivc-sort__btn.is-on{background:var(--wh);color:var(--ink);box-shadow:0 2px 8px var(--ink-a06)}

.fw-ivc-docs{background:linear-gradient(180deg, var(--paper-p3), var(--wh))}
.fw-ivc-rail--docs{grid-auto-columns:clamp(180px, 15vw, 230px)}
.fw-ivc-dr{display:grid;gap:4px;color:var(--ink)}
.fw-ivc-dr:hover{color:var(--ink)}
.fw-ivc-dr__pic{display:block;aspect-ratio:4/5;border-radius:20px;overflow:hidden;margin-bottom:8px;background:var(--g1)}
.fw-ivc-dr__pic img{width:100%;height:100%;object-fit:cover;object-position:50% 20%;transition:transform .8s var(--ease)}
.fw-ivc-dr:hover .fw-ivc-dr__pic img{transform:scale(1.05)}
.fw-ivc-dr__name{font-size:16px;font-weight:600;line-height:1.25}
.fw-ivc-dr:hover .fw-ivc-dr__name{color:var(--pk-dd)}
.fw-ivc-dr__role{font-size:13px;color:var(--g6)}
.fw-ivc-dr__yrs{font-size:12.5px;font-weight:600;color:var(--mt-ink)}
.fw-ivc-dr__at{font-size:12px;line-height:1.4;color:var(--g5)}

/* ══════════════════════════════════════════════════════════════
   06 · ABOUT THE TREATMENT
   ══════════════════════════════════════════════════════════════ */
.fw-ivc-about__grid{display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1.15fr);gap:clamp(28px, 5vw, 80px);align-items:center}
.fw-ivc-about__pic{position:relative;margin:0;aspect-ratio:4/3.2;border-radius:28px;overflow:hidden}
.fw-ivc-about__pic img{width:100%;height:100%;object-fit:cover}
.fw-ivc-about__copy{display:flex;flex-direction:column;align-items:flex-start;gap:16px}
.fw-ivc-isnot{display:grid;grid-template-columns:1fr 1fr;gap:24px;width:100%;margin-top:10px;padding-top:22px;border-top:1px solid var(--line)}
.fw-ivc-isnot ul{display:grid;gap:9px;margin:0;padding:0;list-style:none}
.fw-ivc-isnot li{position:relative;padding-left:16px;font-size:14px;line-height:1.55;color:var(--g6)}
.fw-ivc-isnot li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--mt-d)}
.fw-ivc-isnot > div:last-child li::before{background:var(--g4)}
.fw-ivc-isnot .fw-ivc-h3 .bi{color:var(--mt-ink)}
.fw-ivc-isnot > div:last-child .fw-ivc-h3 .bi{color:var(--g5)}

/* ══════════════════════════════════════════════════════════════
   07 · QUESTIONS
   ══════════════════════════════════════════════════════════════ */
.fw-ivc-faq .fw-ivc-head{align-items:flex-start}
.fw-ivc-qa details{border-bottom:1px solid var(--line)}
.fw-ivc-qa details:first-child{border-top:1px solid var(--line)}
.fw-ivc-qa summary{
	display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 0;cursor:pointer;list-style:none;
	font-size:clamp(16px, 2.1vh, 18.5px);font-weight:600;color:var(--ink)
}
.fw-ivc-qa summary::-webkit-details-marker{display:none}
.fw-ivc-qa summary i{position:relative;width:30px;height:30px;flex:none;border-radius:50%;background:var(--g1);transition:background .25s var(--ease), transform .35s var(--ease)}
.fw-ivc-qa summary i::before,.fw-ivc-qa summary i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:2px;margin:-1px 0 0 -6px;border-radius:2px;background:var(--ink)}
.fw-ivc-qa summary i::after{transform:rotate(90deg);transition:transform .35s var(--ease)}
.fw-ivc-qa details[open] summary i{background:var(--pk-l)}
.fw-ivc-qa details[open] summary i::after{transform:rotate(0)}
.fw-ivc-qa summary:hover{color:var(--pk-dd)}
.fw-ivc-qa details p{margin:0;padding:0 48px 22px 0;font-size:15.5px;line-height:1.7;color:var(--g6)}

/* ══════════════════════════════════════════════════════════════
   08 · CLOSE — photograph with the copy on a bright veil
   ══════════════════════════════════════════════════════════════ */
.fw-ivc-close{
	position:relative;display:grid;grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);align-items:center;
	min-height:min(55vh, 560px);margin:0 var(--pad) var(--sec);border-radius:32px;overflow:hidden;isolation:isolate
}
.fw-ivc-close__pic{position:absolute;inset:0;z-index:-1;margin:0}
.fw-ivc-close__pic img{width:100%;height:100%;object-fit:cover;object-position:30% 40%}
.fw-ivc-close__pic::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg, transparent 30%, var(--wh) 62%)}
.fw-ivc-close__copy{grid-column:2;display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:clamp(28px, 4vw, 64px)}
.fw-ivc-close__h{margin:0;font-family:var(--ff);font-weight:600;color:var(--ink);font-size:clamp(26px, 4.4vh, 44px);line-height:1.12;letter-spacing:-.02em;text-wrap:balance}
.fw-ivc-close__sub{margin:0;font-size:clamp(15px, 2vh, 17.5px);line-height:1.6;color:var(--g6)}
.fw-ivc-close__sub a{font-weight:600;color:var(--bl-ink);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--bl-ring)}
.fw-ivc-close__acts{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}

/* ── the phone's answer bar ── */
.fw-ivc-dock{display:none}

/* ══════════════════════════════════════════════════════════════
   09 · RESPONSIVE
   ══════════════════════════════════════════════════════════════ */
@media (max-width:1200px){
	.fw-ivc-app{grid-template-columns:minmax(0, 1fr) minmax(0, 1fr)}
}
@media (max-width:1024px){
	.fw-ivc-page{--pad:14px;--sec:clamp(40px, 9vw, 64px)}
	.fw-ivc-h2{font-size:clamp(24px, 6.4vw, 34px)}
	.fw-ivc-sub{font-size:15px}
	.fw-ivc-lead{font-size:16.5px}
	.fw-ivc-answer__fig{font-size:clamp(28px, 8vw, 44px)}
	.fw-ivc-mast .fw-mast__side--cover{order:-1}
	.fw-ivc-cover{aspect-ratio:4/3;max-height:none;border-radius:20px}

	.fw-ivc-app,.fw-ivc-split,.fw-ivc-split--flip,.fw-ivc-about__grid{grid-template-columns:minmax(0, 1fr)}
	.fw-ivc-split .fw-ivc-head{position:static}
	.fw-ivc-split--flip .fw-ivc-head{order:0}
	.fw-ivc-est{position:static}
	.fw-ivc-about__pic{border-radius:20px}

	.fw-ivc-rail{grid-auto-columns:clamp(170px, 44vw, 250px);gap:12px}
	.fw-ivc-rail--clinics{grid-auto-columns:clamp(250px, 78vw, 340px)}
	.fw-ivc-rail--docs{grid-auto-columns:clamp(150px, 40vw, 200px)}
	.fw-ivc-ctry{border-radius:18px;padding:12px}
	.fw-ivc-ctry__name{font-size:18px}

	.fw-ivc-close{grid-template-columns:minmax(0, 1fr);min-height:0;border-radius:24px}
	.fw-ivc-close__pic{position:relative;aspect-ratio:16/10}
	.fw-ivc-close__pic::after{background:linear-gradient(180deg, transparent 55%, var(--wh))}
	.fw-ivc-close__copy{grid-column:1;padding:6px 20px 28px}
	.fw-ivc-close__h{font-size:clamp(24px, 6.6vw, 34px)}
	.fw-ivc-close__sub,.fw-ivc-qa details p{font-size:15px}
	.fw-ivc-qa summary{font-size:16px}
}
@media (max-width:768px){
	.fw-ivc-head--row{align-items:flex-start}
	.fw-ivc-arrows{display:none}
	.fw-ivc-chips{grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);gap:8px}
	.fw-ivc-chip{padding:12px 12px 12px 38px;border-radius:14px}
	.fw-ivc-chip::before{left:12px;top:14px;width:16px;height:16px}
	.fw-ivc-chip.is-on::before{box-shadow:inset 0 0 0 5px var(--pk)}
	.fw-ivc-chip__name{font-size:14px}
	.fw-ivc-seg{display:grid;width:100%;grid-auto-columns:minmax(0, 1fr)}
	.fw-ivc-seg__btn{flex-direction:column;align-items:center;gap:0;padding:8px 2px;font-size:11.5px}
	.fw-ivc-seg__btn b{font-size:18px;line-height:1.1}
	.fw-ivc-extras{grid-template-columns:minmax(0, 1fr)}
	.fw-ivc-est__in{border-radius:22px}
	.fw-ivc-est__acts{grid-template-columns:minmax(0, 1fr)}

	/* Charts become two lines: the name and value, then the bar. */
	.fw-ivc-bars__row{grid-template-columns:minmax(0, 1fr) auto;gap:6px 12px;padding:12px 10px;margin:0 -10px}
	.fw-ivc-bars__trk{grid-column:1 / -1;grid-row:2}
	.fw-ivc-city{grid-template-columns:30px minmax(0, 1fr) auto;gap:6px 12px}
	.fw-ivc-city__rank{width:30px;height:30px;font-size:13px}
	.fw-ivc-city__trk{grid-column:2 / -1;grid-row:2}
	.fw-ivc-city__val{grid-column:3;grid-row:1}
	.fw-ivc-city__go{grid-column:2 / -1;grid-row:3;font-size:13px}

	.fw-ivc-isnot{grid-template-columns:minmax(0, 1fr)}
	.fw-ivc-qa details p{padding-right:0}

	/* The answer, pinned to the bottom of the screen once you scroll past it. */
	.fw-ivc.is-js .fw-ivc-dock{
		/* Above the site's 60px bottom tab bar (common.css, BOTTOM TAB BAR) and
		   clear of its raised Book Now button, which stands ~11px above it. */
		position:fixed;left:10px;right:10px;bottom:calc(82px + env(safe-area-inset-bottom));z-index:1030;
		display:flex;align-items:center;justify-content:space-between;gap:12px;
		padding:10px 10px 10px 18px;border-radius:20px;background:var(--wh);
		box-shadow:0 12px 40px var(--ink-a28), inset 0 0 0 1px var(--line-soft);
		transform:translateY(140%);transition:transform .45s var(--ease)
	}
	.fw-ivc.is-docked .fw-ivc-dock{transform:none}
	.fw-ivc-dock__t{display:grid;min-width:0}
	.fw-ivc-dock__t small{font-size:11.5px;color:var(--g5);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
	.fw-ivc-dock__t b{font-size:17px;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
	.fw-ivc-dock .fw-ivc-btn{min-height:42px;padding:0 18px;font-size:14px}
}

@media (prefers-reduced-motion:reduce){
	.fw-ivc *,.fw-ivc *::before,.fw-ivc *::after{transition:none !important;animation:none !important}
}
