/* =========================================================
   AMAEME — Sistema de diseño
   Azul marino #0B2340 · Turquesa #1597BA · Turquesa claro #3CC3E0
   ========================================================= */

:root{
  --navy:#0B2340;
  --navy-rgb:11,35,64;
  --teal:#1597BA;
  --teal-light:#3CC3E0;
  --white:#FFFFFF;
  --bg-light:#F2F6F9;
  --text:#24405F;
  --text-secondary:#3B536D;
  --text-muted:#6B7C8F;
  --border:#D9E3EC;
  --radius-sm:6px;
  --radius-md:12px;
  --radius-lg:20px;
  --shadow-sm:0 2px 10px rgba(11,35,64,.06);
  --shadow-md:0 12px 32px rgba(11,35,64,.10);
  --shadow-lg:0 24px 60px rgba(11,35,64,.16);
  --maxw:1240px;
  --space-1:.5rem;
  --space-2:1rem;
  --space-3:1.5rem;
  --space-4:clamp(1.5rem,4vw,2.5rem);
  --space-5:clamp(2rem,5vw,4rem);
  --space-6:clamp(2.75rem,7vw,6.5rem);
  --font-main:'Sora', 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ease:cubic-bezier(.22,.61,.36,1);
}

html[lang="zh-CN"]{ --font-main:'Noto Sans SC','Sora',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; }

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
section[id], .section[id]{ scroll-margin-top:88px; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; scroll-behavior:auto !important; }
}

body{
  margin:0;
  font-family:var(--font-main);
  color:var(--text);
  background:var(--white);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family:inherit; cursor:pointer; }
table{ border-collapse:collapse; width:100%; }

.container{ max-width:var(--maxw); margin:0 auto; padding:0 1.5rem; }
@media (min-width:768px){ .container{ padding:0 2.5rem; } }

.visually-hidden{
  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{
  position:absolute; left:1rem; top:-60px; background:var(--navy); color:var(--white);
  padding:.75rem 1.25rem; border-radius:var(--radius-sm); z-index:999; transition:top .2s var(--ease);
}
.skip-link:focus{ top:1rem; }

:focus-visible{ outline:3px solid var(--teal-light); outline-offset:2px; }

h1,h2,h3,h4{ font-weight:700; line-height:1.15; margin:0 0 .75rem; color:var(--navy); letter-spacing:-.01em; }
h1{ font-size:clamp(2.1rem,4.6vw,3.6rem); }
h2{ font-size:clamp(1.65rem,3.2vw,2.5rem); }
h3{ font-size:clamp(1.2rem,2vw,1.5rem); }
p{ margin:0 0 1rem; }
.lead{ font-size:clamp(1.05rem,1.6vw,1.25rem); color:var(--text-secondary); }

.eyebrow{
  display:inline-flex; align-items:center; gap:.5rem; font-size:.78rem; font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; color:var(--teal);
  margin-bottom:1rem;
}
.eyebrow::before{ content:""; width:22px; height:2px; background:var(--teal-light); display:inline-block; }

.section{ padding:var(--space-6) 0; }
.section--tight{ padding:var(--space-5) 0; }
.section--alt{ background:var(--bg-light); }
.section--navy{ background:var(--navy); color:var(--white); }
.section--navy h2, .section--navy h3{ color:var(--white); }
.section--navy .eyebrow{ color:var(--teal-light); }
.section-head{ max-width:760px; margin-bottom:var(--space-4); }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }

/* Buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.95rem 1.8rem; border-radius:999px; font-weight:600; font-size:.98rem;
  border:1.5px solid transparent; transition:transform .18s var(--ease), background .18s, border-color .18s, color .18s, box-shadow .18s;
  white-space:nowrap;
}
.btn-primary{ background:var(--teal); color:var(--white); box-shadow:0 10px 24px rgba(21,151,186,.3); }
.btn-primary:hover{ background:#117d9c; transform:translateY(-2px); }
.btn-outline{ background:transparent; border-color:rgba(11,35,64,.25); color:var(--navy); }
.btn-outline:hover{ border-color:var(--navy); background:rgba(11,35,64,.05); }
.section--navy .btn-outline{ border-color:rgba(255,255,255,.4); color:var(--white); }
.section--navy .btn-outline:hover{ background:rgba(255,255,255,.1); border-color:var(--white); }
.btn-light{ background:var(--white); color:var(--navy); }
.btn-light:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); }
.btn[disabled], .btn.is-disabled{ opacity:.55; cursor:not-allowed; pointer-events:none; }
.btn-sm{ padding:.6rem 1.2rem; font-size:.85rem; }

/* =========== Header =========== */
.site-header{
  position:sticky; top:0; z-index:200; background:rgba(255,255,255,.92);
  backdrop-filter:saturate(180%) blur(14px); border-bottom:1px solid var(--border);
}
.site-header .container{ display:flex; align-items:center; justify-content:space-between; gap:1rem; height:74px; }
.site-logo{ display:flex; align-items:center; height:34px; flex-shrink:0; }
.site-logo img{ height:100%; width:auto; }
.main-nav{ display:none; }
.main-nav ul{ display:flex; align-items:center; gap:1.9rem; }
.main-nav a{ font-size:.95rem; font-weight:600; color:var(--text); padding:.4rem 0; border-bottom:2px solid transparent; transition:color .15s,border-color .15s; }
.main-nav a:hover, .main-nav a[aria-current="page"]{ color:var(--teal); border-color:var(--teal-light); }
.header-actions{ display:flex; align-items:center; gap:.9rem; }
@media (max-width:999px){
  .header-actions .btn-primary{ display:none; }
}

.lang-switch{ position:relative; }
.lang-switch-btn{
  display:flex; align-items:center; gap:.4rem; background:var(--bg-light); border:1px solid var(--border);
  border-radius:999px; padding:.5rem .95rem; font-size:.85rem; font-weight:700; color:var(--navy);
}
.lang-switch-menu{
  display:none; position:absolute; right:0; top:calc(100% + 8px); background:var(--white); border:1px solid var(--border);
  border-radius:var(--radius-md); box-shadow:var(--shadow-md); min-width:180px; padding:.4rem; z-index:50;
}
.lang-switch.is-open .lang-switch-menu{ display:block; }
.lang-switch-menu a{ display:flex; justify-content:space-between; gap:.5rem; padding:.6rem .7rem; border-radius:var(--radius-sm); font-size:.92rem; font-weight:600; }
.lang-switch-menu a:hover{ background:var(--bg-light); }
.lang-switch-menu a[aria-current="true"]{ color:var(--teal); }

.nav-toggle{
  display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:50%;
  background:var(--bg-light); border:1px solid var(--border);
}
.nav-toggle span, .nav-toggle::before, .nav-toggle::after{ display:none; }
.nav-toggle svg{ width:20px; height:20px; }
.nav-toggle .icon-close{ display:none; }
.nav-toggle[aria-expanded="true"] .icon-open{ display:none; }
.nav-toggle[aria-expanded="true"] .icon-close{ display:block; }

.mobile-nav{
  position:fixed; inset:74px 0 0 0; background:var(--white); z-index:190; padding:1.5rem;
  transform:translateY(-12px); opacity:0; pointer-events:none; transition:opacity .22s var(--ease), transform .22s var(--ease);
  overflow-y:auto;
}
.mobile-nav.is-open{ opacity:1; transform:translateY(0); pointer-events:auto; }
.mobile-nav ul{ display:flex; flex-direction:column; gap:.3rem; }
.mobile-nav a{ display:block; padding:1rem .5rem; font-size:1.15rem; font-weight:700; border-bottom:1px solid var(--border); color:var(--navy); }
.mobile-nav .mobile-cta{ margin-top:1.5rem; }
.mobile-lang-list{ margin-top:2rem; display:flex; gap:.6rem; flex-wrap:wrap; }
.mobile-lang-list a{ border:1px solid var(--border); border-radius:999px; padding:.6rem 1.1rem; font-weight:700; font-size:.9rem; }

@media (min-width:1000px){
  .main-nav{ display:block; }
  .nav-toggle{ display:none; }
  .mobile-nav{ display:none !important; }
}

