/* ==========================================================================
   CUREYATRA v3.0 — refinement layer
   Loaded AFTER each page's inline design system, so it refines rather than
   replaces. Per-country accents arrive as --accent / --accent-lift /
   --accent-2 / --accent-lift-2 on <html>, derived from that country's own
   flag and contrast-checked against both the ivory and pine grounds.
   ========================================================================== */

:root{
  --accent:#A8641A;         /* on light grounds  */
  --accent-lift:#D98E32;    /* on the pine ground */
  --accent-2:#14655A;
  --accent-lift-2:#7FBFAE;
  --ease:cubic-bezier(.22,.61,.36,1);
  --measure:68ch;
}

/* ---- 1. TYPE ------------------------------------------------------------ */
body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3{letter-spacing:-.021em;text-wrap:balance}
h1{line-height:1.06}
h2{line-height:1.12}
p{text-wrap:pretty}
.sec p,.subhero p,.hero p{max-width:var(--measure)}

/* The eyebrow carries the journey line: a short accent rule, then the label. */
.eyebrow,.crumb{
  display:flex;align-items:center;gap:.7rem;
  font-family:var(--body);font-weight:600;font-size:.74rem;
  letter-spacing:.15em;text-transform:uppercase;
}
.eyebrow::before,.crumb::before{
  content:"";width:30px;height:2px;flex:none;border-radius:2px;
  background:var(--accent);
}
.on-dark .eyebrow::before,.on-dark .crumb::before,
.subhero .crumb::before{background:var(--accent-lift)}

/* ---- 2. THE FLAG PAIR, RESTYLED ---------------------------------------- */
/* Was two stickers and a dashed arrow. Now: two discs on one continuous
   hairline — the journey line again, at portrait scale. */
.flagpair{display:flex;align-items:center;gap:0;margin-bottom:26px}
.flagpair img{
  width:64px;height:64px;border-radius:50%;
  box-shadow:0 0 0 2px var(--accent-lift),0 0 0 7px rgba(255,255,255,.07),
             0 10px 26px rgba(0,0,0,.3);
}
.flagpair img:last-of-type{box-shadow:0 0 0 2px var(--marigold),0 0 0 7px rgba(255,255,255,.07),0 10px 26px rgba(0,0,0,.3)}
/* the dashed rule + triangular arrowhead are explicitly reset, not just restyled */
.flagpair .fp-line{
  flex:none;width:74px;height:2px;margin:0 -2px;border:0;border-radius:2px;
  background:linear-gradient(90deg,var(--accent-lift),var(--marigold));
  position:relative;
}
.flagpair .fp-line::after{
  content:"";position:absolute;right:-1px;top:50%;left:auto;bottom:auto;
  width:7px;height:7px;border:0;border-radius:50%;
  background:var(--marigold);transform:translateY(-50%);
}
@media(max-width:640px){
  .flagpair img{width:52px;height:52px}
  .flagpair .fp-line{width:52px}
}

/* ---- 3. THE LOCAL-LANGUAGE LINE ---------------------------------------- */
.hero-local{
  display:block;font-family:var(--disp);font-weight:700;
  font-size:clamp(1.1rem,2.6vw,1.6rem);line-height:1.45;
  color:var(--accent-lift);margin:0 0 12px;
}
[dir="rtl"].hero-local{direction:rtl}

/* ---- 4. SURFACES ------------------------------------------------------- */
.card,.country-desk-card,.ig-tile,.jstep,.pcard{
  border-radius:16px;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease),
             border-color .35s var(--ease);
}
.card:hover,.country-desk-card:hover,.ig-tile:hover,.pcard:hover{
  transform:translateY(-3px);
  box-shadow:0 14px 34px -18px rgba(14,59,51,.42);
  border-color:var(--accent);
}
.country-desk-card b{color:var(--accent)}
.visa-links a{color:var(--accent);text-underline-offset:3px}

/* ---- 5. THE BURDEN PANEL — the signature element ----------------------- */
.burden{position:relative;background:var(--ivory)}
.burden .wrap{position:relative}
.burden-lead{max-width:60ch;font-size:1.06rem;color:var(--mut);margin-top:10px}
.burden-grid{
  display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);
  gap:38px;margin-top:34px;align-items:start;
}
@media(max-width:900px){.burden-grid{grid-template-columns:1fr;gap:30px}}

/* The ranked ladder. Rank order is the ONLY thing encoded — no bar lengths,
   because publishing invented magnitudes would be worse than publishing
   nothing. The spine is the journey line, turned vertical. */
.ladder{position:relative;margin:0;padding:0;list-style:none}
.ladder::before{
  content:"";position:absolute;left:23px;top:14px;bottom:14px;width:2px;
  background:linear-gradient(180deg,var(--accent),var(--accent-2));
  opacity:.32;border-radius:2px;
}
.ladder li{
  position:relative;display:flex;align-items:baseline;gap:18px;
  padding:13px 0;border-bottom:1px solid var(--line);
}
.ladder li:last-child{border-bottom:0}
.ladder .rk{
  flex:none;width:48px;font-family:var(--disp);font-weight:800;
  font-size:1.16rem;color:var(--accent);letter-spacing:-.02em;
  background:var(--ivory);position:relative;z-index:1;
  padding:2px 0;text-align:left;
}
.ladder .site{font-family:var(--disp);font-weight:700;font-size:1.12rem;color:var(--ink)}
.ladder-cap{
  font-size:.79rem;color:var(--mut);margin-top:14px;padding-left:2px;
  border-left:3px solid var(--accent);padding-left:11px;
}

