:root{
  --ivory:#fbf8f3;
  --ivory-deep:#f3ece5;
  --paper:#ffffff;
  --ink:#2d2028;
  --muted:#786b73;
  --quiet:#a4979f;
  --plum:#40152f;
  --plum-deep:#260b1c;
  --brand:#a44683;
  --brand-bright:#e17fae;
  --blush:#f9e9f2;
  --blush-soft:#fff6fa;
  --teal:#007c94;
  --teal-dark:#006679;
  --teal-soft:#e7f5f7;
  --sage:var(--teal);
  --sage-dark:var(--teal-dark);
  --sage-soft:var(--teal-soft);
  --champagne:#b58b4e;
  --champagne-soft:#f7eedf;
  --line:#eadfe4;
  --line-strong:#d9c9d1;
  --danger:#b93f4a;
  --shadow-xs:0 8px 24px rgba(59,25,45,.06);
  --shadow-sm:0 16px 40px rgba(59,25,45,.09);
  --shadow-md:0 28px 70px rgba(59,25,45,.14);
  --shadow-lg:0 42px 110px rgba(43,13,32,.24);
  /* Trước là Fraunces (font có chân). Đổi sang bộ chữ KHÔNG chân của thương hiệu
     (Be Vietnam Pro — cùng kiểu chữ với logo IVF Phương Châu và tên bác sĩ) để mọi
     tiêu đề bỏ "râu ria". Giữ tên biến --serif để không phải sửa hàng chục nơi. */
  --serif:"Be Vietnam Pro","Noto Sans JP","Noto Sans KR","Noto Sans SC","Noto Sans Khmer",system-ui,-apple-system,"Segoe UI",sans-serif;
  --sans:"Be Vietnam Pro","Noto Sans JP","Noto Sans KR","Noto Sans SC","Noto Sans Khmer",system-ui,-apple-system,"Segoe UI",sans-serif;
}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  min-width:320px;
  overflow-x:hidden;
  color:var(--ink);
  background:
    radial-gradient(circle at 5% 29%,rgba(248,232,241,.68),transparent 28rem),
    radial-gradient(circle at 94% 66%,rgba(0,124,148,.11),transparent 30rem),
    var(--ivory);
  font-family:var(--sans);
  line-height:1.58;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%}