/* =========== Hero =========== */
.hero{
  position:relative; overflow:hidden; background:var(--navy); color:var(--white);
  padding:var(--space-6) 0 var(--space-5);
}
.hero::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(760px 420px at 85% -10%, rgba(21,151,186,.35), transparent 60%),
    radial-gradient(640px 500px at -10% 110%, rgba(60,195,224,.2), transparent 60%);
  pointer-events:none;
}
.hero-grid{ position:relative; z-index:1; display:grid; gap:2.5rem; align-items:center; }
@media (min-width:960px){ .hero-grid{ grid-template-columns:1.15fr .85fr; gap:3rem; } }
.hero-eyebrow{ color:var(--teal-light); }
.hero h1{ color:var(--white); max-width:18ch; }
.hero .lead{ color:rgba(255,255,255,.82); max-width:46ch; }
.hero-definition{
  margin-top:1.5rem; padding:1.1rem 1.4rem; border-left:3px solid var(--teal-light);
  background:rgba(255,255,255,.06); border-radius:0 var(--radius-md) var(--radius-md) 0; font-size:1rem; color:rgba(255,255,255,.92);
}
.hero-cta{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:2rem; }
.hero-stats{ display:grid; grid-template-columns:repeat(2,1fr); gap:1rem; margin-top:2.5rem; }
.hero-stat{ padding:1.1rem 1.2rem; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14); border-radius:var(--radius-md); }
.hero-stat strong{ display:block; font-size:1.35rem; color:var(--teal-light); margin-bottom:.2rem; }
.hero-stat span{ font-size:.85rem; color:rgba(255,255,255,.72); }

/* Hero visual: ecosystem orbit teaser */
.hero-visual{ position:relative; aspect-ratio:1/1; max-width:440px; margin:2.5rem auto 0; overflow:visible; }
@media (max-width:959px){
  .hero-visual{
    aspect-ratio:auto; max-width:100%; margin:1.8rem 0 0; position:static;
    display:grid; grid-template-columns:repeat(2,1fr); gap:.7rem;
  }
  .hero-visual .orbit-ring, .hero-visual .orbit-core{ display:none; }
  .hero-visual .orbit-node{
    position:static; width:auto; height:auto; margin:0; transform:none !important;
    padding:.85rem .6rem; font-size:.82rem; min-height:56px;
  }
  .hero-visual .orbit-node:last-child{ grid-column:1 / -1; }
}
.orbit-ring{
  position:absolute; inset:0; border:1px dashed rgba(255,255,255,.22); border-radius:50%;
}
.orbit-ring.r2{ inset:14%; border-style:solid; border-color:rgba(60,195,224,.25); }
.orbit-core{
  position:absolute; inset:36%; background:var(--white); border-radius:28%; display:flex; align-items:center; justify-content:center;
  box-shadow:0 20px 50px rgba(0,0,0,.35);
}
.orbit-core img{ width:58%; }
.orbit-node{
  position:absolute; width:84px; height:84px; margin:-42px; left:50%; top:50%;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.25); border-radius:var(--radius-md);
  display:flex; align-items:center; justify-content:center; text-align:center; font-size:.72rem; font-weight:700;
  padding:.4rem; color:var(--white); backdrop-filter:blur(6px);
}
.orbit-node span{ display:block; }
@media (prefers-reduced-motion: no-preference){
  .orbit-ring{ animation:spin 46s linear infinite; }
  .orbit-ring.r2{ animation:spin 60s linear infinite reverse; }
}
@keyframes spin{ to{ transform:rotate(360deg); } }

/* =========== Cards genéricas =========== */
.grid{ display:grid; gap:1.5rem; }
.grid-2{ grid-template-columns:1fr; }
.grid-3{ grid-template-columns:1fr; }
.grid-4{ grid-template-columns:1fr; }
@media (min-width:680px){ .grid-2{ grid-template-columns:repeat(2,1fr); } .grid-4{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:960px){ .grid-3{ grid-template-columns:repeat(3,1fr); } .grid-4{ grid-template-columns:repeat(4,1fr); } }

.card{
  background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg);
  padding:1.8rem; box-shadow:var(--shadow-sm); transition:box-shadow .2s var(--ease), transform .2s var(--ease);
}
.card:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); }
.card h3{ margin-bottom:.6rem; }
.card-icon{
  width:52px; height:52px; border-radius:var(--radius-md); background:var(--bg-light); color:var(--teal);
  display:flex; align-items:center; justify-content:center; margin-bottom:1.1rem;
}
.card-icon svg{ width:26px; height:26px; }