.burden-side>*+*{margin-top:20px}
.bfact{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px 22px}
.bfact h3{
  font-family:var(--body);font-weight:600;font-size:.74rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--mut);margin:0 0 9px;
}
.bfact p{margin:0;font-size:.99rem;line-height:1.62;color:var(--ink)}
.bfact.signal{border-left:4px solid var(--accent);background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 6%,#fff),#fff)}

.chips{display:flex;flex-wrap:wrap;gap:9px;margin-top:4px}
.chips span{
  display:inline-block;padding:8px 14px;border-radius:999px;
  border:1px solid var(--accent);color:var(--accent);
  font-size:.86rem;font-weight:500;background:#fff;
}

/* ---- 6. SOURCE LINE ---------------------------------------------------- */
.src-line{
  font-size:.79rem;line-height:1.6;color:var(--mut);
  border-left:3px solid var(--accent);padding-left:12px;margin-top:26px;max-width:82ch;
}

/* ---- 7. HOMEPAGE INFOGRAPHIC ------------------------------------------- */
.ig-tile b{letter-spacing:-.025em}
.ig-lane b{color:var(--marigold)}
.flaggrid a{transition:transform .3s var(--ease),filter .3s var(--ease)}
.flaggrid a:hover{transform:translateY(-4px) scale(1.06);filter:saturate(1.15)}

/* ---- 8. MOTION — progressive enhancement -------------------------------
   Content is visible by DEFAULT. The hidden-then-reveal state applies only
   once the inline head script has proved scripting is alive (html.js).
   Without this, a single JS error blanks every revealed block on the site —
   on a medical page that is the whole content gone.                        */
.rv{opacity:1;transform:none;transition:opacity .7s var(--ease),transform .7s var(--ease)}
html.js .rv{opacity:0;transform:translateY(16px)}
html.js .rv.in,html.js .rv.show,html.js .rv.visible{opacity:1;transform:none}
html.js .burden-grid .rv:nth-child(2){transition-delay:.09s}

.ladder li{opacity:1;transform:none}
html.js .ladder li{opacity:0;transform:translateY(10px);animation:rise .6s var(--ease) forwards}
html.js .ladder li:nth-child(1){animation-delay:.04s}
html.js .ladder li:nth-child(2){animation-delay:.11s}
html.js .ladder li:nth-child(3){animation-delay:.18s}
html.js .ladder li:nth-child(4){animation-delay:.25s}
html.js .ladder li:nth-child(5){animation-delay:.32s}
@keyframes rise{to{opacity:1;transform:none}}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
  html.js .rv,.rv{opacity:1;transform:none}
  html.js .ladder li,.ladder li{opacity:1;transform:none}
}

/* ---- 9. ACCESSIBILITY FLOOR -------------------------------------------- */
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible{
  outline:3px solid var(--marigold);outline-offset:3px;border-radius:4px;
}
.on-dark a:focus-visible{outline-color:var(--accent-lift)}
.skip-link:focus{top:14px}

/* ---- 10. FOOTER T&C ---------------------------------------------------- */
.tandc{font-size:.78rem;color:var(--mut);opacity:.9;margin-top:14px}
.tandc a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* ---- 11. PRINT (patients do print these pages for family) -------------- */
@media print{
  .top,.foot,.hero-cta,.ctaband{display:none!important}
  .sec{padding:14px 0!important;break-inside:avoid}
  body{background:#fff;color:#000}
  .ladder li{opacity:1;transform:none}
}

/* ---- 5. GUEST-SERVICES FEE PANEL --------------------------------------- */
.fee-panel{
  display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);
  gap:30px;align-items:start;margin-top:28px;
}
@media(max-width:820px){.fee-panel{grid-template-columns:1fr;gap:22px}}
.fee-badge{
  background:var(--pine);color:#fff;border-radius:18px;padding:26px 24px;
  border:1px solid rgba(255,255,255,.10);
}
.fee-badge .amt{
  display:block;font-family:var(--disp);font-weight:800;
  font-size:clamp(2rem,5vw,2.7rem);letter-spacing:-.03em;color:var(--marigold);
  line-height:1.05;
}
.fee-badge .per{display:block;margin-top:8px;font-size:.9rem;color:#CFDCD6}
.fee-badge .brandline{
  display:block;margin-top:16px;padding-top:14px;
  border-top:1px solid rgba(255,255,255,.16);font-size:.8rem;color:#B9CFC8;
}
.fee-list{margin:0;padding:0;list-style:none;column-gap:26px}
.fee-list li{
  position:relative;padding-left:26px;margin-bottom:11px;
  font-size:.97rem;line-height:1.6;color:var(--ink);
}
.fee-list li::before{
  content:"";position:absolute;left:2px;top:.55em;width:9px;height:9px;
  border-radius:50%;background:var(--accent);
}
.fee-list.excl li::before{
  background:none;border:2px solid var(--mut);opacity:.55;
}
.fee-cols{display:grid;grid-template-columns:1fr 1fr;gap:26px}
@media(max-width:700px){.fee-cols{grid-template-columns:1fr}}
.fee-cols h3{
  font-family:var(--body);font-weight:600;font-size:.74rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--mut);margin:0 0 12px;
}

