/* public/assets/css/portal.css */
:root {
  --portal-bg: #eff7f4;
  --portal-bg-soft: #e6f2ee;
  --portal-surface: rgba(255,255,255,.92);
  --portal-text: #102f2d;
  --portal-muted: #5f7773;
  --portal-line: rgba(16, 47, 45, .08);
  --portal-teal: #167f75;
  --portal-teal-2: #1d9a8c;
  --portal-green: #35b46a;
  --portal-green-2: #4fca7f;
  --portal-dark: #0f3d39;
  --portal-accent: #f6cd48;
  --portal-accent-2: #ffe487;
  --portal-shadow: 0 24px 70px rgba(22, 127, 117, .14);
  --portal-shadow-soft: 0 18px 44px rgba(14, 63, 57, .08);
  --portal-radius: 28px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.portal-body {
  margin: 0;
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: linear-gradient(180deg, #f5fbf8 0%, var(--portal-bg) 30%, #edf7f3 100%);
  color: var(--portal-text);
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.portal-container { width: min(1180px, calc(100% - 32px)); margin: 0 auto; }
.portal-main { overflow: clip; }

.portal-header {
  position: sticky; top: 0; z-index: 40;
  background: rgba(247, 251, 249, .78);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid transparent;
  transition: .22s ease;
}
.portal-header.is-scrolled { border-bottom-color: var(--portal-line); box-shadow: 0 10px 30px rgba(16,47,45,.05); }
.portal-header__inner {
  min-height: 88px;
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
}
.portal-brand { display: inline-flex; align-items: center; gap: 14px; }
.portal-brand__mark {
  width: 54px; height: 54px; border-radius: 18px; display: grid; place-items: center;
  background: linear-gradient(135deg, var(--portal-teal), var(--portal-green));
  color: #fff; font-size: 1.7rem; font-weight: 900; box-shadow: 0 18px 30px rgba(22,127,117,.2);
}
.portal-brand strong { display: block; font-size: 1.85rem; line-height: 1; letter-spacing: -.03em; }
.portal-brand small { display: block; color: var(--portal-muted); font-size: .94rem; margin-top: 4px; }
.portal-nav { display: flex; align-items: center; gap: 28px; }
.portal-nav a { font-weight: 700; color: rgba(16,47,45,.72); position: relative; }
.portal-nav a.is-active, .portal-nav a:hover { color: var(--portal-text); }
.portal-nav a.is-active::after {
  content: ''; position: absolute; left: 0; right: 0; bottom: -10px; height: 3px; border-radius: 999px;
  background: linear-gradient(90deg, var(--portal-teal), var(--portal-green));
}
.portal-header__actions { display: flex; align-items: center; gap: 12px; }
.portal-btn {
  min-height: 48px; padding: 0 22px; border-radius: 18px; display: inline-flex; align-items: center; justify-content: center;
  gap: 8px; border: 1px solid transparent; font-weight: 800; transition: .2s ease; white-space: nowrap;
}
.portal-btn:hover { transform: translateY(-1px); }
.portal-btn--lg { min-height: 56px; padding: 0 28px; border-radius: 20px; }
.portal-btn--primary { background: linear-gradient(135deg, var(--portal-teal), var(--portal-green)); color: #fff; box-shadow: 0 18px 34px rgba(27, 146, 110, .18); }
.portal-btn--ghost { background: rgba(255,255,255,.84); border-color: var(--portal-line); color: var(--portal-text); }
.portal-btn--soft { background: rgba(214,235,230,.9); border-color: rgba(22,127,117,.12); color: var(--portal-teal); }
.portal-btn--accent { background: linear-gradient(135deg, var(--portal-accent), #f8b91e); color: #102f2d; box-shadow: 0 18px 30px rgba(246,205,72,.22); }
.portal-btn--light { background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.18); color: #fff; }
.portal-btn--light-outline { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.22); color: #fff; }
.portal-menu-toggle {
  width: 48px; height: 48px; border: 1px solid var(--portal-line); border-radius: 16px; background: #fff; color: var(--portal-text);
}
.portal-mobile-menu {
  padding: 0 16px 18px; display: grid; gap: 12px; background: rgba(247,251,249,.98); border-bottom: 1px solid var(--portal-line);
}
.portal-mobile-menu a { padding: 10px 2px; font-weight: 700; }
.portal-mobile-menu__buttons { display: grid; gap: 10px; margin-top: 8px; }

.portal-hero { padding: 36px 0 22px; }
.portal-hero__grid {
  display: grid; grid-template-columns: minmax(0, .92fr) minmax(420px, .88fr); gap: 34px; align-items: center;
}
.portal-hero__content {
  position: relative; padding: 24px 8px 18px 8px;
}
.portal-hero__content::before {
  content: ''; position: absolute; inset: -32px -32px auto auto; width: 420px; height: 420px;
  background: radial-gradient(circle, rgba(32,174,148,.12), rgba(32,174,148,0) 70%); z-index: -1; filter: blur(6px);
}
.portal-hero__content h1 { margin: 18px 0 14px; font-size: clamp(2.6rem, 5.2vw, 4.9rem); line-height: .96; font-weight: 900; letter-spacing: -.065em; max-width: 8.2ch; }
.portal-hero__content p { max-width: 56ch; margin: 0; color: var(--portal-muted); font-size: 1.05rem; line-height: 1.82; }
.portal-hero__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 24px; }
.portal-hero__trust { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 18px; }
.portal-hero__trust span {
  display: inline-flex; align-items: center; gap: 8px; min-height: 38px; padding: 0 15px; border-radius: 999px;
  background: rgba(255,255,255,.74); border: 1px solid rgba(17,45,43,.06); color: var(--portal-text); font-size: .9rem; font-weight: 800;
  box-shadow: 0 12px 24px rgba(17,45,43,.05);
}
.portal-hero__stats { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; margin-top: 26px; }
.portal-hero__stats--compact { grid-template-columns: repeat(3, minmax(0,1fr)); max-width: 660px; }
.portal-hero__stats article {
  padding: 18px 18px; border-radius: 22px; background: rgba(255,255,255,.78); border: 1px solid rgba(17,45,43,.06); box-shadow: 0 18px 45px rgba(17,45,43,.06);
}
.portal-hero__stats strong { display: block; font-size: clamp(1.2rem, 2.6vw, 1.7rem); font-weight: 900; letter-spacing: -.04em; }
.portal-hero__stats span { display: block; margin-top: 6px; color: var(--portal-muted); font-size: .9rem; }

.portal-campaign {
  position: relative; min-height: 570px; border-radius: 34px; overflow: hidden; box-shadow: 0 32px 80px rgba(14, 58, 56, .16);
  border: 1px solid rgba(17,45,43,.06); background: #0f3d39;
}
.portal-campaign--media::before,
.portal-campaign--media::after { display:none; }
.portal-campaign__slide { display: none; position: relative; z-index: 1; min-height: 408px; }
.portal-campaign__slide.is-active { display: flex; flex-direction: column; }
.portal-campaign__slide--media {
  min-height: 570px; background-size: cover; background-position: center center; isolation: isolate; justify-content: flex-end;
}
.portal-campaign__overlay {
  position:absolute; inset:0; background: linear-gradient(180deg, rgba(7,29,27,.16) 0%, rgba(7,29,27,.24) 28%, rgba(7,29,27,.82) 100%); z-index:0;
}
.portal-campaign__content { position:relative; z-index:1; padding: 28px 28px 84px; color:#fff; max-width: 76%; }
.portal-campaign__badge-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.portal-campaign__eyebrow,
.portal-campaign__badge,
.portal-campaign__pills span {
  display: inline-flex; align-items: center; min-height: 34px; padding: 0 14px; border-radius: 999px; color: #fff; font-weight: 900;
}
.portal-campaign__eyebrow { background: rgba(255,255,255,.16); text-transform: uppercase; letter-spacing: .13em; font-size: .74rem; backdrop-filter: blur(10px); }
.portal-campaign__badge { background: rgba(255,255,255,.14); font-size: .84rem; }
.portal-campaign h2 { margin: 16px 0 10px; font-size: clamp(2rem, 4vw, 3.2rem); line-height: .96; letter-spacing: -.05em; font-weight: 900; max-width: 10ch; }
.portal-campaign p { max-width: 44ch; margin: 0; line-height: 1.75; color: rgba(255,255,255,.94); font-size: 1rem; }
.portal-campaign__pills { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.portal-campaign__pills span { background: rgba(255,255,255,.12); font-size: .84rem; }
.portal-campaign__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.portal-campaign__nav {
  position: absolute; left: 24px; right: 24px; bottom: 22px; z-index: 3; display: flex; align-items: center; justify-content: space-between;
}
.portal-campaign__nav button {
  width: 42px; height: 42px; border-radius: 999px; border: 0; background: rgba(255,255,255,.18); color: #fff; backdrop-filter: blur(10px);
}
.portal-campaign__dots { display: flex; align-items: center; gap: 8px; }
.portal-campaign__dots button { width: 10px; height: 10px; border-radius: 999px; border: 0; padding: 0; background: rgba(255,255,255,.38); }
.portal-campaign__dots button.is-active { width: 28px; background: #fff; }

.portal-section { padding: 56px 0; }
.portal-section--compact { padding: 42px 0; }
.portal-section--soft { background: rgba(220, 239, 234, .34); }
.portal-section-heading { margin-bottom: 26px; }
.portal-section-heading--center { text-align: center; max-width: 780px; margin-inline: auto; }
.portal-section-heading h2 { margin: 14px 0 10px; font-size: clamp(2.1rem, 4vw, 3.9rem); line-height: .96; font-weight: 900; letter-spacing: -.06em; max-width: 12ch; }
.portal-section-heading--center h2 { max-width: none; }
.portal-section-heading p { margin: 0; color: var(--portal-muted); font-size: 1.04rem; line-height: 1.8; max-width: 62ch; }
.portal-journey-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; }
.portal-step-card,
.portal-feature-band__card,
.portal-access-card,
.portal-faq__item,
.portal-round-card,
.portal-empty-state {
  background: rgba(255,255,255,.88); border: 1px solid rgba(17,45,43,.07); border-radius: 28px; box-shadow: var(--portal-shadow-soft);
}
.portal-step-card { padding: 24px; }
.portal-step-card__number {
  width: 52px; height: 52px; border-radius: 18px; display: grid; place-items: center; background: rgba(22,127,117,.12);
  color: var(--portal-teal); font-weight: 900; font-size: 1.08rem;
}
.portal-step-card h3 { margin: 18px 0 10px; font-size: 1.55rem; font-weight: 900; letter-spacing: -.03em; }
.portal-step-card p { margin: 0; color: var(--portal-muted); line-height: 1.8; }

.portal-feature-band { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.portal-feature-band__card { display: flex; gap: 16px; align-items: flex-start; padding: 22px; }
.portal-feature-band__card i {
  width: 54px; height: 54px; border-radius: 18px; display: grid; place-items: center; flex: none; background: rgba(22,127,117,.12); color: var(--portal-teal); font-size: 1.35rem;
}
.portal-feature-band__card strong { display: block; font-size: 1.28rem; font-weight: 900; letter-spacing: -.03em; }
.portal-feature-band__card p { margin: 8px 0 0; color: var(--portal-muted); line-height: 1.75; }

.portal-rounds-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.portal-round-card { padding: 22px; }
.portal-round-card__top { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.portal-round-card__status {
  display: inline-flex; align-items: center; min-height: 34px; padding: 0 12px; border-radius: 999px; background: rgba(53,180,106,.12);
  color: #1b8857; font-size: .78rem; font-weight: 900; text-transform: uppercase; letter-spacing: .13em;
}
.portal-round-card h3 { margin: 14px 0 4px; font-size: 1.9rem; line-height: 1; font-weight: 900; letter-spacing: -.05em; }
.portal-round-card__top p { margin: 0; color: var(--portal-muted); }
.portal-round-card__ring {
  --pct: 0%; width: 84px; height: 84px; border-radius: 50%; position: relative; flex: none;
  background: conic-gradient(var(--portal-teal) var(--pct), rgba(22,127,117,.10) 0);
}
.portal-round-card__ring::before {
  content: ''; position: absolute; inset: 8px; border-radius: inherit; background: #f9fcfb; border: 1px solid rgba(17,45,43,.05);
}
.portal-round-card__ring span { position: absolute; inset: 0; display: grid; place-items: center; font-weight: 900; z-index: 1; }
.portal-round-card__grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; margin-top: 18px; }
.portal-round-card__grid div { padding: 15px 16px; border-radius: 20px; background: rgba(228, 239, 236, .66); }
.portal-round-card__grid small { display: block; text-transform: uppercase; letter-spacing: .12em; font-size: .72rem; color: var(--portal-muted); }
.portal-round-card__grid strong { display: block; margin-top: 8px; font-size: 1.22rem; letter-spacing: -.03em; }
.portal-progress { width: 100%; height: 10px; border-radius: 999px; overflow: hidden; background: rgba(17,45,43,.08); margin-top: 16px; }
.portal-progress > span { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, var(--portal-teal), var(--portal-green)); }
.portal-round-card__footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; color: var(--portal-muted); }
.portal-round-card__footer a { color: var(--portal-teal); font-weight: 900; display: inline-flex; align-items: center; gap: 8px; }
.portal-empty-state { padding: 42px; text-align: center; grid-column: 1 / -1; }
.portal-empty-state i { font-size: 2rem; color: var(--portal-teal); }
.portal-empty-state h3 { margin: 14px 0 8px; font-weight: 900; }
.portal-empty-state p { margin: 0; color: var(--portal-muted); }

.portal-access-grid { display: grid; grid-template-columns: 1.2fr .8fr .8fr; gap: 18px; }
.portal-access-card { padding: 24px; }
.portal-access-card--main {
  background: linear-gradient(145deg, rgba(255,255,255,.94), rgba(231, 245, 240, .9));
}
.portal-access-card small { display: inline-block; color: var(--portal-teal); text-transform: uppercase; letter-spacing: .13em; font-weight: 900; }
.portal-access-card h2 { margin: 14px 0 10px; font-size: clamp(2rem, 3.5vw, 3.2rem); line-height: .98; letter-spacing: -.05em; font-weight: 900; max-width: 11ch; }
.portal-access-card p { margin: 0; color: var(--portal-muted); line-height: 1.8; }
.portal-access-card strong { display: block; margin-top: 10px; font-size: 1.5rem; font-weight: 900; line-height: 1.05; letter-spacing: -.03em; }
.portal-access-card__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }

.portal-faq { max-width: 840px; margin: 0 auto; display: grid; gap: 14px; }
.portal-faq__item { overflow: hidden; }
.portal-faq__question {
  width: 100%; border: 0; background: none; padding: 22px 24px; display: flex; align-items: center; justify-content: space-between; gap: 20px;
  text-align: left; font-weight: 900; font-size: 1.15rem; color: var(--portal-text);
}
.portal-faq__question i { color: var(--portal-teal); transition: .2s ease; }
.portal-faq__answer { display: grid; grid-template-rows: 0fr; transition: .22s ease; }
.portal-faq__answer p { overflow: hidden; margin: 0; padding: 0 24px 0; color: var(--portal-muted); line-height: 1.8; }
.portal-faq__item.is-open .portal-faq__answer { grid-template-rows: 1fr; }
.portal-faq__item.is-open .portal-faq__answer p { padding-bottom: 24px; }
.portal-faq__item.is-open .portal-faq__question i { transform: rotate(45deg); }

.portal-cta-final {
  padding: 58px 0; background: linear-gradient(135deg, #0f5b54, #14907f 52%, #3ab968); color: #fff;
}
.portal-cta-final__inner {
  display: grid; grid-template-columns: 1.15fr .85fr; gap: 26px; align-items: center;
}
.portal-cta-final h2 { margin: 14px 0 10px; font-size: clamp(2.2rem, 4vw, 4rem); line-height: .95; font-weight: 900; letter-spacing: -.06em; max-width: 10.8ch; }
.portal-cta-final p { margin: 0; max-width: 58ch; color: rgba(255,255,255,.92); line-height: 1.8; }
.portal-cta-final__actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 12px; }

.portal-footer { padding: 28px 0 42px; background: #082724; color: rgba(255,255,255,.88); }
.portal-footer__grid { display: grid; grid-template-columns: 1.2fr .6fr .6fr; gap: 22px; align-items: start; }
.portal-brand--footer .portal-brand__mark { box-shadow: none; }
.portal-footer p { margin: 16px 0 0; color: rgba(255,255,255,.7); line-height: 1.75; max-width: 48ch; }
.portal-footer h3 { margin: 6px 0 14px; font-size: 1rem; color: #fff; }
.portal-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.portal-footer a { color: rgba(255,255,255,.74); }
.portal-footer a:hover { color: #fff; }

@media (max-width: 1199.98px) {
  .portal-hero__grid,
  .portal-access-grid,
  .portal-cta-final__inner { grid-template-columns: 1fr; }
  .portal-hero__content h1,
  .portal-access-card h2,
  .portal-cta-final h2 { max-width: none; }
  .portal-campaign { min-height: 460px; }
}
@media (max-width: 991.98px) {
  .portal-brand strong { font-size: 1.55rem; }
  .portal-hero { padding-top: 20px; }
  .portal-hero__stats,
  .portal-journey-grid,
  .portal-feature-band,
  .portal-rounds-grid,
  .portal-footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 767.98px) {
  .portal-container { width: min(100% - 20px, 100%); }
  .portal-header__inner { min-height: 76px; }
  .portal-header__actions .portal-btn { display: none; }
  .portal-hero__content h1 { font-size: clamp(2.45rem, 12vw, 4rem); }
  .portal-hero__stats,
  .portal-journey-grid,
  .portal-feature-band,
  .portal-rounds-grid,
  .portal-footer__grid { grid-template-columns: 1fr; }
  .portal-feature-band__card { padding: 18px; }
  .portal-round-card__top { flex-direction: column; }
  .portal-round-card__ring { width: 72px; height: 72px; }
  .portal-campaign { min-height: 490px; padding: 22px; }
  .portal-campaign__badge-row { flex-direction: column; align-items: flex-start; }
  .portal-campaign h2 { font-size: clamp(1.95rem, 9vw, 3rem); max-width: 10ch; }
  .portal-campaign__actions,
  .portal-hero__actions,
  .portal-access-card__actions,
  .portal-cta-final__actions { display: grid; grid-template-columns: 1fr; }
  .portal-campaign__nav { left: 22px; right: 22px; }
  .portal-section-heading h2 { font-size: clamp(1.9rem, 10vw, 3rem); }
  .portal-step-card h3,
  .portal-access-card strong,
  .portal-round-card h3 { font-size: 1.45rem; }
}


/* v0.9.46 premium portal refino */
.portal-header__inner{min-height:88px}
.portal-header{backdrop-filter: blur(18px); background: rgba(249,253,252,.82);}
.portal-main{overflow:hidden}
.portal-hero{padding:46px 0 28px;background:
 radial-gradient(circle at 18% 18%, rgba(32,161,146,.12), transparent 32%),
 radial-gradient(circle at 82% 14%, rgba(53,180,106,.10), transparent 24%),
 linear-gradient(180deg, #f8fcfb 0%, #eef7f4 100%);}
.portal-hero__grid{align-items:center;grid-template-columns:minmax(0,1fr) minmax(390px,.9fr);gap:42px}
.portal-hero__content{max-width:690px}
.portal-eyebrow{box-shadow:0 16px 36px rgba(13,75,69,.06);border:1px solid rgba(22,127,117,.08)}
.portal-hero__content h1{max-width:9.2ch;font-size:clamp(2.7rem,4.9vw,4.6rem);line-height:.96;letter-spacing:-.06em;text-wrap:balance}
.portal-hero__content p{max-width:54ch;font-size:1rem;line-height:1.82;color:#5f7571}
.portal-hero__microcards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0 6px;max-width:500px}
.portal-hero__microcards article{padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.78);border:1px solid rgba(22,127,117,.08);box-shadow:0 16px 34px rgba(14,73,67,.05)}
.portal-hero__microcards small{display:block;margin-bottom:5px;color:var(--portal-muted);text-transform:uppercase;letter-spacing:.12em;font-weight:800;font-size:.72rem}
.portal-hero__microcards strong{font-size:1rem;font-weight:900;letter-spacing:-.02em;color:var(--portal-text)}
.portal-hero__actions{margin-top:24px}
.portal-hero__trust{margin-top:20px}
.portal-hero__stats{margin-top:24px;grid-template-columns:repeat(4,minmax(0,1fr));max-width:760px}
.portal-hero__stats article{background:rgba(255,255,255,.72);border:1px solid rgba(22,127,117,.07);box-shadow:0 18px 36px rgba(13,75,69,.05)}
.portal-campaign{min-height:470px;padding:24px;background:
 radial-gradient(circle at 86% 12%, rgba(255,255,255,.11), transparent 16%),
 linear-gradient(145deg, #13655d 0%, #19897d 46%, #38b36d 100%);box-shadow:0 30px 70px rgba(10,62,57,.16)}
.portal-campaign__slide{justify-content:space-between}
.portal-campaign h2{max-width:10ch;font-size:clamp(2rem,3.6vw,3.45rem);line-height:.96;letter-spacing:-.05em;text-wrap:balance}
.portal-campaign p{max-width:42ch;color:rgba(255,255,255,.9);font-size:.98rem;line-height:1.78}
.portal-campaign__pills{gap:10px}
.portal-campaign__pills span{background:rgba(255,255,255,.12);backdrop-filter: blur(10px);border-color:rgba(255,255,255,.08)}
.portal-section{padding:66px 0}
.portal-section--compact{padding:50px 0}
.portal-section-heading{max-width:760px;margin-bottom:28px}
.portal-section-heading h2{max-width:12ch;font-size:clamp(2.3rem,4.2vw,4rem);line-height:.96;letter-spacing:-.065em;text-wrap:balance}
.portal-section-heading p{max-width:56ch;line-height:1.85}
.portal-journey-grid{gap:18px}
.portal-step-card,.portal-feature-band__card,.portal-round-card,.portal-access-card,.portal-faq__item{border:1px solid rgba(22,127,117,.07);box-shadow:0 18px 38px rgba(10,60,55,.05)}
.portal-step-card{padding:28px}
.portal-step-card h3{font-size:1.36rem;line-height:1.12}
.portal-feature-band{gap:18px}
.portal-round-card{padding:22px}
.portal-round-card h3{font-size:1.8rem;line-height:1.05;letter-spacing:-.04em}
.portal-round-card__grid{gap:10px}
.portal-round-card__grid>div{border-radius:18px}
.portal-access-grid{grid-template-columns:1.12fr .88fr .88fr}
.portal-access-card{padding:28px}
.portal-access-card h2{max-width:12ch;font-size:clamp(1.9rem,3vw,2.9rem);line-height:.98;letter-spacing:-.055em}
.portal-faq{max-width:920px}
.portal-faq__question{padding:24px 26px;font-size:1.08rem}
.portal-cta-final{padding:74px 0}
.portal-cta-final h2{max-width:12ch;font-size:clamp(2.3rem,4.2vw,4.2rem);line-height:.94}
@media (max-width:1199.98px){.portal-hero__grid{grid-template-columns:1fr}.portal-hero__content h1,.portal-section-heading h2,.portal-cta-final h2{max-width:none}.portal-hero__stats{max-width:none}.portal-campaign h2{max-width:10ch}}
@media (max-width:767.98px){.portal-hero{padding-top:22px}.portal-hero__content h1{font-size:clamp(2.4rem,11vw,3.55rem);line-height:.98}.portal-hero__microcards{grid-template-columns:1fr}.portal-hero__stats{grid-template-columns:1fr 1fr}.portal-campaign{min-height:420px;padding:22px}.portal-campaign h2{font-size:clamp(1.8rem,8.8vw,2.6rem);line-height:1}.portal-section{padding:52px 0}.portal-section-heading h2{font-size:clamp(2rem,10vw,3rem)}}


@media (max-width: 1199.98px) {
  .portal-hero__grid { grid-template-columns: 1fr; }
  .portal-campaign, .portal-campaign__slide--media { min-height: 500px; }
  .portal-campaign__content { max-width: 82%; }
}
@media (max-width: 767.98px) {
  .portal-hero { padding: 18px 0 10px; }
  .portal-hero__content h1 { font-size: clamp(2.35rem, 12vw, 3.4rem); max-width: 7.4ch; }
  .portal-hero__stats--compact { grid-template-columns: 1fr; }
  .portal-campaign, .portal-campaign__slide--media { min-height: 430px; border-radius: 26px; }
  .portal-campaign__content { padding: 22px 20px 76px; max-width: 100%; }
  .portal-campaign h2 { font-size: clamp(1.7rem, 8vw, 2.3rem); max-width: 11ch; }
  .portal-campaign p { font-size: .95rem; }
  .portal-campaign__nav { left: 18px; right: 18px; bottom: 18px; }
}


/* v0.9.49A widescreen hero */
.portal-hero--wide{padding:24px 0 14px}
.portal-hero--wide .portal-container{display:grid;gap:16px}
.portal-campaign--hero{
  height:clamp(320px,34vw,420px);
  min-height:0;
  border-radius:34px;
  overflow:hidden;
}
.portal-campaign--hero .portal-campaign__slide--media{
  min-height:0;
  height:clamp(320px,34vw,420px);
  background-position:center center;
}
.portal-campaign__overlay--hero{background:linear-gradient(90deg, rgba(7,29,27,.78) 0%, rgba(7,29,27,.52) 32%, rgba(7,29,27,.16) 68%, rgba(7,29,27,.04) 100%)}
.portal-campaign__content--hero{max-width:440px;padding:30px 34px 72px}
.portal-campaign__content--hero h1{margin:14px 0 10px;font-size:clamp(2rem,3.4vw,3.35rem);line-height:.95;letter-spacing:-.055em;font-weight:900;max-width:8.6ch;text-wrap:balance}
.portal-campaign__content--hero p{max-width:42ch;font-size:.98rem;line-height:1.68;color:rgba(255,255,255,.92)}
.portal-campaign__chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.portal-campaign__chips span{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(8px);font-size:.8rem;font-weight:800;color:#fff}
.portal-campaign__actions{margin-top:18px}
.portal-campaign__nav--overlay{left:18px;right:18px;bottom:16px}
.portal-hero__stats--under-carousel{grid-template-columns:repeat(3,minmax(0,1fr));max-width:none;margin-top:0}
.portal-hero__stats--under-carousel article{background:rgba(255,255,255,.86)}
@media (max-width:991.98px){
  .portal-campaign--hero,.portal-campaign--hero .portal-campaign__slide--media{height:clamp(300px,42vw,390px)}
  .portal-campaign__content--hero{max-width:390px;padding:24px 24px 70px}
  .portal-campaign__content--hero h1{font-size:clamp(1.85rem,4.6vw,2.9rem);max-width:8.8ch}
}
@media (max-width:767.98px){
  .portal-hero--wide{padding-top:18px}
  .portal-campaign--hero,.portal-campaign--hero .portal-campaign__slide--media{height:auto;min-height:420px}
  .portal-campaign__overlay--hero{background:linear-gradient(180deg, rgba(7,29,27,.22) 0%, rgba(7,29,27,.68) 56%, rgba(7,29,27,.90) 100%)}
  .portal-campaign__content--hero{max-width:none;padding:22px 20px 82px}
  .portal-campaign__content--hero h1{font-size:clamp(1.95rem,10vw,2.8rem);line-height:.96;max-width:8.8ch}
  .portal-campaign__content--hero p{font-size:.95rem;line-height:1.62}
  .portal-campaign__chips{gap:8px}
  .portal-hero__stats--under-carousel{grid-template-columns:1fr 1fr}
}


/* v0.9.49C motion + heading polish */
.portal-section-title--single-line{max-width:none!important;white-space:nowrap;font-size:clamp(1.6rem,2.2vw,2.5rem)!important;line-height:1.04!important;letter-spacing:-.045em!important;text-wrap:nowrap}
.portal-cta-final .portal-section-title--single-line{font-size:clamp(1.75rem,2.3vw,2.7rem)!important}
.portal-card-reveal,[data-portal-reveal]{opacity:0;transform:translate3d(0,18px,0) scale(.992);filter:blur(1.5px);transition:opacity .55s ease,transform .55s cubic-bezier(.22,1,.36,1),filter .55s ease;will-change:transform,opacity}
[data-portal-reveal].is-visible{opacity:1;transform:translate3d(0,0,0) scale(1);filter:blur(0)}
.portal-step-card.is-visible,.portal-feature-band__card.is-visible,.portal-round-card.is-visible,.portal-access-card.is-visible,.portal-faq__item.is-visible,.portal-cta-final.is-visible,.portal-hero__stats article.is-visible{box-shadow:0 22px 46px rgba(10,60,55,.08)}
.portal-step-card,.portal-feature-band__card,.portal-round-card,.portal-access-card,.portal-faq__item,.portal-hero__stats article,.portal-cta-final{transition:box-shadow .35s ease,border-color .35s ease,transform .35s ease}
.portal-step-card:hover,.portal-feature-band__card:hover,.portal-round-card:hover,.portal-access-card:hover,.portal-faq__item:hover{transform:translateY(-3px);box-shadow:0 24px 52px rgba(10,60,55,.09);border-color:rgba(22,127,117,.14)}
@media (prefers-reduced-motion: reduce){[data-portal-reveal]{opacity:1;transform:none;filter:none;transition:none}}
@media (max-width:1199.98px){.portal-section-title--single-line{white-space:nowrap;font-size:clamp(1.45rem,2.35vw,2.15rem)!important;line-height:1.05!important}}
@media (max-width:991.98px){.portal-section-title--single-line{white-space:normal;font-size:clamp(1.75rem,4.4vw,2.45rem)!important;text-wrap:balance}}
@media (max-width:767.98px){.portal-section-title--single-line{white-space:normal;font-size:clamp(1.6rem,8.2vw,2.35rem)!important;line-height:1.02!important}}


/* v0.9.50 premium polish */
body.portal-body{font-feature-settings:"liga" 1,"kern" 1;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.portal-header,.portal-main,.portal-footer{font-kerning:normal}
.portal-header .portal-btn,.portal-mobile-menu .portal-btn{font-weight:800;letter-spacing:-.015em}
.portal-section-heading p,.portal-step-card p,.portal-feature-band__card p,.portal-round-card p,.portal-access-card p,.portal-faq__answer p,.portal-footer p{font-size:1rem;line-height:1.76}
.portal-section-heading{max-width:980px}
.portal-section-title--single-line{display:block;width:100%;font-size:clamp(1.45rem,1.72vw,2rem)!important;line-height:1.08!important;letter-spacing:-.04em!important;white-space:nowrap!important}
.portal-cta-final .portal-section-title--single-line{font-size:clamp(1.55rem,1.95vw,2.25rem)!important}
.portal-campaign--hero{height:clamp(340px,36vw,438px);border-radius:36px;box-shadow:0 26px 70px rgba(11,67,61,.12)}
.portal-campaign--hero .portal-campaign__slide--media{height:clamp(340px,36vw,438px);background-size:cover;background-position:center 46%;background-repeat:no-repeat;position:absolute;inset:0;display:flex;align-items:stretch;justify-content:flex-start;opacity:0;visibility:hidden;transform:scale(1.018);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform 1.1s cubic-bezier(.22,1,.36,1),visibility 0s linear .7s}
.portal-campaign--hero .portal-campaign__slide--media.is-active{opacity:1;visibility:visible;transform:scale(1);z-index:2;transition-delay:0s}
.portal-campaign--hero .portal-campaign__slide--media:nth-child(3){background-position:center 40%}
.portal-campaign__overlay--hero{background:linear-gradient(90deg, rgba(5,26,24,.72) 0%, rgba(5,26,24,.52) 28%, rgba(5,26,24,.18) 64%, rgba(5,26,24,.03) 100%)}
.portal-campaign__content--hero{max-width:490px;padding:34px 36px 78px}
.portal-campaign__content--hero h1{margin:12px 0 10px;font-size:clamp(1.85rem,2.6vw,2.9rem);line-height:1;max-width:10.2ch;letter-spacing:-.052em;text-wrap:balance;text-shadow:0 2px 10px rgba(0,0,0,.08)}
.portal-campaign__content--hero p{max-width:44ch;font-size:.98rem;line-height:1.72;color:rgba(255,255,255,.94)}
.portal-campaign__chips{margin-top:16px;max-width:520px}
.portal-campaign__chips span{min-height:30px;padding:0 11px;font-size:.77rem;background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.10)}
.portal-campaign__actions{margin-top:20px}
.portal-campaign__nav--overlay{left:20px;right:20px;bottom:18px}
.portal-campaign__dots button{transition:width .35s ease,background-color .35s ease,opacity .35s ease;opacity:.8}
.portal-campaign__dots button.is-active{opacity:1}
.portal-hero__stats--under-carousel article strong{font-size:clamp(2rem,2vw,2.5rem);letter-spacing:-.05em}
.portal-step-card h3,.portal-feature-band__card strong,.portal-round-card h3,.portal-access-card strong{letter-spacing:-.03em}
.portal-step-card,.portal-feature-band__card,.portal-round-card,.portal-access-card,.portal-faq__item,.portal-hero__stats article,.portal-cta-final{transition:box-shadow .4s ease,border-color .4s ease,transform .4s cubic-bezier(.22,1,.36,1),background-color .35s ease}
@media (max-width:1199.98px){
  .portal-section-title--single-line{font-size:clamp(1.3rem,1.92vw,1.72rem)!important}
  .portal-campaign--hero,.portal-campaign--hero .portal-campaign__slide--media{height:clamp(330px,36vw,408px)}
}
@media (max-width:991.98px){
  .portal-section-title--single-line{white-space:normal!important;font-size:clamp(1.7rem,4vw,2.25rem)!important}
  .portal-campaign__content--hero{max-width:430px;padding:28px 28px 74px}
  .portal-campaign__content--hero h1{font-size:clamp(1.75rem,4vw,2.55rem)}
}
@media (max-width:767.98px){
  .portal-campaign--hero,.portal-campaign--hero .portal-campaign__slide--media{height:auto;min-height:420px}
  .portal-campaign--hero .portal-campaign__slide--media{background-position:center center}
  .portal-campaign__overlay--hero{background:linear-gradient(180deg, rgba(5,26,24,.20) 0%, rgba(5,26,24,.68) 56%, rgba(5,26,24,.92) 100%)}
  .portal-campaign__content--hero{max-width:none;padding:24px 20px 84px}
  .portal-campaign__content--hero h1{font-size:clamp(1.8rem,8.6vw,2.55rem);max-width:9.8ch}
}


/* v0.9.51 presentation + real data */
.portal-body{letter-spacing:-.005em}
.portal-header .portal-nav a{font-weight:700}
.portal-section-heading p,.portal-step-card p,.portal-feature-band__card p,.portal-round-card p,.portal-access-card p,.portal-faq__answer p,.portal-footer p{font-size:.98rem;line-height:1.72}
.portal-campaign--hero{height:clamp(356px,37vw,456px)}
.portal-campaign--hero .portal-campaign__slide--media{height:clamp(356px,37vw,456px);background-position:center center}
.portal-campaign__content--hero{padding:36px 38px 82px;max-width:500px}
.portal-campaign__content--hero h1{font-size:clamp(1.72rem,2.45vw,2.7rem);max-width:10.8ch}
.portal-campaign__content--hero p{max-width:43ch;font-size:.95rem}
.portal-campaign__slide{display:flex;opacity:0;visibility:hidden;pointer-events:none;position:absolute;inset:0}
.portal-campaign__slide.is-active{opacity:1;visibility:visible;pointer-events:auto}
.portal-campaign__slide--media{transition:opacity .85s cubic-bezier(.22,1,.36,1), transform 1.15s cubic-bezier(.22,1,.36,1), visibility 0s linear .85s}
.portal-campaign__slide--media.is-active{transition-delay:0s}
.portal-number-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.portal-number-card{padding:24px 22px;border-radius:28px;background:rgba(255,255,255,.88);border:1px solid rgba(22,127,117,.08);box-shadow:0 18px 38px rgba(10,60,55,.05)}
.portal-number-card strong{display:block;font-size:clamp(2rem,2.2vw,2.8rem);line-height:1;font-weight:900;letter-spacing:-.055em;color:var(--portal-text)}
.portal-number-card span{display:block;margin-top:10px;color:var(--portal-muted);font-size:.94rem}
.portal-footer__grid{grid-template-columns:1.1fr .55fr .55fr .55fr}
@media (max-width:1199.98px){
  .portal-footer__grid{grid-template-columns:1fr 1fr}
  .portal-number-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .portal-campaign--hero,.portal-campaign--hero .portal-campaign__slide--media{height:clamp(340px,38vw,420px)}
}
@media (max-width:767.98px){
  .portal-number-grid{grid-template-columns:1fr}
  .portal-campaign--hero,.portal-campaign--hero .portal-campaign__slide--media{min-height:430px;height:auto}
  .portal-campaign__content--hero{padding:24px 22px 86px;max-width:none}
  .portal-campaign__content--hero h1{font-size:clamp(1.8rem,9vw,2.45rem)}
}

/* v0.9.P2 — Kitador Partners */
.portal-partners-band,
.portal-partners-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
  gap: 24px;
  align-items: stretch;
}
.portal-partners-band__copy,
.portal-partners-hero {
  background: linear-gradient(180deg, rgba(255,255,255,.94), rgba(238,248,246,.96));
  border: 1px solid rgba(17, 90, 82, .08);
  border-radius: 28px;
  padding: 28px;
  box-shadow: 0 18px 48px rgba(17, 90, 82, .08);
}
.portal-partners-band__panel,
.portal-partners-hero__aside { display:flex; }
.portal-partners-band__card {
  width:100%;
  border-radius: 28px;
  background: linear-gradient(180deg, #115a52, #167f75);
  color:#fff;
  padding: 26px;
  box-shadow: 0 20px 52px rgba(12, 78, 71, .22);
}
.portal-partners-band__card ul { margin: 14px 0 0; padding-left: 18px; }
.portal-partners-band__card li + li { margin-top: 8px; }
.portal-partners-band__chips {
  display:flex; flex-wrap:wrap; gap:10px; margin-top:18px;
}
.portal-partners-band__chips span,
.portal-partners-band__notice {
  border-radius: 999px;
  padding: 10px 14px;
  background: rgba(22,127,117,.1);
  color:#115a52;
  font-weight:600;
}
.portal-partners-band__notice { display:inline-flex; margin-top:14px; }
.portal-partner-form {
  background:#fff;
  border-radius: 28px;
  border:1px solid rgba(17,90,82,.08);
  box-shadow: 0 18px 42px rgba(17,90,82,.06);
  padding: 28px;
}
.portal-partner-form__grid {
  display:grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap:18px;
}
.portal-partner-form label { display:flex; flex-direction:column; gap:8px; font-weight:600; color:#103f39; }
.portal-partner-form input,
.portal-partner-form select,
.portal-partner-form textarea {
  width:100%; border-radius:18px; border:1px solid rgba(17,90,82,.14); padding:14px 16px; background:#f8fcfb;
}
.portal-partner-form__full { grid-column: 1 / -1; }
@media (max-width: 991.98px) {
  .portal-partners-band,
  .portal-partners-hero,
  .portal-partner-form__grid { grid-template-columns: 1fr; }
}