/* Objetivos pills */
.pill-row{ display:flex; flex-wrap:wrap; gap:.6rem; margin:1.5rem 0; }
.pill{
  background:var(--white); border:1px solid var(--border); border-radius:999px; padding:.55rem 1.1rem; font-size:.88rem;
  font-weight:700; color:var(--text-secondary); display:inline-flex; align-items:center; gap:.5rem;
}
.pill .dot{ width:8px; height:8px; border-radius:50%; background:var(--teal-light); }

/* =========== Ecosistema (details) =========== */
.ecosystem-wrap{ display:grid; gap:1.1rem; }
@media (min-width:860px){ .ecosystem-wrap{ grid-template-columns:repeat(2,1fr); } }
.eco-group{
  background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden;
}
.eco-group summary{
  list-style:none; cursor:pointer; padding:1.3rem 1.6rem; display:flex; align-items:center; justify-content:space-between;
  gap:1rem; font-weight:700; font-size:1.05rem; color:var(--navy);
}
.eco-group summary::-webkit-details-marker{ display:none; }
.eco-group summary .num{
  display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; border-radius:50%;
  background:var(--bg-light); color:var(--teal); font-size:.85rem; font-weight:800; margin-right:.8rem; flex-shrink:0;
}
.eco-group summary .chev{ transition:transform .2s var(--ease); color:var(--text-muted); flex-shrink:0; }
.eco-group[open] summary .chev{ transform:rotate(180deg); }
.eco-group .eco-body{ padding:0 1.6rem 1.6rem; display:grid; gap:1rem; }
@media (min-width:600px){ .eco-group .eco-body{ grid-template-columns:repeat(3,1fr); } }
.eco-body h4{ font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; color:var(--teal); margin-bottom:.4rem; }
.eco-body p{ font-size:.92rem; color:var(--text-secondary); margin:0; }
.eco-tags{ display:flex; flex-wrap:wrap; gap:.4rem; }
.eco-tags span{ background:var(--bg-light); border-radius:999px; padding:.3rem .7rem; font-size:.78rem; font-weight:600; color:var(--text); }

.eco-institutions{
  margin-top:1.4rem; padding:1.3rem 1.6rem; border-radius:var(--radius-lg); background:var(--bg-light);
  border:1px dashed var(--border); display:flex; gap:1rem; align-items:flex-start; flex-wrap:wrap;
}
.eco-institutions strong{ color:var(--navy); }

/* =========== Explorador =========== */
.explorer{
  background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-md);
  padding:1.3rem; display:grid; gap:1.2rem;
}
@media (min-width:680px){ .explorer{ padding:2rem; gap:1.6rem; } }
@media (min-width:860px){ .explorer{ padding:2.6rem; } }
.explorer-controls{ display:grid; gap:1.2rem; }
@media (min-width:700px){ .explorer-controls{ grid-template-columns:1fr 1fr; } }
.field-group label{ display:block; font-size:.82rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--text-muted); margin-bottom:.5rem; }
.field-group select{
  width:100%; padding:.9rem 2.6rem .9rem 1rem; border-radius:var(--radius-sm); border:1.5px solid var(--border); background:var(--white);
  font-family:inherit; font-size:1rem; color:var(--text); appearance:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='9'><path d='M1 1l6 6 6-6' stroke='%233B536D' stroke-width='2' fill='none' fill-rule='evenodd'/></svg>");
  background-repeat:no-repeat; background-position:right 1rem center;
}
.explorer-result{
  background:var(--bg-light); border-radius:var(--radius-md); padding:1.1rem; display:grid; gap:.85rem; min-width:0;
}
@media (min-width:680px){ .explorer-result{ padding:1.6rem; gap:1rem; } }
.explorer-result .er-row{ display:flex; flex-direction:column; gap:.4rem; align-items:flex-start; min-width:0; }
@media (min-width:680px){
  .explorer-result .er-row{ flex-direction:row; gap:.9rem; align-items:flex-start; }
}
.explorer-result .er-row .tag{
  flex-shrink:0; font-size:.72rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--white);
  background:var(--teal); border-radius:999px; padding:.3rem .7rem; margin-top:.15rem;
  white-space:normal; max-width:100%; word-break:break-word;
}
.explorer-result .er-row p{ margin:0; color:var(--text-secondary); flex:1 1 auto; min-width:0; width:100%; }
.explorer-result .er-condition{ font-size:.85rem; color:var(--text-muted); font-style:italic; }