/* ---- 13. INFOGRAPHICS (shared pages) ----------------------------------- */
.infoblk{margin-top:32px}
.flow{display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative;margin-top:34px}
@media(max-width:900px){.flow{grid-template-columns:1fr;gap:6px}}
.flow-step{position:relative;padding:0 16px}
.flow-step:first-child{padding-left:0}
.flow-step:last-child{padding-right:0}
.flow-dot{position:relative;height:46px;margin-bottom:16px}
.flow-dot::before{content:"";position:absolute;left:0;top:19px;right:0;height:2px;background:var(--line)}
.flow-step:first-child .flow-dot::before{left:20px}
.flow-step:last-child .flow-dot::before{right:calc(100% - 20px)}
.flow-dot span{
  position:absolute;left:0;top:0;width:40px;height:40px;border-radius:50%;
  background:var(--pine);color:#fff;display:grid;place-items:center;
  font-family:var(--disp);font-weight:800;font-size:1rem;z-index:1;
  box-shadow:0 0 0 5px var(--ivory);
}
.flow-step:last-child .flow-dot span{background:var(--marigold);color:#231603}
.flow-step h3{font-family:var(--disp);font-weight:800;font-size:1.02rem;margin:0 0 6px;letter-spacing:-.015em}
.flow-step p{font-size:.9rem;line-height:1.58;color:var(--mut);margin:0}
@media(max-width:900px){
  .flow-dot{height:auto;margin-bottom:8px}
  .flow-dot::before{display:none}
  .flow-dot span{position:static}
  .flow-step{padding:0 0 14px;border-bottom:1px solid var(--line)}
  .flow-step:last-child{border-bottom:0}
}

.splitfig{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:36px;align-items:center;margin-top:30px}
@media(max-width:880px){.splitfig{grid-template-columns:1fr;gap:24px}}
.splitfig svg{width:100%;height:auto;display:block;border-radius:16px;background:#fff;border:1px solid var(--line)}
.figcap{font-size:.79rem;color:var(--mut);margin-top:10px;border-left:3px solid var(--accent);padding-left:11px}

.statrow{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px}
@media(max-width:760px){.statrow{grid-template-columns:1fr}}
.statbox{border:1px solid var(--line);border-radius:16px;padding:22px 20px;background:#fff;position:relative}
.statbox::after{content:"";position:absolute;left:20px;right:20px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--marigold)}
.statbox b{display:block;font-family:var(--disp);font-weight:800;font-size:1.9rem;color:var(--pine);letter-spacing:-.025em;line-height:1.05}
.statbox span{display:block;font-size:.88rem;color:var(--mut);margin-top:6px}

/* ==========================================================================
   14. LEGIBILITY PASS (v3.3)
   The site leaned on small monospace for labels, captions and stat text.
   It looked tidy at desktop zoom and was genuinely hard to read. Everything
   below raises size, drops decorative monospace for real label text, and
   keeps letter-spacing sane.
   ========================================================================== */
body{font-size:17px;line-height:1.65}

/* labels, captions and micro-copy — all were between .66 and .80rem */
.eyebrow,.crumb{font-size:.82rem;letter-spacing:.12em}
.ledger-cell b{font-family:var(--body);font-size:1.22rem;letter-spacing:-.01em}
.ledger-cell span{font-family:var(--body);font-size:.86rem;letter-spacing:.06em;color:#BCD2CA}
.ledger-src{
  font-family:var(--body);font-size:.85rem;line-height:1.7;color:#B3C8C0;
  white-space:normal;            /* was nowrap — this is what pushed it past the edge */
  max-width:100%;overflow-wrap:anywhere;padding:16px 0 18px;letter-spacing:0;
}
.from{font-family:var(--body);font-size:.8rem;letter-spacing:.05em}
.tcard p{font-size:.98rem;line-height:1.62}
.tcard h3{font-size:1.12rem}
.src-line{font-size:.87rem}
.ladder-cap{font-size:.87rem}
.tandc{font-size:.85rem;line-height:1.65}
.figcap{font-size:.86rem}
.bfact h3,.fee-cols h3,.flow-step h3{font-size:.82rem}
.bfact p{font-size:1.02rem}
.statbox span{font-size:.95rem}
.flow-step p{font-size:.97rem}
.np-card p{font-size:.99rem}
.np-card .np-src{font-size:.79rem;line-height:1.55}
.visa-links{font-size:.95rem}
.fee-list li{font-size:1.02rem}
.chips span{font-size:.9rem}
.ladder .site{font-size:1.15rem}
.ig-tile span{font-size:.92rem}
.ig-lane span{font-size:.92rem}
.foot,.foot a,.foot p,.foot li{font-size:.95rem}
@media(max-width:640px){
  body{font-size:16.5px}
  .ledger-cell b{font-size:1.12rem}
  .ledger-src{font-size:.83rem}
}

/* the hero trust line: was a cramped monospace run-on */
.hero-marks{
  list-style:none;margin:20px 0 0;padding:0;
  display:flex;flex-wrap:wrap;gap:10px;
}
.hero-marks li{
  display:inline-flex;align-items:center;gap:9px;
  padding:9px 16px 9px 13px;border-radius:999px;
  border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.055);
  color:#E6F0EC;font-size:.93rem;font-weight:500;letter-spacing:.005em;
}
.hero-marks li::before{
  content:"";width:16px;height:16px;flex:none;border-radius:50%;
  background:var(--marigold);
  -webkit-mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M3.5 8.5l3 3 6-7' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/contain no-repeat;
          mask:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='M3.5 8.5l3 3 6-7' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/></svg>") center/contain no-repeat;
}
@media(max-width:520px){.hero-marks li{font-size:.88rem;padding:8px 13px 8px 11px}}

/* ==========================================================================
   15. TREATMENT CARDS — colour + lift
   Twelve cards on a 4-column grid (was ten, which left two orphans and made
   the section look unfinished). Each speciality carries its own tint so the
   grid reads as a set rather than a wall of identical boxes.
   ========================================================================== */
.cards{gap:18px}
.tcard{
  --tc:#14655A;--tcbg:#E3EEEA;
  padding:22px 20px;border-radius:16px;overflow:hidden;
  transition:transform .32s var(--ease),box-shadow .32s var(--ease),border-color .32s var(--ease);
}
.tcard::after{
  content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:var(--tc);opacity:0;transition:opacity .32s var(--ease);
}
.tcard .tico{
  width:46px;height:46px;border-radius:13px;
  background:var(--tcbg);color:var(--tc);
  transition:transform .32s var(--ease),box-shadow .32s var(--ease);
}
.tcard .tico svg{width:24px;height:24px}
.tcard:hover,.tcard:focus-within{
  transform:translateY(-5px);
  border-color:var(--tc);
  box-shadow:0 20px 40px -20px color-mix(in srgb,var(--tc) 55%,transparent),
             0 4px 12px rgba(14,59,51,.07);
}
.tcard:hover::after,.tcard:focus-within::after{opacity:1}
.tcard:hover .tico{transform:scale(1.07) rotate(-3deg);box-shadow:0 6px 16px -6px var(--tc)}
.tcard:hover .from{color:var(--tc)}

.tc-cardiac   {--tc:#B3402F;--tcbg:#FBE9E5}
.tc-onco      {--tc:#7B4397;--tcbg:#F1E8F7}
.tc-bmt       {--tc:#1F6FB2;--tcbg:#E4EFF8}
.tc-transplant{--tc:#0F7A63;--tcbg:#E0F1EC}
.tc-ortho     {--tc:#A8641A;--tcbg:#F8ECDC}
.tc-neuro     {--tc:#4457A8;--tcbg:#E8EBF8}
.tc-fertility {--tc:#B03A6B;--tcbg:#FAE7EF}
.tc-bariatric {--tc:#2C7A4B;--tcbg:#E3F2E8}
.tc-eye       {--tc:#1E7C8C;--tcbg:#E2F1F4}
.tc-checks    {--tc:#5C6B2F;--tcbg:#EEF2E1}
.tc-paed      {--tc:#D07B12;--tcbg:#FDF0DC}
.tc-gastro    {--tc:#8A5A2B;--tcbg:#F5EBE0}
@media(prefers-reduced-motion:reduce){
  .tcard:hover,.tcard:focus-within{transform:none}
  .tcard:hover .tico{transform:none}
}

/* ---- 16. EMAIL COPY TOAST ---------------------------------------------- */
#cy-toast{
  position:fixed;left:50%;bottom:26px;transform:translate(-50%,14px);
  background:var(--pine-deep,#092A24);color:#FBF9F4;
  padding:13px 20px;border-radius:999px;font-size:.93rem;font-weight:500;
  box-shadow:0 14px 34px -14px rgba(0,0,0,.55);
  border:1px solid rgba(255,255,255,.14);
  opacity:0;pointer-events:none;z-index:9999;max-width:calc(100vw - 32px);
  text-align:center;transition:opacity .25s ease,transform .25s ease;
}
#cy-toast.show{opacity:1;transform:translate(-50%,0)}
@media(prefers-reduced-motion:reduce){#cy-toast{transition:none}}

/* email links get a quiet affordance so it's clear they do something */
a[href^="mailto:"]:not(.btn):not(.cta){
  text-decoration:underline;text-underline-offset:3px;
  text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb,currentColor 45%,transparent);
  cursor:pointer;
}

/* ---- 17. NAV — one menu, same order, every page ------------------------ */
.nav{gap:22px}
.nav a{white-space:nowrap}
@media(min-width:1021px){
  .top-in{gap:22px}
  .nav{margin-left:auto}
  .logo{min-width:236px}
}
.logo .logomark{width:34px;height:34px;object-fit:contain}
html{scrollbar-gutter:stable}

/* Preserve the header visually across same-origin page changes where the
   browser supports cross-document view transitions. */
@view-transition{navigation:auto}
.top{view-transition-name:cureyatra-header}
::view-transition-old(cureyatra-header),
::view-transition-new(cureyatra-header){animation-duration:.16s}

/* ---- 18. HOSPITALS BY CITY — aligned rows, not ragged pills ------------- */
/* The pills wrapped into a zig-zag because every hospital name is a different
   length. One name per row removes the raggedness entirely and scans faster. */
.citygrid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px;align-items:start}
.city{padding:24px 22px}
.city h3{font-size:1.16rem;margin-bottom:4px}
.city h3 em{font-family:var(--body);font-size:.76rem;letter-spacing:.14em;color:var(--ochre)}
.hosp-list{list-style:none;margin:14px 0 0;padding:0}
.hosp-list li{
  position:relative;padding:9px 0 9px 20px;
  font-size:.97rem;line-height:1.45;color:var(--ink);
  border-bottom:1px solid var(--line);
}
.hosp-list li:last-child{border-bottom:0}
.hosp-list li::before{
  content:"";position:absolute;left:2px;top:1.05em;
  width:7px;height:7px;border-radius:50%;background:var(--marigold);
}

/* ========================================================================
   19. WORLD-CLASS UI PASS (v3.6)
   Consistent spacing, readable support text and accessible interaction.
   ======================================================================== */
:root{
  --ochre:#96510C;
  --mut:#40534C;
  --line:#D6E0DB;
  --ivory:#FCFBF8;
  --sand:#F1F6F4;
  --sea-soft:#E7F2EE;
}

/* Comfortable reading sizes for labels and supporting information. */
.eyebrow,.crumb{font-size:.875rem;letter-spacing:.09em}
.logo .logotext em{font-size:.72rem;letter-spacing:.15em}
.form label{
  font-family:var(--body);font-size:.875rem;line-height:1.35;
  letter-spacing:.01em;text-transform:none;font-weight:600;color:var(--ink)
}
.check-row label{font-size:.875rem;line-height:1.55;color:var(--mut)}
.country-disclaimer,.tbl-note,.src-line,.ladder-cap,.np-src,
.source-note,.figcap{font-size:.875rem;line-height:1.6;color:var(--mut);opacity:1}
.legal{font-size:.875rem;line-height:1.6;color:#B8CCC5}
.leg-code,.iti-tag,.q footer,.city h3 em{font-size:.8125rem;letter-spacing:.07em}
.tbl-wrap th{font-size:.8125rem;letter-spacing:.06em}
.proc span,.chips span{font-size:.875rem}
.foot .tandc{font-size:.875rem;line-height:1.6;color:#B8CCC5;opacity:1}

/* Clear, generous grids: fewer tight card walls and more rhythm. */
.cards,.svc,.quotes,.citygrid,.country-desk-grid,.ig-grid{gap:24px}
.tcard,.svc>div,.city,.country-desk-card,.ig-tile,.q{padding:24px}
.sec{padding-block:88px}
.sec-tight{padding-block:66px}
@media(max-width:760px){
  .sec{padding-block:64px}.sec-tight{padding-block:52px}
  .cards,.svc,.quotes,.citygrid,.country-desk-grid,.ig-grid{gap:16px}
}

/* Country directory is allowed to wrap long names instead of truncating. */
.flagsgrid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(174px,1fr));
  gap:12px;margin-top:28px
}
.ftile{
  display:flex;align-items:center;gap:10px;min-width:0;min-height:54px;
  padding:11px 13px;border:1px solid var(--line);border-radius:12px;
  background:#fff;color:var(--pine);font-size:.9rem;font-weight:600;
  line-height:1.25;text-decoration:none
}
.ftile img{width:28px;height:28px;border-radius:50%;flex:none;box-shadow:0 0 0 1.5px var(--line)}
.ftile>span{white-space:normal;overflow:visible;text-overflow:clip}
.ftile:hover,.ftile:focus-visible{border-color:var(--accent);box-shadow:0 10px 24px -18px rgba(14,59,51,.6)}
@media(max-width:430px){.flagsgrid{grid-template-columns:1fr 1fr}.ftile{font-size:.84rem;padding:10px}}

/* Keyboard users can reach and scroll wide data tables. */
.tbl-wrap[tabindex]{outline:none}
.tbl-wrap[tabindex]:focus-visible{outline:3px solid var(--marigold);outline-offset:4px}

/* Footer labels are visual labels, not skipped heading levels. */
.foot-title{
  font-family:var(--body);font-size:.8125rem;font-weight:700;line-height:1.3;
  letter-spacing:.09em;text-transform:uppercase;color:var(--marigold);margin:0 0 14px
}

/* Keep the floating contact control inside its own landmark. */
.wa-wrap{position:fixed;right:22px;bottom:22px;z-index:70}
.wa-wrap .wa{position:static}
@media(max-width:560px){.wa-wrap{right:16px;bottom:16px}.wa-wrap .wa{width:52px;height:52px}}

/* Mobile menu button has a reliable touch target and visible state. */
.burger{min-width:44px;min-height:44px;border-radius:10px;line-height:1}
.burger[aria-expanded="true"]{background:var(--sea-soft)}

/* A five-cell ledger no longer leaves one awkward orphan on small screens. */
@media(max-width:700px){
  .ledger-in{grid-template-columns:1fr 1fr}
  .ledger-in .ledger-cell:nth-child(odd):last-child{grid-column:1/-1;text-align:center}
}

/* Compact homepage summary cards introduced in v3.6. */
.summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:32px}
.summary-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px}
.summary-card b{display:block;font-family:var(--disp);font-size:1.15rem;color:var(--pine);margin-bottom:7px}
.summary-card p{margin:0;color:var(--mut);font-size:.97rem;line-height:1.6}
@media(max-width:820px){.summary-grid{grid-template-columns:1fr;gap:16px}}

/* Six service cards balance cleanly as two rows of three. */
#services .svc{grid-template-columns:repeat(3,minmax(0,1fr))}
#services .svc>div{border-top:3px solid var(--accent)}
@media(max-width:820px){#services .svc{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){#services .svc{grid-template-columns:1fr}}

/* ========================================================================
   20. FULL-CONTENT HOMEPAGE + FOOTER ALIGNMENT (v3.7)
   ======================================================================== */

/* Keep the cited 2024 reference as one calm line on desktop. The general
   .hero p measure is intentionally overridden only for this source line. */
.hero .ledger-src{
  max-width:none;
  margin-top:18px;
  font-size:.85rem;
  line-height:1.55;
}
@media(min-width:1101px){
  .hero .ledger-src{white-space:nowrap}
}

/* Footer links in prose are inline. The old global block-link rule caused
   legal links and punctuation to fall onto separate lines. */
.foot .tandc{
  max-width:none;
  margin:0;
  padding:16px 0 20px;
  border-top:1px solid rgba(255,255,255,.14);
  border-bottom:0;
  font-size:.8rem;
}
.foot .tandc a,
.foot .legal a{
  display:inline;
  padding:0;
}
.foot .tandc a{white-space:nowrap}
.foot-in{
  grid-template-columns:minmax(0,1.35fr) minmax(180px,.75fr) minmax(270px,1fr);
  gap:clamp(36px,4vw,56px);
  align-items:start;
  padding:44px 0 30px;
}
.foot-in>div{min-width:0}
.foot-in p{margin-top:0}
.foot-in>div:first-child p:last-child{max-width:50ch!important}
.foot-in a{width:fit-content}
.policy-links{
  display:flex;
  flex-wrap:wrap;
  gap:4px 12px;
  margin-top:10px;
}
.policy-links a{display:inline-block;padding:2px 0}
.legal{padding:24px 0 32px}
.legal p{max-width:none;margin:0 0 10px}
.legal p:last-child{margin-bottom:0}

@media(max-width:900px){
  .foot-in{grid-template-columns:1fr 1fr;gap:30px 44px;padding-top:38px}
  .foot-in>div:first-child{grid-column:1/-1}
}
@media(max-width:620px){
  .foot .tandc{padding:16px 0}
  .foot-in{grid-template-columns:1fr;gap:28px}
  .foot-in>div:first-child{grid-column:auto}
  .legal{padding-bottom:28px}
}

/* Country pages: a scannable process that keeps official channels primary. */
.visa-process{background:var(--sea-soft)}
.visa-process .lede{max-width:74ch}
.visa-process-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  margin-top:30px;
}
.visa-process-step{
  min-width:0;
  padding:22px;
  border:1px solid color-mix(in srgb,var(--sea) 22%,var(--line));
  border-radius:16px;
  background:#fff;
}
.visa-process-step>span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:36px;
  height:36px;
  margin-bottom:15px;
  border-radius:50%;
  background:var(--pine);
  color:#fff;
  font-family:var(--mono);
  font-size:.75rem;
  font-weight:700;
}
.visa-process-step>b{
  display:block;
  color:var(--pine);
  font-family:var(--disp);
  font-size:1.03rem;
  line-height:1.3;
}
.visa-process-step p{margin:8px 0 0;font-size:.92rem;line-height:1.6;color:var(--mut)}
.visa-process-step a{color:var(--accent);font-weight:600;text-underline-offset:3px}
.visa-process-note{
  max-width:none!important;
  margin:20px 0 0;
  padding-left:12px;
  border-left:3px solid var(--accent);
  color:var(--mut);
  font-size:.85rem;
  line-height:1.6;
}
.visa-ready{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:9px;
  margin-top:20px;
}
.visa-ready>b{margin-right:4px;color:var(--pine);font-size:.9rem}
.visa-ready>span{
  display:inline-block;
  padding:7px 11px;
  border:1px solid color-mix(in srgb,var(--sea) 22%,var(--line));
  border-radius:999px;
  background:#fff;
  color:var(--mut);
  font-size:.8rem;
  line-height:1.3;
}
@media(max-width:980px){.visa-process-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.visa-process-grid{grid-template-columns:1fr;gap:14px}}

/* ========================================================================
   21. TREATMENT DIRECTORY — recognisable visuals and aligned cards
   ======================================================================== */
#estimate-anatomy{
  background:linear-gradient(135deg,#F2F8F5 0%,#F8FBF9 52%,#FFF8EE 100%);
}
#directory{background:#fff}
#directory .tier{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  align-items:stretch;
}
#directory .bigcard{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:0;
  overflow:hidden;
  border-color:#D8E3DE;
  border-radius:18px;
  box-shadow:0 16px 38px -34px rgba(9,42,36,.55);
}
#directory .cat-head{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-end;
  gap:0;
  min-height:214px;
  padding:0;
  overflow:hidden;
  background:#0E3B33;
}
#directory .cat-head::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg,rgba(4,26,22,.04) 28%,rgba(4,26,22,.86) 100%);
  pointer-events:none;
}
#directory .category-image{
  position:absolute;
  inset:0;
  margin:0;
  background:#DDE9E4;
}
#directory .category-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .45s cubic-bezier(.2,.75,.25,1);
}
#directory .cat-head h3{
  position:relative;
  z-index:2;
  max-width:27ch;
  margin:0;
  padding:40px 22px 20px;
  color:#fff;
  font-size:1.16rem;
  line-height:1.22;
  text-shadow:0 2px 12px rgba(0,0,0,.5);
}
#directory .bigcard>p{
  margin:20px 22px 0;
  color:var(--mut);
  font-size:.9rem;
  line-height:1.55;
}
#directory .bigcard>.proc{
  align-content:flex-start;
  margin:0;
  padding:22px 22px 24px;
  gap:8px;
}
#directory .bigcard>.proc span{
  padding:7px 11px;
  background:#F6F9F7;
  border-color:#D9E3DE;
  color:#243B35;
  font-size:.82rem;
  line-height:1.3;
}
#directory .bigcard:hover{
  transform:translateY(-4px);
  border-color:var(--accent);
  box-shadow:0 20px 40px -28px rgba(9,42,36,.35);
}
#directory .bigcard:hover .category-image img{transform:scale(1.035)}
@media(max-width:980px){#directory .tier{grid-template-columns:1fr 1fr}}
@media(max-width:640px){
  #directory .tier{grid-template-columns:1fr;gap:18px}
  #directory .cat-head{min-height:200px}
}
@media(prefers-reduced-motion:reduce){
  #directory .category-image img{transition:none}
  #directory .bigcard:hover .category-image img{transform:none}
}

/* ========================================================================
   22. CUREYATRA BRAND LOCKUP + PHOTOGRAPHIC TREATMENT CARDS (v3.9)
   ======================================================================== */
.logo{
  gap:11px;
  min-width:244px;
}
.logo .logomark{
  width:40px;
  height:40px;
  border-radius:0;
}
.logo .logotext b{
  font-family:var(--body);
  font-size:1.43rem;
  font-weight:750;
  letter-spacing:-.052em;
  color:#0A4A43;
}
.logo .logotext b span{color:#D87325}
.logo .logotext em{
  margin-top:5px;
  font-family:var(--body);
  font-size:.56rem;
  font-weight:650;
  letter-spacing:.17em;
  color:#49625B;
}
@media(max-width:560px){
  .logo{min-width:0;gap:9px}
  .logo .logomark{width:36px;height:36px}
  .logo .logotext b{font-size:1.27rem}
  .logo .logotext em{font-size:.5rem;letter-spacing:.13em}
}

#treatments .cards{gap:24px;align-items:stretch}
#treatments .tcard{
  gap:0;
  padding:0;
  overflow:hidden;
  border-color:#D7E2DD;
  border-radius:18px;
  box-shadow:0 16px 36px -34px rgba(6,50,42,.6);
}
#treatments .tcard::after{display:none}
#treatments .treatment-photo{
  position:relative;
  height:168px;
  overflow:hidden;
  background:#DCEBE6;
}
#treatments .treatment-photo::after{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:42%;
  background:linear-gradient(180deg,transparent,rgba(5,40,34,.18));
  pointer-events:none;
}
#treatments .treatment-photo img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .45s var(--ease),filter .45s var(--ease);
}
#treatments .tcard h3{margin:20px 22px 8px;font-size:1.08rem;line-height:1.25}
#treatments .tcard>p{margin:0 22px;font-size:.92rem;line-height:1.58}
#treatments .tcard .from{
  margin:18px 22px 22px;
  padding-top:14px;
  border-top:1px dashed #D7E2DD;
}
#treatments .tcard:hover .treatment-photo img{transform:scale(1.045);filter:saturate(1.05)}
@media(max-width:640px){#treatments .treatment-photo{height:190px}}

.official-fact-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
  margin:30px 0 36px;
}
.official-fact{
  min-width:0;
  padding:22px;
  border:1px solid #D6E3DE;
  border-radius:16px;
  background:#fff;
}
.official-fact b{
  display:block;
  margin-bottom:8px;
  color:var(--accent);
  font-family:var(--disp);
  font-size:1.45rem;
  line-height:1.15;
}
.official-fact span{display:block;color:var(--mut);font-size:.9rem;line-height:1.55}
@media(max-width:900px){.official-fact-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.official-fact-grid{grid-template-columns:1fr}}

