/* =========================================================================
   Pulse — landing page styles
   Brand: teal #17B2B2 · purple #5D0E8B · blue #3275A3 · accent orange
   ========================================================================= */

:root {
  --font: "Figtree", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;

  --c-bg: #F6FAFA;
  --c-surface: #FFFFFF;
  --c-border: #DCE8E8;
  --c-border-soft: #E9F1F1;
  --c-ink: #27225F;
  --c-text: #4A4B6A;
  --c-muted: #6E7A8C;

  --c-teal: #17B2B2;
  --c-teal-50: #EAF7F7;
  --c-teal-100: #D2EFEF;
  --c-teal-400: #2EBDBC;
  --c-teal-600: #129A99;
  --c-teal-700: #0F7F7E;
  --c-teal-800: #0B6665;

  --c-blue: #3275A3;
  --c-purple: #5D0E8B;
  --c-navy: #2F4C86;

  --c-orange: #F4782C;
  --c-orange-600: #E8641A;
  --c-orange-50: #FFF1E8;
  --c-orange-100: #FFE0CC;

  --c-green: #2FA35A;
  --c-green-600: #278F4F;
  --c-green-50: #EAF7EE;

  --c-red: #D93B3B;

  --grad-teal: linear-gradient(135deg, #22BDBC 0%, #128C8B 100%);
  --grad-teal-soft: linear-gradient(135deg, #EEF8F8 0%, #F7FBFB 100%);
  --grad-orange: linear-gradient(135deg, #FF8C3F 0%, #EF6320 100%);
  --grad-green: linear-gradient(135deg, #3DB86C 0%, #289352 100%);
  --grad-navy: linear-gradient(135deg, #3A76A8 0%, #1F8E8C 100%);
  --grad-brand: linear-gradient(90deg, #5D0E8B 0%, #3275A3 50%, #17B2B2 100%);

  --radius-lg: 22px;
  --radius: 16px;
  --radius-sm: 10px;
  --shadow-sm: 0 1px 2px rgba(20, 40, 60, .04), 0 6px 18px rgba(20, 60, 80, .06);
  --shadow-md: 0 10px 30px rgba(17, 60, 80, .12);
  --shadow-lg: 0 24px 60px rgba(17, 60, 80, .18);
  --container: 1240px;
  --header-h: 84px;
}

/* ---------- Reset / base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.6;
  color: var(--c-text);
  background: var(--c-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
body.pulse-landing {
  background:
    radial-gradient(900px 520px at 6% -4%, rgba(23, 178, 178, .16), transparent 62%),
    radial-gradient(760px 480px at 96% 4%, rgba(244, 120, 44, .11), transparent 60%),
    radial-gradient(900px 700px at 50% 48%, rgba(93, 14, 139, .05), transparent 62%),
    var(--c-bg);
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--c-teal-700); text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--c-teal-800); }
h1, h2, h3, h4 { margin: 0; color: var(--c-ink); font-weight: 700; line-height: 1.2; letter-spacing: -.012em; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; }
button, input, select, textarea { font: inherit; color: inherit; }
svg.icon { width: 1.25em; height: 1.25em; flex: none; }
[hidden] { display: none !important; }
[id] { scroll-margin-top: calc(var(--header-h) + 12px); }
:focus-visible { outline: 3px solid rgba(23, 178, 178, .5); outline-offset: 3px; border-radius: 6px; }

.screen-reader-text {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.skip-link:focus {
  position: fixed; left: 16px; top: 16px; z-index: 1000; width: auto; height: auto; margin: 0; clip: auto;
  padding: 12px 18px; background: var(--c-ink); color: #fff; border-radius: 10px; font-weight: 700;
}

.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 24px; }
.container--narrow { max-width: 880px; }
.section { padding: 12px 0; }
.card {
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
  padding: 40px 44px;
}
.section-title { font-size: clamp(24px, 2.5vw, 30px); text-align: center; margin: 0 0 10px; }
.section-title--left { text-align: left; font-size: clamp(21px, 1.9vw, 25px); margin-bottom: 14px; }
.section-subtitle { text-align: center; color: var(--c-muted); font-size: 16px; max-width: 760px; margin: 0 auto 30px; }
.eyebrow {
  text-align: center; color: var(--c-teal-700); font-weight: 700; font-size: 13px;
  letter-spacing: .14em; text-transform: uppercase; margin: 0 0 10px;
}

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 14px 26px; border-radius: 999px; border: 2px solid transparent;
  font-weight: 700; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; line-height: 1;
  cursor: pointer; white-space: nowrap; font-family: inherit;
  transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease, border-color .2s ease;
}
.btn .icon { width: 18px; height: 18px; }
.btn--primary { background: var(--grad-teal); color: #fff; box-shadow: 0 10px 22px rgba(18, 140, 139, .28); }
.btn--primary:hover, .btn--primary:focus-visible { color: #fff; transform: translateY(-2px); box-shadow: 0 14px 28px rgba(18, 140, 139, .36); }
.btn--accent { background: var(--grad-orange); color: #fff; box-shadow: 0 10px 22px rgba(239, 99, 32, .28); }
.btn--accent:hover, .btn--accent:focus-visible { color: #fff; transform: translateY(-2px); box-shadow: 0 14px 28px rgba(239, 99, 32, .36); }
.btn--outline { background: #fff; color: var(--c-teal-700); border-color: var(--c-teal-600); }
.btn--outline:hover, .btn--outline:focus-visible { background: var(--c-teal-50); color: var(--c-teal-800); transform: translateY(-2px); }
.btn--lg { padding: 17px 34px; font-size: 15px; }
.btn[disabled], .btn.is-loading { opacity: .75; cursor: progress; transform: none !important; }
.btn.is-loading .reg-submit__label::after, .btn.is-loading .enq-submit__label::after {
  content: ""; display: inline-block; width: 14px; height: 14px; margin-left: 10px; vertical-align: -2px;
  border: 2px solid rgba(255, 255, 255, .5); border-top-color: #fff; border-radius: 50%;
  animation: spin .8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* ---------- Header ---------- */
.site-header {
  position: sticky; top: 0; z-index: 60;
  background: rgba(255, 255, 255, .88);
  -webkit-backdrop-filter: saturate(160%) blur(14px);
  backdrop-filter: saturate(160%) blur(14px);
  border-bottom: 1px solid transparent;
  transition: box-shadow .25s ease, border-color .25s ease;
}
.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .site-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .site-header { top: 0; } }
.site-header.is-scrolled { border-bottom-color: var(--c-border); box-shadow: 0 8px 26px rgba(20, 60, 80, .08); }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: var(--header-h); position: relative; }
.brand { display: inline-flex; align-items: center; flex: none; }
.brand img { height: 62px; width: auto; }
.primary-nav { margin-left: auto; }
.primary-nav .menu { display: flex; align-items: center; gap: 4px; list-style: none; }
.primary-nav .menu a {
  display: inline-block; padding: 10px 15px; border-radius: 999px;
  font-weight: 600; font-size: 15px; color: var(--c-ink); transition: color .2s ease, background-color .2s ease;
}
.primary-nav .menu a:hover, .primary-nav .menu a.is-active { color: var(--c-teal-700); background: var(--c-teal-50); }
.primary-nav .menu-item--cta { display: none; }
.primary-nav .menu-item--external a { display: inline-flex; align-items: center; gap: 5px; }
.primary-nav .menu-ext { width: 14px; height: 14px; opacity: .65; }
.header-actions { display: flex; align-items: center; gap: 10px; flex: none; }
.header-cta { padding: 13px 24px; }
.nav-toggle {
  display: none; width: 46px; height: 46px; border-radius: 12px; border: 1px solid var(--c-border);
  background: #fff; color: var(--c-ink); align-items: center; justify-content: center; cursor: pointer;
}
.nav-toggle .icon { width: 24px; height: 24px; }
.nav-toggle .nav-toggle__close { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__open { display: none; }
.nav-toggle[aria-expanded="true"] .nav-toggle__close { display: block; }

/* ---------- Hero ---------- */
.hero { padding: 26px 0 14px; }
.hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.18fr); gap: 40px; align-items: center; }
.badge {
  display: inline-flex; align-items: center; gap: 9px; padding: 8px 16px; border-radius: 999px;
  font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase;
}
.badge--teal { background: var(--grad-teal); color: #fff; box-shadow: 0 8px 18px rgba(18, 140, 139, .25); }
.badge--teal::before {
  content: ""; width: 7px; height: 7px; border-radius: 50%; background: #fff;
  box-shadow: 0 0 0 0 rgba(255, 255, 255, .7); animation: ping 1.8s ease-out infinite;
}
@keyframes ping { 0% { box-shadow: 0 0 0 0 rgba(255, 255, 255, .7); } 100% { box-shadow: 0 0 0 8px rgba(255, 255, 255, 0); } }
.hero__title { font-size: clamp(38px, 4.7vw, 60px); font-weight: 800; line-height: 1.06; letter-spacing: -.025em; margin: 20px 0 16px; }
.hero__title-line { display: block; }
.text-gradient {
  background: linear-gradient(90deg, #1DB3B2 0%, #0F8785 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hero__launch { font-size: 20px; font-weight: 700; color: var(--c-ink); line-height: 1.3; margin: 0 0 14px; }
.hero__date { display: block; font-size: clamp(30px, 3.4vw, 44px); font-weight: 800; color: var(--c-orange); letter-spacing: -.02em; margin-top: 2px; }
.hero__text { font-size: 17px; max-width: 560px; margin: 0 0 22px; }
.promo-pill {
  display: flex; gap: 16px; align-items: center; max-width: 580px; margin: 0 0 26px;
  background: var(--grad-teal-soft); border: 1px solid var(--c-teal-100); border-radius: 18px; padding: 16px 20px;
  box-shadow: 0 6px 18px rgba(18, 140, 139, .08);
}
.promo-pill__icon {
  flex: 0 0 54px; width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center;
  background: var(--grad-teal); color: #fff; box-shadow: 0 8px 18px rgba(18, 140, 139, .28);
}
.promo-pill__icon .icon { width: 26px; height: 26px; }
.promo-pill p { margin: 0; font-weight: 600; color: var(--c-ink); font-size: 16px; line-height: 1.45; }
.promo-pill strong { color: var(--c-orange); font-weight: 800; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 14px; }

.hero__visual { position: relative; }
.hero__media { position: relative; isolation: isolate; }
.hero__glow {
  position: absolute; inset: 6% 4% 4% 4%; z-index: 0; border-radius: 50%;
  background: radial-gradient(closest-side, rgba(23, 178, 178, .22), rgba(23, 178, 178, 0) 72%);
  filter: blur(28px);
}
.hero__img {
  position: relative; z-index: 1; width: 100%; height: auto;
  -webkit-mask-image: radial-gradient(ellipse 74% 70% at 50% 50%, #000 58%, rgba(0, 0, 0, 0) 99%);
  mask-image: radial-gradient(ellipse 74% 70% at 50% 50%, #000 58%, rgba(0, 0, 0, 0) 99%);
}

.countdown { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 14px 18px; margin-top: 4px; }
.countdown__label { font-weight: 700; color: var(--c-ink); font-size: 15px; }
.countdown__units { display: flex; align-items: center; gap: 8px; }
.countdown__unit {
  min-width: 94px; padding: 13px 10px 11px; text-align: center;
  background: #fff; border: 1px solid var(--c-border); border-radius: 16px; box-shadow: var(--shadow-sm);
}
.countdown__num {
  display: block; font-size: 34px; font-weight: 800; color: var(--c-teal-700); line-height: 1;
  letter-spacing: -.02em; font-variant-numeric: tabular-nums;
}
.countdown__lbl { display: block; margin-top: 6px; font-size: 12px; font-weight: 600; color: var(--c-muted); }
.countdown__sep { font-size: 22px; font-weight: 700; color: var(--c-teal-600); }
.countdown.is-live .countdown__num { color: var(--c-orange); }
.countdown.is-live .countdown__label { color: var(--c-orange-600); }

/* ---------- About ---------- */
.about__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; margin-top: 6px; }
.feature { display: flex; gap: 18px; align-items: flex-start; }
.feature__icon {
  flex: 0 0 86px; width: 86px; height: 86px; border-radius: 50%; display: grid; place-items: center;
  background: var(--c-teal-50); color: var(--c-teal-600); box-shadow: inset 0 0 0 1px rgba(23, 178, 178, .12);
}
.feature__icon .icon { width: 38px; height: 38px; }
.feature--orange .feature__icon { background: var(--c-orange-50); color: var(--c-orange); box-shadow: inset 0 0 0 1px rgba(244, 120, 44, .14); }
.feature h3 { font-size: 20px; color: var(--c-teal-700); margin: 6px 0 8px; }
.feature--orange h3 { color: var(--c-orange); }
.feature p { margin: 0; font-size: 15px; line-height: 1.55; }
.about__footer { text-align: center; font-weight: 700; color: var(--c-teal-700); font-size: 17px; margin: 30px 0 0; }

/* ---------- Plans + Benefits ---------- */
.split { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.25fr); gap: 24px; align-items: stretch; }
.split > .card { padding: 34px 32px; }
.plan-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-top: 10px; }
.plan-table { width: 100%; border-collapse: separate; border-spacing: 0; min-width: 400px; table-layout: fixed; }
.plan-table th, .plan-table td { padding: 13px 10px; text-align: center; border-bottom: 1px solid var(--c-border-soft); }
.plan-table tbody th { text-align: left; font-weight: 700; font-size: 13.5px; color: var(--c-ink); background: #FAFCFC; }
.plan-table__corner, .plan-table tbody th { width: 38%; }
.plan-table tbody tr:last-child th, .plan-table tbody tr:last-child td { border-bottom: 0; }
.plan-table__corner { border-bottom: 0 !important; background: transparent; }
.plan-table__head { color: #fff; font-weight: 800; font-size: 14px; letter-spacing: .1em; text-transform: uppercase; padding: 15px 12px; border-bottom: 0 !important; }
.plan-table__head--teal { background: var(--grad-teal); border-radius: 14px 0 0 0; }
.plan-table__head--green { background: var(--grad-green); border-radius: 0 14px 0 0; }
.plan-table td.tone-teal { color: var(--c-teal-700); }
.plan-table td.tone-green { color: var(--c-green-600); }
.plan-table .val { font-weight: 700; font-size: 17px; }
.plan-table .price { font-weight: 800; font-size: 19px; letter-spacing: -.01em; white-space: nowrap; }
.plan-table .price small { font-size: 12px; font-weight: 600; letter-spacing: 0; }
.plan-table .included { display: inline-flex; align-items: center; gap: 7px; font-weight: 700; font-size: 14.5px; white-space: nowrap; }
.plan-table .included .icon { width: 20px; height: 20px; }
.plan-notes {
  display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; padding: 12px 14px;
  background: #F6FAFA; border: 1px solid var(--c-border-soft); border-radius: 12px;
}
.plan-notes p { margin: 0; font-size: 13px; text-align: center; line-height: 1.5; color: var(--c-text); }
.plan-legal { text-align: center; font-size: 12.5px; color: var(--c-muted); margin: 14px 0 0; }

.benefit-grid { list-style: none; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 16px; margin-top: 14px; }
.benefit { gap: 12px; }
.benefit { display: flex; gap: 14px; align-items: flex-start; }
.benefit__icon {
  flex: 0 0 56px; width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center;
  background: var(--c-teal-50); color: var(--c-teal-600);
}
.benefit__icon .icon { width: 26px; height: 26px; }
.benefit--orange .benefit__icon { background: var(--c-orange-50); color: var(--c-orange); }
.benefit h3 { font-size: 14.5px; line-height: 1.3; margin: 2px 0 5px; }
.benefit p { margin: 0; font-size: 13px; line-height: 1.5; color: var(--c-muted); }
.benefits__more { text-align: center; margin: 26px 0 0; font-weight: 700; font-size: 15px; }
.benefits__more a { display: inline-flex; align-items: center; gap: 8px; color: var(--c-teal-700); }
.benefits__more a:hover { color: var(--c-teal-800); gap: 12px; }
.benefits__more .icon { width: 18px; height: 18px; transition: transform .2s ease; }

/* ---------- E-books ---------- */
.ebook-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 26px; max-width: 1080px; margin: 0 auto; }
.ebook { display: flex; flex-direction: column; align-items: center; text-align: center; }
.ebook__card {
  display: flex; flex-direction: column; width: 100%; max-width: 250px; border-radius: 16px; overflow: hidden;
  background: #fff; border: 1px solid var(--c-border); box-shadow: var(--shadow-sm); color: inherit;
  transition: transform .25s ease, box-shadow .25s ease;
}
.ebook__card:hover, .ebook__card:focus-visible { transform: translateY(-6px); box-shadow: var(--shadow-md); }
.ebook__cover { position: relative; aspect-ratio: 4 / 4.6; overflow: hidden; background: #EEF6F6; }
.ebook__cover > img { width: 100%; height: 100%; object-fit: cover; }
.ebook__art { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; padding: 18px 16px 0; }
.ebook--teal .ebook__art { background: linear-gradient(180deg, #F4FBFB 0%, #DDF2F2 100%); color: #17B2B2; }
.ebook--green .ebook__art { background: linear-gradient(180deg, #F5FBF7 0%, #DCF2E3 100%); color: #2FA35A; }
.ebook--orange .ebook__art { background: linear-gradient(180deg, #FFF8F3 0%, #FFE4D2 100%); color: #F4782C; }
.ebook--navy .ebook__art { background: linear-gradient(180deg, #F4F7FB 0%, #DCE6F2 100%); color: #3A76A8; }
.ebook__logo { width: 62%; height: auto; position: relative; z-index: 2; filter: drop-shadow(0 2px 4px rgba(0, 0, 0, .06)); }
.ebook__skyline { position: absolute; left: -6%; right: -6%; bottom: -2px; width: 112%; height: 58%; opacity: .55; z-index: 1; }
.ebook__tag {
  position: absolute; left: 50%; bottom: 12px; transform: translateX(-50%); z-index: 2; white-space: nowrap;
  font-size: 10.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--c-ink);
  background: rgba(255, 255, 255, .85); padding: 5px 10px; border-radius: 999px; backdrop-filter: blur(4px);
}
.ebook__lang { display: block; padding: 12px 10px; color: #fff; font-weight: 800; font-size: 14px; letter-spacing: .06em; text-transform: uppercase; }
.ebook--teal .ebook__lang { background: var(--grad-teal); }
.ebook--green .ebook__lang { background: var(--grad-green); }
.ebook--orange .ebook__lang { background: var(--grad-orange); }
.ebook--navy .ebook__lang { background: var(--grad-navy); }
.ebook__view { display: block; padding: 11px 10px; font-size: 13px; font-weight: 700; letter-spacing: .04em; line-height: 1.3; }
.ebook--teal .ebook__view { color: var(--c-teal-700); }
.ebook--green .ebook__view { color: var(--c-green-600); }
.ebook--orange .ebook__view { color: var(--c-orange-600); }
.ebook--navy .ebook__view { color: var(--c-navy); }
.ebook__download {
  display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; font-weight: 700; font-size: 14px; color: var(--c-teal-700);
  padding: 6px 10px; border-radius: 999px; transition: background-color .2s ease, color .2s ease;
}
.ebook__download:hover { background: var(--c-teal-50); color: var(--c-teal-800); }
.ebook__download .icon { width: 18px; height: 18px; }

/* ---------- Registration ---------- */
.register-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 24px; align-items: stretch; }
.register-intro { max-width: 640px; margin: 0 0 24px; font-size: 15.5px; }
.reg-form { position: relative; }
.hp { position: absolute !important; left: -9999px; top: -9999px; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px 20px; }
.field { display: flex; flex-direction: column; gap: 7px; min-width: 0; margin: 0; padding: 0; border: 0; }
.field--full { grid-column: 1 / -1; }
.field--span2 { grid-column: span 2; }
.field label, .field legend { font-size: 13px; font-weight: 700; color: var(--c-ink); padding: 0; }
.field .opt { font-weight: 600; color: var(--c-muted); }
.req { color: var(--c-red); margin-left: 2px; }
.field input[type="text"], .field input[type="email"], .field input[type="tel"], .field select, .field textarea {
  width: 100%; min-height: 48px; padding: 11px 14px; border: 1px solid #CFDDDD; border-radius: 12px; background: #fff;
  font-size: 15px; color: var(--c-ink); transition: border-color .2s ease, box-shadow .2s ease; appearance: none; -webkit-appearance: none;
}
.field textarea { min-height: 96px; resize: vertical; line-height: 1.5; }
.field input::placeholder, .field textarea::placeholder { color: #98A4B3; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--c-teal); box-shadow: 0 0 0 4px rgba(23, 178, 178, .16); }
.field.has-error input, .field.has-error select, .field.has-error textarea { border-color: var(--c-red); box-shadow: 0 0 0 4px rgba(217, 59, 59, .12); }
.field__error { display: none; margin: 0; font-size: 12.5px; font-weight: 600; color: var(--c-red); }
.field.has-error .field__error, .field__error.is-visible { display: block; }
.select-wrap { position: relative; }
.select-wrap .icon { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; color: var(--c-muted); pointer-events: none; }
.select-wrap select { padding-right: 40px; cursor: pointer; }
.radio-row { display: flex; flex-wrap: wrap; gap: 14px 28px; min-height: 48px; align-items: center; }
.field__help { margin: -2px 0 2px; font-size: 13px; color: var(--c-muted); line-height: 1.5; }
.field--age { padding: 14px 16px 12px; border: 1px solid var(--c-border-soft); border-radius: 12px; background: #FAFCFC; }
.field--age legend { float: left; width: 100%; margin-bottom: 4px; }
.field--age .radio-row { min-height: 0; margin-top: 4px; }
.field--age.has-error { border-color: var(--c-red); background: #FFF7F7; }
.radio { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-weight: 600; color: var(--c-ink); font-size: 15px; }
.radio input { position: absolute; opacity: 0; width: 0; height: 0; }
.radio__dot {
  width: 22px; height: 22px; border-radius: 50%; border: 2px solid #B9CCCC; background: #fff; position: relative; flex: none;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.radio input:checked + .radio__dot { border-color: var(--c-teal-600); }
.radio input:checked + .radio__dot::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; background: var(--c-teal-600); }
.radio input:focus-visible + .radio__dot { box-shadow: 0 0 0 4px rgba(23, 178, 178, .2); }
.consents { margin-top: 22px; display: flex; flex-direction: column; gap: 12px; }
.check { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; font-size: 14px; color: var(--c-ink); line-height: 1.5; }
.check input { position: absolute; opacity: 0; width: 0; height: 0; }
.check__box {
  flex: none; width: 22px; height: 22px; margin-top: 1px; border-radius: 6px; border: 2px solid #B9CCCC; background: #fff; position: relative;
  transition: border-color .2s ease, background-color .2s ease, box-shadow .2s ease;
}
.check input:checked + .check__box { background: var(--c-teal-600); border-color: var(--c-teal-600); }
.check input:checked + .check__box::after {
  content: ""; position: absolute; left: 6px; top: 2px; width: 6px; height: 11px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg);
}
.check input:focus-visible + .check__box { box-shadow: 0 0 0 4px rgba(23, 178, 178, .2); }
.check.has-error .check__box { border-color: var(--c-red); }
.field__error--consent { margin: -6px 0 0 34px; }
.form-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 24px; flex-wrap: wrap; }
.form-message { margin: 0; font-size: 14px; font-weight: 600; color: var(--c-red); min-height: 1em; flex: 1 1 260px; }
.form-message:empty { display: none; }
.reg-submit, .enq-submit { margin-left: auto; }
.form-success {
  text-align: center; padding: 28px 20px 10px; animation: fadeUp .5s ease both;
}
.form-success__icon { width: 80px; height: 80px; margin: 0 auto 18px; border-radius: 50%; background: var(--grad-teal); color: #fff; display: grid; place-items: center; box-shadow: 0 12px 28px rgba(18, 140, 139, .3); }
.form-success__icon .icon { width: 42px; height: 42px; }
.form-success__title { font-size: 24px; margin-bottom: 12px; }
.form-success p { max-width: 560px; margin: 0 auto 10px; font-size: 16px; }
.form-success__offer { color: var(--c-teal-700); font-weight: 600; }

.promo-panel {
  background: linear-gradient(160deg, #EEF7F6 0%, #F7FBFA 100%); border-color: #D9ECEB;
  display: flex; flex-direction: column; align-items: center; text-align: center; justify-content: center; padding: 40px 34px;
}
.promo-panel__icon {
  width: 88px; height: 88px; border-radius: 50%; display: grid; place-items: center; margin-bottom: 18px;
  border: 2px solid var(--c-teal-600); color: var(--c-teal-700); background: #fff; box-shadow: 0 10px 24px rgba(18, 140, 139, .12);
}
.promo-panel__icon .icon { width: 40px; height: 40px; }
.promo-panel__title { font-size: 24px; color: var(--c-teal-800); margin-bottom: 16px; line-height: 1.25; }
.promo-panel__text { font-size: 16px; margin: 0; max-width: 380px; line-height: 1.6; color: var(--c-ink); }
.promo-panel__rule { width: 100%; border: 0; border-top: 1px solid #CFE3E2; margin: 22px 0; }
.promo-panel__note { margin: 0; font-weight: 700; color: var(--c-teal-700); font-size: 15.5px; }

/* ---------- How it works ---------- */
.steps { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin-top: 14px; counter-reset: step; }
.step { position: relative; text-align: center; padding: 0 10px; }
.step__top { display: flex; align-items: center; justify-content: center; gap: 14px; margin-bottom: 12px; position: relative; }
.step__num {
  width: 42px; height: 42px; border-radius: 50%; background: var(--c-teal-700); color: #fff; font-weight: 800; font-size: 17px;
  display: grid; place-items: center; box-shadow: 0 8px 18px rgba(15, 127, 126, .3);
}
.step__icon { width: 64px; height: 64px; display: grid; place-items: center; color: var(--c-teal-600); }
.step__icon .icon { width: 44px; height: 44px; stroke-width: 1.5; }
.step__title { font-size: 16.5px; margin-bottom: 6px; }
.step__text { margin: 0; font-size: 14.5px; color: var(--c-muted); line-height: 1.5; }
.step:not(:last-child)::after {
  content: ""; position: absolute; top: 31px; left: calc(50% + 70px); right: calc(-50% + 70px); height: 0;
  border-top: 2px dotted #BFD9D8;
}

/* ---------- Partners ---------- */
.partners__grid { display: flex; justify-content: center; gap: 28px; flex-wrap: wrap; margin-top: 12px; }
.partner {
  flex: 1 1 300px; max-width: 420px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px;
  padding: 24px; border: 1px solid var(--c-border-soft); border-radius: 16px; background: #FBFDFD;
}
.partner__label { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }
.partner__logo { min-height: 96px; display: grid; place-items: center; }
.partner__logo img { max-height: 84px; width: auto; max-width: 220px; }
.partner--umobile .partner__logo img { max-height: 96px; }
.partner__name { font-size: 30px; font-weight: 800; letter-spacing: -.02em; color: var(--c-ink); }
.partner--umobile .partner__name { color: #F37021; }
.partner--aig .partner__name { color: #0A2A6B; }
.partner__legal { font-size: 14px; font-weight: 600; color: var(--c-text); }
.partners__text { text-align: center; margin: 26px 0 0; font-weight: 700; color: var(--c-teal-700); font-size: 16px; }

/* ---------- FAQ ---------- */
.faq-list { max-width: 880px; margin: 0 auto; display: flex; flex-direction: column; gap: 10px; }
.faq { border: 1px solid var(--c-border); border-radius: 14px; background: #fff; overflow: hidden; transition: box-shadow .2s ease, border-color .2s ease; }
.faq[open] { border-color: var(--c-teal-100); box-shadow: var(--shadow-sm); }
.faq__q {
  list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 16px 20px; font-weight: 700; color: var(--c-ink); font-size: 16px;
}
.faq__q::-webkit-details-marker { display: none; }
.faq__q:hover { color: var(--c-teal-700); }
.faq__chevron { width: 20px; height: 20px; color: var(--c-teal-600); transition: transform .25s ease; }
.faq[open] .faq__chevron { transform: rotate(180deg); }
.faq__num {
  flex: none; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center;
  background: var(--c-teal-50); color: var(--c-teal-700); font-size: 13px; font-weight: 800;
}
.faq__q > span:nth-child(2) { flex: 1; }
.faq__a { padding: 0 20px 18px 62px; font-size: 15px; color: var(--c-text); }
.faq__a p { margin: 0 0 10px; }
.faq__a p:last-child { margin-bottom: 0; }
.faq__a a { font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.faq__list { margin: 0 0 10px; padding-left: 20px; display: flex; flex-direction: column; gap: 4px; }
.faq__list li { padding-left: 2px; }

/* ---------- Contact ---------- */
.contact { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 28px; align-items: center; background: linear-gradient(135deg, #fff 0%, #F4FAFA 100%); }
.contact__icon {
  width: 120px; height: 120px; border-radius: 50%; display: grid; place-items: center; background: var(--grad-teal); color: #fff;
  box-shadow: 0 16px 36px rgba(18, 140, 139, .28);
}
.contact__icon .icon { width: 54px; height: 54px; stroke-width: 1.6; }
.contact__sub { font-size: 17px; color: var(--c-text); margin: 0 0 18px; }
.contact__list { list-style: none; display: flex; flex-wrap: wrap; gap: 14px; }
.contact__chip {
  display: inline-flex; align-items: center; gap: 14px; padding: 10px 20px 10px 10px; border-radius: 999px;
  background: #fff; border: 1px solid var(--c-border); color: var(--c-ink); font-weight: 700; font-size: 15px; box-shadow: var(--shadow-sm);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; line-height: 1.25;
}
a.contact__chip:hover, a.contact__chip:focus-visible { transform: translateY(-2px); border-color: var(--c-teal-100); box-shadow: var(--shadow-md); color: var(--c-teal-800); }
.contact__ico {
  flex: none; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center;
  background: var(--c-teal-50); color: var(--c-teal-600);
}
.contact__ico .icon { width: 22px; height: 22px; }
.contact__txt { display: flex; flex-direction: column; gap: 2px; }
.contact__lbl { font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted); }
/* WhatsApp panel */
.contact__chip--whatsapp {
  background: linear-gradient(135deg, #F1FCF4 0%, #FFFFFF 70%); border-color: #BFEBD0;
  box-shadow: 0 8px 22px rgba(37, 211, 102, .16);
}
.contact__chip--whatsapp .contact__txt { color: #0F8B45; }
.contact__chip--whatsapp .contact__lbl { color: #2E9E5B; }
.contact__ico--wa {
  position: relative; background: linear-gradient(135deg, #34E47A 0%, #1DB954 55%, #128C7E 100%); color: #fff;
  box-shadow: 0 6px 16px rgba(29, 185, 84, .35);
}
.contact__ico--wa .icon { width: 25px; height: 25px; }
.contact__ico--wa::after {
  content: ""; position: absolute; inset: -3px; border-radius: 50%; border: 2px solid rgba(37, 211, 102, .55);
  animation: wa-ping 2.2s ease-out infinite;
}
@keyframes wa-ping { 0% { transform: scale(.9); opacity: .9; } 70% { transform: scale(1.32); opacity: 0; } 100% { transform: scale(1.32); opacity: 0; } }
.contact__hint {
  display: inline-flex; align-items: center; gap: 6px; margin-left: 6px; padding: 7px 12px 7px 14px; border-radius: 999px;
  background: #1DB954; color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .04em; white-space: nowrap;
  transition: background-color .2s ease, gap .2s ease;
}
.contact__hint .icon { width: 15px; height: 15px; }
a.contact__chip--whatsapp:hover { border-color: #8FDFB0; color: #0F8B45; box-shadow: 0 12px 28px rgba(37, 211, 102, .26); }
a.contact__chip--whatsapp:hover .contact__hint { background: #128C7E; gap: 9px; }
span.contact__chip--whatsapp .contact__hint { display: none; }

/* Captcha */
.field--captcha { margin-top: 16px; padding: 14px 16px; border: 1px dashed #B9D6D5; border-radius: 12px; background: #FAFCFC; max-width: 460px; }
.field--captcha label { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 14px; }
.captcha-badge {
  display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px;
  background: var(--c-teal-50); color: var(--c-teal-700); font-size: 10.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
}
.captcha-badge .icon { width: 14px; height: 14px; }
.captcha-input { max-width: 170px; }
.field--captcha.has-error { border-color: var(--c-red); background: #FFF7F7; }
.enq-form .field--captcha { max-width: none; }

/* Success block extras */
.form-success__sign { color: var(--c-teal-700); line-height: 1.5; }
.form-success__sign strong { color: var(--c-teal-800); }
.form-success__btn { margin-top: 14px; }

/* Guide (booklet) pages */
body.pulse-guide-page { background: #EDF4F4; }
.guide { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; }
.guide__bar {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap; padding: 10px 20px;
  background: #fff; border-bottom: 1px solid var(--c-border); position: sticky; top: 0; z-index: 5;
}
.guide__logo { height: 44px; width: auto; }
.guide__name { flex: 1; min-width: 200px; font-weight: 700; color: var(--c-ink); font-size: 15px; }
.guide__tools { display: flex; gap: 10px; }
.guide__btn { padding: 10px 18px; font-size: 12.5px; }
.guide__body { flex: 1; display: flex; min-height: 0; }
.guide__frame { flex: 1; width: 100%; border: 0; background: #fff; min-height: calc(100vh - 72px); }
.guide__soon { margin: auto; max-width: 540px; padding: 60px 24px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.guide__soon .icon { width: 64px; height: 64px; color: var(--c-teal-600); stroke-width: 1.4; }
.guide__soon h1 { font-size: 24px; }
.guide__soon p { margin: 0 0 8px; color: var(--c-text); }
@media (max-width: 640px) {
  .guide__bar { padding: 10px 12px; gap: 10px; }
  .guide__logo { height: 34px; }
  .guide__name { font-size: 12.5px; min-width: 130px; }
  .guide__btn { padding: 9px 12px; font-size: 11.5px; }
}

/* Floating WhatsApp button */
.wa-float {
  position: fixed; right: 22px; bottom: 22px; z-index: 55; display: inline-flex; align-items: center; gap: 10px;
  padding: 8px 8px; border-radius: 999px; background: #fff; border: 1px solid #BFEBD0; color: #0F8B45; font-weight: 700; font-size: 14px;
  box-shadow: 0 14px 34px rgba(18, 60, 40, .22); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease, padding .2s ease;
}
.wa-float:hover, .wa-float:focus-visible { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(18, 60, 40, .28); color: #0F8B45; }
.wa-float__icon {
  position: relative; width: 50px; height: 50px; border-radius: 50%; display: grid; place-items: center; color: #fff;
  background: linear-gradient(135deg, #34E47A 0%, #1DB954 55%, #128C7E 100%); box-shadow: 0 6px 16px rgba(29, 185, 84, .4);
}
.wa-float__icon .icon { width: 28px; height: 28px; }
.wa-float__icon::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid rgba(37, 211, 102, .5); animation: wa-ping 2.2s ease-out infinite; }
.wa-float__label { padding-right: 12px; white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { .contact__ico--wa::after, .wa-float__icon::after { animation: none; display: none; } }
.contact__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 14px 22px; margin-top: 20px; }
.contact__actions .btn { padding: 13px 24px; }
.contact__sign { margin: 0; font-style: italic; font-weight: 600; color: var(--c-teal-700); }

/* ---------- Footer ---------- */
.site-footer { margin-top: 28px; padding: 48px 0 40px; background: #E5F1F0; border-top: 1px solid #D2E5E4; color: var(--c-ink); }
.footer-grid { display: grid; grid-template-columns: 1.3fr .8fr .7fr .9fr 2fr; gap: 32px; align-items: start; }
.footer-brand .footer-logo { height: 74px; width: auto; }
.footer-tagline { margin: 14px 0 10px; font-weight: 700; font-size: 14px; line-height: 1.45; letter-spacing: .02em; color: var(--c-ink); }
.footer-partner-label { margin: 16px 0 3px; font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--c-teal-700); }
.footer-partner-name { margin: 0 0 6px; font-size: 14px; font-weight: 700; color: var(--c-ink); line-height: 1.4; }
.footer-address { font-style: normal; display: flex; flex-direction: column; font-size: 13.5px; line-height: 1.5; color: var(--c-text); }
.footer-copy { margin: 14px 0 0; font-size: 13.5px; color: var(--c-text); }
.footer-heading { font-size: 15px; font-weight: 800; margin: 6px 0 14px; color: var(--c-ink); }
.footer-links { list-style: none; display: flex; flex-direction: column; gap: 9px; }
.footer-links a { color: var(--c-ink); font-size: 15px; font-weight: 500; }
.footer-links a:hover { color: var(--c-teal-700); }
.footer-terms { border-left: 1px solid #C9DEDD; padding-left: 28px; font-size: 12.5px; line-height: 1.6; color: var(--c-text); }
.footer-terms p { margin: 0 0 10px; }
.footer-terms p:last-child { margin: 0; }

/* ---------- Modal (e-book viewer) ---------- */
.modal { position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center; padding: 20px; }
.modal__backdrop { position: absolute; inset: 0; background: rgba(19, 14, 37, .62); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); animation: fadeIn .25s ease both; }
.modal__dialog {
  position: relative; width: min(1100px, 100%); height: min(86vh, 900px); background: #fff; border-radius: 20px; overflow: hidden;
  box-shadow: var(--shadow-lg); display: flex; flex-direction: column; animation: fadeUp .3s ease both;
}
.modal__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 18px 14px 22px; border-bottom: 1px solid var(--c-border); }
.modal__title { font-size: 17px; }
.modal__tools { display: flex; align-items: center; gap: 8px; }
.modal__open { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; padding: 8px 12px; border-radius: 10px; }
.modal__open:hover { background: var(--c-teal-50); }
.modal__open .icon { width: 18px; height: 18px; }
.modal__close { width: 42px; height: 42px; border-radius: 12px; border: 1px solid var(--c-border); background: #fff; cursor: pointer; display: grid; place-items: center; color: var(--c-ink); }
.modal__close:hover { background: var(--c-teal-50); color: var(--c-teal-800); }
.modal__close .icon { width: 22px; height: 22px; }
.modal__body { flex: 1; min-height: 0; position: relative; background: #F3F7F7; }
.modal__frame { width: 100%; height: 100%; border: 0; display: block; background: #fff; }
.modal__empty { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 32px; gap: 14px; }
.modal__empty .icon { width: 64px; height: 64px; color: var(--c-teal-600); stroke-width: 1.4; }
.modal__empty-text { max-width: 520px; font-size: 17px; color: var(--c-ink); font-weight: 600; margin: 0 0 6px; }
body.modal-open { overflow: hidden; }
/* Contact-Us enquiry modal */
.modal__dialog--form { width: min(660px, 100%); height: auto; max-height: min(92vh, 900px); }
.modal__body--form { background: #fff; padding: 8px 28px 28px; overflow-y: auto; }
.enquiry-intro { margin: 14px 0 18px; color: var(--c-muted); font-size: 15px; }
.form-grid--2 { grid-template-columns: 1fr 1fr; }
.form-success--compact { padding: 22px 10px 8px; }
.form-success--compact .form-success__title { font-size: 21px; }
.admin-bar .modal { top: 32px; }
@media (max-width: 782px) { .admin-bar .modal { top: 46px; } }

/* ---------- Inner pages ---------- */
.page-wrap { padding: 40px 0 20px; }
.entry-title { font-size: clamp(28px, 3.4vw, 40px); margin-bottom: 20px; }
.entry-content { font-size: 16.5px; }
.entry-content h2, .entry-content h3 { margin: 1.4em 0 .5em; }
.entry-content a { text-decoration: underline; }

/* ---------- Reveal animations ---------- */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s cubic-bezier(.2, .7, .2, 1), transform .7s cubic-bezier(.2, .7, .2, 1); }
.reveal--delay { transition-delay: .12s; }
.reveal.is-visible, .no-js .reveal { opacity: 1; transform: none; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .badge--teal::before { animation: none; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* =========================================================================
   Responsive
   ========================================================================= */
@media (max-width: 1180px) {
  .hero__actions .btn--lg { padding: 16px 24px; font-size: 14px; }
  .footer-grid { grid-template-columns: 1.2fr .8fr .7fr .9fr; }
  .footer-terms { grid-column: 1 / -1; border-left: 0; padding-left: 0; border-top: 1px solid #C9DEDD; padding-top: 22px; }
}

@media (max-width: 1240px) {
  .primary-nav .menu { gap: 0; }
  .primary-nav .menu a { padding: 10px 11px; font-size: 14.5px; }
}
@media (max-width: 1100px) {
  .primary-nav .menu a { padding: 9px 9px; font-size: 13.5px; }
  .hero__grid { gap: 28px; }
  .about__grid { gap: 22px; }
  .feature__icon { flex-basis: 72px; width: 72px; height: 72px; }
  .feature__icon .icon { width: 32px; height: 32px; }
  .benefit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1023px) {
  :root { --header-h: 74px; }
  .brand img { height: 54px; }
  .nav-toggle { display: inline-flex; }
  .primary-nav {
    position: absolute; top: 100%; left: 0; right: 0; margin: 0; display: none;
    background: #fff; border-bottom: 1px solid var(--c-border); box-shadow: 0 20px 40px rgba(20, 60, 80, .12);
    padding: 10px 24px 22px; max-height: calc(100vh - var(--header-h)); overflow-y: auto;
  }
  .primary-nav.is-open { display: block; animation: fadeIn .2s ease both; }
  .primary-nav .menu { flex-direction: column; align-items: stretch; gap: 2px; }
  .primary-nav .menu a { display: block; padding: 13px 14px; font-size: 16px; border-radius: 12px; }
  .primary-nav .menu-item--cta { display: block; margin-top: 10px; }
  .primary-nav .menu-item--cta a { display: inline-flex; width: 100%; padding: 15px 20px; }
  .primary-nav .menu-item--cta a:hover { color: #fff; background: var(--grad-orange); }
  .hero__grid { grid-template-columns: 1fr; gap: 28px; }
  .hero__content { text-align: center; display: flex; flex-direction: column; align-items: center; }
  .hero__text, .promo-pill { margin-left: auto; margin-right: auto; }
  .promo-pill { text-align: left; }
  .hero__actions { justify-content: center; }
  .hero__visual { max-width: 760px; margin: 0 auto; width: 100%; }
  .split { grid-template-columns: 1fr; }
  .benefit-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .register-grid { grid-template-columns: 1fr; }
  .promo-panel { padding: 32px 28px; }
  .ebook-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 620px; }
  .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 24px; }
  .step:not(:last-child)::after { display: none; }
}

@media (max-width: 820px) {
  .card { padding: 30px 26px; }
  .about__grid { grid-template-columns: 1fr; gap: 24px; }
  .feature { align-items: center; }
  .benefit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .field--span2 { grid-column: 1 / -1; }
  .contact { grid-template-columns: 1fr; text-align: center; justify-items: center; }
  .contact .section-title--left { text-align: center; }
  .contact__list { justify-content: center; }
  .contact__actions { justify-content: center; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  .container { padding: 0 16px; }
  .header-cta { display: none; }
  .brand img { height: 48px; }
  .hero { padding-top: 18px; }
  .hero__title { font-size: clamp(32px, 9vw, 42px); }
  .hero__launch { font-size: 18px; }
  .hero__text { font-size: 16px; }
  .hero__actions { flex-direction: column; width: 100%; }
  .hero__actions .btn { width: 100%; }
  .promo-pill { padding: 14px 16px; gap: 12px; }
  .promo-pill__icon { flex-basis: 46px; width: 46px; height: 46px; }
  .countdown { gap: 10px; }
  .countdown__label { width: 100%; text-align: center; }
  .countdown__unit { min-width: 0; flex: 1 1 0; padding: 11px 6px 9px; }
  .countdown__units { width: 100%; gap: 6px; }
  .countdown__num { font-size: 28px; }
  .countdown__sep { font-size: 18px; }
  .card { padding: 26px 18px; border-radius: 18px; }
  .section-title { font-size: 23px; }
  .benefit-grid { grid-template-columns: 1fr; gap: 18px; }
  .plan-notes { grid-template-columns: 1fr; }
  .plan-table { min-width: 0; }
  .plan-table th, .plan-table td { padding: 11px 8px; }
  .plan-table tbody th { font-size: 13px; width: 40%; }
  .plan-table .price { font-size: 17px; }
  .plan-table .val { font-size: 15px; }
  .plan-table .included { font-size: 13.5px; gap: 6px; }
  .plan-table__head { font-size: 12.5px; letter-spacing: .06em; padding: 13px 8px; }
  .ebook-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .ebook__card { max-width: none; }
  .ebook__lang { font-size: 12px; padding: 10px 6px; }
  .ebook__view { font-size: 12px; }
  .form-grid { grid-template-columns: 1fr; gap: 16px; }
  .radio-row { gap: 12px 22px; }
  .form-footer { flex-direction: column; align-items: stretch; }
  .reg-submit, .enq-submit { width: 100%; margin-left: 0; }
  .promo-panel__title { font-size: 22px; }
  .steps { grid-template-columns: 1fr; }
  .step { display: grid; grid-template-columns: 58px 1fr; column-gap: 14px; text-align: left; padding: 0; }
  .step__top { flex-direction: column; gap: 6px; margin: 0; grid-row: 1 / span 2; }
  .step__icon { width: 48px; height: 48px; }
  .step__icon .icon { width: 34px; height: 34px; }
  .step__num { width: 36px; height: 36px; font-size: 15px; }
  .partner { padding: 20px; }
  .contact__icon { width: 96px; height: 96px; }
  .contact__icon .icon { width: 44px; height: 44px; }
  .contact__list { flex-direction: column; align-items: stretch; }
  .contact__chip { justify-content: flex-start; }
  .contact__chip--whatsapp { flex-wrap: wrap; padding-right: 14px; }
  .contact__hint { margin-left: auto; }
  .wa-float { right: 14px; bottom: 14px; padding: 6px; }
  .wa-float__label { display: none; }
  .wa-float__icon { width: 54px; height: 54px; }
  .faq__a { padding-left: 18px; }
  .faq__q { padding: 14px 16px; gap: 12px; }
  .footer-grid { grid-template-columns: 1fr; gap: 24px; }
  .site-footer { padding: 36px 0 30px; }
  .modal { padding: 0; }
  .modal__dialog { height: 100%; border-radius: 0; }
  .form-grid--2 { grid-template-columns: 1fr; }
  .modal__body--form { padding: 4px 18px 22px; }
}

@media (max-width: 380px) {
  .hero__title { font-size: 30px; }
  .hero__date { font-size: 28px; }
  .countdown__num { font-size: 24px; }
  .ebook-grid { grid-template-columns: 1fr; max-width: 280px; }
}

/* =========================================================================
   Print & PDF snapshot
   ========================================================================= */
@media print {
  *, *::before, *::after { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  html { scroll-behavior: auto; }
  body { background: #F6FAFA !important; }
  .site-header { position: static; background: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: none; border-bottom: 1px solid var(--c-border); }
  .nav-toggle, .wa-float, .modal, .skip-link, #wpadminbar { display: none !important; }
  .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
  .hero, .split, .register-grid, .countdown, .ebook, .step, .faq, .feature, .benefit, .partner, .contact { break-inside: avoid; page-break-inside: avoid; }
  .card:not(.faq-card) { break-inside: avoid; page-break-inside: avoid; }
  .faq-card .section-title, .faq-card .section-subtitle { break-after: avoid; }
  .section { padding: 10px 0; }
  .card { box-shadow: none; }
  .faq__chevron { display: none; }
  .btn { box-shadow: none !important; }
  .text-gradient { background: none; color: var(--c-teal-600); -webkit-text-fill-color: currentColor; }
  a { text-decoration: none; }
}
/* Snapshot mode (?pulse_pdf=1) — desktop layout on a custom page size, everything expanded */
body.pulse-pdf { background: #F6FAFA; }
body.pulse-pdf .site-header { position: static; }
body.pulse-pdf .wa-float, body.pulse-pdf .modal, body.pulse-pdf .nav-toggle, body.pulse-pdf .skip-link { display: none !important; }
body.pulse-pdf .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
body.pulse-pdf .badge--teal::before { animation: none; }
body.pulse-pdf .contact__ico--wa::after { display: none; }
body.pulse-pdf .faq__chevron { display: none; }
body.pulse-pdf .text-gradient { background: none; color: var(--c-teal-600); -webkit-text-fill-color: currentColor; }
body.pulse-pdf .hero { padding-top: 24px; }
body.pulse-pdf .site-footer { margin-top: 18px; }