/* =========== Motores de valor =========== */
.engine-list{ display:grid; gap:1.3rem; }
.engine{
  display:grid; gap:1.4rem; padding:1.8rem; border-radius:var(--radius-lg); border:1px solid var(--border); background:var(--white);
}
@media (min-width:860px){ .engine{ grid-template-columns:260px 1fr; align-items:start; padding:2.2rem; } }
.engine-title{ display:flex; gap:1rem; align-items:flex-start; }
.engine-title .num{ font-size:2.2rem; font-weight:800; color:var(--teal-light); line-height:1; }
.engine-body dl{ display:grid; gap:.9rem; margin:0; }
.engine-body dt{ font-size:.75rem; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:var(--teal); margin-bottom:.25rem; }
.engine-body dd{ margin:0; color:var(--text-secondary); font-size:.95rem; }
.engine-condition{ margin-top:.9rem; font-size:.85rem; color:var(--text-muted); border-top:1px dashed var(--border); padding-top:.9rem; }

/* =========== Membresías =========== */
.tier-grid{ display:grid; gap:1.5rem; }
@media (min-width:900px){ .tier-grid{ grid-template-columns:repeat(3,1fr); } }
.tier-card{
  border-radius:var(--radius-lg); border:1px solid var(--border); background:var(--white); color:var(--text); padding:2rem;
  display:flex; flex-direction:column; gap:1.1rem; position:relative;
}
.tier-card.is-anchor{ border-color:var(--navy); background:var(--navy); color:var(--white); }
.tier-card.is-anchor h3, .tier-card.is-anchor .tier-price{ color:var(--white); }
.tier-card.is-anchor .tier-desc{ color:rgba(255,255,255,.75); }
.tier-card:not(.is-anchor) .tier-list li{ color:var(--text); }
.tier-card:not(.is-anchor) .btn-outline{
  border-color:rgba(11,35,64,.25); color:var(--navy); background:transparent;
}
.tier-card:not(.is-anchor) .btn-outline:hover{ border-color:var(--navy); background:rgba(11,35,64,.05); }
.tier-card:not(.is-anchor) .btn-outline:focus-visible{ border-color:var(--navy); outline:2px solid var(--teal); outline-offset:2px; }
.tier-card.is-anchor .btn-light:focus-visible{ outline:2px solid var(--teal-light); outline-offset:2px; }
.tier-name{ font-size:.82rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; color:var(--teal); }
.tier-card.is-anchor .tier-name{ color:var(--teal-light); }
.tier-price{ font-size:2.1rem; font-weight:800; color:var(--navy); }
.tier-price small{ font-size:.95rem; font-weight:600; color:var(--text-muted); display:block; margin-top:.2rem; }
.tier-card.is-anchor .tier-price small{ color:rgba(255,255,255,.65); }
.tier-desc{ color:var(--text-secondary); font-size:.94rem; margin:0; }
.tier-list{ display:grid; gap:.6rem; margin:.3rem 0 0; }
.tier-list li{ display:flex; gap:.6rem; font-size:.92rem; align-items:flex-start; }
.tier-list li svg{ flex-shrink:0; margin-top:.2rem; width:16px; height:16px; color:var(--teal); }
.tier-card.is-anchor .tier-list li svg{ color:var(--teal-light); }
.tier-card .btn{ margin-top:auto; }

.table-scroll{
  overflow-x:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--border); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
}
.compare-table{ min-width:760px; }
.compare-table th, .compare-table td{ padding:1rem 1.2rem; text-align:left; border-bottom:1px solid var(--border); font-size:.92rem; }
.compare-table thead th{ background:var(--navy); color:var(--white); position:sticky; top:0; font-size:.82rem; letter-spacing:.03em; }
.compare-table tbody th{ text-align:left; font-weight:700; color:var(--navy); background:var(--bg-light); white-space:nowrap; }
.compare-table tbody tr:nth-child(even) td, .compare-table tbody tr:nth-child(even) th{ background:rgba(242,246,249,.6); }
.compare-table td{ color:var(--text-secondary); }
.scroll-hint{ display:flex; align-items:center; gap:.5rem; font-size:.82rem; color:var(--text-muted); margin:.7rem 0 0; }

.tier-note{
  margin-top:1.8rem; padding:1.2rem 1.4rem; border-radius:var(--radius-md); background:var(--bg-light); border:1px solid var(--border);
  font-size:.88rem; color:var(--text-secondary);
}