button,input{font:inherit}
button{color:inherit}
a{color:inherit}
::selection{color:var(--plum);background:#f2cfe2}
.wrap{width:100%;max-width:1240px;margin:0 auto;padding:0 30px}
.skip-link{
  position:fixed;
  z-index:200;
  top:12px;
  left:12px;
  padding:10px 14px;
  border-radius:10px;
  color:#fff;
  background:var(--plum);
  text-decoration:none;
  transform:translateY(-150%);
  transition:transform .2s ease;
}
.skip-link:focus{transform:none}
:focus-visible{outline:3px solid rgba(164,70,131,.32);outline-offset:3px}

/* Header */
.site-header{
  position:sticky;
  z-index:50;
  top:0;
  border-bottom:1px solid rgba(234,223,228,.56);
  background:rgba(251,248,243,.78);
  backdrop-filter:blur(22px) saturate(1.35);
  transition:background .25s ease,box-shadow .25s ease;
}
.site-header::after{
  position:absolute;
  right:0;
  bottom:-1px;
  left:0;
  height:2px;
  content:"";
  opacity:.42;
  background:linear-gradient(90deg,transparent 5%,var(--teal) 34%,var(--brand) 52%,var(--brand-bright) 70%,transparent 95%);
}
.site-header.scrolled{
  background:rgba(255,253,250,.94);
  box-shadow:0 12px 34px rgba(54,21,41,.08);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:82px;
}
.brand{
  display:inline-flex;
  align-items:center;
  min-width:0;
  text-decoration:none;
}
.brand-logo{
  width:178px;
  height:auto;
  object-fit:contain;
  border-radius:10px;
  background:#fff;
  box-shadow:0 8px 24px rgba(164,70,131,.09);
}
.header-actions{display:flex;align-items:center;gap:10px}
.header-cta{
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:10px 17px;
  border-radius:999px;
  color:#fff;
  background:var(--brand);
  box-shadow:0 10px 22px rgba(66,23,47,.18);
  font-size:13px;
  font-weight:800;
  text-decoration:none;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease;
}
.header-cta:hover{background:var(--teal);box-shadow:0 14px 28px rgba(0,124,148,.22);transform:translateY(-2px)}
.lang-switch{position:relative;z-index:55}
.lang-btn{
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:44px;
  padding:9px 13px;
  cursor:pointer;
  border:1px solid rgba(217,201,209,.88);
  border-radius:999px;
  color:var(--plum);
  background:rgba(255,255,255,.86);
  box-shadow:var(--shadow-xs);
  font-size:13px;
  font-weight:700;
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.lang-btn:hover{border-color:#d596b9;box-shadow:0 12px 30px rgba(80,28,59,.11)}
.lang-btn:active{transform:translateY(1px)}
.lang-btn svg{opacity:.68;transition:transform .2s ease}
.lang-btn[aria-expanded="true"] svg{transform:rotate(180deg)}
.lang-flag{font-size:18px;line-height:1}
.lang-menu{
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  min-width:228px;
  max-height:min(70vh,430px);
  margin:0;
  padding:7px;
  overflow:auto;
  list-style:none;
  border:1px solid var(--line-strong);
  border-radius:18px;
  background:rgba(255,255,255,.98);
  box-shadow:var(--shadow-md);
  animation:menu-in .18s ease;
}
.lang-menu li{
  display:flex;
  align-items:center;
  gap:11px;
  padding:11px 12px;
  cursor:pointer;
  border-radius:12px;
  color:var(--ink);
  font-size:13px;
  font-weight:650;
  transition:background .16s ease,color .16s ease;
}
.lang-menu li:hover,.lang-menu li:focus{background:var(--blush-soft);outline:none}
.lang-menu li[aria-selected="true"]{color:var(--plum);background:var(--blush)}
@keyframes menu-in{from{opacity:0;transform:translateY(-7px) scale(.98)}to{opacity:1;transform:none}}

/* Hero */
.hero{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:690px;
  color:#fff;
  background:
    linear-gradient(112deg,rgba(38,11,28,.99) 0%,rgba(64,21,47,.98) 46%,rgba(164,70,131,.94) 100%);
}
.hero::after{
  position:absolute;
  z-index:-1;
  inset:0;
  content:"";
  opacity:.24;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:54px 54px;
  -webkit-mask-image:linear-gradient(to right,#000,transparent 82%);
  mask-image:linear-gradient(to right,#000,transparent 82%);
}
.hero-grain{
  position:absolute;
  z-index:-1;
  inset:0;
  opacity:.17;
  pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E");
}
.hero-aura{
  position:absolute;
  z-index:-1;
  border-radius:50%;
  filter:blur(1px);
  pointer-events:none;
}
.hero-aura-one{
  top:-230px;
  right:-110px;
  width:660px;
  height:660px;
  border:1px solid rgba(255,255,255,.14);
  box-shadow:
    0 0 0 80px rgba(255,255,255,.025),
    0 0 0 160px rgba(255,255,255,.018);
}
.hero-aura-two{
  bottom:-220px;
  left:28%;
  width:420px;
  height:420px;
  background:radial-gradient(circle,rgba(0,124,148,.28),transparent 66%);
}
.hero-grid{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.02fr) minmax(470px,.98fr);
  gap:78px;
  align-items:center;
  min-height:650px;
  padding-top:70px;
  padding-bottom:92px;
}
.hero-copy{position:relative;z-index:2;min-width:0;padding-bottom:10px}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin:0 0 20px;
  color:#f3c9de;
  font-size:12px;
  font-weight:800;
  letter-spacing:.17em;
  text-transform:uppercase;
}
.eyebrow-mark{
  display:grid;
  place-items:center;
  width:27px;
  height:27px;
  border:1px solid rgba(255,255,255,.26);
  border-radius:50%;
  color:#edc47f;
  font-size:10px;
}
.hero-title{
  max-width:710px;
  margin:0;
  color:#fffafc;
  font-family:var(--serif);
  font-size:clamp(48px,5vw,72px);
  font-weight:600;             /* sans cần đậm hơn serif để giữ vẻ trang trọng */
  letter-spacing:-.02em;
  line-height:1.04;
  text-wrap:balance;
}
html[lang="ja"] .hero-title,
html[lang="zh"] .hero-title,
html[lang="ko"] .hero-title{font-family:"Noto Sans JP",var(--serif);letter-spacing:-.02em;line-height:1.14}
.hero-sub{
  max-width:640px;
  margin:24px 0 0;
  color:rgba(255,242,248,.74);
  font-size:16px;
  line-height:1.75;
}
.hero-actions{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
  margin-top:32px;
}
.hero-cta{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:11px;
  min-height:55px;
  padding:13px 19px;
  border-radius:999px;
  font-size:14px;
  font-weight:800;
  text-decoration:none;
  transition:transform .22s ease,box-shadow .22s ease,background .22s ease,border-color .22s ease;
}
.hero-cta.primary{
  padding-left:23px;
  color:var(--plum);
  background:#fff;
  box-shadow:0 22px 46px rgba(22,5,16,.25);
}
.hero-cta.secondary{
  color:#fff;
  border:1px solid rgba(255,255,255,.24);
  background:rgba(255,255,255,.07);
  backdrop-filter:blur(10px);
}
.hero-cta:hover{transform:translateY(-3px)}
.hero-cta.primary:hover{box-shadow:0 28px 54px rgba(22,5,16,.31)}
.hero-cta.secondary:hover{border-color:rgba(255,255,255,.46);background:rgba(255,255,255,.12)}
.cta-arrow{
  display:grid;
  place-items:center;
  width:31px;
  height:31px;
  margin:-3px -7px -3px 2px;
  border-radius:50%;
  color:#fff;
  background:var(--brand);
  transition:transform .22s ease;
}
.hero-cta:hover .cta-arrow{transform:rotate(-9deg)}
.play-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#71d2df;
  box-shadow:0 0 0 6px rgba(0,124,148,.18);
}
.trust-strip{
  display:flex;
  flex-wrap:wrap;
  gap:10px 18px;
  margin-top:31px;
}
.trust-strip>span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:rgba(255,246,250,.72);
  font-size:11px;
  font-weight:650;
}
.trust-check{
  display:grid;
  place-items:center;
  width:19px;
  height:19px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:50%;
  color:#79d7e2;
  font-size:10px;
  font-style:normal;
}
.hero-visual{
  position:relative;
  z-index:1;
  width:100%;
  min-height:510px;
}
.portrait-frame{
  position:absolute;
  top:0;
  right:44px;
  width:min(100%,390px);
  height:510px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.28);
  border-radius:195px 195px 38px 38px;
  background:#eadde4;
  box-shadow:0 42px 90px rgba(21,5,16,.38);
}
.portrait-frame::after{
  position:absolute;
  inset:0;
  content:"";
  background:linear-gradient(180deg,transparent 58%,rgba(43,13,32,.78) 100%);
  pointer-events:none;
}
.portrait-main{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:55% 28%;
  filter:saturate(.92) contrast(1.02);
  transition:transform .8s cubic-bezier(.2,.8,.2,1);
}
.portrait-frame:hover .portrait-main{transform:scale(1.025)}
.portrait-index{
  position:absolute;
  z-index:2;
  top:48px;
  right:28px;
  color:rgba(66,23,47,.72);
  font-size:10px;
  font-weight:800;
  letter-spacing:.12em;
}
.portrait-caption{
  position:absolute;
  z-index:2;
  right:27px;
  bottom:26px;
  left:27px;
  display:flex;
  flex-direction:column;
  color:#fff;
}
.portrait-caption span{
  font-size:10px;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
  opacity:.68;
}
.portrait-caption strong{
  margin-top:4px;
  font-family:var(--serif);
  font-size:19px;
  font-weight:500;
}
.portrait-stack{
  position:absolute;
  z-index:4;
  top:55px;
  right:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:8px;
  border:1px solid rgba(255,255,255,.25);
  border-radius:999px;
  background:rgba(255,255,255,.12);
  box-shadow:0 22px 46px rgba(20,5,15,.2);
  backdrop-filter:blur(14px);
}
.portrait-stack img,.portrait-stack>span{
  width:49px;
  height:49px;
  margin-top:-7px;
  border:3px solid rgba(255,255,255,.94);
  border-radius:50%;
  object-fit:cover;
  object-position:50% 24%;
  box-shadow:0 7px 15px rgba(30,6,21,.2);
}
.portrait-stack img:first-child{margin-top:0}
.portrait-stack>span{
  display:grid;
  place-items:center;
  color:#fff;
  border-color:rgba(255,255,255,.42);
  background:var(--brand);
  font-size:11px;
  font-weight:800;
}
.glass-card{
  position:absolute;
  z-index:5;
  display:flex;
  align-items:center;
  border:1px solid rgba(255,255,255,.28);
  color:#fff;
  background:rgba(255,255,255,.12);
  box-shadow:0 24px 50px rgba(19,4,14,.21);
  backdrop-filter:blur(18px) saturate(1.2);
}
.clinic-badge{
  bottom:58px;
  left:-30px;
  gap:12px;
  min-width:205px;
  padding:14px 17px;
  border-radius:18px;
}
.badge-spark{
  display:grid;
  place-items:center;
  flex:none;
  width:40px;
  height:40px;
  border-radius:13px;
  color:#fff;
  background:var(--teal);
}
.clinic-badge div{display:flex;flex-direction:column}
.clinic-badge strong{font-size:12px;line-height:1.35}
.clinic-badge small{margin-top:3px;color:rgba(255,255,255,.6);font-size:9px;font-weight:700;letter-spacing:.07em}
.privacy-badge{
  right:4px;
  bottom:2px;
  gap:10px;
  width:238px;
  padding:12px 15px;
  border-radius:16px;
  color:rgba(255,255,255,.72);
  font-size:9px;
  line-height:1.5;
}
.shield-icon{
  display:grid;
  place-items:center;
  flex:none;
  width:29px;
  height:29px;
  border-radius:50%;
  color:#f0ca86;
  border:1px solid rgba(240,202,134,.45);
}
.portrait-orbit{
  position:absolute;
  border:1px solid rgba(255,255,255,.12);
  border-radius:50%;
}
.orbit-one{top:-26px;right:5px;width:455px;height:455px}
.orbit-two{right:144px;bottom:2px;width:175px;height:175px;border-color:rgba(240,202,134,.25)}
.hero-marquee{
  position:absolute;
  right:0;
  bottom:0;
  left:0;
  height:40px;
  overflow:hidden;
  border-top:1px solid rgba(255,255,255,.1);
  color:rgba(255,255,255,.42);
  background:rgba(24,5,17,.14);
}
.hero-marquee div{
  display:flex;
  align-items:center;
  gap:30px;
  width:max-content;
  height:100%;
  white-space:nowrap;
  animation:marquee 28s linear infinite;
}
.hero-marquee span{font-size:9px;font-weight:800;letter-spacing:.18em}
.hero-marquee i{color:#d7aa64;font-size:9px;font-style:normal}
@keyframes marquee{to{transform:translateX(-50%)}}

/* Booking layout and progress */
.booking-layout{
  display:grid;
  grid-template-columns:300px minmax(0,1fr);
  gap:34px;
  align-items:start;
  padding-top:64px;
  padding-bottom:92px;
}
.booking-layout>*{min-width:0}
.booking-rail{position:sticky;top:108px;min-width:0}
.rail-panel{
  overflow:hidden;
  border:1px solid rgba(226,211,219,.9);
  border-radius:25px;
  background:rgba(255,255,255,.8);
  box-shadow:var(--shadow-sm);
  backdrop-filter:blur(14px);
}
.rail-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:20px 20px 13px;
}
.rail-kicker{
  margin:0;
  color:var(--plum);
  font-size:12px;
  font-weight:800;
}
.rail-count{color:var(--quiet);font-size:11px;font-weight:700}
.rail-count b{color:var(--brand);font-size:14px}
.rail-progress{height:3px;margin:0 20px 11px;overflow:hidden;border-radius:999px;background:var(--line)}
.rail-progress span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand),var(--brand-bright));transition:width .35s ease}
.rail-steps{margin:0;padding:5px 10px 13px;list-style:none}
.rail-steps li{
  position:relative;
  display:grid;
  grid-template-columns:42px minmax(0,1fr) 21px;
  align-items:center;
  gap:7px;
  min-height:53px;
  padding:7px 10px;
  cursor:pointer;
  border-radius:14px;
  color:#6e626a;
  transition:color .2s ease,background .2s ease,transform .2s ease;
}
.rail-steps li:hover{color:var(--plum);background:var(--blush-soft);transform:translateX(2px)}
.rail-steps li.active{color:var(--plum);background:linear-gradient(90deg,var(--blush),rgba(248,232,241,.25))}
.rail-steps li>span{
  display:grid;
  place-items:center;
  width:34px;
  height:34px;
  border:1px solid var(--line);
  border-radius:11px;
  color:var(--champagne);
  background:var(--ivory);
  font-family:var(--serif);
  font-size:12px;
  font-weight:700;
  transition:color .2s ease,background .2s ease,border-color .2s ease;
}
.rail-steps li.active>span{color:#fff;border-color:var(--plum);background:var(--plum)}
.rail-steps li.complete>span{color:#fff;border-color:var(--sage);background:var(--sage)}
.rail-steps li>b{font-size:12px;line-height:1.35}
.rail-steps li>i{
  display:grid;
  place-items:center;
  width:19px;
  height:19px;
  border-radius:50%;
  color:#fff;
  background:var(--sage);
  font-size:9px;
  font-style:normal;
  opacity:0;
  transform:scale(.55);
  transition:opacity .2s ease,transform .2s ease;
}
.rail-steps li.complete>i{opacity:1;transform:none}
.rail-note{
  padding:18px 20px 21px;
  border-top:1px solid var(--line);
  background:linear-gradient(145deg,var(--ivory),#fff);
}
.rail-note img{width:auto;height:32px;margin-bottom:11px}
.rail-note p{margin:0;color:var(--muted);font-size:10px;line-height:1.65}
.booking-form{min-width:0}

/* Form panels */
.panel{
  position:relative;
  min-width:0;
  margin:0 0 20px;
  padding:30px;
  overflow:hidden;
  scroll-margin-top:105px;
  border:1px solid rgba(226,211,219,.9);
  border-radius:27px;
  background:rgba(255,255,255,.92);
  box-shadow:var(--shadow-xs);
  transition:border-color .25s ease,box-shadow .25s ease,transform .5s ease,opacity .5s ease;
}
.panel::before{
  position:absolute;
  top:0;
  right:0;
  width:170px;
  height:170px;
  border-radius:0 0 0 100%;
  content:"";
  pointer-events:none;
  background:radial-gradient(circle at 100% 0,rgba(248,232,241,.9),transparent 70%);
}
.panel:hover{border-color:#ddc5d2;box-shadow:0 18px 46px rgba(59,25,45,.08)}
.panel.is-current{border-color:rgba(164,70,131,.42);box-shadow:0 22px 58px rgba(59,25,45,.1)}
.panel-head{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:auto 48px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  margin-bottom:23px;
  padding-bottom:20px;
  border-bottom:1px solid var(--line);
}
.panel-num{
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  border:1px solid #eadbc4;
  border-radius:13px;
  color:var(--champagne);
  background:var(--champagne-soft);
  font-family:var(--serif);
  font-size:13px;
  font-weight:700;
}
.panel-ico{
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  border:1px solid #d6e6e2;
  border-radius:15px;
  color:var(--sage-dark);
  background:var(--sage-soft);
}
.panel-ico svg{width:23px;height:23px}
.panel-title{
  min-width:0;
  margin:0;
  color:var(--plum);
  font-family:var(--serif);
  font-size:25px;
  font-weight:500;
  letter-spacing:-.015em;
  line-height:1.2;
}
.panel-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:27px;
  padding:5px 9px;
  border:1px solid rgba(var(--brand-rgb),.18);
  border-radius:999px;
  color:#875271;
  background:#fff5fa;
  font-size:9px;
  font-weight:850;
  line-height:1.2;
  white-space:nowrap;
}
.panel-status.is-complete{
  color:#fff;
  border-color:var(--brand);
  background:linear-gradient(120deg,var(--brand),var(--rgb-purple));
  box-shadow:0 8px 20px rgba(var(--brand-rgb),.2);
}
.panel-status.is-optional{
  color:var(--muted);
  border-color:var(--line);
  background:#f8f3f6;
}
.panel-status.is-error{
  color:#fff;
  border-color:var(--danger);
  background:var(--danger);
  box-shadow:0 8px 20px rgba(185,63,74,.2);
}
.panel-required.is-incomplete{border-color:rgba(var(--brand-rgb),.18)}
.panel-required.is-complete{
  border-color:rgba(var(--brand-rgb),.48);
  box-shadow:0 24px 70px rgba(var(--brand-rgb),.12);
}
.panel-required.needs-attention{
  border-color:var(--danger);
  background:linear-gradient(145deg,#fff,#fff6f7);
  box-shadow:0 0 0 4px rgba(185,63,74,.1),0 24px 70px rgba(126,33,45,.14);
  animation:required-panel-attention .55s ease;
}
@keyframes required-panel-attention{
  0%{transform:translateY(0)}
  35%{transform:translateY(-5px)}
  100%{transform:translateY(0)}
}
html[lang="ja"] .panel-title,
html[lang="zh"] .panel-title,
html[lang="ko"] .panel-title{font-family:"Noto Sans JP",var(--serif);letter-spacing:0}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:flex;flex-direction:column;gap:8px;min-width:0}
.col-2{grid-column:1/-1}
.field-split{display:grid;grid-column:1/-1;grid-template-columns:1fr 1fr;gap:18px}
.field-split>div{display:flex;flex-direction:column;gap:8px;min-width:0}
label{color:var(--plum);font-size:12px;font-weight:800}
.opt{color:var(--quiet);font-size:11px;font-style:normal;font-weight:600}
.req{color:var(--danger);font-size:13px;font-style:normal;font-weight:800;line-height:1}
.panel-title .req{font-size:.7em;vertical-align:super}
.form-legend{
  display:flex;
  gap:5px;
  align-items:baseline;
  margin:0 0 14px;
  color:var(--muted);
  font-size:12px;
  font-weight:600;
}
.hint{color:var(--muted);font-size:11px;line-height:1.55}
input{
  width:100%;
  min-height:53px;
  padding:13px 15px;
  border:1.5px solid var(--line-strong);
  border-radius:15px;
  color:var(--ink);
  background:#fffdfb;
  font-size:15px;
  appearance:none;
  -webkit-appearance:none;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease,transform .18s ease;
}
input::placeholder{color:#b5a9b0}
input:hover{border-color:#cc9bb6}
input:focus{outline:none;border-color:var(--brand);background:#fff;box-shadow:0 0 0 5px rgba(164,70,131,.11)}
input:invalid.touched{border-color:var(--danger);background:#fff7f7;box-shadow:0 0 0 4px rgba(185,63,74,.07)}
input[type="date"]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.58}

/* Schedule */
.doc-note{
  position:relative;
  margin:0 0 17px;
  padding:14px 16px 14px 45px;
  border:1px solid #d4e5e0;
  border-radius:15px;
  color:#46665f;
  background:var(--sage-soft);
  font-size:12px;
  line-height:1.6;
}
.doc-note::before{
  position:absolute;
  top:14px;
  left:15px;
  display:grid;
  place-items:center;
  width:21px;
  height:21px;
  border:1px solid rgba(63,104,95,.25);
  border-radius:50%;
  content:"i";
  font-family:var(--serif);
  font-weight:700;
}
.sched{
  margin:0 0 20px;
  overflow:hidden;
  border:1px solid var(--line-strong);
  border-radius:17px;
  background:var(--ivory);
}
.sched summary{
  display:flex;
  align-items:center;
  gap:11px;
  min-height:54px;
  padding:12px 15px;
  cursor:pointer;
  color:var(--plum);
  list-style:none;
  font-size:12px;
  font-weight:800;
  transition:background .18s ease;
}
.sched summary:hover{background:var(--blush-soft)}
.sched summary::-webkit-details-marker{display:none}
.sched-sum-ico{
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border:1px solid var(--line);
  border-radius:10px;
  color:var(--brand);
  background:#fff;
}
.sched-sum-ico svg{width:17px;height:17px}
.sched-caret{margin-left:auto;color:var(--brand);transition:transform .2s ease}
.sched[open] .sched-caret{transform:rotate(180deg)}
.sched-box{padding:12px;border-top:1px solid var(--line);background:#fff}
.sched-updating{margin:4px;color:var(--muted);font-size:12px}
.sched-scroll{max-width:100%;overflow-x:auto;border:1px solid var(--line);border-radius:13px;-webkit-overflow-scrolling:touch}
.sched-box table{width:100%;border-collapse:separate;border-spacing:0;white-space:nowrap;font-size:11px}
.sched-box th,.sched-box td{padding:10px;text-align:center;vertical-align:middle;border-bottom:1px solid var(--line)}
.sched-box thead th{position:sticky;z-index:2;top:0;color:#fff7fb;background:var(--plum);font-weight:800}
.sched-box thead th .sd-day{display:block;font-family:var(--serif);font-size:11px;font-weight:600}
.sched-box thead th .sd-date{display:block;margin-top:2px;font-size:9px;font-variant-numeric:tabular-nums;opacity:.7}
.sched-box tbody tr:last-child td{border-bottom:0}
.sched-box td.sched-doc,.sched-box th.sched-doc{
  position:sticky;
  z-index:3;
  left:0;
  min-width:165px;
  border-right:1px solid var(--line);
  background:#fff;
  text-align:left;
}
.sched-box thead th.sched-doc{z-index:4;background:var(--plum)}
.sched-box th.is-today,.sched-box td.is-today{background:var(--blush)}
.sched-box thead th.is-today{background:var(--brand)}
.sched-doc-cell{display:flex;align-items:center;gap:8px}
.sched-ava{flex:none;width:29px;height:29px;border:2px solid #fff;border-radius:50%;object-fit:cover;box-shadow:0 0 0 1px var(--line)}
.sched-doc-name{color:var(--ink);font-size:11px;font-weight:800}
.sc-on{color:var(--plum)}
.sc-on b{display:inline-block;padding:3px 8px;border:1px solid #d2e4df;border-radius:999px;color:var(--sage-dark);background:var(--sage-soft);font-weight:800}
.sc-off{color:#c8bac2}
.sc-rest{display:inline-block;padding:3px 8px;border:1px solid #ead9bb;border-radius:999px;color:#997033;background:var(--champagne-soft);font-size:10px;font-weight:800}
.sched-note{margin-top:12px;color:var(--muted);font-size:11px;line-height:1.55}
.sched-note div{margin:3px 0}
.sched-note div::before{color:var(--champagne);content:"• "}

/* Doctors */
.doc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.doc-card{
  position:relative;
  display:grid;
  grid-template-columns:78px minmax(0,1fr);
  grid-template-rows:auto auto auto;
  align-items:center;
  column-gap:14px;
  row-gap:4px;
  min-height:118px;
  padding:14px 42px 14px 14px;
  overflow:hidden;
  cursor:pointer;
  border:1.5px solid var(--line);
  border-radius:19px;
  color:var(--ink);
  background:#fffdfb;
  text-align:left;
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease,background .2s ease;
}
.doc-card::before{
  position:absolute;
  inset:auto 0 0;
  height:42%;
  content:"";
  opacity:0;
  background:linear-gradient(0deg,rgba(248,232,241,.85),transparent);
  transition:opacity .2s ease;
}
.doc-card:hover{border-color:#d292b6;background:#fff;box-shadow:0 15px 30px rgba(66,23,47,.09);transform:translateY(-3px)}
.doc-card.selected{border-color:var(--brand);background:linear-gradient(145deg,#fff,var(--blush-soft));box-shadow:0 18px 36px rgba(101,32,73,.12)}
.doc-card.selected::before{opacity:1}
.doc-photo{
  position:relative;
  z-index:1;
  grid-row:1/4;
  width:78px;
  height:84px;
  border:3px solid #fff;
  border-radius:14px;
  object-fit:cover;
  object-position:50% 24%;
  background:var(--blush);
  box-shadow:0 0 0 1px var(--line),0 8px 20px rgba(49,20,37,.1);
}
.doc-name,.doc-role,.doc-badge{position:relative;z-index:1}
.doc-name{min-width:0;color:var(--plum);font-size:12px;font-weight:800;line-height:1.35}
.doc-role{min-width:0;color:var(--muted);font-size:10px;font-weight:650;line-height:1.4}
.doc-badge{
  justify-self:start;
  display:inline-flex;
  align-items:center;
  min-height:21px;
  padding:3px 8px;
  border:1px solid #e8d7b9;
  border-radius:999px;
  color:#936b31;
  background:var(--champagne-soft);
  font-size:9px;
  font-weight:800;
  line-height:1;
  text-transform:uppercase;
}
.doc-check{
  position:absolute;
  z-index:3;
  top:13px;
  right:13px;
  display:grid;
  place-items:center;
  width:23px;
  height:23px;
  border-radius:50%;
  color:#fff;
  background:var(--brand);
  box-shadow:0 7px 15px rgba(101,32,73,.24);
  font-size:10px;
  opacity:0;
  transform:scale(.55) rotate(-14deg);
  transition:opacity .2s ease,transform .2s ease;
}
.doc-card.selected .doc-check{opacity:1;transform:none}
.doc-card.none{border-style:dashed}

/* Sources */
.source-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.source-opt{
  display:flex;
  align-items:center;
  gap:11px;
  min-height:52px;
  padding:12px 14px;
  cursor:pointer;
  border:1.5px solid var(--line);
  border-radius:15px;
  color:var(--ink);
  background:#fffdfb;
  font-size:12px;
  font-weight:700;
  text-align:left;
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease;
}
.source-opt:hover{border-color:#d292b6;background:#fff;transform:translateY(-2px)}
.source-opt.selected{border-color:var(--brand);color:var(--plum);background:var(--blush-soft);box-shadow:0 10px 24px rgba(101,32,73,.08)}
.source-opt .dot{
  position:relative;
  flex:none;
  width:20px;
  height:20px;
  border:2px solid var(--line-strong);
  border-radius:50%;
  transition:border-color .18s ease,background .18s ease;
}
.source-opt.selected .dot{border-color:var(--brand)}
.source-opt.selected .dot::after{position:absolute;inset:4px;border-radius:50%;content:"";background:var(--brand)}
#sourceOtherWrap{margin-top:15px}

/* Submit and feedback */
.submit-zone{margin-top:23px}
.submit-gate{
  margin-bottom:14px;
  padding:16px;
  border:1px solid rgba(var(--brand-rgb),.18);
  border-radius:19px;
  background:linear-gradient(145deg,#fff,#fff6fa);
  box-shadow:0 12px 32px rgba(var(--brand-rgb),.06);
}
.submit-gate-head{display:flex;align-items:center;gap:11px}
.submit-gate-lock{
  display:grid;
  flex:0 0 36px;
  place-items:center;
  width:36px;
  height:36px;
  border-radius:12px;
  color:#fff;
  background:#b9a8b2;
  font-size:14px;
  font-weight:900;
  transition:background .2s ease,box-shadow .2s ease;
}
.submit-gate-head strong{display:block;color:var(--plum);font-size:12px}
.submit-gate-head p{margin:2px 0 0;color:var(--muted);font-size:10px;line-height:1.5}
.submit-checklist{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin:13px 0 0;
  padding:0;
  list-style:none;
}
.submit-checklist li{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:29px;
  padding:5px 9px;
  border:1px solid var(--line);
  border-radius:999px;
  color:#887883;
  background:#fff;
  font-size:9px;
  font-weight:750;
}
.submit-checklist i{
  display:grid;
  place-items:center;
  width:16px;
  height:16px;
  border-radius:50%;
  color:transparent;
  background:#eadfe5;
  font-size:8px;
  font-style:normal;
}
.submit-checklist li.is-complete{
  color:var(--brand);
  border-color:rgba(var(--brand-rgb),.25);
  background:var(--blush-soft);
}
.submit-checklist li.is-complete i{color:#fff;background:var(--brand)}
.submit-checklist li.is-missing{
  color:#9f2937;
  border-color:#e8aeb5;
  background:#fff1f2;
}
.submit-checklist li.is-missing i{color:#fff;background:var(--danger)}
.submit-gate.is-ready{
  border-color:rgba(var(--brand-rgb),.42);
  background:linear-gradient(145deg,#fff,#faeaf3);
}
.submit-gate.is-ready .submit-gate-lock{
  background:linear-gradient(145deg,var(--brand),var(--rgb-purple));
  box-shadow:0 9px 22px rgba(var(--brand-rgb),.22);
}
.form-error{
  margin:0 0 14px;
  padding:14px 16px;
  border:1px solid #ebc5c9;
  border-radius:15px;
  color:var(--danger);
  background:#fff1f2;
  font-size:12px;
  font-weight:700;
}
.submit-btn{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  width:100%;
  min-height:62px;
  padding:16px 20px;
  overflow:hidden;
  cursor:pointer;
  border:0;
  border-radius:18px;
  color:#fff;
  background:linear-gradient(115deg,var(--brand) 0%,var(--plum) 80%);
  box-shadow:0 22px 45px rgba(79,23,57,.25);
  font-size:15px;
  font-weight:900;
  transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease;
}
.submit-btn::before{
  position:absolute;
  inset:0;
  content:"";
  background:linear-gradient(100deg,transparent 25%,rgba(255,255,255,.2) 48%,transparent 70%);
  transform:translateX(-120%);
  transition:transform .65s ease;
}
.submit-btn:hover{box-shadow:0 28px 55px rgba(79,23,57,.31);transform:translateY(-3px)}
.submit-btn:hover::before{transform:translateX(120%)}
.submit-btn:active{transform:none}
.submit-btn:disabled{
  cursor:not-allowed;
  color:#f7edf3;
  background:linear-gradient(115deg,#a998a3,#8f7b87)!important;
  box-shadow:none;
  opacity:.72;
  transform:none;
}
.btn-arrow{transition:transform .2s ease}
.submit-btn:hover .btn-arrow{transform:translateX(4px)}
.submit-btn.ghost{color:var(--plum);border:1.5px solid var(--line-strong);background:#fff;box-shadow:none}
.submit-btn.ghost:hover{background:var(--blush-soft)}
.btn-spinner{width:18px;height:18px;border:2.5px solid rgba(255,255,255,.38);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.privacy-note{display:flex;align-items:flex-start;justify-content:center;gap:7px;max-width:700px;margin:15px auto 0;color:var(--muted);font-size:11px;line-height:1.55;text-align:center}

/* Đồng ý xử lý dữ liệu cá nhân — Luật 91/2025/QH15 (src/lib/dongy.ts).
   Ô tick to và cả dòng chữ bấm được: đây là hành động khẳng định của khách,
   không được là một ô nhỏ xíu dễ bấm nhầm hay bỏ sót. */
.consent-box{margin-bottom:14px;padding:14px 16px;border:1px solid var(--line);border-radius:17px;background:#fff;transition:border-color .2s ease,background .2s ease}
.consent-box.is-checked{border-color:rgba(var(--brand-rgb),.35);background:var(--blush-soft)}
.consent-box.needs-attention{border-color:#e8aeb5;background:#fff1f2}
.consent-check{display:flex;align-items:flex-start;gap:10px;color:var(--ink);font-size:12.5px;font-weight:600;line-height:1.6;cursor:pointer}
/* Rule `input{}` chung của biểu mẫu tắt appearance và bơm padding/cao 53px cho
   ô gõ chữ — áp nguyên vào ô tick thì ô thành một hộp trống không bao giờ hiện
   dấu ✓. Trả ô tick về dạng gốc của trình duyệt. */
.consent-check input[type="checkbox"]{flex:0 0 auto;width:20px;height:20px;min-height:0;margin:2px 0 0;padding:0;border:0;border-radius:4px;background:none;box-shadow:none;appearance:auto;-webkit-appearance:checkbox;accent-color:var(--brand);cursor:pointer}
.consent-check input[type="checkbox"]:focus{box-shadow:none;outline:2px solid var(--brand);outline-offset:2px}
/* Liên kết tới Chính sách bảo mật thông tin, nằm ngay trong câu đồng ý. */
.consent-link{color:var(--brand);font-weight:750;text-decoration:underline;text-underline-offset:3px}
.consent-link:hover{color:var(--plum)}
.foot-link{margin-top:10px}
.foot-link a{color:inherit;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.consent-toggle{margin:8px 0 0 30px;padding:4px 0;border:0;background:none;color:var(--brand);font:inherit;font-size:11.5px;font-weight:750;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.consent-notice{margin:8px 0 0 30px;padding:12px 14px;border-radius:13px;background:#faf6f8;color:#5d4f57;font-size:11.5px;line-height:1.65}
.consent-notice strong{display:block;margin-bottom:6px;color:var(--plum);font-size:12px}
.consent-notice ul{margin:0;padding-left:16px}
.consent-notice li{margin:4px 0}
.consent-version{margin:8px 0 0;color:var(--muted);font-size:10.5px}
.privacy-note .lock{font-size:11px;line-height:1.55}
.overlay{
  position:fixed;
  z-index:100;
  inset:0;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(39,10,29,.64);
  backdrop-filter:blur(9px);
}
.overlay-card{
  position:relative;
  width:100%;
  max-width:450px;
  padding:38px 30px 30px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.55);
  border-radius:30px;
  background:#fff;
  box-shadow:var(--shadow-lg);
  text-align:center;
  animation:pop .38s cubic-bezier(.18,.86,.28,1.14);
}
.overlay-card::before,.overlay-card::after{
  position:absolute;
  width:150px;
  height:150px;
  border-radius:50%;
  content:"";
  filter:blur(2px);
}
.overlay-card::before{top:-95px;left:-65px;background:var(--blush)}
.overlay-card::after{right:-75px;bottom:-100px;background:var(--sage-soft)}
@keyframes pop{from{opacity:0;transform:translateY(18px) scale(.94)}to{opacity:1;transform:none}}
.check{
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
  width:76px;
  height:76px;
  margin:0 auto 20px;
  border-radius:50%;
  color:#fff;
  background:linear-gradient(145deg,var(--sage),var(--plum));
  box-shadow:0 18px 34px rgba(58,96,87,.24),0 0 0 10px var(--sage-soft);
}
.check svg{width:36px;height:36px}
.overlay-card h2{position:relative;z-index:1;margin:0 0 9px;color:var(--plum);font-family:var(--serif);font-size:28px;font-weight:500}
.overlay-card p{position:relative;z-index:1;margin:0 0 24px;color:var(--muted);font-size:13px;line-height:1.7}
.overlay-card .submit-btn{position:relative;z-index:1}

/* Footer */
.site-footer{
  position:relative;
  overflow:hidden;
  padding:62px 0 66px;
  color:#ecd7e3;
  background:
    radial-gradient(circle at 18% 0,rgba(0,124,148,.2),transparent 25rem),
    radial-gradient(circle at 84% 100%,rgba(225,127,174,.16),transparent 24rem),
    linear-gradient(135deg,var(--plum-deep),var(--plum));
  text-align:center;
}
.site-footer::after{
  position:absolute;
  top:0;
  left:50%;
  width:70%;
  height:1px;
  content:"";
  background:linear-gradient(90deg,transparent,#dcb468,transparent);
  transform:translateX(-50%);
}
.foot-inner{position:relative;display:flex;flex-direction:column;align-items:center}
.foot-plate{padding:15px 20px;border-radius:22px;background:#fff;box-shadow:0 22px 46px rgba(0,0,0,.22)}
.foot-logo{width:250px;height:auto;object-fit:contain;border-radius:8px}
.foot-tag{margin:22px 0 6px;color:#f0c7dd;font-family:var(--serif);font-size:21px;font-style:italic}
.foot-accred-img{width:auto;height:42px;margin:16px 0 12px;padding:7px 11px;border-radius:11px;background:#fff}
.foot-accred{max-width:50ch;margin:0;color:rgba(238,215,227,.68);font-size:11px;line-height:1.65}

/* Motion */
@media (prefers-reduced-motion:no-preference){
  .hero-copy{animation:hero-copy-in .72s cubic-bezier(.2,.75,.2,1) both}
  .portrait-frame{animation:portrait-in .82s .08s cubic-bezier(.2,.75,.2,1) both}
  .portrait-stack,.clinic-badge,.privacy-badge{animation:float 5.5s ease-in-out infinite}
  .clinic-badge{animation-delay:-1.4s}
  .privacy-badge{animation-delay:-2.6s}
  .hero-aura-one{animation:aura-drift 12s ease-in-out infinite alternate}
  .reveal-ready{opacity:0;transform:translateY(24px)}
  .reveal-ready.is-visible{opacity:1;transform:none}
}
@keyframes hero-copy-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes portrait-in{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes aura-drift{to{transform:translate(-22px,18px) scale(1.04)}}
@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

/* Responsive */
@media (max-width:1100px){
  .hero-grid{grid-template-columns:minmax(0,1fr) 420px;gap:40px}
  .portrait-frame{right:25px;width:355px}
  .clinic-badge{left:-10px}
  .booking-layout{grid-template-columns:270px minmax(0,1fr);gap:26px}
}
@media (max-width:920px){
  .wrap{padding:0 22px}
  .hero{min-height:0}
  .hero-grid{grid-template-columns:1fr;gap:45px;padding-top:65px;padding-bottom:105px}
  .hero-copy{max-width:750px}
  .hero-title{font-size:clamp(46px,8vw,68px)}
  .hero-visual{justify-self:center;width:min(100%,590px);min-height:515px}
  .portrait-frame{right:70px}
  .portrait-stack{right:26px}
  .privacy-badge{right:18px}
  .booking-layout{grid-template-columns:1fr;gap:20px;padding-top:36px}
  .booking-rail{position:static}
  .rail-panel{border-radius:22px}
  .rail-note{display:none}
  .rail-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
  .rail-steps li{grid-template-columns:38px minmax(0,1fr);min-height:50px}
  .rail-steps li>i{display:none}
}
@media (max-width:700px){
  .wrap{padding:0 16px}
  .header-inner{min-height:68px}
  .brand-logo{width:142px;height:auto;border-radius:8px}
  .header-cta{display:none}
  .lang-current{display:none}
  .lang-btn{min-width:46px;justify-content:center;padding:9px 10px}
  .hero-grid{gap:36px;padding-top:48px;padding-bottom:88px}
  .hero-title{font-size:clamp(38px,11vw,50px);line-height:1.06}
  .hero-sub{margin-top:20px;font-size:14px;line-height:1.7}
  .hero-actions{align-items:stretch;margin-top:27px}
  .hero-cta{width:100%;min-height:53px}
  .trust-strip{gap:9px 14px;margin-top:25px}
  .trust-strip>span{font-size:10px}
  .hero-visual{min-height:430px}
  .portrait-frame{right:32px;width:calc(100% - 54px);height:430px;border-radius:160px 160px 30px 30px}
  .portrait-index{top:38px;right:22px}
  .portrait-caption{right:20px;bottom:20px;left:20px}
  .portrait-stack{top:42px;right:0}
  .portrait-stack img,.portrait-stack>span{width:43px;height:43px}
  .clinic-badge{bottom:46px;left:0;min-width:188px;padding:11px 13px}
  .badge-spark{width:35px;height:35px}
  .privacy-badge{display:none}
  .orbit-one{right:0;width:390px;height:390px}
  .rail-top{padding:16px 15px 11px}
  .rail-progress{margin-right:15px;margin-left:15px}
  .rail-steps{display:flex;gap:8px;overflow-x:auto;padding:6px 12px 13px;scrollbar-width:none}
  .rail-steps::-webkit-scrollbar{display:none}
  .rail-steps li{flex:0 0 174px;border:1px solid var(--line);background:#fff}
  .panel{margin-bottom:14px;padding:21px 16px 23px;border-radius:21px}
  .panel-head{grid-template-columns:auto 40px minmax(0,1fr);gap:9px;margin-bottom:18px;padding-bottom:16px}
  .panel-status{grid-column:2/4;grid-row:2;justify-self:start;margin-top:-2px}
  .panel-num{width:35px;height:35px;border-radius:11px;font-size:12px}
  .panel-ico{width:40px;height:40px;border-radius:12px}
  .panel-ico svg{width:20px;height:20px}
  .panel-title{font-size:20px}
  .grid{grid-template-columns:1fr;gap:15px}
  .field-split{gap:12px}
  .doc-grid,.source-grid{grid-template-columns:1fr}
  .sched-box{padding:9px}
  .sched-box td.sched-doc,.sched-box th.sched-doc{min-width:145px}
  .submit-checklist{display:grid;grid-template-columns:1fr 1fr}
  .submit-checklist li{min-width:0}
  .privacy-note{justify-content:flex-start;text-align:left}
  .consent-toggle,.consent-notice{margin-left:0}
  .site-footer{padding:50px 0 54px}
}
@media (max-width:410px){
  .eyebrow{font-size:10px;letter-spacing:.12em}
  .hero-title{font-size:36px}
  .hero-visual{min-height:390px}
  .portrait-frame{right:22px;width:calc(100% - 40px);height:390px}
  .portrait-stack{right:-2px}
  .clinic-badge{bottom:32px}
  .field-split{grid-template-columns:1fr 1fr}
  .doc-card{grid-template-columns:70px minmax(0,1fr);min-height:110px;padding:12px 36px 12px 12px}
  .doc-photo{width:70px;height:78px}
}

/* =========================================================
   Direction v2 — bright international fertility center
   ========================================================= */
.site-header{
  background:rgba(255,255,255,.9);
  border-bottom-color:rgba(164,70,131,.13);
}
.site-header.scrolled{background:rgba(255,255,255,.97)}
.credentials-bar{
  position:relative;
  border-bottom:1px solid rgba(0,124,148,.12);
  background:
    linear-gradient(90deg,rgba(0,124,148,.045),rgba(255,255,255,.98) 38%,rgba(164,70,131,.045));
}
.credentials-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  min-height:62px;
}
.credentials-label{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--teal-dark);
  font-size:10px;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}
.credentials-label i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--teal);
  box-shadow:0 0 0 6px rgba(0,124,148,.09);
}
.credentials-logos{
  width:auto;
  height:49px;
  object-fit:contain;
}
.header-inner{min-height:76px}
.brand-logo{
  width:190px;
  height:auto;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.lang-btn{background:#fff}
.booking-rail{top:166px}
.panel{scroll-margin-top:164px}

.hero{
  min-height:680px;
  color:var(--ink);
  border-bottom:1px solid rgba(164,70,131,.14);
  background:
    radial-gradient(circle at 78% 23%,rgba(225,127,174,.22),transparent 23rem),
    radial-gradient(circle at 92% 72%,rgba(0,124,148,.14),transparent 25rem),
    linear-gradient(120deg,#fff 0%,#fffafc 50%,#f7fbfb 100%);
}
.hero::before{
  position:absolute;
  z-index:-1;
  top:78px;
  left:-190px;
  width:470px;
  height:470px;
  border:1px solid rgba(164,70,131,.12);
  border-radius:50%;
  content:"";
  box-shadow:0 0 0 70px rgba(164,70,131,.025),0 0 0 140px rgba(0,124,148,.018);
}
.hero::after{
  opacity:.52;
  background-image:
    radial-gradient(circle,rgba(164,70,131,.16) 1px,transparent 1px);
  background-size:26px 26px;
  -webkit-mask-image:linear-gradient(90deg,#000,transparent 42%);
  mask-image:linear-gradient(90deg,#000,transparent 42%);
}
.hero-grain{opacity:.035}
.hero-aura-one{
  border-color:rgba(164,70,131,.13);
  box-shadow:0 0 0 80px rgba(225,127,174,.035),0 0 0 160px rgba(0,124,148,.02);
}
.hero-aura-two{background:radial-gradient(circle,rgba(0,124,148,.2),transparent 67%)}
.eyebrow{color:var(--brand)}
.eyebrow-mark{
  color:var(--teal);
  border-color:rgba(0,124,148,.25);
  background:var(--teal-soft);
}
.hero-title{color:var(--plum-deep)}
.hero-title::first-line{color:var(--plum)}
.hero-sub{color:#665b62}
.hero-cta.primary{
  color:#fff;
  background:linear-gradient(115deg,var(--brand),#853268);
  box-shadow:0 20px 42px rgba(164,70,131,.23);
}
.hero-cta.primary:hover{box-shadow:0 25px 50px rgba(164,70,131,.29)}
.hero-cta.secondary{
  color:var(--teal-dark);
  border-color:rgba(0,124,148,.25);
  background:rgba(255,255,255,.82);
  box-shadow:0 12px 30px rgba(0,124,148,.07);
}
.hero-cta.secondary:hover{border-color:var(--teal);background:#fff}
.cta-arrow{color:var(--brand);background:#fff}
.trust-strip>span{color:#6f626a}
.trust-check{
  color:#fff;
  border-color:var(--teal);
  background:var(--teal);
  box-shadow:0 5px 12px rgba(0,124,148,.15);
}
.portrait-frame{
  border:8px solid rgba(255,255,255,.95);
  background:var(--blush);
  box-shadow:0 36px 85px rgba(64,21,47,.2);
}
.portrait-frame::after{background:linear-gradient(180deg,transparent 54%,rgba(38,11,28,.76) 100%)}
.portrait-index{color:var(--brand)}
.portrait-stack{
  border-color:rgba(255,255,255,.92);
  background:rgba(255,255,255,.76);
  box-shadow:0 20px 42px rgba(64,21,47,.13);
}
.glass-card{
  color:var(--ink);
  border-color:rgba(255,255,255,.9);
  background:rgba(255,255,255,.86);
  box-shadow:0 20px 45px rgba(64,21,47,.12);
}
.clinic-badge strong{color:var(--plum)}
.clinic-badge small{color:var(--muted)}
.privacy-badge{color:var(--muted)}
.shield-icon{color:var(--teal);border-color:rgba(0,124,148,.28)}
.orbit-one{border-color:rgba(164,70,131,.18)}
.orbit-two{border-color:rgba(0,124,148,.25)}
.hero-marquee{
  color:rgba(64,21,47,.55);
  border-top-color:rgba(164,70,131,.12);
  background:rgba(255,255,255,.72);
  backdrop-filter:blur(12px);
}
.hero-marquee i{color:var(--brand)}

.booking-layout{padding-top:72px}
.rail-panel{
  border-color:rgba(0,124,148,.13);
  box-shadow:0 20px 55px rgba(44,34,40,.08);
}
.rail-progress span{background:linear-gradient(90deg,var(--teal),var(--brand),var(--brand-bright))}
.rail-steps li.active{
  background:linear-gradient(90deg,var(--teal-soft),rgba(249,233,242,.48));
}
.rail-steps li.active>span{border-color:var(--teal);background:var(--teal)}
.rail-steps li.complete>span,.rail-steps li>i{border-color:var(--brand);background:var(--brand)}
.panel{
  border-color:rgba(218,203,212,.78);
  background:rgba(255,255,255,.94);
  box-shadow:0 18px 50px rgba(59,25,45,.065);
}
.panel::before{
  width:220px;
  height:220px;
  background:
    radial-gradient(circle at 100% 0,rgba(0,124,148,.08),rgba(249,233,242,.58) 43%,transparent 70%);
}
.panel:nth-of-type(even)::before{
  background:
    radial-gradient(circle at 100% 0,rgba(225,127,174,.15),rgba(231,245,247,.55) 48%,transparent 72%);
}
.panel-num{color:var(--brand);border-color:rgba(164,70,131,.16);background:var(--blush)}
.panel-ico{color:var(--teal-dark);border-color:rgba(0,124,148,.14);background:var(--teal-soft)}
.doc-card.selected,.source-opt.selected{border-color:var(--brand)}
.doc-card:hover,.source-opt:hover{border-color:rgba(0,124,148,.45)}
.submit-btn{background:linear-gradient(115deg,var(--brand),#7d2e61 68%,var(--teal))}

.site-footer{
  color:var(--ink);
  background:
    radial-gradient(circle at 18% 0,rgba(0,124,148,.11),transparent 25rem),
    radial-gradient(circle at 84% 100%,rgba(225,127,174,.15),transparent 24rem),
    linear-gradient(135deg,#f7fbfb,#fff 52%,#fff8fb);
  border-top:1px solid rgba(164,70,131,.12);
}
.site-footer::after{height:2px;background:linear-gradient(90deg,transparent,var(--teal),var(--brand),var(--brand-bright),transparent)}
.foot-plate{padding:0;background:transparent;box-shadow:none}
.foot-logo{width:280px;background:transparent}
.foot-tag{color:var(--brand)}
.foot-accred{color:var(--muted)}
.foot-accred-img{
  width:auto;
  height:64px;
  margin-top:18px;
  padding:0;
  background:transparent;
}

@media (max-width:920px){
  .credentials-inner{min-height:58px}
  .credentials-logos{height:44px}
  .booking-layout{padding-top:40px}
}
@media (max-width:700px){
  .credentials-inner{justify-content:center;min-height:50px}
  .credentials-label{display:none}
  .credentials-logos{height:39px}
  .header-inner{min-height:66px}
  .brand-logo{width:142px}
  .hero{min-height:0}
  .hero::before{top:120px;left:-310px}
  .hero-grid{padding-top:42px}
  .hero-title{color:var(--plum-deep)}
  .foot-logo{width:230px}
  .foot-accred-img{height:54px}
}
@media (max-width:410px){
  .credentials-logos{height:36px}
  .brand-logo{width:132px}
}

/* =========================================================
   Direction v3 — Editorial IVF Experience
   ========================================================= */
.credentials-bar{display:none}
.site-header{
  border-top:5px solid transparent;
  border-bottom:1px solid rgba(64,21,47,.1);
  background:
    linear-gradient(#fff,#fff) padding-box,
    linear-gradient(90deg,var(--teal),var(--brand),var(--brand-bright)) border-box;
  box-shadow:0 10px 32px rgba(38,11,28,.055);
}
.site-header::after{
  height:1px;
  opacity:.38;
  background:linear-gradient(90deg,transparent,var(--teal),var(--brand),transparent);
}
.header-inner{
  display:grid;
  grid-template-columns:auto minmax(260px,1fr) auto;
  min-height:96px;
  gap:30px;
}
.brand-logo{width:164px}
.credentials-cluster{
  justify-self:center;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:17px;
  min-width:0;
  padding:8px 18px;
  border:1px solid rgba(0,124,148,.12);
  border-radius:20px;
  background:linear-gradient(110deg,rgba(0,124,148,.045),#fff 48%,rgba(164,70,131,.055));
}
.credentials-kicker{
  max-width:90px;
  color:var(--teal-dark);
  font-size:9px;
  font-weight:800;
  letter-spacing:.1em;
  line-height:1.4;
  text-transform:uppercase;
}
.credentials-logos{
  flex:none;
  width:auto;
  height:52px;
}
.header-actions{justify-self:end}
.header-cta{
  min-height:48px;
  padding:11px 20px;
  background:linear-gradient(115deg,var(--brand),#812c61);
  box-shadow:0 14px 30px rgba(164,70,131,.22);
}
.header-cta:hover{background:linear-gradient(115deg,var(--teal),#006679)}
.lang-btn{min-height:48px;padding:10px 15px}
.booking-rail{top:122px}
.panel{scroll-margin-top:120px}

.hero{
  min-height:690px;
  color:#fff;
  border-bottom:0;
  background:
    radial-gradient(circle at 81% 24%,rgba(225,127,174,.62),transparent 24rem),
    radial-gradient(circle at 91% 76%,rgba(0,124,148,.48),transparent 28rem),
    linear-gradient(117deg,#210915 0%,#361126 38%,#6d2855 71%,#014f60 126%);
}
.hero::before{
  top:-245px;
  left:-175px;
  width:610px;
  height:610px;
  border-color:rgba(255,255,255,.1);
  box-shadow:0 0 0 90px rgba(255,255,255,.02),0 0 0 180px rgba(225,127,174,.025);
}
.hero::after{
  opacity:.4;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:48px 48px;
  -webkit-mask-image:linear-gradient(90deg,#000,transparent 78%);
  mask-image:linear-gradient(90deg,#000,transparent 78%);
}
.hero-grain{opacity:.14}
.hero-aura-one{
  border-color:rgba(255,255,255,.14);
  box-shadow:0 0 0 80px rgba(255,255,255,.025),0 0 0 160px rgba(255,255,255,.018);
}
.hero-aura-two{background:radial-gradient(circle,rgba(0,124,148,.36),transparent 66%)}
.hero-grid{
  grid-template-columns:minmax(0,1.04fr) minmax(470px,.96fr);
  gap:72px;
  min-height:650px;
  padding-top:62px;
  padding-bottom:92px;
}
.hero-copy::before{
  display:block;
  width:74px;
  height:5px;
  margin-bottom:25px;
  border-radius:999px;
  content:"";
  background:linear-gradient(90deg,var(--brand-bright),#fff,var(--teal));
}
.eyebrow{color:#f6c7df}
.eyebrow-mark{
  color:#fff;
  border-color:rgba(255,255,255,.28);
  background:rgba(255,255,255,.1);
}
.hero-title{
  color:#fff;
  font-size:clamp(52px,5.2vw,76px);
  text-shadow:0 14px 45px rgba(24,4,16,.22);
}
.hero-title::first-line{color:#fff}
.hero-sub{color:rgba(255,244,249,.76)}
.hero-cta.primary{
  color:var(--plum-deep);
  background:#fff;
  box-shadow:0 22px 48px rgba(22,4,16,.3);
}
.hero-cta.primary:hover{box-shadow:0 28px 58px rgba(22,4,16,.38)}
.hero-cta.secondary{
  color:#fff;
  border-color:rgba(255,255,255,.3);
  background:rgba(255,255,255,.08);
  box-shadow:none;
}
.hero-cta.secondary:hover{border-color:#fff;background:rgba(255,255,255,.14)}
.cta-arrow{color:#fff;background:linear-gradient(145deg,var(--brand),var(--teal))}
.play-dot{background:#8be2ec;box-shadow:0 0 0 6px rgba(139,226,236,.15)}
.trust-strip>span{color:rgba(255,247,251,.74)}
.trust-check{
  color:#fff;
  border-color:rgba(255,255,255,.18);
  background:rgba(0,124,148,.74);
  box-shadow:none;
}
.hero-visual::before{
  position:absolute;
  z-index:-1;
  top:-32px;
  right:-30px;
  content:"IVF";
  color:transparent;
  font-family:var(--sans);
  font-size:210px;
  font-weight:900;
  letter-spacing:-.08em;
  line-height:1;
  -webkit-text-stroke:1px rgba(255,255,255,.13);
  transform:rotate(-5deg);
}
.portrait-frame{
  border:2px solid rgba(255,255,255,.68);
  background:#eadde4;
  box-shadow:0 45px 95px rgba(18,3,13,.42);
}
.portrait-stack{
  border-color:rgba(255,255,255,.25);
  background:rgba(28,6,20,.25);
  box-shadow:0 24px 50px rgba(18,3,13,.26);
}
.glass-card{
  color:#fff;
  border-color:rgba(255,255,255,.28);
  background:rgba(255,255,255,.12);
  box-shadow:0 24px 50px rgba(19,4,14,.22);
}
.clinic-badge strong{color:#fff}
.clinic-badge small,.privacy-badge{color:rgba(255,255,255,.68)}
.shield-icon{color:#8be2ec;border-color:rgba(139,226,236,.35)}
.orbit-one{border-color:rgba(255,255,255,.13)}
.orbit-two{border-color:rgba(139,226,236,.28)}
.hero-marquee{
  color:rgba(255,255,255,.54);
  border-top-color:rgba(255,255,255,.12);
  background:rgba(18,3,13,.18);
}
.hero-marquee i{color:#8be2ec}

.booking-layout{
  padding-top:76px;
  background:transparent;
}
.booking-rail{filter:drop-shadow(0 24px 45px rgba(38,11,28,.11))}
.rail-panel{
  overflow:hidden;
  border-color:rgba(255,255,255,.08);
  color:#fff;
  background:
    radial-gradient(circle at 110% 0,rgba(225,127,174,.28),transparent 15rem),
    linear-gradient(155deg,#2b0b20,#571b43 72%,#006679 145%);
  box-shadow:none;
}
.rail-kicker{color:#fff}
.rail-count{color:rgba(255,255,255,.56)}
.rail-count b{color:#ffb8d9}
.rail-progress{background:rgba(255,255,255,.12)}
.rail-progress span{background:linear-gradient(90deg,#8be2ec,#fff,#f09bc3)}
.rail-steps li{color:rgba(255,255,255,.68)}
.rail-steps li:hover{color:#fff;background:rgba(255,255,255,.08)}
.rail-steps li.active{
  color:#fff;
  background:linear-gradient(90deg,rgba(225,127,174,.2),rgba(0,124,148,.13));
}
.rail-steps li>span{
  color:#f2bdd6;
  border-color:rgba(255,255,255,.15);
  background:rgba(255,255,255,.08);
}
.rail-steps li.active>span{border-color:#fff;background:#fff;color:var(--brand)}
.rail-steps li.complete>span,.rail-steps li>i{border-color:var(--teal);background:var(--teal);color:#fff}
.rail-note{
  border-top-color:rgba(255,255,255,.11);
  background:rgba(255,255,255,.055);
}
.rail-note p{color:rgba(255,255,255,.6)}
.panel{
  border:1px solid rgba(218,203,212,.78);
  border-radius:30px;
  background:rgba(255,255,255,.97);
  box-shadow:0 20px 60px rgba(64,21,47,.075);
}
.panel::after{
  position:absolute;
  top:0;
  right:36px;
  left:36px;
  height:4px;
  border-radius:0 0 999px 999px;
  content:"";
  background:linear-gradient(90deg,var(--teal),var(--brand),var(--brand-bright));
}
.panel::before{
  background:radial-gradient(circle at 100% 0,rgba(225,127,174,.16),rgba(0,124,148,.055) 45%,transparent 71%);
}
.panel:nth-of-type(even)::before{
  background:radial-gradient(circle at 100% 0,rgba(0,124,148,.13),rgba(225,127,174,.08) 48%,transparent 72%);
}
.panel-num{
  color:#fff;
  border-color:transparent;
  background:linear-gradient(145deg,var(--brand),#7d2e61);
  box-shadow:0 10px 22px rgba(164,70,131,.18);
}
.panel-ico{
  color:var(--teal-dark);
  border-color:rgba(0,124,148,.15);
  background:var(--teal-soft);
}
.panel-title{font-size:27px}
.doc-card:hover,.source-opt:hover{border-color:var(--teal);box-shadow:0 16px 34px rgba(0,124,148,.085)}
.doc-card.selected,.source-opt.selected{border-color:var(--brand)}
.submit-btn{
  background:linear-gradient(105deg,var(--brand),#76295a 55%,var(--teal));
  box-shadow:0 24px 50px rgba(92,28,70,.28);
}

.site-footer{
  color:#ecd7e3;
  background:
    radial-gradient(circle at 18% 0,rgba(0,124,148,.25),transparent 25rem),
    radial-gradient(circle at 84% 100%,rgba(225,127,174,.2),transparent 24rem),
    linear-gradient(135deg,#230918,#40152f 52%,#003f4c);
}
.foot-tag{margin-top:0;color:#f3bed8}
.foot-accred{color:rgba(238,215,227,.68)}
@media (max-width:1040px){
  .header-inner{grid-template-columns:auto 1fr auto;gap:18px}
  .brand-logo{width:150px}
  .credentials-cluster{padding:7px 12px}
  .credentials-kicker{display:none}
  .credentials-logos{height:47px}
  .hero-grid{grid-template-columns:1fr;gap:50px}
  .hero-copy{max-width:780px}
  .hero-visual{justify-self:center;width:min(100%,590px)}
}
@media (max-width:700px){
  body{padding-bottom:82px}
  .site-header{border-top-width:4px}
  .header-inner{
    grid-template-columns:1fr auto;
    grid-template-rows:60px 49px;
    gap:0 12px;
    min-height:109px;
    padding-top:0;
    padding-bottom:0;
  }
  .brand{grid-column:1;grid-row:1}
  .brand-logo{width:130px}
  .header-actions{grid-column:2;grid-row:1}
  .credentials-cluster{
    grid-column:1/-1;
    grid-row:2;
    justify-self:stretch;
    min-width:0;
    height:49px;
    margin:0 -16px;
    padding:5px 16px;
    border:0;
    border-top:1px solid rgba(0,124,148,.1);
    border-radius:0;
    background:linear-gradient(90deg,rgba(0,124,148,.045),#fff,rgba(164,70,131,.05));
  }
  .credentials-logos{height:39px}
  .lang-btn{min-width:48px;min-height:42px;padding:8px 10px}
  .hero-grid{gap:38px;padding-top:46px;padding-bottom:86px}
  .hero-copy::before{width:58px;height:4px;margin-bottom:20px}
  .hero-title{font-size:clamp(38px,11vw,50px);line-height:1.06}
  .hero-sub{color:rgba(255,244,249,.76)}
  .hero-visual::before{top:-8px;right:0;font-size:128px}
  .trust-strip{display:grid;grid-template-columns:1fr;gap:8px}
  .trust-strip>span{
    width:max-content;
    max-width:100%;
    padding:6px 10px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:999px;
    background:rgba(255,255,255,.06);
  }
  .hero-marquee{height:36px}
  .booking-layout{padding-top:34px;padding-bottom:70px}
  .rail-panel{
    background:linear-gradient(125deg,#2b0b20,#571b43 72%,#006679 145%);
  }
  .rail-steps li{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.12)}
  .panel{padding:22px 16px 24px;border-radius:22px}
  .panel::after{right:18px;left:18px;height:3px}
  .panel-title{font-size:21px}
  .site-footer{padding-bottom:46px}
}
@media (max-width:410px){
  .brand-logo{width:120px}
  .credentials-logos{height:36px}
  .hero-title{font-size:35px}
}

/* =========================================================
   Direction v4 — Phương Châu RGB signature
   ========================================================= */
:root{
  --brand-rgb:164,70,131;
  --pink-rgb:225,127,174;
  --teal-rgb:0,132,154;
  --brand:#a44683;
  --brand-bright:#e17fae;
  --teal:#00849a;
  --teal-dark:#006e80;
  --teal-soft:#e5f8fb;
  --rgb-purple:#bd2f8d;
  --rgb-cyan:#00b8d0;
}

body{
  background:
    radial-gradient(circle at 6% 32%,rgba(var(--pink-rgb),.1),transparent 25rem),
    radial-gradient(circle at 94% 48%,rgba(var(--teal-rgb),.08),transparent 27rem),
    linear-gradient(180deg,#fff 0,#fffafc 46%,#f8fcfd 100%);
}

.site-header{
  border-top:6px solid transparent;
  border-bottom-color:rgba(var(--brand-rgb),.16);
  background:
    linear-gradient(rgba(255,255,255,.97),rgba(255,255,255,.97)) padding-box,
    linear-gradient(90deg,var(--teal),var(--rgb-cyan) 25%,var(--brand) 56%,var(--rgb-purple) 77%,var(--brand-bright)) border-box;
  box-shadow:0 14px 42px rgba(74,15,54,.09);
}
.site-header.scrolled{background:rgba(255,255,255,.98)}
.site-header::after{
  height:2px;
  opacity:.48;
  background:linear-gradient(90deg,transparent,var(--rgb-cyan) 27%,var(--brand) 56%,var(--brand-bright) 78%,transparent);
}
.header-inner{
  grid-template-columns:190px minmax(340px,1fr) auto;
  gap:24px;
  min-height:116px;
}
.brand-logo{
  width:190px;
  max-height:88px;
  filter:drop-shadow(0 10px 18px rgba(var(--brand-rgb),.12));
}
.credentials-cluster{
  justify-self:center;
  width:100%;
  max-width:560px;
  min-width:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}
.credentials-kicker{display:none}
.credentials-logos{
  width:auto;
  max-width:100%;
  height:80px;
  object-fit:contain;
  filter:drop-shadow(0 9px 18px rgba(34,23,65,.09));
}
.header-cta{
  background:linear-gradient(118deg,var(--brand),var(--rgb-purple));
  box-shadow:0 16px 34px rgba(var(--brand-rgb),.28);
}
.header-cta:hover{
  background:linear-gradient(118deg,var(--rgb-purple),var(--teal));
  box-shadow:0 18px 38px rgba(var(--teal-rgb),.25);
}
.lang-btn{
  border-color:rgba(var(--brand-rgb),.22);
  box-shadow:0 10px 26px rgba(var(--brand-rgb),.09);
}
.booking-rail{top:140px}
.panel{scroll-margin-top:138px}

.hero{
  background:
    radial-gradient(circle at 79% 18%,rgba(255,79,174,.52),transparent 25rem),
    radial-gradient(circle at 96% 82%,rgba(0,210,236,.38),transparent 31rem),
    radial-gradient(circle at 12% 105%,rgba(225,127,174,.24),transparent 28rem),
    linear-gradient(118deg,#300626 0%,#62134c 39%,#a7297b 72%,#006c7e 128%);
}
.hero::after{
  opacity:.52;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
}
.hero-copy::before{
  background:linear-gradient(90deg,var(--rgb-cyan),#fff 48%,#ff8fc4);
  box-shadow:0 0 28px rgba(255,255,255,.24);
}
.eyebrow{color:#ffd1e7}
.hero-title{
  text-shadow:0 16px 52px rgba(31,2,22,.32);
}
.hero-sub{color:rgba(255,248,252,.84)}
.hero-cta.primary{
  color:#5f164b;
  box-shadow:0 23px 52px rgba(35,3,25,.34),0 0 0 1px rgba(255,255,255,.3);
}
.hero-cta.primary:hover{
  color:var(--brand);
  box-shadow:0 28px 62px rgba(35,3,25,.42),0 0 0 1px rgba(255,255,255,.46);
}
.cta-arrow{background:linear-gradient(145deg,var(--rgb-purple),var(--rgb-cyan))}
.play-dot{background:#8df2ff;box-shadow:0 0 0 6px rgba(141,242,255,.17)}
.trust-check{background:rgba(0,184,208,.78)}

.portrait-frame{
  border:2px solid rgba(255,255,255,.84);
  box-shadow:0 48px 110px rgba(27,2,19,.46),0 0 0 12px rgba(255,255,255,.035);
}
.portrait-frame::after{
  background:linear-gradient(180deg,transparent 48%,rgba(49,5,35,.24) 64%,rgba(37,3,26,.94) 100%);
}
.portrait-main{filter:saturate(1.03) contrast(1.035)}
.portrait-caption{
  right:30px;
  bottom:28px;
  left:30px;
  padding-top:18px;
  text-shadow:0 4px 18px rgba(20,0,14,.45);
}
.portrait-caption span{
  color:#ffc6e1;
  opacity:1;
}
.portrait-caption strong{
  margin-top:5px;
  font-family:var(--sans);
  font-size:20px;
  font-weight:750;
  letter-spacing:-.02em;
  line-height:1.28;
}
.portrait-caption small{
  margin-top:4px;
  color:rgba(255,255,255,.78);
  font-size:11px;
  font-weight:650;
  line-height:1.45;
}
.portrait-stack{
  border-color:rgba(255,255,255,.42);
  background:rgba(70,8,50,.38);
  box-shadow:0 26px 54px rgba(26,2,18,.32);
}
.portrait-stack>span{background:linear-gradient(145deg,var(--rgb-purple),var(--brand))}
.clinic-badge,.privacy-badge{display:none!important}
.orbit-two{border-color:rgba(92,234,250,.42)}
.hero-marquee i{color:#8df2ff}

.rail-panel{
  background:
    radial-gradient(circle at 104% -5%,rgba(255,108,183,.42),transparent 16rem),
    radial-gradient(circle at -18% 115%,rgba(0,184,208,.26),transparent 18rem),
    linear-gradient(152deg,#35082a,#761a5a 68%,#007486 150%);
}
.rail-progress span{background:linear-gradient(90deg,var(--rgb-cyan),#fff 48%,#ff97c9)}
.rail-count b{color:#ffb7da}
.rail-steps li.active{
  background:linear-gradient(90deg,rgba(255,126,188,.24),rgba(0,184,208,.16));
}
.rail-steps li.complete>span,.rail-steps li>i{border-color:var(--teal);background:var(--teal)}

.panel{
  border-color:rgba(var(--brand-rgb),.16);
  box-shadow:0 24px 70px rgba(72,17,52,.085);
}
.panel::after{background:linear-gradient(90deg,var(--rgb-cyan),var(--brand),#f384ba)}
.panel-num{background:linear-gradient(145deg,var(--rgb-purple),#79205f)}
.panel-ico{color:var(--teal-dark);background:linear-gradient(145deg,#e7fbfd,#fdf3f8)}
input:focus{
  border-color:var(--brand);
  box-shadow:0 0 0 5px rgba(var(--brand-rgb),.12);
}
.submit-btn{
  background:linear-gradient(106deg,var(--brand),var(--rgb-purple) 56%,var(--teal));
}
.submit-btn{
  box-shadow:0 25px 56px rgba(var(--brand-rgb),.3);
}
.site-footer{
  background:
    radial-gradient(circle at 12% 0,rgba(0,184,208,.28),transparent 27rem),
    radial-gradient(circle at 87% 100%,rgba(242,100,170,.28),transparent 28rem),
    linear-gradient(135deg,#28051f,#591443 52%,#005d6d);
}

@media (max-width:1040px){
  .header-inner{grid-template-columns:164px minmax(280px,1fr) auto;gap:18px}
  .brand-logo{width:164px}
  .credentials-logos{height:68px}
}
@media (max-width:760px){
  body{padding-bottom:82px}
  .site-header{border-top-width:5px}
  .header-inner{
    grid-template-columns:1fr auto;
    grid-template-rows:68px 68px;
    gap:0 12px;
    min-height:136px;
    padding-top:0;
    padding-bottom:0;
  }
  .brand{grid-column:1;grid-row:1}
  .brand-logo{width:140px;max-height:62px}
  .header-actions{grid-column:2;grid-row:1}
  .header-cta{display:none}
  .credentials-cluster{
    grid-column:1/-1;
    grid-row:2;
    justify-self:stretch;
    max-width:none;
    height:68px;
    margin:0 -16px;
    padding:4px 16px;
    border-top:1px solid rgba(var(--brand-rgb),.13);
    background:linear-gradient(90deg,rgba(var(--teal-rgb),.045),#fff 40%,rgba(var(--brand-rgb),.06));
  }
  .credentials-logos{width:100%;height:58px}
  .lang-current{display:none}
  .lang-btn{min-width:46px;min-height:44px;justify-content:center;padding:9px 10px}
  .hero-grid{padding-top:44px}
  .portrait-caption{right:22px;bottom:22px;left:22px}
  .portrait-caption strong{font-size:18px}
  .portrait-caption small{font-size:10px}
}
@media (max-width:410px){
  .header-inner{grid-template-rows:64px 62px;min-height:126px}
  .brand-logo{width:128px;max-height:58px}
  .credentials-cluster{height:62px}
  .credentials-logos{height:52px}
}

/* =========================================================
   Schedule experience — matrix on wide screens, day cards
   on laptop/tablet/mobile
   ========================================================= */
.schedule-launch{
  position:relative;
  isolation:isolate;
  display:grid;
  grid-template-columns:58px minmax(0,1fr) auto;
  align-items:center;
  gap:17px;
  margin:0 0 24px;
  padding:20px 22px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.18);
  border-radius:23px;
  color:#fff;
  background:
    radial-gradient(circle at 82% -30%,rgba(255,137,196,.52),transparent 15rem),
    radial-gradient(circle at -8% 130%,rgba(0,184,208,.38),transparent 14rem),
    linear-gradient(118deg,#3b092e,#7a1c5e 66%,#00798b 145%);
  box-shadow:0 22px 48px rgba(77,17,57,.2);
}
.schedule-launch::after{
  position:absolute;
  z-index:-1;
  right:18%;
  bottom:-56px;
  width:170px;
  height:170px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:50%;
  content:"";
  box-shadow:0 0 0 34px rgba(255,255,255,.025),0 0 0 68px rgba(255,255,255,.018);
}
.schedule-launch-icon{
  display:grid;
  place-items:center;
  width:58px;
  height:58px;
  border:1px solid rgba(255,255,255,.25);
  border-radius:18px;
  color:#fff;
  background:linear-gradient(145deg,rgba(0,184,208,.92),rgba(0,124,148,.76));
  box-shadow:0 13px 28px rgba(0,44,52,.26);
}
.schedule-launch-icon svg{width:27px;height:27px}
.schedule-launch-copy{min-width:0}
.schedule-launch-kicker{
  display:block;
  color:#ffc8e2;
  font-size:9px;
  font-weight:850;
  letter-spacing:.13em;
  line-height:1.4;
  text-transform:uppercase;
}
.schedule-launch-copy>strong{
  display:block;
  margin-top:3px;
  font-family:var(--serif);
  font-size:20px;
  font-weight:600;
  letter-spacing:-.015em;
  line-height:1.25;
}
.schedule-launch-copy>p{
  max-width:52ch;
  margin:5px 0 0;
  color:rgba(255,255,255,.72);
  font-size:11px;
  line-height:1.55;
}
.schedule-launch-meta{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:26px;
  margin-top:10px;
}
#scheduleWeekRange{
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:4px 9px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  color:#fff;
  background:rgba(255,255,255,.09);
  font-size:10px;
  font-weight:800;
  font-variant-numeric:tabular-nums;
}
.schedule-preview-avatars{display:flex;align-items:center;padding-left:7px}
.schedule-preview-avatars img,.schedule-preview-avatars b{
  display:grid;
  place-items:center;
  width:26px;
  height:26px;
  margin-left:-7px;
  border:2px solid #7a1c5e;
  border-radius:50%;
  object-fit:cover;
  background:#fff;
  box-shadow:0 4px 10px rgba(28,3,20,.2);
}
.schedule-preview-avatars b{
  color:#fff;
  background:var(--brand);
  font-size:8px;
  font-weight:850;
}
.schedule-open-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  min-height:47px;
  padding:11px 16px;
  cursor:pointer;
  border:1px solid rgba(255,255,255,.45);
  border-radius:15px;
  color:#6b1852;
  background:#fff;
  box-shadow:0 14px 30px rgba(31,2,23,.24);
  font-size:11px;
  font-weight:850;
  white-space:nowrap;
  transition:transform .2s ease,box-shadow .2s ease,color .2s ease;
}
.schedule-open-btn svg{width:16px;height:16px}
.schedule-open-btn:hover{
  color:var(--brand);
  box-shadow:0 18px 36px rgba(31,2,23,.32);
  transform:translateY(-2px);
}
.schedule-confirmed-summary{
  display:flex;
  align-items:center;
  gap:11px;
  margin:12px 0 18px;
  padding:12px 14px;
  border:1px solid rgba(0,142,170,.22);
  border-radius:16px;
  color:#075f71;
  background:linear-gradient(105deg,#e7f8fb,#fff);
  box-shadow:0 10px 26px rgba(0,103,123,.07);
}
.schedule-confirmed-check{
  display:grid;
  place-items:center;
  flex:none;
  width:31px;
  height:31px;
  border-radius:50%;
  color:#fff;
  background:#008eaa;
  font-size:14px;
  font-weight:900;
}
.schedule-confirmed-summary div{min-width:0}
.schedule-confirmed-summary small{
  display:block;
  font-size:8px;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.schedule-confirmed-summary strong{
  display:block;
  margin-top:2px;
  overflow:hidden;
  color:#17444d;
  font-size:11px;
  line-height:1.45;
  text-overflow:ellipsis;
  white-space:nowrap;
}

body.schedule-dialog-open{overflow:hidden}
.schedule-dialog{
  width:min(1240px,calc(100vw - 42px));
  max-width:none;
  height:min(88vh,880px);
  max-height:none;
  margin:auto;
  padding:0;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.7);
  border-radius:30px;
  color:var(--ink);
  background:#fbf8fa;
  box-shadow:0 50px 140px rgba(31,3,22,.46);
}
.schedule-dialog::backdrop{
  background:rgba(26,3,19,.72);
  backdrop-filter:blur(12px) saturate(.85);
}
.schedule-dialog[open]{animation:schedule-dialog-in .3s cubic-bezier(.2,.78,.2,1)}
@keyframes schedule-dialog-in{
  from{opacity:0;transform:translateY(18px) scale(.975)}
  to{opacity:1;transform:none}
}
.schedule-dialog-shell{
  display:flex;
  flex-direction:column;
  width:100%;
  height:100%;
  overflow:hidden;
}
.schedule-dialog-head{
  position:relative;
  z-index:8;
  display:grid;
  grid-template-columns:56px minmax(0,1fr) auto 44px;
  align-items:center;
  gap:15px;
  padding:20px 24px;
  color:#fff;
  background:
    radial-gradient(circle at 78% -70%,rgba(255,137,196,.5),transparent 18rem),
    linear-gradient(115deg,#35072a,#7d1d60 70%,#00798a 148%);
  box-shadow:0 12px 34px rgba(67,13,49,.15);
}
.schedule-dialog-mark{
  display:grid;
  place-items:center;
  width:56px;
  height:56px;
  border:1px solid rgba(255,255,255,.25);
  border-radius:18px;
  color:#fff;
  background:linear-gradient(145deg,rgba(0,184,208,.92),rgba(0,124,148,.72));
}
.schedule-dialog-mark svg{width:26px;height:26px}
.schedule-dialog-heading>span{
  display:block;
  color:#ffc9e2;
  font-size:9px;
  font-weight:850;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.schedule-dialog-heading h2{
  margin:2px 0 0;
  color:#fff;
  font-family:var(--serif);
  font-size:clamp(24px,2.4vw,34px);
  font-weight:600;
  letter-spacing:-.025em;
  line-height:1.14;
}
.schedule-dialog-heading p{
  margin:4px 0 0;
  color:rgba(255,255,255,.7);
  font-size:10px;
}
.schedule-dialog-range{
  padding:7px 12px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  color:#fff;
  background:rgba(255,255,255,.09);
  font-size:10px;
  font-weight:850;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.schedule-dialog-close{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  padding:0;
  cursor:pointer;
  border:1px solid rgba(255,255,255,.22);
  border-radius:14px;
  color:#fff;
  background:rgba(255,255,255,.1);
  font-size:25px;
  font-weight:300;
  line-height:1;
  transition:background .18s ease,transform .18s ease;
}
.schedule-dialog-close:hover{background:rgba(255,255,255,.18);transform:rotate(4deg)}
.schedule-content{
  flex:1;
  min-height:0;
  padding:24px;
  overflow:auto;
  overscroll-behavior:contain;
  background:
    radial-gradient(circle at 100% 0,rgba(var(--pink-rgb),.08),transparent 24rem),
    linear-gradient(180deg,#fff,#fbf8fa);
}
.schedule-loading,.schedule-unavailable{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  min-height:260px;
  color:var(--muted);
  font-size:12px;
  text-align:center;
}
.schedule-loading span{
  width:24px;
  height:24px;
  border:3px solid rgba(var(--brand-rgb),.16);
  border-top-color:var(--brand);
  border-radius:50%;
  animation:spin .8s linear infinite;
}
.schedule-unavailable span{
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  border-radius:50%;
  color:#fff;
  background:var(--brand);
  font-weight:900;
}
.schedule-unavailable p{max-width:50ch}

.schedule-matrix-view{display:block}
.schedule-matrix-meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:0 2px 12px;
}
.schedule-matrix-meta span{
  color:var(--brand);
  font-size:10px;
  font-weight:850;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.schedule-matrix-meta strong{
  color:var(--plum);
  font-size:12px;
  font-variant-numeric:tabular-nums;
}
.schedule-matrix-scroll{
  max-height:calc(min(88vh,880px) - 212px);
  overflow:auto;
  border:1px solid rgba(var(--brand-rgb),.14);
  border-radius:20px;
  background:#fff;
  box-shadow:0 18px 50px rgba(60,16,45,.07);
  scrollbar-color:rgba(var(--brand-rgb),.34) transparent;
  scrollbar-width:thin;
}
.schedule-matrix{
  width:100%;
  min-width:1110px;
  border-collapse:separate;
  border-spacing:0;
  table-layout:fixed;
  font-size:11px;
}
.schedule-doctor-width{width:250px}
.schedule-matrix th,.schedule-matrix td{
  height:66px;
  padding:9px 8px;
  border-right:1px solid #eee4e9;
  border-bottom:1px solid #eee4e9;
  text-align:center;
  vertical-align:middle;
}
.schedule-matrix tr>*:last-child{border-right:0}
.schedule-matrix tbody tr:last-child td{border-bottom:0}
.schedule-matrix thead th{
  position:sticky;
  z-index:4;
  top:0;
  height:68px;
  color:rgba(255,255,255,.76);
  background:#43102f;
  font-weight:700;
}
.schedule-matrix thead th>span{display:block;font-size:10px}
.schedule-matrix thead th>strong{
  display:block;
  margin-top:2px;
  color:#fff;
  font-size:11px;
  font-variant-numeric:tabular-nums;
}
.schedule-matrix thead th>em{
  display:inline-block;
  margin-top:3px;
  padding:2px 6px;
  border-radius:999px;
  color:#4a0e36;
  background:#fff;
  font-size:7px;
  font-style:normal;
  font-weight:900;
  text-transform:uppercase;
}
.schedule-matrix thead th.is-today{background:linear-gradient(145deg,var(--brand),#7b1f5f)}
.schedule-matrix tbody tr:nth-child(even) td{background:#fdfafc}
.schedule-matrix tbody tr:hover td{background:#fff6fa}
.schedule-matrix td.is-today{background:#fff0f7!important}
.schedule-matrix .schedule-doctor-col{
  position:sticky;
  z-index:3;
  left:0;
  padding:7px 9px;
  background:#fff;
  text-align:left;
}
.schedule-matrix thead .schedule-doctor-col{
  z-index:7;
  padding-left:18px;
  color:#fff;
  background:#351025;
  font-size:11px;
  font-weight:850;
}
.schedule-doctor-identity{
  display:grid;
  grid-template-columns:43px minmax(0,1fr) 23px;
  align-items:center;
  gap:10px;
  width:100%;
  min-height:50px;
  padding:4px 5px;
  cursor:pointer;
  border:1px solid transparent;
  border-radius:14px;
  color:var(--ink);
  background:transparent;
  text-align:left;
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;
}
.schedule-doctor-identity:hover{border-color:rgba(var(--brand-rgb),.2);background:#fff;box-shadow:0 8px 20px rgba(78,24,60,.08)}
.schedule-doctor-identity.is-static{grid-template-columns:43px minmax(0,1fr);cursor:default}
.schedule-doctor-identity.is-selected{
  border-color:rgba(var(--brand-rgb),.36);
  background:var(--blush-soft);
  box-shadow:inset 3px 0 0 var(--brand);
}
.schedule-doctor-photo{
  width:43px;
  height:43px;
  border:2px solid #fff;
  border-radius:13px;
  object-fit:cover;
  object-position:50% 24%;
  background:var(--blush);
  box-shadow:0 0 0 1px var(--line),0 7px 16px rgba(68,19,52,.1);
}
.schedule-doctor-copy{min-width:0}
.schedule-doctor-copy strong{
  display:block;
  overflow:hidden;
  color:var(--ink);
  font-size:10px;
  font-weight:850;
  line-height:1.34;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.schedule-doctor-copy small{
  display:block;
  margin-top:2px;
  overflow:hidden;
  color:var(--muted);
  font-size:8px;
  font-weight:600;
  line-height:1.3;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.schedule-doctor-arrow{
  display:grid;
  place-items:center;
  width:22px;
  height:22px;
  border-radius:8px;
  color:var(--brand);
  background:var(--blush);
  font-size:10px;
}
.schedule-slot{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:5px 8px;
  border-radius:999px;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.schedule-slot.is-open{
  border:1px solid rgba(var(--teal-rgb),.18);
  color:#00758a;
  background:#e7f8fa;
  font-size:10px;
  font-weight:850;
  box-shadow:inset 0 -1px 0 rgba(var(--teal-rgb),.08);
}
.schedule-slot.is-rest{
  border:1px solid #ead9bb;
  color:#997033;
  background:var(--champagne-soft);
  font-size:9px;
  font-weight:850;
}
.schedule-slot.is-off{color:#c7b8c0;background:transparent}
.schedule-slot-choice{
  cursor:pointer;
  font:inherit;
  transition:color .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}
.schedule-slot-choice:hover{
  border-color:#008eaa;
  box-shadow:0 7px 18px rgba(0,112,134,.13);
  transform:translateY(-1px);
}
.schedule-slot-choice.is-selected{
  color:#fff;
  border-color:#008eaa;
  background:linear-gradient(145deg,#00a9c6,#007b92);
  box-shadow:0 8px 20px rgba(0,112,134,.22);
}
.schedule-matrix td.is-selected-slot{
  background:#e5f8fb!important;
  box-shadow:inset 0 0 0 2px rgba(0,142,170,.45);
}
.schedule-matrix td.schedule-closed-day{
  padding:14px 10px;
  border-left:1px solid rgba(230,197,143,.38);
  color:#885f22;
  background:
    radial-gradient(circle at 50% 42%,rgba(255,255,255,.86) 0 32%,transparent 33%),
    linear-gradient(165deg,#fffaf1,#f8ecd7)!important;
  vertical-align:top;
}
.schedule-closed-day-content{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:138px;
}
.schedule-closed-day-content span{
  display:grid;
  place-items:center;
  width:35px;
  height:35px;
  border:1px solid rgba(172,121,44,.2);
  border-radius:50%;
  color:#ad7a2f;
  background:rgba(255,255,255,.78);
  font-size:14px;
  box-shadow:0 8px 20px rgba(138,91,27,.1);
}
.schedule-closed-day-content strong{
  font-family:var(--serif);
  font-size:14px;
  font-weight:800;
}

.schedule-day-view{display:none}
.schedule-notes{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-top:14px;
  padding:12px 14px;
  border:1px solid rgba(var(--teal-rgb),.13);
  border-radius:16px;
  color:var(--muted);
  background:linear-gradient(100deg,rgba(var(--teal-rgb),.055),rgba(var(--pink-rgb),.045));
}
.schedule-notes>span{
  display:grid;
  place-items:center;
  flex:none;
  width:23px;
  height:23px;
  border:1px solid rgba(var(--teal-rgb),.2);
  border-radius:50%;
  color:var(--teal-dark);
  background:#fff;
  font-family:var(--serif);
  font-size:11px;
  font-weight:800;
}
.schedule-notes p{margin:1px 0;font-size:10px;line-height:1.55}
.schedule-selection-bar{
  position:sticky;
  z-index:9;
  bottom:0;
  display:grid;
  grid-template-columns:38px minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  margin-top:14px;
  padding:13px 14px;
  border:1px solid rgba(0,142,170,.25);
  border-radius:18px;
  color:#17444d;
  background:rgba(244,253,255,.96);
  box-shadow:0 18px 42px rgba(0,91,109,.16);
  backdrop-filter:blur(16px);
}
.schedule-selection-check{
  display:grid;
  place-items:center;
  width:38px;
  height:38px;
  border-radius:13px;
  color:#fff;
  background:linear-gradient(145deg,#00aac7,#007b92);
  font-weight:900;
}
.schedule-selection-copy{min-width:0}
.schedule-selection-copy small{
  display:block;
  color:#00849c;
  font-size:8px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.schedule-selection-copy strong{
  display:block;
  margin-top:2px;
  overflow:hidden;
  font-size:11px;
  line-height:1.4;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.schedule-selection-copy p{margin:2px 0 0;color:#5d7479;font-size:8px;line-height:1.4}
.schedule-selection-confirm{
  min-height:42px;
  padding:9px 15px;
  cursor:pointer;
  border:0;
  border-radius:13px;
  color:#fff;
  background:linear-gradient(135deg,#00a9c6,#007b92);
  font-size:9px;
  font-weight:850;
  box-shadow:0 10px 24px rgba(0,112,134,.2);
  transition:background .18s ease,transform .18s ease;
}
.schedule-selection-confirm:hover{background:linear-gradient(135deg,#009bb7,#006d82);transform:translateY(-1px)}
.panel.schedule-updated{animation:schedule-panel-updated 1.8s ease}
@keyframes schedule-panel-updated{
  0%,100%{box-shadow:var(--shadow-xs)}
  25%,70%{box-shadow:0 0 0 3px rgba(0,142,170,.2),0 22px 50px rgba(0,112,134,.12)}
}

@media (max-width:1100px){
  .schedule-matrix-view{display:none}
  .schedule-day-view{display:block}
  .schedule-content{padding:20px}
  .schedule-day-tabs{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:7px;
    padding:7px;
    border:1px solid rgba(var(--brand-rgb),.12);
    border-radius:20px;
    background:#f5eef2;
  }
  .schedule-day-tab{
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-width:0;
    min-height:70px;
    padding:8px 5px;
    cursor:pointer;
    border:1px solid transparent;
    border-radius:15px;
    color:var(--muted);
    background:transparent;
    transition:color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease;
  }
  .schedule-day-tab:hover{color:var(--brand);background:rgba(255,255,255,.55)}
  .schedule-day-tab[aria-selected="true"]{
    color:#fff;
    border-color:rgba(255,255,255,.28);
    background:linear-gradient(145deg,var(--brand),#7c205f);
    box-shadow:0 12px 25px rgba(var(--brand-rgb),.24);
    transform:translateY(-2px);
  }
  .schedule-day-tab>span{font-size:9px;font-weight:750;white-space:nowrap}
  .schedule-day-tab>strong{margin-top:2px;font-size:12px;font-variant-numeric:tabular-nums}
  .schedule-day-tab>em{
    position:absolute;
    top:5px;
    right:5px;
    display:grid;
    place-items:center;
    min-width:17px;
    height:17px;
    padding:0 4px;
    border-radius:999px;
    color:var(--brand);
    background:#fff;
    font-size:7px;
    font-style:normal;
    font-weight:900;
    box-shadow:0 4px 10px rgba(52,9,38,.12);
  }
  .schedule-day-tab>em.is-closed{
    min-width:29px;
    padding:0 6px;
    color:#91672d;
    background:#fff6e7;
  }
  .schedule-day-tab.is-today::after{
    position:absolute;
    right:9px;
    bottom:6px;
    left:9px;
    height:2px;
    border-radius:999px;
    content:"";
    background:var(--rgb-cyan);
  }
  .schedule-day-panels{padding-top:18px}
  .schedule-day-panel-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:14px;
    margin:0 2px 13px;
  }
  .schedule-day-panel-head div{display:flex;align-items:baseline;gap:8px}
  .schedule-day-panel-head span{color:var(--brand);font-size:13px;font-weight:850}
  .schedule-day-panel-head strong{color:var(--plum);font-size:18px;font-variant-numeric:tabular-nums}
  .schedule-day-panel-head em{
    padding:5px 9px;
    border:1px solid rgba(var(--teal-rgb),.14);
    border-radius:999px;
    color:var(--teal-dark);
    background:var(--teal-soft);
    font-size:9px;
    font-style:normal;
    font-weight:800;
  }
  .schedule-day-panel-head em.is-closed{
    border-color:#ead9bb;
    color:#8f652b;
    background:#fff6e7;
  }
  .schedule-day-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .schedule-closed-panel{
    grid-column:1/-1;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
    min-height:260px;
    padding:32px;
    border:1px solid #ead9bb;
    border-radius:24px;
    color:#8f652b;
    background:
      radial-gradient(circle at 50% 45%,rgba(255,255,255,.95) 0 20%,transparent 21%),
      linear-gradient(150deg,#fffaf1,#f9ecd5);
    text-align:center;
    box-shadow:0 16px 36px rgba(127,83,24,.08);
  }
  .schedule-closed-panel span{
    display:grid;
    place-items:center;
    width:58px;
    height:58px;
    border:1px solid rgba(172,121,44,.2);
    border-radius:50%;
    background:rgba(255,255,255,.8);
    font-size:24px;
    box-shadow:0 10px 24px rgba(138,91,27,.1);
  }
  .schedule-closed-panel strong{
    font-family:var(--serif);
    font-size:24px;
  }
  .schedule-shift-card{
    position:relative;
    display:grid;
    grid-template-columns:58px minmax(0,1fr) auto;
    grid-template-rows:auto auto;
    align-items:center;
    column-gap:12px;
    min-height:92px;
    padding:12px;
    cursor:pointer;
    border:1px solid rgba(var(--brand-rgb),.14);
    border-radius:19px;
    color:var(--ink);
    background:#fff;
    text-align:left;
    box-shadow:0 12px 30px rgba(65,18,49,.065);
    transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
  }
  .schedule-shift-card:hover{
    border-color:rgba(var(--brand-rgb),.38);
    box-shadow:0 17px 36px rgba(65,18,49,.11);
    transform:translateY(-2px);
  }
  .schedule-shift-card.is-static{cursor:default}
  .schedule-shift-card.is-selected{
    border-color:#008eaa;
    background:linear-gradient(145deg,#fff,#e8f9fb);
    box-shadow:0 16px 34px rgba(0,112,134,.14),inset 3px 0 0 #008eaa;
  }
  .schedule-shift-photo{
    grid-row:1/3;
    width:58px;
    height:66px;
    border-radius:15px;
    object-fit:cover;
    object-position:50% 24%;
    background:var(--blush);
    box-shadow:0 0 0 1px var(--line);
  }
  .schedule-shift-copy{align-self:end;min-width:0}
  .schedule-shift-copy strong{
    display:block;
    overflow:hidden;
    font-size:11px;
    font-weight:850;
    line-height:1.35;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .schedule-shift-copy small{
    display:block;
    margin-top:3px;
    overflow:hidden;
    color:var(--muted);
    font-size:8px;
    font-weight:600;
    line-height:1.35;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .schedule-shift-time{
    grid-column:3;
    grid-row:1;
    align-self:end;
    padding:6px 9px;
    border:1px solid rgba(var(--teal-rgb),.16);
    border-radius:999px;
    color:#00758a;
    background:#e7f8fa;
    font-size:9px;
    font-weight:850;
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
  }
  .schedule-shift-action{
    grid-column:2/4;
    grid-row:2;
    align-self:start;
    display:flex;
    align-items:center;
    gap:6px;
    margin-top:5px;
    color:var(--brand);
    font-size:8px;
    font-weight:850;
  }
  .schedule-shift-action i{font-size:10px;font-style:normal}
  .schedule-empty{
    grid-column:1/-1;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-height:190px;
    padding:28px;
    border:1px dashed rgba(var(--brand-rgb),.22);
    border-radius:20px;
    color:var(--muted);
    background:#fff;
    text-align:center;
  }
  .schedule-empty span{color:var(--brand);font-size:30px}
  .schedule-empty p{margin:8px 0 0;font-size:11px}
}

@media (max-width:700px){
  .schedule-launch{
    grid-template-columns:48px minmax(0,1fr);
    gap:13px;
    padding:17px;
    border-radius:20px;
  }
  .schedule-launch-icon{width:48px;height:48px;border-radius:15px}
  .schedule-launch-icon svg{width:23px;height:23px}
  .schedule-launch-copy>strong{font-size:17px}
  .schedule-launch-copy>p{font-size:10px}
  .schedule-open-btn{
    grid-column:1/-1;
    width:100%;
    min-height:45px;
    margin-top:1px;
  }
  .schedule-dialog{
    inset:0;
    width:100vw;
    height:100dvh;
    max-height:none;
    margin:0;
    border:0;
    border-radius:0;
  }
  .schedule-dialog-head{
    grid-template-columns:44px minmax(0,1fr) 40px;
    gap:11px;
    padding:calc(14px + env(safe-area-inset-top)) 14px 14px;
  }
  .schedule-dialog-mark{width:44px;height:44px;border-radius:14px}
  .schedule-dialog-mark svg{width:21px;height:21px}
  .schedule-dialog-heading>span{font-size:8px}
  .schedule-dialog-heading h2{font-size:22px}
  .schedule-dialog-heading p{display:none}
  .schedule-dialog-range{
    grid-column:2;
    grid-row:2;
    justify-self:start;
    margin-top:-4px;
    padding:4px 8px;
    font-size:8px;
  }
  .schedule-dialog-close{grid-column:3;grid-row:1;width:40px;height:40px;border-radius:13px}
  .schedule-content{padding:14px 14px calc(24px + env(safe-area-inset-bottom))}
  .schedule-day-tabs{
    display:grid;
    grid-template-columns:repeat(8,minmax(0,1fr));
    gap:6px;
    margin:0;
    padding:7px;
    overflow:visible;
    border-width:1px;
    border-radius:18px;
    background:#f6f0f3;
  }
  .schedule-day-tab{
    grid-column:span 2;
    min-width:0;
    min-height:58px;
    padding:7px 3px;
  }
  .schedule-day-tab:nth-child(5){grid-column:2/span 2}
  .schedule-day-tab:nth-child(6){grid-column:4/span 2}
  .schedule-day-tab:nth-child(7){grid-column:6/span 2}
  .schedule-day-tab>span{font-size:8px}
  .schedule-day-tab>strong{font-size:11px}
  .schedule-day-tab>em{top:4px;right:4px}
  .schedule-day-panels{padding-top:16px}
  .schedule-day-panel-head{align-items:center}
  .schedule-day-panel-head div{flex-direction:column;align-items:flex-start;gap:0}
  .schedule-day-panel-head span{font-size:11px}
  .schedule-day-panel-head strong{font-size:16px}
  .schedule-day-panel-head em{font-size:8px}
  .schedule-day-cards{grid-template-columns:1fr;gap:9px}
  .schedule-shift-card{
    grid-template-columns:56px minmax(0,1fr) auto;
    min-height:88px;
    padding:10px;
    border-radius:17px;
  }
  .schedule-shift-photo{width:56px;height:64px;border-radius:14px}
  .schedule-shift-copy strong{font-size:11px}
  .schedule-shift-time{padding:5px 8px;font-size:9px}
  .schedule-notes{margin-top:12px;padding:11px}
  .schedule-notes p{font-size:9px}
  .schedule-selection-bar{
    grid-template-columns:34px minmax(0,1fr);
    gap:10px;
    padding:11px;
    border-radius:16px;
  }
  .schedule-selection-check{width:34px;height:34px;border-radius:11px}
  .schedule-selection-copy strong{font-size:10px;white-space:normal}
  .schedule-selection-copy p{display:none}
  .schedule-selection-confirm{
    grid-column:1/-1;
    width:100%;
    min-height:44px;
    font-size:10px;
  }
  .schedule-confirmed-summary strong{white-space:normal}
}

@media (max-width:410px){
  .schedule-launch-meta{flex-wrap:wrap}
  .schedule-shift-card{grid-template-columns:52px minmax(0,1fr) auto}
  .schedule-shift-photo{width:52px;height:60px}
  .schedule-shift-copy strong{font-size:10px}
  .schedule-shift-time{font-size:8px}
}

/* =========================================================
   Final brand consolidation — IVF Phương Châu brand palette
   ========================================================= */
:root{
  --teal-rgb:138,46,109;
  --teal:#8a2e6d;
  --teal-dark:#671b4f;
  --teal-soft:#f8e9f2;
  --rgb-cyan:#cf5a9d;
  --ivf-blue-rgb:0,142,170;
  --ivf-blue:#008eaa;
  --ivf-blue-dark:#006b80;
  --ivf-blue-soft:#e5f8fb;
}
body{
  background:
    radial-gradient(circle at 6% 32%,rgba(var(--pink-rgb),.11),transparent 25rem),
    radial-gradient(circle at 94% 48%,rgba(var(--brand-rgb),.075),transparent 27rem),
    linear-gradient(180deg,#fff 0,#fff9fc 46%,#fcf6fa 100%);
}
.site-header{
  background:
    linear-gradient(rgba(255,255,255,.97),rgba(255,255,255,.97)) padding-box,
    linear-gradient(90deg,#7a1d5d,var(--brand) 32%,var(--rgb-purple) 65%,var(--brand-bright)) border-box;
}
.site-header::after{
  background:linear-gradient(90deg,transparent,var(--brand) 30%,var(--rgb-purple) 58%,var(--brand-bright) 80%,transparent);
}
.hero{
  background:
    radial-gradient(circle at 79% 18%,rgba(120,235,247,.3),transparent 25rem),
    radial-gradient(circle at 96% 82%,rgba(0,190,215,.28),transparent 31rem),
    radial-gradient(circle at 12% 105%,rgba(63,177,198,.22),transparent 28rem),
    linear-gradient(118deg,#003f4d 0%,#006b80 42%,#008eaa 76%,#00778f 132%);
}
.hero-aura-two{background:radial-gradient(circle,rgba(114,229,240,.3),transparent 67%)}
.hero-copy::before{background:linear-gradient(90deg,#67dce8,#fff 48%,#8cf1f6)}
.eyebrow{color:#c8f7fa}
.hero-title{text-shadow:0 16px 52px rgba(0,35,43,.34)}
.cta-arrow{background:linear-gradient(145deg,var(--rgb-purple),#d55b9e)}
.play-dot{background:#9cf3f7;box-shadow:0 0 0 6px rgba(156,243,247,.18)}
.trust-check{background:rgba(var(--ivf-blue-rgb),.9)}
.orbit-two{border-color:rgba(142,239,246,.42)}
.hero-marquee i{color:#92edf3}
.portrait-stack{
  border-color:rgba(255,255,255,.4);
  background:rgba(0,70,84,.38);
  box-shadow:0 26px 54px rgba(0,43,52,.3);
}
.portrait-stack>span{background:linear-gradient(145deg,#00a9c6,var(--ivf-blue-dark))}
.portrait-frame.is-changing .portrait-main{animation:hero-doctor-image .65s cubic-bezier(.2,.75,.2,1)}
.portrait-frame.is-changing .portrait-caption{animation:hero-doctor-caption .65s cubic-bezier(.2,.75,.2,1)}
@keyframes hero-doctor-image{
  from{opacity:.88;filter:saturate(.96) contrast(1.02) blur(1px);transform:scale(.99)}
  to{opacity:1;filter:saturate(1.03) contrast(1.035);transform:none}
}
@keyframes hero-doctor-caption{
  from{opacity:.65;transform:translateY(7px)}
  to{opacity:1;transform:none}
}
.rail-panel{
  background:
    radial-gradient(circle at 104% -5%,rgba(120,235,247,.25),transparent 16rem),
    radial-gradient(circle at -18% 115%,rgba(0,190,215,.22),transparent 18rem),
    linear-gradient(152deg,#003d4a,#006b80 72%,#007f98 150%);
}
.booking-rail{filter:drop-shadow(0 24px 45px rgba(0,72,86,.14))}
.rail-count b{color:#9cf3f7}
.rail-progress span{background:linear-gradient(90deg,#62dce8,#fff 48%,#00a9c6)}
.rail-steps li.active{background:linear-gradient(90deg,rgba(120,235,247,.22),rgba(0,169,198,.16))}
.rail-steps li>span{color:#bff6f8}
.rail-steps li.active>span{color:var(--ivf-blue-dark);border-color:#fff;background:#fff}
.rail-steps li.complete>span,.rail-steps li>i{
  color:#fff;
  border-color:#00a9c6;
  background:#00a9c6;
}
.rail-note{
  border-top-color:rgba(255,255,255,.13);
  background:rgba(0,52,63,.2);
}
.panel::after{background:linear-gradient(90deg,#d45b9f,var(--brand),#f384ba)}
.panel-ico{color:var(--brand);background:linear-gradient(145deg,#f8e9f2,#fdf3f8)}
.doc-note{
  color:#70405c;
  border-color:rgba(var(--brand-rgb),.18);
  background:var(--teal-soft);
}
.site-footer{
  background:
    radial-gradient(circle at 12% 0,rgba(207,90,157,.28),transparent 27rem),
    radial-gradient(circle at 87% 100%,rgba(242,100,170,.28),transparent 28rem),
    linear-gradient(135deg,#28051f,#591443 52%,#65194d);
}
.schedule-launch{
  background:
    radial-gradient(circle at 82% -30%,rgba(255,137,196,.52),transparent 15rem),
    radial-gradient(circle at -8% 130%,rgba(207,90,157,.36),transparent 14rem),
    linear-gradient(118deg,#3b092e,#7a1c5e 68%,#69194f 145%);
}
.schedule-launch-icon,.schedule-dialog-mark{
  background:linear-gradient(145deg,rgba(207,90,157,.96),rgba(139,43,108,.9));
  box-shadow:0 13px 28px rgba(71,14,52,.24);
}
.schedule-dialog-head{
  background:
    radial-gradient(circle at 78% -70%,rgba(255,137,196,.5),transparent 18rem),
    linear-gradient(115deg,#35072a,#7d1d60 72%,#65194d 148%);
}
.schedule-slot.is-open,.schedule-shift-time{
  color:#81245f;
  border-color:rgba(var(--brand-rgb),.2);
  background:#fae9f3;
}
.schedule-day-panel-head em{
  color:#772157;
  border-color:rgba(var(--brand-rgb),.18);
  background:#fae9f3;
}
.schedule-day-tab.is-today::after{background:#d45b9f}
.schedule-matrix thead th.is-today{
  background:linear-gradient(145deg,#a83d80,#7b1f5f);
  box-shadow:inset 2px 0 rgba(255,255,255,.2),inset -2px 0 rgba(255,255,255,.2);
}
.schedule-matrix td.is-today{
  background:#fff0f7!important;
  box-shadow:inset 2px 0 rgba(var(--brand-rgb),.08),inset -2px 0 rgba(var(--brand-rgb),.08);
}
.schedule-slot-choice:hover{
  color:var(--ivf-blue-dark);
  border-color:var(--ivf-blue);
  background:var(--ivf-blue-soft);
}
.schedule-slot-choice.is-selected{
  color:#fff;
  border-color:var(--ivf-blue);
  background:linear-gradient(145deg,#00a9c6,var(--ivf-blue-dark));
}
.schedule-shift-card.is-selected{
  border-color:var(--ivf-blue);
  background:linear-gradient(145deg,#fff,var(--ivf-blue-soft));
  box-shadow:0 16px 34px rgba(var(--ivf-blue-rgb),.14),inset 3px 0 0 var(--ivf-blue);
}

/* Keep the doctor photo complete and visually separate from the hero background. */
.portrait-frame{
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.72);
  border-radius:30px;
  background:#fff;
  box-shadow:0 38px 90px rgba(0,48,60,.34),0 0 0 8px rgba(255,255,255,.07);
}
.portrait-frame::after{display:none}
.portrait-main{
  min-height:0;
  border-radius:0;
  object-fit:contain;
  object-position:center bottom;
  background:linear-gradient(145deg,#fff,#f8edf3);
  -webkit-mask-image:none;
  mask-image:none;
}
.portrait-frame:hover .portrait-main{transform:none}
.portrait-caption{
  position:static;
  padding:15px 20px 17px;
  color:#063f4a;
  border-top:1px solid #f0dfe8;
  background:#fff;
  text-shadow:none;
}
.portrait-caption span{color:var(--ivf-blue-dark)}
.portrait-caption small{color:#3b636b}
.portrait-index{display:none!important}

/* Success state uses the IVF Phương Châu blue brand color. */
.overlay{background:rgba(0,54,66,.66)}
.overlay-card{
  border-color:rgba(var(--ivf-blue-rgb),.24);
  background:
    radial-gradient(circle at 8% 0,rgba(var(--ivf-blue-rgb),.12),transparent 12rem),
    linear-gradient(145deg,#fff,#f1fcfd);
  box-shadow:0 42px 110px rgba(0,52,63,.28);
}
.overlay-card::before{background:#cceff4}
.overlay-card::after{background:#e1f8fb}
.check{
  background:linear-gradient(145deg,#00abc8,var(--ivf-blue-dark));
  box-shadow:0 18px 34px rgba(var(--ivf-blue-rgb),.24),0 0 0 10px var(--ivf-blue-soft);
}
.overlay-card h2{color:var(--ivf-blue-dark)}
.overlay-card p{color:#4f6d73}
.overlay-card .submit-btn.ghost{
  color:#fff;
  border:0;
  background:linear-gradient(135deg,#00a9c6,var(--ivf-blue-dark));
  box-shadow:0 14px 32px rgba(var(--ivf-blue-rgb),.2);
}
.overlay-card .submit-btn.ghost:hover{
  background:linear-gradient(135deg,#009cb8,#005f72);
  box-shadow:0 18px 38px rgba(var(--ivf-blue-rgb),.25);
}

@media (max-width:760px){
  body{padding-bottom:0}
  .hero-actions,.booking-rail{display:none}
  .trust-strip>span:first-child{display:none}
  .booking-layout{padding-top:26px}
}
@media (prefers-reduced-motion:reduce){
  .portrait-frame.is-changing .portrait-main,
  .portrait-frame.is-changing .portrait-caption{animation:none}
}

/* =========================================================
   Chương trình ưu đãi (assets/js/programs.js)
   Dải nội dung ngay dưới hero — chỉ hiện khi admin bật.
   ========================================================= */
.programs{
  position:relative;
  padding:52px 0 8px;
}
.programs::before{
  position:absolute;
  z-index:-1;
  inset:0;
  content:"";
  background:
    radial-gradient(circle at 12% 0,rgba(var(--ivf-blue-rgb),.13),transparent 22rem),
    radial-gradient(circle at 88% 100%,rgba(var(--brand-rgb),.09),transparent 20rem);
}
.programs-head{max-width:660px;margin-bottom:24px}
/* .eyebrow gốc tô màu sáng cho nền tối của hero — dải này nền sáng nên phải tô lại */
.programs .eyebrow{color:var(--ivf-blue-dark)}
.programs .eyebrow-mark{
  color:var(--ivf-blue);
  border-color:rgba(var(--ivf-blue-rgb),.3);
  background:var(--ivf-blue-soft);
}
.programs-head h2{
  margin:8px 0 10px;
  color:var(--ivf-blue-dark);
  font-family:var(--serif);
  font-size:31px;
  font-weight:600;
  line-height:1.2;
}
.programs-sub{margin:0;color:var(--muted);font-size:14.5px;line-height:1.6}
.programs-grid{
  display:grid;
  gap:16px;
  grid-template-columns:repeat(auto-fit,minmax(310px,1fr));
  align-items:start;
}

.program-card{
  overflow:hidden;
  border:1.5px solid rgba(var(--ivf-blue-rgb),.2);
  border-radius:22px;
  background:#fff;
  box-shadow:0 14px 38px rgba(38,11,28,.06);
  transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease;
}
.program-card:hover{transform:translateY(-2px);box-shadow:0 20px 48px rgba(38,11,28,.1)}
.program-card.selected{
  border-color:var(--ivf-blue);
  box-shadow:0 20px 50px rgba(var(--ivf-blue-rgb),.18);
}
.program-card.needs-attention{
  border-color:var(--danger);
  box-shadow:0 18px 44px rgba(185,63,74,.16);
}

.program-toggle{
  display:grid;
  width:100%;
  padding:20px;
  gap:14px;
  grid-template-columns:26px minmax(0,1fr);
  border:0;
  background:none;
  cursor:pointer;
  text-align:left;
}
.program-check{
  display:grid;
  width:26px;
  height:26px;
  margin-top:2px;
  border:2px solid var(--line-strong);
  border-radius:9px;
  color:transparent;
  background:#fff;
  font-size:15px;
  font-weight:800;
  place-items:center;
  transition:background .18s ease,border-color .18s ease,color .18s ease;
}
.program-card.selected .program-check{
  border-color:var(--ivf-blue);
  color:#fff;
  background:linear-gradient(145deg,#00a9c6,var(--ivf-blue-dark));
}
.program-copy{display:flex;flex-direction:column;gap:6px;min-width:0}
.program-badge{
  align-self:flex-start;
  padding:4px 11px;
  border-radius:999px;
  color:var(--ivf-blue-dark);
  background:var(--ivf-blue-soft);
  font-size:10.5px;
  font-weight:800;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.program-title{
  color:var(--plum);
  font-family:var(--serif);
  font-size:18.5px;
  font-weight:600;
  line-height:1.32;
}
.program-desc{color:var(--muted);font-size:13.5px;line-height:1.58}
.program-action{
  grid-column:2;
  color:var(--ivf-blue-dark);
  font-size:12px;
  font-weight:800;
  letter-spacing:.02em;
}
.program-card.selected .program-action::before{content:"✓ "}

.program-extras{
  padding:0 20px 20px;
  border-top:1px dashed rgba(var(--ivf-blue-rgb),.24);
  margin-top:2px;
  padding-top:18px;
}
.program-extras .prog-grid{grid-template-columns:1fr}
.program-extras .source-opt{padding:11px 13px;font-size:13px}
.prog-req{color:var(--danger);font-style:normal;font-weight:800}
.prog-hint-doctor{
  grid-column:1/-1;
  margin:0;
  padding:11px 13px;
  border-radius:13px;
  color:var(--ivf-blue-dark);
  background:var(--ivf-blue-soft);
  font-size:12.5px;
  line-height:1.55;
}
.prog-doctor-note{
  margin:0 0 16px;
  padding:12px 15px;
  border:1.5px solid rgba(185,63,74,.3);
  border-radius:14px;
  color:var(--danger);
  background:#fdf3f4;
  font-size:13px;
  font-weight:600;
  line-height:1.55;
}

.program-summary{
  margin-top:14px;
  padding-top:14px;
  border-top:1px dashed rgba(var(--ivf-blue-rgb),.28);
}
.program-summary-label{color:var(--plum);font-size:12px;font-weight:800}
.program-summary ul{margin:7px 0 0;padding:0;list-style:none;display:grid;gap:6px}
.program-summary li{
  position:relative;
  padding-left:20px;
  color:var(--ivf-blue-dark);
  font-size:12.5px;
  font-weight:600;
  line-height:1.5;
}
.program-summary li::before{position:absolute;left:0;content:"✓";font-weight:800}

@media (max-width:760px){
  .programs{padding:34px 0 4px}
  .programs-head h2{font-size:25px}
  .programs-grid{grid-template-columns:1fr;gap:13px}
  .program-toggle{padding:17px}
  .program-extras{padding:16px 17px 18px}
  .program-extras.grid{grid-template-columns:1fr}
}

/* Purple campaign spotlight */
.programs{
  isolation:isolate;
  padding:72px 0 18px;
  overflow:hidden;
  background:
    radial-gradient(circle at 5% 10%,rgba(207,90,157,.14),transparent 24rem),
    radial-gradient(circle at 96% 84%,rgba(116,35,91,.1),transparent 25rem),
    linear-gradient(180deg,#fff 0%,#fff8fc 64%,rgba(255,255,255,0) 100%);
}
.programs::before{
  z-index:auto;
  top:0;
  right:8%;
  bottom:auto;
  left:8%;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(var(--brand-rgb),.48),transparent);
}
.programs-aura{position:absolute;z-index:-1;border-radius:50%;pointer-events:none;filter:blur(1px)}
.programs-aura-one{
  top:20px;
  left:-105px;
  width:280px;
  height:280px;
  border:1px solid rgba(var(--brand-rgb),.13);
  box-shadow:0 0 0 34px rgba(var(--brand-rgb),.025),0 0 0 70px rgba(var(--brand-rgb),.018);
}
.programs-aura-two{right:-70px;bottom:-40px;width:230px;height:230px;background:radial-gradient(circle,rgba(225,127,174,.16),transparent 68%)}
.programs-showcase{
  position:relative;
  padding:38px;
  overflow:hidden;
  border:1px solid rgba(var(--brand-rgb),.16);
  border-radius:36px;
  background:
    radial-gradient(circle at 95% -10%,rgba(225,127,174,.17),transparent 25rem),
    linear-gradient(145deg,rgba(255,255,255,.96),rgba(255,247,252,.92));
  box-shadow:0 28px 80px rgba(80,20,61,.1),inset 0 1px rgba(255,255,255,.9);
  animation:program-showcase-in .72s cubic-bezier(.2,.78,.2,1) both;
}
.programs-showcase::before{position:absolute;top:0;right:0;left:0;height:4px;content:"";background:linear-gradient(90deg,#672050,var(--brand) 38%,var(--rgb-purple) 68%,#ee8abc)}
.programs-showcase::after{
  position:absolute;
  top:-135px;
  right:-105px;
  width:340px;
  height:340px;
  border:1px solid rgba(var(--brand-rgb),.08);
  border-radius:50%;
  box-shadow:0 0 0 28px rgba(var(--brand-rgb),.025),0 0 0 56px rgba(var(--brand-rgb),.018);
  content:"";
  pointer-events:none;
}
.programs-head{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:space-between;max-width:none;gap:32px;margin-bottom:30px}
.programs-head-copy{max-width:710px}
.programs .eyebrow{margin-bottom:13px;color:#81245f}
.programs .eyebrow-mark{color:#fff;border-color:rgba(var(--brand-rgb),.16);background:linear-gradient(145deg,var(--brand),var(--rgb-purple));box-shadow:0 8px 20px rgba(var(--brand-rgb),.22)}
.programs-head h2{
  max-width:660px;
  margin:0 0 10px;
  color:#4f123d;
  font-size:clamp(29px,3vw,38px);
  font-weight:680;
  letter-spacing:-.035em;
  line-height:1.18;
  text-wrap:balance;
}
.programs-sub{max-width:680px;margin:0;color:#75636e;font-size:14px;line-height:1.68}
.programs-live{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  flex:none;
  gap:10px;
  min-height:48px;
  padding:8px 9px 8px 15px;
  border:1px solid rgba(var(--brand-rgb),.16);
  border-radius:999px;
  color:#6b1b50;
  background:rgba(255,255,255,.82);
  box-shadow:0 13px 32px rgba(var(--brand-rgb),.09);
  backdrop-filter:blur(10px);
}
.programs-live strong{font-size:11px;font-weight:850;letter-spacing:.025em;white-space:nowrap}
.programs-live-mark{position:relative;display:grid;width:16px;height:16px;place-items:center}
.programs-live-mark::before{position:absolute;width:14px;height:14px;border-radius:50%;content:"";background:rgba(177,55,128,.12);animation:program-live-pulse 2s ease-out infinite}
.programs-live-mark i{position:relative;width:7px;height:7px;border-radius:50%;background:#b13780;box-shadow:0 0 0 3px rgba(177,55,128,.12)}
.programs-live-count{display:grid;width:32px;height:32px;border-radius:50%;color:#fff;background:linear-gradient(145deg,#671b4f,var(--rgb-purple));box-shadow:0 8px 18px rgba(var(--brand-rgb),.25);font-size:10px;font-weight:850;letter-spacing:.05em;place-items:center}
.programs-grid{position:relative;z-index:1;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:17px}
.program-card{
  position:relative;
  isolation:isolate;
  min-width:0;
  border:1px solid rgba(var(--brand-rgb),.15);
  border-radius:25px;
  background:#fff;
  box-shadow:0 15px 42px rgba(66,15,49,.075);
  transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease;
  animation:program-card-in .62s cubic-bezier(.2,.8,.2,1) calc(var(--program-order)*80ms + 120ms) both;
}
.program-card::before{position:absolute;z-index:2;top:20px;bottom:20px;left:0;width:3px;border-radius:0 8px 8px 0;content:"";opacity:.6;background:linear-gradient(180deg,var(--brand-bright),var(--brand));transition:top .25s ease,bottom .25s ease,width .25s ease,opacity .25s ease}
.program-card::after{position:absolute;z-index:0;top:-80%;left:-38%;width:34%;height:260%;content:"";opacity:0;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent);transform:rotate(18deg)}
.program-card:hover{border-color:rgba(var(--brand-rgb),.32);box-shadow:0 24px 58px rgba(66,15,49,.13);transform:translateY(-4px)}
.program-card:hover::after{opacity:.74;animation:program-card-glint .8s ease}
.program-card.selected{border-color:rgba(var(--brand-rgb),.68);box-shadow:0 24px 62px rgba(var(--brand-rgb),.17),0 0 0 3px rgba(var(--brand-rgb),.055)}
.program-card.selected::before{top:0;bottom:0;width:5px;opacity:1}
.program-card.needs-attention{border-color:var(--danger);box-shadow:0 18px 48px rgba(185,63,74,.18)}
.program-toggle{
  position:relative;
  z-index:1;
  min-height:228px;
  padding:24px;
  gap:18px;
  grid-template-columns:86px minmax(0,1fr) 38px;
  align-items:center;
  color:inherit;
  background:linear-gradient(135deg,#fff 34%,#fff9fc 100%);
  transition:background .25s ease;
}
.program-card.selected .program-toggle{background:linear-gradient(135deg,#fff 26%,#fff4fa 100%)}
.program-card:only-child .program-toggle{min-height:220px;padding:30px 34px;gap:26px;grid-template-columns:112px minmax(0,1fr) 44px}
.program-visual{
  position:relative;
  display:grid;
  width:86px;
  aspect-ratio:1;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.6);
  border-radius:25px;
  color:#fff;
  background:radial-gradient(circle at 78% 15%,rgba(255,255,255,.28),transparent 36%),linear-gradient(145deg,#712056,#bb3e88);
  box-shadow:0 17px 34px rgba(103,27,79,.25),inset 0 1px rgba(255,255,255,.25);
  place-items:center;
}
.program-card:only-child .program-visual{width:112px;border-radius:31px}
.program-card-priority .program-visual{background:radial-gradient(circle at 78% 15%,rgba(255,255,255,.28),transparent 36%),linear-gradient(145deg,#4d123a,#9b3476)}
.program-card-iui .program-visual{background:radial-gradient(circle at 78% 15%,rgba(255,255,255,.28),transparent 36%),linear-gradient(145deg,#7a1d5c,#d2579c)}
.program-card-preserve .program-visual{background:radial-gradient(circle at 78% 15%,rgba(255,255,255,.28),transparent 36%),linear-gradient(145deg,#51205f,#aa458d)}
.program-visual::before{position:absolute;inset:11px;border:1px solid rgba(255,255,255,.18);border-radius:19px;content:""}
.program-visual::after{position:absolute;top:-70%;left:-70%;width:48%;height:230%;content:"";opacity:.45;background:linear-gradient(90deg,transparent,rgba(255,255,255,.58),transparent);transform:rotate(22deg);animation:program-icon-glint 5.2s ease-in-out 1.4s infinite}
.program-icon{display:grid;width:39px;height:39px;place-items:center;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.program-card:only-child .program-icon{width:48px;height:48px}
.program-icon svg{width:100%;height:100%}
.program-toggle:hover .program-icon{transform:translateY(-2px) rotate(-3deg) scale(1.04)}
.program-index{position:absolute;right:11px;bottom:8px;color:rgba(255,255,255,.62);font-size:8px;font-weight:850;letter-spacing:.12em}
.program-copy{align-items:flex-start;gap:7px}
.program-meta{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-bottom:1px}
.program-badge,.program-open{display:inline-flex;align-items:center;gap:6px;min-height:25px;padding:4px 9px;border-radius:999px;font-size:9px;font-weight:850;letter-spacing:.075em;line-height:1;text-transform:uppercase}
.program-badge{align-self:auto;color:#742056;background:#fae8f2}
.program-badge i{width:5px;height:5px;border-radius:50%;background:#b63b82}
.program-open{color:#6c5864;border:1px solid rgba(var(--brand-rgb),.12);background:#fff}
.program-open i{width:5px;height:5px;border-radius:50%;background:#3ba37a;box-shadow:0 0 0 3px rgba(59,163,122,.1)}
.program-title{max-width:720px;color:#431131;font-size:18px;font-weight:720;letter-spacing:-.02em;line-height:1.34;text-wrap:balance}
.program-card:only-child .program-title{font-size:23px}
.program-desc{max-width:740px;color:#796973;font-size:12.5px;line-height:1.62}
.program-card:only-child .program-desc{font-size:14px}
.program-action{
  display:inline-flex;
  align-items:center;
  gap:9px;
  min-height:34px;
  margin-top:5px;
  padding:7px 12px;
  border:1px solid rgba(var(--brand-rgb),.17);
  border-radius:999px;
  color:#78215a;
  background:#fff;
  font-size:10.5px;
  font-weight:850;
  letter-spacing:.015em;
  transition:color .22s ease,background .22s ease,border-color .22s ease,box-shadow .22s ease;
}
.program-action i{display:grid;width:19px;height:19px;border-radius:50%;color:#fff;background:#a7347a;font-size:12px;font-style:normal;place-items:center;transition:transform .22s ease}
.program-toggle:hover .program-action i{transform:translateX(2px)}
.program-card.selected .program-action{color:#fff;border-color:transparent;background:linear-gradient(120deg,#7b205e,var(--rgb-purple));box-shadow:0 9px 22px rgba(var(--brand-rgb),.2)}
.program-card.selected .program-action::before{content:none}
.program-card.selected .program-action i{color:#742056;background:#fff;transform:rotate(90deg)}
.program-check{
  align-self:start;
  width:38px;
  height:38px;
  margin-top:0;
  border:1.5px solid #e2cdd8;
  border-radius:50%;
  box-shadow:0 6px 16px rgba(68,16,50,.07);
  transition:background .22s ease,border-color .22s ease,color .22s ease,transform .22s ease,box-shadow .22s ease;
}
.program-check i{font-size:14px;font-style:normal;transform:scale(.55);transition:transform .3s cubic-bezier(.2,1.5,.4,1)}
.program-card.selected .program-check{border-color:var(--brand);color:#fff;background:linear-gradient(145deg,var(--brand),var(--rgb-purple));box-shadow:0 9px 22px rgba(var(--brand-rgb),.28);transform:rotate(2deg)}
.program-card.selected .program-check i{transform:none}
.program-extras{position:relative;z-index:2;margin:0;padding:20px 24px 24px;border-top:1px dashed rgba(var(--brand-rgb),.24);background:linear-gradient(180deg,#fff9fc,#fff);animation:program-extras-in .34s ease both}
.program-extras .source-opt.selected{border-color:rgba(var(--brand-rgb),.5);background:#fff0f7;box-shadow:0 8px 20px rgba(var(--brand-rgb),.08)}
.prog-hint-doctor{color:#722056;background:#faeaf3;font-weight:650}
.program-summary{border-top-color:rgba(var(--brand-rgb),.28)}
.program-summary li{color:#7d225e;font-weight:650}

@keyframes program-showcase-in{from{opacity:0;transform:translateY(20px) scale(.99)}to{opacity:1;transform:none}}
@keyframes program-card-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
@keyframes program-card-glint{from{transform:translateX(0) rotate(18deg)}to{transform:translateX(520%) rotate(18deg)}}
@keyframes program-icon-glint{0%,70%{transform:translateX(0) rotate(22deg)}86%,100%{transform:translateX(500%) rotate(22deg)}}
@keyframes program-live-pulse{0%{opacity:.8;transform:scale(.55)}70%,100%{opacity:0;transform:scale(1.8)}}
@keyframes program-extras-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

@media (max-width:920px){
  .programs{padding-top:54px}
  .programs-showcase{padding:30px}
  .programs-head{align-items:flex-start}
  .programs-grid{grid-template-columns:1fr}
  .program-card .program-toggle,.program-card:only-child .program-toggle{min-height:210px;padding:26px;gap:22px;grid-template-columns:96px minmax(0,1fr) 40px}
  .program-card .program-visual,.program-card:only-child .program-visual{width:96px;border-radius:28px}
  .program-card .program-icon,.program-card:only-child .program-icon{width:43px;height:43px}
  .program-card .program-title,.program-card:only-child .program-title{font-size:20px}
  .program-card .program-desc,.program-card:only-child .program-desc{font-size:13px}
}
@media (max-width:700px){
  .programs{padding:38px 0 5px}
  .programs-aura{display:none}
  .programs-showcase{margin:0 -2px;padding:23px 14px 16px;border-radius:28px}
  .programs-showcase::after{top:-105px;right:-135px;width:280px;height:280px}
  .programs-head{display:block;margin-bottom:21px;padding:0 4px}
  .programs .eyebrow{margin-bottom:10px;font-size:10px}
  .programs-head h2{margin-bottom:8px;font-size:25px;letter-spacing:-.03em}
  .programs-sub{font-size:12px;line-height:1.62}
  .programs-live{width:max-content;max-width:100%;min-height:40px;margin-top:15px;padding:6px 7px 6px 12px;gap:8px}
  .programs-live strong{overflow:hidden;font-size:9px;text-overflow:ellipsis}
  .programs-live-count{width:27px;height:27px;font-size:8px}
  .programs-grid{gap:12px}
  .program-card{border-radius:21px}
  .program-card .program-toggle,.program-card:only-child .program-toggle{min-height:0;padding:17px 14px;gap:12px;grid-template-columns:64px minmax(0,1fr) 31px;align-items:start}
  .program-card .program-visual,.program-card:only-child .program-visual{width:64px;border-radius:19px}
  .program-visual::before{inset:7px;border-radius:14px}
  .program-card .program-icon,.program-card:only-child .program-icon{width:30px;height:30px}
  .program-index{right:8px;bottom:5px;font-size:6px}
  .program-meta{gap:5px;margin-bottom:0}
  .program-badge,.program-open{min-height:21px;padding:3px 7px;font-size:7.5px;letter-spacing:.055em}
  .program-open{display:none}
  .program-card .program-title,.program-card:only-child .program-title{font-size:16px;line-height:1.38}
  .program-card .program-desc,.program-card:only-child .program-desc{font-size:11px;line-height:1.55}
  .program-action{min-height:30px;margin-top:3px;padding:6px 9px;font-size:9px}
  .program-action i{width:17px;height:17px;font-size:10px}
  .program-check{width:31px;height:31px}
  .program-check i{font-size:12px}
  .program-extras{padding:16px 14px 18px}
}
@media (max-width:390px){
  .program-card .program-toggle,.program-card:only-child .program-toggle{padding:15px 12px;gap:10px;grid-template-columns:56px minmax(0,1fr) 29px}
  .program-card .program-visual,.program-card:only-child .program-visual{width:56px;border-radius:17px}
  .program-card .program-title,.program-card:only-child .program-title{font-size:15px}
  .program-check{width:29px;height:29px}
}
@media (prefers-reduced-motion:reduce){
  .programs-showcase,.program-card,.programs-live-mark::before,.program-visual::after,.program-extras{animation:none!important}
  .program-card,.program-icon,.program-action i,.program-check{transition:none!important}
}

/* Campaign emphasis pass — stronger focal point without a retail-sale look. */
.programs-showcase{
  border-color:rgba(var(--brand-rgb),.22);
  box-shadow:0 34px 92px rgba(80,20,61,.14),0 8px 24px rgba(189,47,141,.06),inset 0 1px rgba(255,255,255,.94);
}
.programs-showcase::before{
  height:6px;
  background:linear-gradient(90deg,#54133f 0%,var(--brand) 28%,#e76eaa 52%,var(--rgb-purple) 72%,#6b1951 100%);
  background-size:180% 100%;
  animation:program-accent-flow 5.5s ease-in-out infinite alternate;
}
.programs-live{
  color:#fff;
  border-color:rgba(255,255,255,.2);
  background:
    radial-gradient(circle at 18% 0,rgba(255,151,201,.28),transparent 55%),
    linear-gradient(120deg,#4f123c,#8e276b 72%,#aa347f);
  box-shadow:0 16px 36px rgba(93,22,70,.26),inset 0 1px rgba(255,255,255,.17);
}
.programs-live-mark::before{background:rgba(255,255,255,.2)}
.programs-live-mark i{background:#ffaad2;box-shadow:0 0 0 3px rgba(255,170,210,.16)}
.programs-live-count{color:#7c225e;background:#fff;box-shadow:0 8px 18px rgba(35,4,25,.2)}
.program-card:only-child{
  border:1px solid transparent;
  background:
    linear-gradient(#fff,#fff) padding-box,
    linear-gradient(115deg,#681b50,var(--rgb-purple) 56%,#ee8dbb) border-box;
  box-shadow:0 30px 76px rgba(103,27,79,.18),0 8px 24px rgba(189,47,141,.08);
}
.program-card:only-child::before{
  top:0;
  right:0;
  bottom:auto;
  left:0;
  width:auto;
  height:6px;
  border-radius:0;
  opacity:1;
  background:linear-gradient(90deg,#5d1747,var(--rgb-purple) 48%,#ee8fbd);
}
.program-card:only-child:hover{box-shadow:0 38px 88px rgba(103,27,79,.23),0 12px 30px rgba(189,47,141,.1)}
.program-card:only-child .program-toggle{
  min-height:254px;
  padding:34px 38px;
  gap:30px;
  grid-template-columns:132px minmax(0,1fr) 46px;
  overflow:hidden;
}
.program-card:only-child .program-toggle::before{
  position:absolute;
  z-index:0;
  top:0;
  bottom:0;
  left:0;
  width:186px;
  content:"";
  opacity:.98;
  background:
    radial-gradient(circle at 30% 18%,rgba(255,167,208,.38),transparent 36%),
    linear-gradient(155deg,#42102f,#741e57 58%,#9d2e76);
  clip-path:polygon(0 0,78% 0,100% 50%,78% 100%,0 100%);
}
.program-card:only-child .program-toggle::after{
  position:absolute;
  z-index:0;
  right:64px;
  bottom:-108px;
  content:"✦";
  color:rgba(var(--brand-rgb),.045);
  font-size:250px;
  line-height:1;
  pointer-events:none;
  transform:rotate(12deg);
}
.program-card:only-child .program-toggle>*{position:relative;z-index:1}
.program-card:only-child .program-visual{
  width:132px;
  border-color:rgba(255,255,255,.52);
  border-radius:36px;
  background:
    radial-gradient(circle at 78% 15%,rgba(255,255,255,.36),transparent 36%),
    linear-gradient(145deg,#b93b86,#e06baa);
  box-shadow:0 24px 48px rgba(24,2,16,.32),0 0 0 9px rgba(255,255,255,.07),inset 0 1px rgba(255,255,255,.28);
  animation:program-focus-breathe 3.8s ease-in-out infinite;
}
.program-card:only-child .program-icon{width:57px;height:57px;filter:drop-shadow(0 7px 13px rgba(58,8,41,.22))}
.program-card:only-child .program-title{font-size:27px;line-height:1.25}
.program-card:only-child .program-desc{max-width:720px;color:#6c5965;font-size:14.5px}
.program-card:only-child .program-badge{color:#fff;background:linear-gradient(115deg,#91266d,#c5428d);box-shadow:0 8px 18px rgba(var(--brand-rgb),.17)}
.program-card:only-child .program-badge i{background:#ffd1e7;box-shadow:0 0 0 3px rgba(255,209,231,.15)}
.program-card:not(.selected) .program-action{
  color:#fff;
  border-color:transparent;
  background:linear-gradient(115deg,#721d55,var(--brand) 52%,var(--rgb-purple));
  box-shadow:0 12px 28px rgba(var(--brand-rgb),.25);
}
.program-card:not(.selected) .program-action i{color:#781f59;background:#fff}
.program-card:not(.selected) .program-toggle:hover .program-action{box-shadow:0 16px 34px rgba(var(--brand-rgb),.34);transform:translateY(-1px)}
.program-card:only-child .program-action{min-height:42px;padding:9px 15px;font-size:11.5px}
.program-card:only-child .program-action i{width:22px;height:22px}
.program-card:only-child .program-check{width:46px;height:46px;border:2px solid rgba(var(--brand-rgb),.25);box-shadow:0 10px 24px rgba(68,16,50,.11)}
.program-card:only-child.selected .program-check{box-shadow:0 12px 28px rgba(var(--brand-rgb),.35),0 0 0 6px rgba(var(--brand-rgb),.08)}

@keyframes program-accent-flow{to{background-position:100% 0}}
@keyframes program-focus-breathe{
  0%,100%{box-shadow:0 24px 48px rgba(24,2,16,.32),0 0 0 9px rgba(255,255,255,.07),inset 0 1px rgba(255,255,255,.28);transform:translateY(0)}
  50%{box-shadow:0 29px 58px rgba(24,2,16,.38),0 0 0 13px rgba(255,255,255,.09),inset 0 1px rgba(255,255,255,.3);transform:translateY(-3px)}
}

@media (max-width:920px){
  .program-card:only-child .program-toggle{min-height:238px;padding:30px;gap:25px;grid-template-columns:116px minmax(0,1fr) 42px}
  .program-card:only-child .program-toggle::before{width:164px}
  .program-card:only-child .program-visual{width:116px;border-radius:32px}
  .program-card:only-child .program-icon{width:50px;height:50px}
  .program-card:only-child .program-title{font-size:23px}
}
@media (max-width:700px){
  .programs-showcase{box-shadow:0 24px 60px rgba(80,20,61,.16),inset 0 1px rgba(255,255,255,.94)}
  .programs-showcase::before{height:5px}
  .programs-live{box-shadow:0 12px 28px rgba(93,22,70,.23)}
  .program-card:only-child .program-toggle{
    min-height:0;
    padding:19px 14px 18px;
    gap:12px;
    grid-template-columns:68px minmax(0,1fr) 32px;
  }
  .program-card:only-child .program-toggle::before{width:82px;clip-path:polygon(0 0,78% 0,100% 50%,78% 100%,0 100%)}
  .program-card:only-child .program-toggle::after{display:none}
  .program-card:only-child .program-visual{width:68px;border-radius:20px;box-shadow:0 15px 30px rgba(24,2,16,.3),0 0 0 5px rgba(255,255,255,.07)}
  .program-card:only-child .program-icon{width:32px;height:32px}
  .program-card:only-child .program-title{font-size:17px;line-height:1.34}
  .program-card:only-child .program-desc{font-size:11px}
  .program-card:only-child .program-action{min-height:34px;padding:7px 10px;font-size:9.5px}
  .program-card:only-child .program-action i{width:18px;height:18px}
  .program-card:only-child .program-check{width:32px;height:32px}
}
@media (max-width:390px){
  .program-card:only-child .program-toggle{padding:17px 12px 16px;gap:10px;grid-template-columns:60px minmax(0,1fr) 29px}
  .program-card:only-child .program-toggle::before{width:72px}
  .program-card:only-child .program-visual{width:60px;border-radius:18px}
  .program-card:only-child .program-title{font-size:15.5px}
  .program-card:only-child .program-check{width:29px;height:29px}
}
@media (prefers-reduced-motion:reduce){
  .programs-showcase::before,.program-card:only-child .program-visual{animation:none!important}
}

/* Bé Đậu mascot for the fertility promotion. */
.program-icon .program-mascot{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  filter:drop-shadow(0 8px 10px rgba(48,6,33,.24));
}
.program-card-fertility .program-icon{width:72px;height:72px}
.program-card-fertility:only-child .program-icon{width:108px;height:108px}
.program-card-fertility .program-index{display:none}
.program-card-fertility .program-toggle:hover .program-icon{transform:translateY(-3px) rotate(2deg) scale(1.055)}

@media (max-width:920px){
  .program-card-fertility:only-child .program-icon{width:94px;height:94px}
}
@media (max-width:700px){
  .program-card-fertility .program-icon,.program-card-fertility:only-child .program-icon{width:54px;height:54px}
}
@media (max-width:390px){
  .program-card-fertility .program-icon,.program-card-fertility:only-child .program-icon{width:47px;height:47px}
}

/* =========================================================
   Footer — chuyển sang tông xanh IVF cho khớp hero
   ========================================================= */
.site-footer{
  background:
    radial-gradient(circle at 14% 0,rgba(120,235,247,.22),transparent 26rem),
    radial-gradient(circle at 88% 100%,rgba(0,190,215,.24),transparent 28rem),
    linear-gradient(135deg,#00303c,#00596b 52%,#00768e);
}
.site-footer::after{
  background:linear-gradient(90deg,transparent,#67dce8 32%,#8cf1f6 60%,transparent);
}
.foot-tag{
  color:#a6f2f8;
  /* Be Vietnam Pro không có kiểu nghiêng thật → bỏ italic để tránh "nghiêng giả" */
  font-style:normal;
  font-weight:600;
  text-shadow:0 10px 30px rgba(0,30,38,.4);
}
.foot-accred{color:rgba(214,244,249,.72)}

/* =========================================================
   Ô ngày khám: nhập tay + nút mở lịch
   ========================================================= */
.date-pick{position:relative;display:block}
.date-pick > #examDate{padding-right:56px}
.date-pick-cal{
  position:absolute;
  top:0;
  right:0;
  display:grid;
  width:52px;
  height:100%;
  padding:0;
  place-items:center;
  color:var(--ivf-blue-dark);
  border:0;
  border-left:1px solid var(--line-strong);
  border-radius:0 14px 14px 0;
  background:transparent;
  cursor:pointer;
  transition:color .18s ease,background .18s ease;
}
.date-pick-cal svg{width:22px;height:22px;pointer-events:none}
.date-pick-cal:hover{color:var(--brand);background:var(--blush-soft)}
.date-pick-cal:focus-visible{outline:2px solid var(--brand);outline-offset:-3px}
.date-pick-cal[aria-expanded="true"]{color:#fff;background:var(--brand)}
.date-pick-cal:disabled{cursor:default;background:transparent}

/* =========================================================
   Lịch chọn ngày khám (desktop)
   Lịch mặc định của trình duyệt không cho làm mờ riêng cột Chủ nhật, nên
   trang tự dựng lịch riêng. Nó nằm ngoài .panel (panel có overflow:hidden)
   và được JS ngắm vị trí theo ô ngày, vì vậy dùng position:fixed.
   ========================================================= */
.exam-cal{
  position:fixed;
  z-index:80;
  width:330px;
  padding:14px;
  border:1px solid var(--line-strong);
  border-radius:20px;
  background:#fff;
  box-shadow:var(--shadow-md);
  animation:exam-cal-in .16s ease;
}
@keyframes exam-cal-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.exam-cal-head{
  display:grid;
  grid-template-columns:36px minmax(0,1fr) 36px;
  align-items:center;
  gap:6px;
  margin-bottom:12px;
}
.exam-cal-head strong{
  display:block;
  min-width:0;
  color:var(--plum);
  font-family:var(--serif);
  font-size:15px;
  font-weight:800;
  text-align:center;
}
/* Intl trả về "tháng 8 năm 2026" (chữ thường). Chỉ hoa chữ cái đầu — dùng
   capitalize sẽ hoa cả "Năm", còn viết hoa trong JS thì sai với các ngôn ngữ
   không có khái niệm chữ hoa. */
.exam-cal-head strong::first-letter{text-transform:uppercase}
.exam-cal-nav{
  display:grid;
  width:36px;
  height:36px;
  padding:0;
  place-items:center;
  border:1px solid var(--line);
  border-radius:12px;
  color:var(--plum);
  background:#fff;
  cursor:pointer;
  transition:border-color .18s ease,background .18s ease;
}
.exam-cal-nav svg{width:19px;height:19px}
.exam-cal-nav:hover:not([aria-disabled="true"]){border-color:var(--brand);background:var(--blush-soft)}
.exam-cal-nav[aria-disabled="true"]{color:var(--quiet);cursor:not-allowed;opacity:.45}
.exam-cal-week,
.exam-cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.exam-cal-week{margin-bottom:5px}
.exam-cal-week span{
  padding:5px 0;
  color:var(--muted);
  font-size:10px;
  font-weight:800;
  letter-spacing:.02em;
  text-align:center;
  text-transform:uppercase;
}
/* Cột Chủ nhật xám ngay từ tiêu đề để thấy trước khi kịp bấm */
.exam-cal-week span.is-closed{color:var(--quiet)}
.exam-cal-day{
  aspect-ratio:1;
  min-width:0;
  padding:0;
  border:1px solid transparent;
  border-radius:11px;
  color:var(--ink);
  background:transparent;
  font-size:13px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  cursor:pointer;
  transition:color .15s ease,border-color .15s ease,background .15s ease;
}
.exam-cal-day:hover:not(.is-blocked){border-color:var(--brand);background:var(--blush-soft)}
.exam-cal-day:focus-visible{outline:2px solid var(--brand);outline-offset:1px}
.exam-cal-day.is-outside{color:var(--quiet);font-weight:600}
/* Dấu "hôm nay" dùng xanh thương hiệu, không dùng --teal: bảng màu cuối file
   đã ánh xạ --teal về hồng, đứng cạnh ngày đang chọn sẽ lẫn làm một. */
.exam-cal-day.is-today:not(.is-selected){
  color:var(--ivf-blue-dark);
  border-color:var(--ivf-blue);
  background:var(--ivf-blue-soft);
}
/* Ngày không nhận khám: mờ, gạch chân đứt và con trỏ "cấm" — vẫn bấm được
   để nghe lý do, nhưng không bao giờ điền vào ô ngày. */
.exam-cal-day.is-blocked{
  color:#bcafb6;
  background:repeating-linear-gradient(135deg,#f7f4f5,#f7f4f5 4px,#f2eef0 4px,#f2eef0 8px);
  cursor:not-allowed;
  font-weight:600;
}
.exam-cal-day.is-closed{color:#c69cb1;text-decoration:line-through}
.exam-cal-day.is-blocked:hover{border-color:var(--line-strong)}
.exam-cal-day.is-selected{
  color:#fff;
  border-color:var(--brand);
  background:linear-gradient(135deg,var(--brand),#7d2e61);
  box-shadow:0 7px 16px rgba(var(--brand-rgb),.24);
}
.exam-cal-note{
  margin:12px 0 0;
  padding:9px 11px;
  border-radius:12px;
  color:var(--ivf-blue-dark);
  background:var(--ivf-blue-soft);
  font-size:11px;
  font-weight:600;
  line-height:1.5;
}
.exam-cal-note.is-warning{color:var(--danger);background:#fdf1f2}
.exam-cal-foot{
  display:flex;
  gap:8px;
  margin-top:10px;
  padding-top:11px;
  border-top:1px solid var(--line);
}
.exam-cal-foot-btn{
  flex:1;
  min-height:36px;
  padding:0 10px;
  border:1px solid var(--line-strong);
  border-radius:11px;
  color:var(--plum);
  background:#fff;
  font-size:11.5px;
  font-weight:800;
  cursor:pointer;
  transition:border-color .18s ease,background .18s ease;
}
.exam-cal-foot-btn:hover:not([aria-disabled="true"]){border-color:var(--brand);background:var(--blush-soft)}
.exam-cal-foot-btn.is-quiet{color:var(--muted)}
.exam-cal-foot-btn[aria-disabled="true"]{color:var(--quiet);cursor:not-allowed;opacity:.5}

/* Ô ngày: viền đỏ + câu giải thích ngay dưới ô khi nhập sai */
.field-error{
  color:var(--danger);
  font-size:12px;
  font-weight:600;
  line-height:1.5;
}
input.is-invalid{
  border-color:var(--danger);
  background:#fdf5f6;
}
input.is-invalid:focus{
  border-color:var(--danger);
  box-shadow:0 0 0 4px rgba(185,63,74,.14);
}

/* Ghi chú "vợ hoặc chồng" trong hai phần thông tin cá nhân */
.panel-note{
  margin:0 0 18px;
  padding:11px 14px;
  border-radius:13px;
  color:var(--ivf-blue-dark);
  background:var(--ivf-blue-soft);
  font-size:12.5px;
  line-height:1.55;
}

/* =========================================================
   Bộ chọn ngày sinh/ngày khám — chỉ kích hoạt trên mobile
   ========================================================= */
.birth-date-dialog{display:none}

@media (max-width:700px){
  body.birth-date-dialog-open{overflow:hidden}
  input.mobile-birth-date-trigger{
    padding-right:48px;
    caret-color:transparent;
    cursor:pointer;
  }
  input.mobile-birth-date-trigger:not(#examDate){
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300768e' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5' width='17' height='15' rx='2.5'/%3E%3Cpath d='M3.5 9.5h17M8 3.3v3.4M16 3.3v3.4'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 15px center;
    background-size:21px;
  }
  .date-pick.is-mobile-date-trigger .date-pick-cal{pointer-events:none}
  .exam-cal{display:none}
  .birth-date-dialog[open]{
    position:fixed;
    inset:0;
    display:flex;
    align-items:flex-end;
    width:100vw;
    max-width:none;
    height:100dvh;
    max-height:none;
    margin:0;
    padding:0;
    overflow:hidden;
    border:0;
    background:transparent;
  }
  .birth-date-dialog::backdrop{background:rgba(25,15,23,.58);backdrop-filter:blur(4px)}
  .birth-date-sheet{
    display:flex;
    flex-direction:column;
    width:100%;
    max-height:min(92dvh,760px);
    overflow:hidden;
    border-radius:28px 28px 0 0;
    background:#fff;
    box-shadow:0 -24px 70px rgba(55,22,43,.25);
    animation:birth-date-sheet-in .3s cubic-bezier(.2,.8,.2,1);
  }
  @keyframes birth-date-sheet-in{
    from{transform:translateY(28px);opacity:.72}
    to{transform:none;opacity:1}
  }
  .birth-date-handle{
    flex:0 0 auto;
    width:44px;
    height:5px;
    margin:9px auto 2px;
    border-radius:999px;
    background:#d9cbd3;
  }
  .birth-date-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:11px 18px 13px;
    border-bottom:1px solid var(--line);
  }
  .birth-date-head>div{min-width:0}
  .birth-date-head>div>span{
    display:block;
    margin-bottom:3px;
    color:var(--ivf-blue-dark);
    font-size:9px;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
  }
  .birth-date-head h2{margin:0;color:var(--plum);font-size:20px;line-height:1.25}
  .birth-date-close{
    flex:0 0 auto;
    display:grid;
    width:42px;
    height:42px;
    padding:0;
    place-items:center;
    border:1px solid var(--line);
    border-radius:14px;
    color:var(--plum);
    background:#faf6f8;
    font-size:25px;
  }
  .birth-date-progress{
    display:grid;
    grid-template-columns:auto 1fr auto 1fr auto;
    align-items:center;
    gap:8px;
    padding:13px 18px;
    background:#fbf8fa;
  }
  .birth-date-progress>i{height:2px;border-radius:2px;background:#e4d8df}
  .birth-date-progress button{
    display:flex;
    align-items:center;
    gap:6px;
    padding:0;
    border:0;
    color:var(--muted);
    background:transparent;
    font-size:10px;
    font-weight:750;
  }
  .birth-date-progress button>span{
    display:grid;
    width:25px;
    height:25px;
    place-items:center;
    border:1px solid #d9cbd3;
    border-radius:50%;
    background:#fff;
    font-size:10px;
  }
  .birth-date-progress button.is-active{color:var(--brand)}
  .birth-date-progress button.is-active>span{
    color:#fff;
    border-color:var(--brand);
    background:var(--brand);
    box-shadow:0 5px 13px rgba(var(--brand-rgb),.2);
  }
  .birth-date-progress button.is-complete:not(.is-active)>span{
    color:#fff;
    border-color:var(--teal);
    background:var(--teal);
  }
  .birth-date-progress button:disabled{opacity:.48}
  .birth-date-body{overflow-y:auto;padding:17px 18px 13px;overscroll-behavior:contain}
  .birth-date-step{animation:birth-date-step-in .2s ease}
  @keyframes birth-date-step-in{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}
  .birth-date-step-head{margin-bottom:14px}
  .birth-date-step-head h3{margin:0;color:var(--plum);font-size:19px}
  .birth-date-step-head p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.5}
  .birth-day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}
  .birth-day-grid button{
    aspect-ratio:1;
    min-width:0;
    padding:0;
    border:1px solid var(--line-strong);
    border-radius:12px;
    color:var(--ink);
    background:#fff;
    font-size:14px;
    font-weight:750;
  }
  .birth-day-grid button.is-selected,
  .birth-month-grid button.is-selected,
  .exam-year-options button.is-selected{
    color:#fff;
    border-color:var(--brand);
    background:linear-gradient(135deg,var(--brand),#7d2e61);
    box-shadow:0 8px 18px rgba(var(--brand-rgb),.22);
    transform:translateY(-1px);
  }
  .birth-month-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
  .birth-month-grid button{
    min-height:52px;
    padding:9px 5px;
    border:1px solid var(--line-strong);
    border-radius:14px;
    color:var(--ink);
    background:#fff;
    font-size:12px;
    font-weight:750;
  }
  .birth-month-grid button:disabled{
    color:#b4a8af;
    border-style:dashed;
    background:#f4f1f2;
    text-decoration:line-through;
  }
  .birth-year-field{position:relative;display:block}
  .birth-year-field>span:not(.birth-year-display){display:block;margin-bottom:8px;color:var(--ink);font-size:11px;font-weight:800}
  .birth-year-field input{
    min-height:72px;
    padding:12px 16px;
    color:var(--plum);
    border:2px solid var(--line-strong);
    border-radius:18px;
    background:#fff;
    font-size:30px;
    font-weight:800;
    letter-spacing:.12em;
    text-align:center;
    font-variant-numeric:tabular-nums;
  }
  .birth-year-field input::placeholder{
    color:#aaa0a8;
    font-size:clamp(17px,4.8vw,20px);
    font-weight:700;
    letter-spacing:0;
    opacity:1;
  }
  .birth-year-field input.has-normalized-year{
    color:transparent;
    caret-color:transparent;
    -webkit-text-fill-color:transparent;
  }
  .birth-year-display{
    position:absolute;
    z-index:1;
    right:16px;
    bottom:0;
    left:16px;
    display:grid;
    height:72px;
    place-items:center;
    color:var(--plum);
    font-size:30px;
    font-weight:800;
    letter-spacing:.12em;
    line-height:1;
    pointer-events:none;
    font-variant-numeric:tabular-nums;
  }
  .birth-year-display[hidden]{display:none}
  .birth-year-field input:focus{border-color:var(--teal);box-shadow:0 0 0 4px rgba(var(--teal-rgb),.12)}
  .exam-year-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:12px}
  .exam-year-options[hidden]{display:none}
  .exam-year-options button{
    min-height:72px;
    padding:12px;
    border:2px solid var(--line-strong);
    border-radius:18px;
    color:var(--plum);
    background:#fff;
    font-size:24px;
    font-weight:800;
    font-variant-numeric:tabular-nums;
  }
  .exam-year-options button:disabled{
    color:#b4a8af;
    border-style:dashed;
    background:#f4f1f2;
    text-decoration:line-through;
  }
  .birth-date-picker-error{margin:9px 0 0;color:var(--danger);font-size:11px;font-weight:650;line-height:1.5}
  .birth-date-review{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:2px 12px;
    margin-top:16px;
    padding:12px 14px;
    border:1px solid rgba(var(--teal-rgb),.18);
    border-radius:16px;
    background:var(--ivf-blue-soft);
  }
  .birth-date-review>span{color:var(--muted);font-size:9px;font-weight:750;text-transform:uppercase;letter-spacing:.08em}
  .birth-date-review>strong{grid-row:1/3;grid-column:2;color:var(--ivf-blue-dark);font-size:18px;font-variant-numeric:tabular-nums}
  .birth-date-review>small{color:var(--brand);font-size:11px;font-weight:750}
  .birth-date-actions{
    display:grid;
    grid-template-columns:minmax(96px,.7fr) minmax(0,1.3fr);
    gap:10px;
    padding:12px 18px calc(12px + env(safe-area-inset-bottom));
    border-top:1px solid var(--line);
    background:#fff;
  }
  .birth-date-back,.birth-date-confirm{
    min-height:48px;
    padding:10px 13px;
    border-radius:15px;
    font-size:12px;
    font-weight:800;
  }
  .birth-date-back{color:var(--plum);border:1px solid var(--line-strong);background:#fff}
  .birth-date-confirm{color:#fff;border:0;background:linear-gradient(115deg,var(--brand),#7d2e61 68%,var(--teal))}
  .birth-date-back[hidden]+.birth-date-confirm{grid-column:1/-1}
  .birth-date-confirm:disabled{opacity:.42;box-shadow:none}
}

@media (max-width:360px){
  .birth-day-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
  .birth-date-progress{gap:5px;padding-right:14px;padding-left:14px}
  .birth-date-progress button{gap:4px}
}

@media (prefers-reduced-motion:reduce){
  .birth-date-sheet,.birth-date-step{animation:none!important}
}

/* =========================================================
   Lời mời tham gia ưu đãi Đánh giá chức năng sinh sản
   Chỉ được mở bởi assets/js/programs.js khi admin bật chương trình.
   ========================================================= */
body.program-offer-open{overflow:hidden}
.program-offer{
  position:fixed;
  z-index:210;
  inset:0;
  display:grid;
  padding:clamp(16px,3vw,38px);
  overflow:hidden;
  place-items:center;
  opacity:0;
  background:
    radial-gradient(circle at 8% 8%,rgba(244,151,201,.22),transparent 32rem),
    radial-gradient(circle at 92% 88%,rgba(0,151,174,.16),transparent 28rem),
    rgba(39,10,29,.76);
  backdrop-filter:blur(14px) saturate(1.12);
  transition:opacity .32s ease;
}
.program-offer.is-visible{opacity:1}
.program-offer-card{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.16fr) minmax(400px,.84fr);
  width:min(1140px,100%);
  max-height:min(92svh,720px);
  overflow:hidden;
  border:1px solid rgba(255,255,255,.82);
  border-radius:34px;
  background:#fff;
  box-shadow:0 48px 130px rgba(31,5,23,.42),0 0 0 1px rgba(164,70,131,.12);
  transform:translateY(22px) scale(.975);
  transition:transform .42s cubic-bezier(.2,.82,.2,1);
}
.program-offer.is-visible .program-offer-card{transform:none}
.program-offer-card::before{
  position:absolute;
  z-index:3;
  top:0;
  right:0;
  left:0;
  height:5px;
  content:"";
  background:linear-gradient(90deg,#6f1c55,var(--brand) 42%,#ef8abd 72%,var(--teal));
}
.program-offer-art{
  position:relative;
  display:grid;
  min-height:580px;
  padding:clamp(34px,4vw,54px);
  overflow:hidden;
  place-items:center;
  color:#fff;
  background:
    radial-gradient(circle at 12% 10%,rgba(255,255,255,.18),transparent 15rem),
    radial-gradient(circle at 90% 94%,rgba(31,220,232,.2),transparent 18rem),
    linear-gradient(145deg,#501239,#7f205e 48%,#b43781 100%);
}
.program-offer-art::before{
  position:absolute;
  top:-125px;
  left:-120px;
  width:280px;
  height:280px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:50%;
  content:"";
  box-shadow:0 0 0 38px rgba(255,255,255,.045),0 0 0 78px rgba(255,255,255,.025);
}
.program-offer-orb{
  position:absolute;
  border-radius:50%;
  pointer-events:none;
}
.program-offer-orb-one{top:10%;right:-90px;width:230px;height:230px;border:45px solid rgba(255,255,255,.045)}
.program-offer-orb-two{right:19%;bottom:-75px;width:160px;height:160px;background:rgba(24,210,225,.09);filter:blur(2px)}
.program-offer-art-content{position:relative;z-index:1;width:100%;max-width:620px}
.program-offer-topline{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:25px}
.program-offer-label,.program-offer-date{display:inline-flex;align-items:center;width:max-content;border-radius:999px;font-weight:800}
.program-offer-label{
  min-height:34px;
  padding:6px 12px 6px 7px;
  gap:7px;
  color:#6c194f;
  background:#fff;
  box-shadow:0 10px 25px rgba(28,2,19,.18);
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.program-offer-label i{display:grid;width:22px;height:22px;border-radius:50%;color:#fff;background:linear-gradient(145deg,#9a2c73,#dc5ba1);font-size:10px;font-style:normal;place-items:center}
.program-offer-date{min-height:34px;padding:7px 12px;gap:8px;color:#fff;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.1);font-size:12px;font-variant-numeric:tabular-nums;backdrop-filter:blur(8px)}
.program-offer-date svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.program-offer-art-title{margin:0 0 25px;font-size:clamp(35px,4.1vw,54px);font-weight:650;letter-spacing:-.045em;line-height:1.08;text-wrap:balance}
.program-offer-art-title span,.program-offer-art-title strong{display:block}
.program-offer-art-title strong{margin-top:4px;color:#91f1f4;font-size:1.03em;font-weight:800}
.program-offer-value{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  margin-bottom:21px;
  padding:18px 20px;
  gap:18px;
  color:#6b1b50;
  border:1px solid rgba(255,255,255,.68);
  border-radius:22px;
  background:linear-gradient(135deg,#fff,#fff0f8);
  box-shadow:0 18px 42px rgba(30,2,20,.22);
}
.program-offer-value span{max-width:15ch;font-size:13px;font-weight:750;line-height:1.35}
.program-offer-value strong{color:#a42f7b;font-size:clamp(35px,3.9vw,51px);font-weight:800;letter-spacing:-.055em;line-height:1;font-variant-numeric:tabular-nums;white-space:nowrap}
.program-offer-copy{
  position:relative;
  min-width:0;
  padding:clamp(34px,4vw,54px) clamp(30px,4.2vw,58px) clamp(30px,3.4vw,46px);
  overflow-x:hidden;
  overflow-y:auto;
  background:
    radial-gradient(circle at 105% 0,rgba(225,127,174,.14),transparent 17rem),
    linear-gradient(145deg,#fff 30%,#fff9fc);
}
.program-offer-copy::after{
  position:absolute;
  right:0;
  bottom:0;
  width:128px;
  height:128px;
  border:28px solid rgba(0,124,148,.045);
  border-radius:50%;
  content:"";
  pointer-events:none;
}
.program-offer-kicker{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  min-height:30px;
  margin:0 0 16px;
  padding:6px 11px 6px 7px;
  gap:7px;
  color:#7b205e;
  border:1px solid rgba(164,70,131,.16);
  border-radius:999px;
  background:#fff;
  box-shadow:0 9px 22px rgba(80,20,61,.07);
  font-size:10px;
  font-weight:850;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.program-offer-kicker>span:first-child{
  display:grid;
  width:20px;
  height:20px;
  border-radius:50%;
  color:#fff;
  background:linear-gradient(145deg,var(--brand),#d4569c);
  font-size:10px;
  place-items:center;
}
.program-offer-greeting{
  position:relative;
  z-index:1;
  margin:0 0 5px;
  color:var(--teal-dark);
  font-size:15px;
  font-weight:750;
}
.program-offer-copy h2{
  position:relative;
  z-index:1;
  margin:0;
  color:#42112f;
  font-family:var(--serif);
  font-size:clamp(27px,2.5vw,36px);
  font-weight:750;
  letter-spacing:-.035em;
  line-height:1.2;
  text-wrap:balance;
}
.program-offer-intro{
  position:relative;
  z-index:1;
  margin:15px 0 19px;
  color:#6e5d67;
  font-size:14px;
  line-height:1.7;
}
.program-offer-benefits{
  position:relative;
  z-index:1;
  display:grid;
  margin:0;
  padding:0;
  gap:8px;
  list-style:none;
}
.program-offer-benefits li{
  display:flex;
  align-items:center;
  min-height:46px;
  padding:8px 14px 8px 8px;
  gap:11px;
  color:#4d2940;
  border:1px solid rgba(255,255,255,.65);
  border-radius:14px;
  background:rgba(255,255,255,.92);
  box-shadow:0 9px 22px rgba(38,4,25,.12);
  font-size:13px;
  font-weight:700;
  line-height:1.45;
}
.program-offer-benefits li>span:first-child{
  display:grid;
  flex:0 0 auto;
  width:29px;
  height:29px;
  border-radius:9px;
  color:#fff;
  background:linear-gradient(145deg,#00a0b8,var(--teal-dark));
  box-shadow:0 6px 14px rgba(0,124,148,.18);
  font-size:13px;
  place-items:center;
}
.program-offer-note{
  position:relative;
  z-index:1;
  display:flex;
  align-items:flex-start;
  margin:17px 0 21px;
  padding:11px 13px;
  gap:9px;
  color:#752258;
  border-radius:14px;
  background:#fcedf5;
  font-size:12.5px;
  font-weight:650;
  line-height:1.55;
}
.program-offer-note>span:first-child{font-size:15px;line-height:1.25}
.program-offer-actions{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
.program-offer-join,.program-offer-decline{
  min-height:54px;
  padding:11px 16px;
  cursor:pointer;
  border-radius:15px;
  font-size:13.5px;
  font-weight:800;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease;
}
.program-offer-join{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:11px;
  color:#fff;
  border:0;
  background:linear-gradient(120deg,#742056,var(--brand) 58%,#cb3c8c);
  box-shadow:0 14px 30px rgba(164,70,131,.28);
}
.program-offer-join i{
  display:grid;
  width:24px;
  height:24px;
  border-radius:50%;
  color:#7a205a;
  background:#fff;
  font-size:14px;
  font-style:normal;
  place-items:center;
  transition:transform .2s ease;
}
.program-offer-decline{color:#6b5863;border:1px solid #e4d5dd;background:#fff}
.program-offer-join:hover{box-shadow:0 18px 38px rgba(164,70,131,.34);transform:translateY(-2px)}
.program-offer-join:hover i{transform:translateX(2px)}
.program-offer-decline:hover{color:#6e1c50;border-color:#d5a0bd;background:#fff8fc;transform:translateY(-1px)}
.program-offer button:disabled{cursor:default;opacity:.7;transform:none}

@media (max-width:860px){
  .program-offer{padding:18px}
  .program-offer-card{grid-template-columns:minmax(0,1fr) minmax(350px,1fr);border-radius:28px}
  .program-offer-art{min-height:520px;padding:28px 24px}
  .program-offer-topline{align-items:flex-start;flex-direction:column;margin-bottom:19px;gap:10px}
  .program-offer-art-title{font-size:37px}
  .program-offer-value{align-items:flex-start;flex-direction:column;padding:16px;gap:8px}
  .program-offer-value strong{font-size:39px}
  .program-offer-copy{padding:34px 28px 30px}
  .program-offer-copy h2{font-size:26px}
}

@media (max-width:620px){
  .program-offer{display:block;padding:12px;overflow-y:auto}
  .program-offer-card{
    display:block;
    width:100%;
    max-height:none;
    margin:auto;
    overflow:hidden;
    border-radius:24px;
  }
  .program-offer-art{min-height:0;padding:22px 19px 20px}
  .program-offer-orb-one{right:-110px}
  .program-offer-topline{align-items:center;flex-direction:row;margin-bottom:16px;gap:8px}
  .program-offer-label{min-height:30px;padding:5px 10px 5px 6px;font-size:9.5px}
  .program-offer-label i{width:20px;height:20px}
  .program-offer-date{min-height:30px;padding:6px 9px;font-size:10.5px}
  .program-offer-date svg{width:15px;height:15px}
  .program-offer-art-title{margin-bottom:16px;font-size:28px;line-height:1.08}
  .program-offer-value{align-items:flex-end;flex-direction:row;margin-bottom:15px;padding:13px 14px;border-radius:17px;gap:10px}
  .program-offer-value span{font-size:11px}
  .program-offer-value strong{font-size:35px}
  .program-offer-benefits{gap:6px}
  .program-offer-benefits li{min-height:41px;padding:6px 9px 6px 6px;border-radius:12px;font-size:13.5px;line-height:1.35}
  .program-offer-benefits li>span:first-child{width:26px;height:26px;border-radius:8px}
  .program-offer-copy{padding:22px 19px calc(20px + env(safe-area-inset-bottom));overflow:visible}
  .program-offer-kicker{display:none}
  .program-offer-greeting{margin-bottom:4px;font-size:14px}
  .program-offer-copy h2{font-size:23px;line-height:1.25}
  .program-offer-intro{margin:9px 0 12px;font-size:13.5px;line-height:1.58}
  .program-offer-note{margin:12px 0 14px;padding:10px 11px;font-size:12.5px}
  .program-offer-actions{grid-template-columns:1fr}
  .program-offer-join,.program-offer-decline{min-height:53px;font-size:15px}
}

@media (max-width:370px){
  .program-offer{padding:8px}
  .program-offer-art{padding-right:15px;padding-left:15px}
  .program-offer-copy{padding-right:15px;padding-left:15px}
  .program-offer-art-title{font-size:26px}
  .program-offer-value strong{font-size:31px}
  .program-offer-copy h2{font-size:21px}
}

@media (prefers-reduced-motion:reduce){
  .program-offer,.program-offer-card{transition:none!important}
}

/* Unified campaign panel: greeting, offer and decisions share one design. */
.program-offer{
  background:
    radial-gradient(circle at 18% 10%,rgba(232,86,165,.34),transparent 28rem),
    radial-gradient(circle at 84% 88%,rgba(29,199,211,.3),transparent 31rem),
    linear-gradient(145deg,rgba(59,18,48,.86),rgba(10,61,70,.84));
  backdrop-filter:blur(18px) saturate(1.24);
}
.program-offer-card{
  display:block;
  width:min(1060px,100%);
  max-height:min(92svh,720px);
  color:#fff;
  border:1px solid rgba(255,224,177,.56);
  border-radius:36px;
  background:
    radial-gradient(circle at 5% 0,rgba(255,255,255,.2),transparent 21rem),
    radial-gradient(circle at 96% 92%,rgba(50,224,231,.28),transparent 25rem),
    radial-gradient(circle at 58% 118%,rgba(246,109,180,.18),transparent 27rem),
    linear-gradient(135deg,#3a102d 0%,#69204f 40%,#983171 74%,#267b89 135%);
  box-shadow:
    0 55px 140px rgba(30,3,22,.48),
    0 18px 45px rgba(111,25,80,.3),
    inset 0 1px rgba(255,255,255,.24);
}
.program-offer-card::before{
  height:4px;
  background:linear-gradient(90deg,#d7b36b,#fff1c9 24%,#74e0e7 54%,#e88aba 82%,#d7b36b);
  background-size:180% 100%;
  animation:program-offer-accent 6s ease-in-out infinite alternate;
}
.program-offer-card::after{
  position:absolute;
  z-index:2;
  inset:8px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:28px;
  content:"";
  pointer-events:none;
}
.program-offer-card .program-offer-orb-one{top:-100px;right:-75px;width:300px;height:300px;border:58px solid rgba(255,255,255,.055);box-shadow:0 0 90px rgba(244,130,190,.19)}
.program-offer-card .program-offer-orb-two{right:auto;bottom:-135px;left:31%;width:260px;height:260px;background:rgba(53,224,230,.15);filter:blur(10px)}
.program-offer-seal{
  position:absolute;
  z-index:0;
  right:38px;
  bottom:112px;
  display:flex;
  align-items:flex-end;
  color:#fff;
  opacity:.047;
  font-size:88px;
  font-weight:800;
  letter-spacing:-.08em;
  line-height:1;
  pointer-events:none;
}
.program-offer-seal i{margin:0 0 5px 8px;font-size:.34em;font-style:normal;letter-spacing:-.04em}
.program-offer-unified{
  position:relative;
  z-index:1;
  max-height:min(92svh,720px);
  padding:40px 48px 42px;
  overflow-x:hidden;
  overflow-y:auto;
}
.program-offer-header{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  padding-bottom:27px;
  gap:34px;
  border-bottom:1px solid rgba(234,202,150,.19);
}
.program-offer-welcome{max-width:630px}
.program-offer-unified .program-offer-greeting{
  position:relative;
  margin:0 0 8px;
  padding-left:23px;
  color:#fff6e8;
  font-size:18.5px;
  font-weight:800;
  letter-spacing:-.01em;
  text-shadow:0 3px 18px rgba(0,0,0,.28);
}
.program-offer-unified .program-offer-greeting::before{
  position:absolute;
  top:.55em;
  left:0;
  width:9px;
  height:9px;
  border-radius:50%;
  content:"";
  background:#e7c47c;
  box-shadow:0 0 0 5px rgba(231,196,124,.1),0 0 18px rgba(231,196,124,.45);
}
.program-offer-unified .program-offer-intro{
  margin:0;
  color:rgba(255,250,246,.86);
  font-size:14.5px;
  line-height:1.65;
}
.program-offer-unified .program-offer-topline{justify-content:flex-end;margin:0;gap:9px}
.program-offer-unified .program-offer-label{
  color:#59203f;
  border:1px solid rgba(238,207,153,.55);
  background:linear-gradient(135deg,#fffaf1,#f6e3bf);
  box-shadow:0 12px 28px rgba(9,1,7,.25),inset 0 1px #fff;
}
.program-offer-unified .program-offer-label i{background:linear-gradient(145deg,#7f225d,#bd3c85);box-shadow:0 5px 12px rgba(93,19,65,.24)}
.program-offer-unified .program-offer-date{color:#fffaf0;border-color:rgba(255,222,170,.4);background:rgba(255,255,255,.12);box-shadow:inset 0 1px rgba(255,255,255,.12)}
.program-offer-main{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(360px,1.08fr);
  align-items:stretch;
  padding:31px 0;
  gap:39px;
}
.program-offer-lead{display:grid;align-content:space-between;gap:22px}
.program-offer-unified .program-offer-art-title{
  margin:0;
  color:#fffaf5;
  font-size:clamp(39px,4.1vw,52px);
  text-shadow:0 7px 28px rgba(0,0,0,.28);
}
.program-offer-unified .program-offer-art-title strong{
  width:max-content;
  max-width:100%;
  color:#8debf0;
  background:linear-gradient(95deg,#78e5ea,#b3f5ef 48%,#f0d390);
  -webkit-background-clip:text;
  background-clip:text;
  filter:drop-shadow(0 5px 18px rgba(70,214,222,.16));
  -webkit-text-fill-color:transparent;
}
.program-offer-unified .program-offer-value{
  position:relative;
  margin:0;
  padding:18px 20px;
  overflow:hidden;
  border-color:rgba(237,205,148,.68);
  background:
    radial-gradient(circle at 0 0,rgba(238,210,161,.25),transparent 9rem),
    linear-gradient(135deg,#fffdf8,#fff3e4 52%,#ffeaf5);
  box-shadow:0 20px 46px rgba(4,0,3,.3),inset 0 1px #fff;
}
.program-offer-unified .program-offer-value::after{
  position:absolute;
  top:-85%;
  left:-28%;
  width:18%;
  height:270%;
  content:"";
  opacity:.55;
  background:linear-gradient(90deg,transparent,#fff,transparent);
  transform:rotate(18deg);
  animation:program-offer-value-glint 5.4s ease-in-out 1.1s infinite;
}
.program-offer-unified .program-offer-value span{position:relative;z-index:1;color:#6f294f;font-size:12.5px;letter-spacing:.015em}
.program-offer-unified .program-offer-value strong{
  position:relative;
  z-index:1;
  color:#a72d78;
  background:linear-gradient(105deg,#7f205e,#b93380 64%,#ce6b94);
  -webkit-background-clip:text;
  background-clip:text;
  font-size:clamp(38px,4.15vw,49px);
  -webkit-text-fill-color:transparent;
}
.program-offer-unified .program-offer-benefits{align-content:center;gap:9px}
.program-offer-unified .program-offer-benefits li{
  min-height:56px;
  padding:9px 15px 9px 9px;
  color:#fff9f4;
  border-color:rgba(255,225,181,.3);
  background:linear-gradient(100deg,rgba(255,255,255,.17),rgba(255,255,255,.09));
  box-shadow:0 12px 29px rgba(49,6,35,.15),inset 0 1px rgba(255,255,255,.13);
  font-size:14px;
  backdrop-filter:blur(12px);
  transition:border-color .22s ease,background .22s ease,transform .22s ease;
}
.program-offer-unified .program-offer-benefits li:hover{border-color:rgba(255,226,181,.52);background:linear-gradient(100deg,rgba(255,255,255,.23),rgba(255,255,255,.13));transform:translateX(3px)}
.program-offer-unified .program-offer-benefits li>.program-offer-benefit-icon{
  display:grid;
  flex:0 0 auto;
  width:37px;
  height:37px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:13px;
  color:#fff;
  background:linear-gradient(145deg,#0395aa,#086b80 58%,#71325f);
  box-shadow:0 9px 20px rgba(0,31,39,.28),inset 0 1px rgba(255,255,255,.2);
  place-items:center;
}
.program-offer-unified .program-offer-benefits li>.program-offer-benefit-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.program-offer-footer{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  padding-top:23px;
  gap:28px;
  border-top:1px solid rgba(255,225,181,.27);
}
.program-offer-unified .program-offer-note{
  max-width:600px;
  margin:0;
  padding:12px 14px;
  color:rgba(255,249,243,.88);
  border:1px solid rgba(255,225,181,.22);
  background:linear-gradient(100deg,rgba(255,255,255,.15),rgba(255,255,255,.085));
  font-size:12.5px;
  box-shadow:inset 0 1px rgba(255,255,255,.06);
  backdrop-filter:blur(8px);
}
.program-offer-unified .program-offer-actions{grid-template-columns:minmax(150px,185px) auto;gap:10px}
.program-offer-unified .program-offer-join{
  min-height:54px;
  color:#5d173f;
  border:1px solid rgba(255,255,255,.7);
  background:linear-gradient(135deg,#fffdf8,#f8e5bd 58%,#fff8eb);
  box-shadow:0 16px 34px rgba(4,0,3,.32),inset 0 1px #fff;
}
.program-offer-unified .program-offer-join i{color:#fff;background:linear-gradient(145deg,#7b2059,#c13c88);box-shadow:0 5px 12px rgba(94,19,66,.25)}
.program-offer-unified .program-offer-decline{
  min-height:54px;
  color:#fff;
  border-color:rgba(255,225,181,.34);
  background:rgba(255,255,255,.11);
  box-shadow:inset 0 1px rgba(255,255,255,.11);
}
.program-offer-unified .program-offer-join:hover{background:linear-gradient(135deg,#fff,#f7ddb0 58%,#fff6df);box-shadow:0 20px 42px rgba(4,0,3,.38);transform:translateY(-2px)}
.program-offer-unified .program-offer-decline:hover{color:#fff;border-color:rgba(238,205,153,.55);background:rgba(255,255,255,.12)}

@keyframes program-offer-accent{to{background-position:100% 0}}
@keyframes program-offer-value-glint{
  0%,65%{transform:translateX(0) rotate(18deg)}
  83%,100%{transform:translateX(760%) rotate(18deg)}
}

@media (max-width:860px){
  .program-offer-unified{padding:32px 28px 34px}
  .program-offer-header{grid-template-columns:1fr;gap:17px}
  .program-offer-unified .program-offer-topline{align-items:center;flex-direction:row;justify-content:flex-start}
  .program-offer-main{grid-template-columns:minmax(0,.88fr) minmax(330px,1.12fr);gap:24px}
  .program-offer-unified .program-offer-art-title{font-size:37px}
  .program-offer-unified .program-offer-value{align-items:flex-start;flex-direction:column;gap:8px}
  .program-offer-unified .program-offer-value strong{font-size:39px}
  .program-offer-footer{grid-template-columns:1fr;gap:15px}
  .program-offer-unified .program-offer-note{max-width:none}
  .program-offer-unified .program-offer-actions{grid-template-columns:minmax(0,1fr) auto}
}

@media (max-width:620px){
  .program-offer-card{max-height:none;border-radius:28px;box-shadow:0 36px 90px rgba(3,0,2,.58),0 12px 28px rgba(61,13,46,.3),inset 0 1px rgba(255,255,255,.18)}
  .program-offer-card::after{inset:6px;border-radius:22px}
  .program-offer-card .program-offer-orb-one{top:-105px;right:-125px}
  .program-offer-card .program-offer-orb-two{bottom:-100px;left:-70px}
  .program-offer-seal{display:none}
  .program-offer-unified{max-height:none;padding:22px 19px calc(21px + env(safe-area-inset-bottom));overflow:visible}
  .program-offer-header{display:block;padding-bottom:18px}
  .program-offer-unified .program-offer-greeting{padding-left:21px;font-size:16.5px}
  .program-offer-unified .program-offer-intro{font-size:13.5px;line-height:1.56}
  .program-offer-unified .program-offer-topline{margin-top:15px;gap:7px}
  .program-offer-unified .program-offer-label{min-height:29px;font-size:9.5px}
  .program-offer-unified .program-offer-date{min-height:29px;font-size:10.5px}
  .program-offer-main{display:block;padding:18px 0}
  .program-offer-unified .program-offer-art-title{margin-bottom:15px;font-size:28px}
  .program-offer-unified .program-offer-value{align-items:flex-end;flex-direction:row;margin-bottom:14px;padding:14px 15px;border-radius:18px;gap:10px}
  .program-offer-unified .program-offer-value span{font-size:11px}
  .program-offer-unified .program-offer-value strong{font-size:36px}
  .program-offer-unified .program-offer-benefits{gap:6px}
  .program-offer-unified .program-offer-benefits li{min-height:48px;padding:6px 10px 6px 6px;font-size:13.2px}
  .program-offer-unified .program-offer-benefits li>.program-offer-benefit-icon{width:34px;height:34px;border-radius:11px}
  .program-offer-unified .program-offer-benefits li>.program-offer-benefit-icon svg{width:19px;height:19px}
  .program-offer-footer{display:block;padding-top:16px}
  .program-offer-unified .program-offer-note{margin:0 0 14px;padding:10px 11px;font-size:12.5px}
  .program-offer-unified .program-offer-actions{grid-template-columns:1fr}
  .program-offer-unified .program-offer-join,.program-offer-unified .program-offer-decline{min-height:53px;font-size:15px}
}

@media (max-width:370px){
  .program-offer-unified{padding-right:15px;padding-left:15px}
  .program-offer-unified .program-offer-art-title{font-size:26px}
  .program-offer-unified .program-offer-value strong{font-size:32px}
}

@media (prefers-reduced-motion:reduce){
  .program-offer-card::before,.program-offer-unified .program-offer-value::after{animation:none!important}
  .program-offer-unified .program-offer-benefits li{transition:none!important}
}

/* Mobile campaign card: brighter, denser and fully actionable in one viewport. */
@media (max-width:620px){
  .program-offer{
    display:grid;
    padding:max(6px,env(safe-area-inset-top)) 8px max(6px,env(safe-area-inset-bottom));
    overflow:hidden;
    background:
      radial-gradient(circle at 12% 7%,rgba(247,135,198,.34),transparent 20rem),
      radial-gradient(circle at 92% 92%,rgba(50,211,221,.3),transparent 22rem),
      linear-gradient(145deg,rgba(61,22,52,.86),rgba(13,68,78,.84));
    backdrop-filter:blur(15px) saturate(1.28);
    place-items:center;
  }
  .program-offer-card{
    width:min(100%,430px);
    max-height:calc(100vh - 12px);
    max-height:calc(100dvh - max(12px,env(safe-area-inset-top) + env(safe-area-inset-bottom)));
    margin:0;
    border-color:rgba(255,236,205,.62);
    border-radius:24px;
    background:
      radial-gradient(circle at 7% 0,rgba(255,255,255,.22),transparent 13rem),
      radial-gradient(circle at 104% 82%,rgba(74,224,229,.3),transparent 18rem),
      linear-gradient(145deg,#71204f 0%,#97306f 48%,#b64086 76%,#277e8d 138%);
    box-shadow:0 24px 62px rgba(21,2,15,.44),0 8px 20px rgba(91,24,67,.28),inset 0 1px rgba(255,255,255,.22);
  }
  .program-offer-card::after{inset:5px;border-color:rgba(255,255,255,.11);border-radius:19px}
  .program-offer-card .program-offer-orb-one{top:-145px;right:-150px;border-color:rgba(255,255,255,.055)}
  .program-offer-card .program-offer-orb-two{bottom:-135px;left:-95px;background:rgba(67,228,231,.18)}
  .program-offer-unified{
    max-height:calc(100vh - 12px);
    max-height:calc(100dvh - max(12px,env(safe-area-inset-top) + env(safe-area-inset-bottom)));
    padding:15px 15px 14px;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-width:none;
  }
  .program-offer-unified::-webkit-scrollbar{display:none}
  .program-offer-header{padding-bottom:10px;border-bottom-color:rgba(255,241,218,.24)}
  .program-offer-unified .program-offer-greeting{
    margin-bottom:4px;
    padding-left:19px;
    color:#fffdf6;
    font-size:15.5px;
    line-height:1.3;
    text-shadow:0 3px 12px rgba(60,6,39,.2);
  }
  .program-offer-unified .program-offer-greeting::before{
    top:.48em;
    width:8px;
    height:8px;
    background:#ffe29c;
    box-shadow:0 0 0 4px rgba(255,226,156,.14),0 0 15px rgba(255,226,156,.5);
  }
  .program-offer-unified .program-offer-intro{color:rgba(255,250,245,.88);font-size:12.25px;line-height:1.43}
  .program-offer-unified .program-offer-topline{margin-top:9px;gap:6px}
  .program-offer-unified .program-offer-label,
  .program-offer-unified .program-offer-date{min-height:27px;padding-top:4px;padding-bottom:4px}
  .program-offer-unified .program-offer-label{padding-right:9px;font-size:9px;box-shadow:0 8px 18px rgba(76,13,54,.18),inset 0 1px #fff}
  .program-offer-unified .program-offer-label i{width:19px;height:19px}
  .program-offer-unified .program-offer-date{padding-right:8px;padding-left:8px;color:#fffdf7;border-color:rgba(255,231,190,.4);background:rgba(255,255,255,.13);font-size:10px}
  .program-offer-unified .program-offer-date svg{width:14px;height:14px}
  .program-offer-main{padding:10px 0}
  .program-offer-unified .program-offer-art-title{margin-bottom:9px;font-size:24px;line-height:1.03;letter-spacing:-.035em}
  .program-offer-unified .program-offer-art-title strong{margin-top:3px;color:#a6f5f2;background:linear-gradient(95deg,#8ff0f1,#d1fff4 55%,#ffe49b);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
  .program-offer-unified .program-offer-value{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:end;
    margin-bottom:8px;
    padding:9px 12px;
    gap:8px;
    border-color:rgba(255,238,203,.9);
    border-radius:14px;
    background:linear-gradient(135deg,#fffdf5,#fff1d9 54%,#ffe9f4);
    box-shadow:0 11px 26px rgba(67,8,46,.22),inset 0 1px #fff;
  }
  .program-offer-unified .program-offer-value span{max-width:14ch;color:#7a2857;font-size:10.25px;line-height:1.22}
  .program-offer-unified .program-offer-value strong{font-size:clamp(29px,8.8vw,35px);line-height:.95;letter-spacing:-.06em}
  .program-offer-unified .program-offer-benefits{gap:4px}
  .program-offer-unified .program-offer-benefits li{
    min-height:38px;
    padding:4px 8px 4px 4px;
    gap:8px;
    color:#fff;
    border-color:rgba(255,238,207,.28);
    border-radius:11px;
    background:linear-gradient(100deg,rgba(255,255,255,.18),rgba(255,255,255,.1));
    box-shadow:0 7px 16px rgba(55,6,39,.14),inset 0 1px rgba(255,255,255,.12);
    font-size:12.15px;
    line-height:1.28;
  }
  .program-offer-unified .program-offer-benefits li>.program-offer-benefit-icon{width:30px;height:30px;border-radius:9px;background:linear-gradient(145deg,#0ab3c1,#087e91 58%,#8e3a78);box-shadow:0 6px 14px rgba(0,58,69,.2),inset 0 1px rgba(255,255,255,.3)}
  .program-offer-unified .program-offer-benefits li>.program-offer-benefit-icon svg{width:17px;height:17px}
  .program-offer-footer{display:block;padding-top:9px;border-top-color:rgba(255,241,218,.22)}
  .program-offer-unified .program-offer-note{
    margin:0 0 7px;
    padding:7px 9px;
    gap:7px;
    color:#fffdf8;
    border-color:rgba(255,238,207,.22);
    border-radius:11px;
    background:linear-gradient(100deg,rgba(255,255,255,.17),rgba(255,255,255,.09));
    font-size:10.75px;
    line-height:1.35;
  }
  .program-offer-note>span:first-child{font-size:13px}
  .program-offer-unified .program-offer-actions{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:7px}
  .program-offer-unified .program-offer-join,
  .program-offer-unified .program-offer-decline{min-height:46px;padding:8px 10px;border-radius:12px;font-size:13px}
  .program-offer-unified .program-offer-join{background:linear-gradient(135deg,#fffef8,#ffe7af 60%,#fff6dc);box-shadow:0 11px 24px rgba(54,5,38,.25),inset 0 1px #fff}
  .program-offer-unified .program-offer-join i{width:22px;height:22px}
  .program-offer-unified .program-offer-decline{color:#fffdf8;border-color:rgba(255,235,199,.34);background:rgba(255,255,255,.13)}
}

@media (max-width:370px),(max-height:700px) and (max-width:620px){
  .program-offer-unified{padding:11px 12px 10px}
  .program-offer-header{padding-bottom:7px}
  .program-offer-unified .program-offer-greeting{font-size:14.5px}
  .program-offer-unified .program-offer-intro{font-size:11.5px;line-height:1.34}
  .program-offer-unified .program-offer-topline{margin-top:7px}
  .program-offer-main{padding:7px 0}
  .program-offer-unified .program-offer-art-title{margin-bottom:7px;font-size:22px}
  .program-offer-unified .program-offer-value{margin-bottom:6px;padding:7px 10px}
  .program-offer-unified .program-offer-value strong{font-size:clamp(27px,8.4vw,32px)}
  .program-offer-unified .program-offer-benefits li{min-height:35px;font-size:11.5px}
  .program-offer-unified .program-offer-benefits li>.program-offer-benefit-icon{width:27px;height:27px}
  .program-offer-footer{padding-top:7px}
  .program-offer-unified .program-offer-note{margin-bottom:6px;padding:6px 8px;font-size:10.25px;line-height:1.28}
  .program-offer-unified .program-offer-join,
  .program-offer-unified .program-offer-decline{min-height:44px;font-size:12.25px}
}