/* ========================================================================
   23. PREMIUM INFORMATION FOOTER (v4.0)
   ======================================================================== */
.foot-premium{
  position:relative;
  overflow:hidden;
  background:#062F29;
  color:#C9DBD4;
  font-size:.94rem;
}
.foot-premium::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:3px;
  background:linear-gradient(90deg,#E68A2E 0 30%,#5AAE99 30% 58%,rgba(255,255,255,.16) 58%);
}
.foot-premium::after{
  content:"";
  position:absolute;
  width:500px;
  height:500px;
  right:-270px;
  top:-260px;
  border:1px solid rgba(230,138,46,.16);
  border-radius:50%;
  pointer-events:none;
}
.foot-premium .wrap{position:relative;z-index:1}
.foot-premium p{max-width:none}
.foot-premium a{color:#EEF6F2;text-underline-offset:3px}

.foot-cta{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);
  gap:48px;
  align-items:end;
  padding:58px 0 48px;
  border-bottom:1px solid rgba(255,255,255,.14);
}
.foot-kicker{
  margin:0 0 14px;
  color:#F1A64C;
  font-family:var(--body);
  font-size:.72rem;
  font-weight:750;
  letter-spacing:.16em;
}
.foot-cta h2{
  max-width:760px;
  margin:0 0 16px;
  color:#fff;
  font-size:clamp(2rem,3.2vw,3rem);
  letter-spacing:-.035em;
}
.foot-cta-copy>p:last-child{max-width:67ch;margin:0;color:#C9DBD4;font-size:1.02rem;line-height:1.65}
.foot-cta-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px}
.foot-premium .foot-cta-actions .btn{
  display:inline-flex;
  width:100%;
  min-height:50px;
  justify-content:center;
  padding:13px 20px;
}
.foot-premium .foot-btn-ghost{
  border:1px solid rgba(255,255,255,.38);
  background:rgba(255,255,255,.04);
  color:#fff;
}
.foot-premium .foot-btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.1);color:#fff}