/* =========== Cursos =========== */
.course-card{
  border:1px solid var(--border); border-radius:var(--radius-lg); background:var(--white); padding:1.9rem;
  display:flex; flex-direction:column; gap:1rem;
}
.course-top{ display:flex; justify-content:space-between; gap:1rem; align-items:flex-start; flex-wrap:wrap; }
.course-badge{ background:var(--bg-light); color:var(--teal); font-weight:800; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; padding:.35rem .8rem; border-radius:999px; }
.course-meta{ display:grid; gap:.6rem; grid-template-columns:1fr 1fr; font-size:.88rem; }
@media (min-width:600px){ .course-meta{ grid-template-columns:repeat(3,1fr); } }
.course-meta div{ background:var(--bg-light); border-radius:var(--radius-sm); padding:.7rem .8rem; }
.course-meta span{ display:block; font-size:.7rem; text-transform:uppercase; letter-spacing:.05em; color:var(--text-muted); margin-bottom:.2rem; }
.course-syllabus{ font-size:.9rem; color:var(--text-secondary); }
.course-syllabus summary{ cursor:pointer; font-weight:700; color:var(--navy); margin-bottom:.5rem; }
.course-actions{ display:flex; gap:.8rem; flex-wrap:wrap; margin-top:auto; }

/* Grupo de botones genérico (p. ej. cursos + agenda en el teaser de home) */
.btn-group{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:2rem; }
.btn-group .btn{ white-space:normal; text-align:center; }
@media (max-width:479px){
  .btn-group{ flex-direction:column; }
  .btn-group .btn{ width:100%; }
}
.status-pill{ font-size:.75rem; font-weight:800; padding:.3rem .7rem; border-radius:999px; }
.status-pending{ background:#FBEFD9; color:#8A5B12; }
.status-proposed{ background:#E7EEF6; color:var(--text-secondary); }

/* =========== Agenda =========== */
.agenda-filters{ display:flex; flex-wrap:wrap; gap:.7rem; margin-bottom:1.8rem; }
.agenda-filters select{
  padding:.65rem 1rem; border-radius:999px; border:1.5px solid var(--border); font-family:inherit; font-size:.88rem; font-weight:600;
  background:var(--white); color:var(--text);
}
.agenda-list{ display:grid; gap:1rem; }
.agenda-item{
  display:grid; grid-template-columns:1fr; gap:.8rem; padding:1.5rem; border:1px solid var(--border); border-radius:var(--radius-lg); background:var(--white);
}
@media (min-width:760px){ .agenda-item{ grid-template-columns:140px 1fr auto; align-items:center; gap:1.4rem; } }
.agenda-date{ font-weight:800; color:var(--navy); font-size:.95rem; }
.agenda-date small{ display:block; font-weight:600; color:var(--text-muted); font-size:.78rem; }
.agenda-info h4{ margin:0 0 .3rem; font-size:1.05rem; color:var(--navy); }
.agenda-info p{ margin:0; font-size:.88rem; color:var(--text-secondary); }
.agenda-tags{ display:flex; gap:.4rem; flex-wrap:wrap; margin-top:.5rem; }
.agenda-tags span{ font-size:.74rem; font-weight:700; padding:.25rem .6rem; border-radius:999px; background:var(--bg-light); color:var(--text-secondary); }

/* =========== FAQ =========== */
.faq-list{ display:grid; gap:.9rem; }
.faq-item{ border:1px solid var(--border); border-radius:var(--radius-md); background:var(--white); overflow:hidden; }
.faq-item summary{ list-style:none; cursor:pointer; padding:1.2rem 1.4rem; font-weight:700; color:var(--navy); display:flex; justify-content:space-between; gap:1rem; align-items:center; }
.faq-item summary::-webkit-details-marker{ display:none; }
.faq-item summary .chev{ transition:transform .2s var(--ease); flex-shrink:0; color:var(--text-muted); }
.faq-item[open] summary .chev{ transform:rotate(180deg); }
.faq-item .faq-body{ padding:0 1.4rem 1.3rem; color:var(--text-secondary); font-size:.95rem; }

/* =========== Incorporación steps =========== */
.step-list{ display:grid; gap:1.4rem; counter-reset:step; }
@media (min-width:860px){ .step-list{ grid-template-columns:repeat(4,1fr); } }
.step{ position:relative; padding:1.8rem 1.4rem 1.4rem; border:1px solid var(--border); border-radius:var(--radius-lg); background:var(--white); }
.step .step-num{ font-size:2rem; font-weight:800; color:var(--teal-light); margin-bottom:.6rem; }
.step h4{ margin:0 0 .4rem; color:var(--navy); font-size:1.02rem; }
.step p{ margin:0; font-size:.88rem; color:var(--text-secondary); }

/* =========== Principio no competencia / banda ancha =========== */
.principle-band{
  background:linear-gradient(135deg, var(--navy), #123459);
  color:var(--white); border-radius:var(--radius-lg); padding:2.4rem; text-align:center;
}
.principle-band p{ font-size:clamp(1.1rem,2.4vw,1.5rem); font-weight:700; margin:0 0 .5rem; }
.principle-band p:last-child{ margin-bottom:0; font-weight:500; font-size:clamp(.95rem,1.6vw,1.1rem); color:rgba(255,255,255,.78); }

/* =========== Contacto =========== */
.contact-wrap{ display:grid; gap:2.5rem; }
@media (min-width:960px){ .contact-wrap{ grid-template-columns:1fr 1.15fr; } }
.contact-card{ background:var(--navy); color:var(--white); border-radius:var(--radius-lg); padding:2.2rem; }
.contact-card h3{ color:var(--white); }
.contact-card .btn-outline{ border-color:rgba(255,255,255,.45); color:var(--white); }
.contact-card .btn-outline:hover{ background:rgba(255,255,255,.12); border-color:var(--white); }
.contact-card p{ display:flex; flex-wrap:wrap; gap:.7rem; align-items:center; }
.contact-person{ display:flex; gap:1rem; align-items:center; margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid rgba(255,255,255,.15); }
.contact-avatar{ width:54px; height:54px; border-radius:50%; background:var(--teal); display:flex; align-items:center; justify-content:center; font-weight:800; font-size:1.1rem; flex-shrink:0; }
.contact-person a{ color:var(--teal-light); font-weight:700; }

/* =========== WeChat QR (solo zh-cn) =========== */
.contact-wechat{ background:var(--white); border:1px solid var(--border); border-radius:var(--radius-lg); padding:2.2rem; display:flex; flex-direction:column; gap:1rem; }
.contact-wechat h3{ margin:0; }
.qr-frame{ background:var(--white); border:1px solid var(--border); border-radius:var(--radius-md); padding:1rem; display:inline-flex; align-items:center; justify-content:center; max-width:200px; }
.qr-frame img{ width:100%; height:auto; display:block; cursor:zoom-in; }
.qr-actions{ display:flex; gap:.7rem; flex-wrap:wrap; }
.qr-modal{ position:fixed; inset:0; background:rgba(11,35,64,.92); z-index:500; display:none; align-items:center; justify-content:center; padding:2rem; }
.qr-modal.is-open{ display:flex; }
.qr-modal-inner{ background:var(--white); border-radius:var(--radius-lg); padding:1.5rem; max-width:360px; width:100%; text-align:center; position:relative; }
.qr-modal-inner img{ width:100%; height:auto; }
.qr-modal-close{ position:absolute; top:.6rem; right:.6rem; width:36px; height:36px; border-radius:50%; background:var(--bg-light); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; font-size:1rem; line-height:1; }

/* =========== Disclaimer de agenda ============ */
.agenda-disclaimer{ background:#FBEFD9; border:1px solid #F0D79B; border-radius:var(--radius-md); padding:1.1rem 1.4rem; margin-bottom:1.8rem; font-size:.92rem; color:#6B4A0B; }
.agenda-disclaimer strong{ color:#8A5B12; }

.form-grid{ display:grid; gap:1.2rem; }
@media (min-width:640px){ .form-grid.cols-2{ grid-template-columns:1fr 1fr; } }
.form-field label{ display:block; font-weight:700; font-size:.88rem; margin-bottom:.45rem; color:var(--navy); }
.form-field .req{ color:var(--teal); }
.form-field input, .form-field select, .form-field textarea{
  width:100%; padding:.85rem 1rem; border-radius:var(--radius-sm); border:1.5px solid var(--border); font-family:inherit; font-size:1rem;
  color:var(--text); background:var(--white);
}
.form-field textarea{ resize:vertical; min-height:120px; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{ border-color:var(--teal); }
.form-field.has-error input, .form-field.has-error select, .form-field.has-error textarea{ border-color:#C0392B; }
.form-error{ color:#C0392B; font-size:.82rem; margin-top:.4rem; display:none; }
.form-field.has-error .form-error{ display:block; }
.form-note{ font-size:.82rem; color:var(--text-muted); margin-top:1.2rem; }
.form-status{ margin-top:1.2rem; padding:1rem 1.2rem; border-radius:var(--radius-md); font-size:.92rem; display:none; }
.form-status.is-visible{ display:block; }
.form-status.success{ background:#E6F6EC; color:#1E7A43; }
.form-status.error{ background:#FBEAE8; color:#A4312A; }
.checkbox-field{ display:flex; gap:.6rem; align-items:flex-start; font-size:.88rem; color:var(--text-secondary); }
.checkbox-field input{ width:auto; margin-top:.2rem; }

/* =========== Footer =========== */
.site-footer{ background:var(--navy); color:rgba(255,255,255,.82); padding:var(--space-5) 0 var(--space-3); }
.footer-grid{ display:grid; gap:2.2rem; }
@media (min-width:860px){ .footer-grid{ grid-template-columns:1.3fr 1fr 1fr 1fr; } }
.footer-brand img{ height:40px; width:auto; margin-bottom:1rem; }
.footer-brand p{ font-size:.88rem; color:rgba(255,255,255,.65); max-width:30ch; }
.footer-col h5{ color:var(--white); font-size:.8rem; letter-spacing:.07em; text-transform:uppercase; margin-bottom:1rem; }
.footer-col ul{ display:grid; gap:.65rem; }
.footer-col a{ font-size:.92rem; color:rgba(255,255,255,.75); }
.footer-col a:hover{ color:var(--teal-light); }
.footer-bottom{
  margin-top:2.8rem; padding-top:1.6rem; border-top:1px solid rgba(255,255,255,.15); display:flex; flex-wrap:wrap;
  justify-content:space-between; gap:1rem; font-size:.8rem; color:rgba(255,255,255,.55);
}
.footer-alliance{ display:flex; align-items:center; gap:.5rem; }
.footer-alliance strong{ color:rgba(255,255,255,.75); font-weight:700; }

/* =========== Legal pages =========== */
.legal-page{ padding:var(--space-5) 0; }
.legal-body{ max-width:800px; }
.legal-body h2{ margin-top:2.4rem; }
.legal-body h2:first-child{ margin-top:0; }
.legal-body ul{ list-style:disc; padding-left:1.3rem; margin-bottom:1rem; }
.legal-body ul li{ margin-bottom:.5rem; color:var(--text-secondary); }
.legal-meta{ font-size:.85rem; color:var(--text-muted); margin-bottom:2rem; padding-bottom:1.5rem; border-bottom:1px solid var(--border); }
.legal-callout{ background:var(--bg-light); border-left:3px solid var(--teal); border-radius:0 var(--radius-md) var(--radius-md) 0; padding:1.1rem 1.4rem; margin:1.4rem 0; font-size:.92rem; color:var(--text-secondary); }
.legal-toc{ background:var(--bg-light); border-radius:var(--radius-md); padding:1.4rem 1.6rem; margin-bottom:2rem; }
.legal-toc a{ color:var(--teal); font-weight:600; }

/* =========== 404 =========== */
.error-page{ min-height:60vh; display:flex; align-items:center; }
.error-page .container{ text-align:center; max-width:560px; }
.error-code{ font-size:5rem; font-weight:800; color:var(--teal-light); margin-bottom:.5rem; }

/* =========== Breadcrumb simple =========== */
.simple-hero{ background:var(--navy); color:var(--white); padding:var(--space-5) 0 var(--space-4); }
.simple-hero .eyebrow{ color:var(--teal-light); }
.simple-hero h1{ color:var(--white); }
.simple-hero .lead{ color:rgba(255,255,255,.8); max-width:60ch; }

/* Utility */
.mt-0{ margin-top:0; }
.text-muted{ color:var(--text-muted); }
.flex-center{ display:flex; align-items:center; }
.gap-1{ gap:.5rem; }
.sr-list-fallback{ margin-top:1rem; font-size:.85rem; color:var(--text-muted); }