.foot-main{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(190px,.55fr) minmax(290px,.8fr);
  gap:clamp(40px,5vw,72px);
  align-items:start;
  padding:52px 0 46px;
}
.foot-brand{min-width:0}
.foot-logo{
  display:inline-flex!important;
  align-items:center;
  gap:12px;
  width:fit-content;
  padding:0!important;
  text-decoration:none;
}
.foot-logo-mark{
  display:grid;
  width:50px;
  height:50px;
  place-items:center;
  flex:none;
  border-radius:15px;
  background:#FBF9F4;
  box-shadow:0 10px 26px rgba(0,0,0,.2);
}
.foot-logo-mark img{width:40px;height:40px}
.foot-logo-text{display:flex;flex-direction:column;line-height:1}
.foot-logo-text b{color:#fff;font-size:1.55rem;letter-spacing:-.05em}
.foot-logo-text b span{color:#F1A64C}
.foot-logo-text small{margin-top:6px;color:#9DB8AF;font-size:.54rem;font-weight:700;letter-spacing:.16em}
.foot-brand-line{margin:24px 0 8px;color:#fff;font-family:var(--disp);font-size:1.25rem;font-weight:750}
.foot-brand>p:last-of-type{max-width:58ch;color:#BED2CA;line-height:1.7}
.foot-proof{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 0;padding:0;list-style:none}
.foot-proof li{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:999px;
  background:rgba(255,255,255,.04);
  color:#DCEAE4;
  font-size:.75rem;
  line-height:1.2;
}
.foot-proof li::before{content:"✓";color:#F1A64C;font-weight:800}

.foot-premium .foot-title{margin:0 0 18px;color:#F1A64C;font-size:.76rem;letter-spacing:.13em}
.foot-nav a{
  display:flex;
  align-items:center;
  width:fit-content;
  padding:5px 0;
  color:#D9E7E1;
  text-decoration:none;
  transition:color .18s ease,transform .18s ease;
}
.foot-nav a:hover{color:#fff;transform:translateX(3px)}

.foot-contact{
  padding:25px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.025));
  box-shadow:0 22px 50px -38px rgba(0,0,0,.8);
}
.foot-contact>p:nth-child(2){margin:0 0 20px;color:#BFD2CB;line-height:1.6}
.foot-contact-link{
  display:block!important;
  padding:13px 0!important;
  border-top:1px solid rgba(255,255,255,.12);
  text-decoration:none;
}
.foot-contact-link span{display:block;margin-bottom:2px;color:#8FAEA4;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.foot-contact-link b{display:block;color:#fff;font-size:.98rem;overflow-wrap:anywhere}
.foot-contact address{margin-top:15px;color:#AFC6BD;font-style:normal;font-size:.82rem;line-height:1.6}

.foot-principles{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  border-top:1px solid rgba(255,255,255,.14);
  border-bottom:1px solid rgba(255,255,255,.14);
}
.foot-principles>div{display:grid;grid-template-columns:34px 1fr;gap:14px;padding:26px 28px 28px 0}
.foot-principles>div+div{padding-left:28px;border-left:1px solid rgba(255,255,255,.14)}
.foot-principles span{color:#F1A64C;font-family:var(--mono);font-size:.72rem;font-weight:700}
.foot-principles p{margin:0;color:#AFC6BD;font-size:.82rem;line-height:1.55}
.foot-principles b{display:block;margin-bottom:5px;color:#fff;font-size:.94rem}

.foot-notices{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(280px,.75fr);
  gap:clamp(44px,7vw,90px);
  padding:38px 0 30px;
}
.foot-notices p:not(.foot-title){margin:0 0 10px;color:#AFC6BD;font-size:.79rem;line-height:1.65}
.foot-notices a{display:inline;padding:0;text-decoration:underline}
.foot-policy-links{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:16px}
.foot-policy-links a{font-size:.82rem;font-weight:650}
.foot-bottom{
  display:flex;
  justify-content:space-between;
  gap:24px;
  padding:20px 0;
  border-top:1px solid rgba(255,255,255,.14);
  color:#8FAEA4;
  font-size:.75rem;
}
.foot-bottom p{margin:0}
.foot-premium .footer-note{position:relative;z-index:1}
.foot-premium .tandc{
  max-width:none;
  margin:0;
  padding:17px 0 20px;
  border-top:1px solid rgba(230,138,46,.35);
  color:#B9CEC6;
  font-size:.75rem;
  line-height:1.55;
}
.foot-premium .tandc strong{color:#F1A64C}
.foot-premium .tandc a{display:inline;padding:0;color:#E8F2EE;white-space:nowrap}

@media(max-width:940px){
  .foot-cta{grid-template-columns:1fr;gap:26px}
  .foot-cta-actions{flex-direction:row;align-items:center}
  .foot-premium .foot-cta-actions .btn{width:auto}
  .foot-main{grid-template-columns:1fr 1fr}
  .foot-brand{grid-column:1/-1}
  .foot-notices{grid-template-columns:1fr;gap:26px}
}
@media(max-width:700px){
  .foot-cta{padding:46px 0 38px}
  .foot-cta-actions{flex-direction:column;align-items:stretch}
  .foot-premium .foot-cta-actions .btn{width:100%}
  .foot-main{grid-template-columns:1fr;gap:34px;padding:42px 0 38px}
  .foot-brand{grid-column:auto}
  .foot-principles{grid-template-columns:1fr}
  .foot-principles>div{padding:21px 0}
  .foot-principles>div+div{padding-left:0;border-top:1px solid rgba(255,255,255,.12);border-left:0}
  .foot-notices{padding:32px 0 26px}
  .foot-bottom{flex-direction:column;gap:6px}
}
@media(max-width:420px){
  .foot-cta h2{font-size:1.85rem}
  .foot-logo-text b{font-size:1.4rem}
  .foot-contact{padding:21px}
  .foot-proof{align-items:flex-start;flex-direction:column}
}

/* ---- 19. ENQUIRY FORM STATES (v3.16) ----------------------------------- */
.hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;
    opacity:0!important;pointer-events:none!important}
.form-status{
  display:none;margin-top:16px;padding:15px 18px;border-radius:14px;
  font-size:.97rem;line-height:1.6;border:1px solid var(--line);background:#fff;color:var(--ink);
}
.form-status.show{display:block}
.form-status.ok{border-color:#2C7A4B;background:#EFF7F1;color:#14201D}
.form-status.err{border-color:#B3402F;background:#FBEFEC;color:#14201D}
.form-status a.fs-link{
  display:inline-block;margin:9px 10px 0 0;padding:9px 15px;border-radius:999px;
  background:var(--pine);color:#fff;text-decoration:none;font-weight:600;font-size:.92rem;
}
.form-status a.fs-link:hover{filter:brightness(1.12)}
button[type="submit"][disabled]{opacity:.65;cursor:progress}

/* CureYatra final accessibility and disclosure refinements */
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--marigold);outline-offset:3px}
button,.btn{min-height:44px}
input,select,textarea{font:inherit}
.homepage-claim-note{background:#fff7e9;border-bottom:1px solid var(--line)}
.homepage-claim-note .wrap{padding-top:12px;padding-bottom:12px}
.homepage-claim-note p{max-width:none;margin:0;color:var(--mut);font-size:.78rem;line-height:1.55}
.homepage-claim-note strong{color:var(--pine)}
@media(max-width:560px){.homepage-claim-note p{font-size:.76rem}}
