*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --dur-fast: 160ms;
  --dur-ui: 220ms;
  --dur-reveal: 600ms;
}
html { scroll-behavior: smooth; }
body { font-family: 'Inter', sans-serif; color: #1a1a1a; overflow-x: hidden; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible {
  outline: 2px solid #F97316;
  outline-offset: 2px;
  border-radius: 2px;
}
.form-inp:focus-visible, .form-sel:focus-visible {
  outline: 2px solid #F97316;
  outline-offset: 1px;
}
a { text-decoration: none; color: inherit; }
button { font-family: 'Inter', sans-serif; border: none; cursor: pointer; }

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(36px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes waPulse {
  0%, 100% { box-shadow: 0 4px 24px rgba(37,211,102,.5); }
  50% { box-shadow: 0 8px 36px rgba(37,211,102,.85); }
}

.animate-in {
  opacity: 0; transform: translateY(28px);
  transition: opacity var(--dur-reveal) var(--ease-out), transform var(--dur-reveal) var(--ease-out);
}
.animate-in.d1 { transition-delay: .1s; }
.animate-in.d2 { transition-delay: .2s; }
.animate-in.d3 { transition-delay: .3s; }
.animate-in.d4 { transition-delay: .4s; }
.animate-in.visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .animate-in { transform: none; }
  .hero-anim { animation: none !important; opacity: 1 !important; }
}

@media (max-width: 768px) {
  .hide-mob { display: none !important; }
  .show-mob { display: flex !important; }
}
@media (min-width: 769px) {
  .show-mob { display: none !important; }
}

.courses-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
@media (max-width: 1100px) { .courses-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 580px)  { .courses-grid { grid-template-columns: 1fr; } }

.sedes-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
@media (max-width: 1024px) { .sedes-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 580px)  { .sedes-grid { grid-template-columns: 1fr; } }

.benefits-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px; }
@media (max-width: 1024px) { .benefits-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 580px)  { .benefits-grid { grid-template-columns: 1fr; } }

.blog-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; }
@media (max-width: 900px) { .blog-grid { grid-template-columns: 1fr; } }

.franq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: start; }
@media (max-width: 900px) { .franq-grid { grid-template-columns: 1fr; gap: 40px; } }

.franq-bens { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }

.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px; }
@media (max-width: 900px) { .footer-grid { grid-template-columns: 1fr 1fr; gap: 28px; } }
@media (max-width: 580px) { .footer-grid { grid-template-columns: 1fr; gap: 24px; } }

.nav-link { color: rgba(255,255,255,.88); font-size: 14px; font-weight: 500; transition: color var(--dur-fast) ease; }
.nav-link:hover { color: #F97316 !important; }

.ccard { transition: transform var(--dur-ui) var(--ease-out), box-shadow var(--dur-ui) var(--ease-out); }
.scard { transition: transform var(--dur-ui) var(--ease-out); }
.bcard { transition: transform var(--dur-ui) var(--ease-out); }
@media (hover: hover) and (pointer: fine) {
  .ccard:hover { transform: translateY(-6px); box-shadow: 0 20px 48px rgba(0,0,0,.13) !important; }
  .scard:hover { transform: translateY(-5px); }
  .bcard:hover { transform: translateY(-4px); }
}
.tabBtn { transition: background var(--dur-ui) ease, transform var(--dur-fast) var(--ease-out); }
.tabBtn:active { transform: scale(.97); }
@media (hover: hover) and (pointer: fine) { .tabBtn:hover { transform: scale(1.04); } }
.btnWa { background: #25D366; color: white; transition: opacity var(--dur-ui) ease, transform var(--dur-fast) var(--ease-out); }
.btnWa:active { transform: scale(.97); }
.btnOrange { background: #F97316; color: white; transition: opacity var(--dur-ui) ease, transform var(--dur-fast) var(--ease-out); }
.btnOrange:active { transform: scale(.97); }
@media (hover: hover) and (pointer: fine) {
  .btnWa:hover { opacity: .9; transform: translateY(-1px); }
  .btnOrange:hover { opacity: .88; transform: translateY(-1px); }
}
.wa-float { animation: waPulse 2.5s ease-in-out 6; transition: transform var(--dur-fast) var(--ease-out); }
.wa-float:active { transform: scale(1.05) !important; }
@media (hover: hover) and (pointer: fine) { .wa-float:hover { transform: scale(1.12) !important; } }

.form-inp {
  width: 100%; padding: 13px 16px;
  border: 2px solid rgba(255,255,255,.18); border-radius: 10px;
  font-family: 'Inter',sans-serif; font-size: 14px; color: white;
  background: rgba(255,255,255,.07); outline: none;
  transition: border-color var(--dur-fast) ease;
}
.form-inp::placeholder { color: rgba(255,255,255,.4); }
.form-inp:focus { border-color: #0D9488; }
.form-sel {
  width: 100%; padding: 13px 16px;
  border: 2px solid rgba(255,255,255,.18); border-radius: 10px;
  font-family: 'Inter',sans-serif; font-size: 14px; color: white;
  background: rgba(255,255,255,.07); outline: none;
  appearance: none; cursor: pointer; transition: border-color var(--dur-fast) ease;
}
.form-sel option { color: #1a1a1a; background: white; }
.form-sel:focus { border-color: #0D9488; }
.leer-mas { color: #0D9488; font-weight: 600; font-size: 13px; transition: color var(--dur-fast) ease; display: inline-flex; align-items: center; gap: 4px; }
.leer-mas:hover { color: #F97316; }
.hero-cta-outline { transition: background var(--dur-ui) ease, transform var(--dur-fast) var(--ease-out); }
.hero-cta-outline:active { transform: scale(.97); }
@media (hover: hover) and (pointer: fine) { .hero-cta-outline:hover { background: rgba(255,255,255,.1) !important; } }
/* Doble Comando */
.dc-grid { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:stretch; }
@media (max-width:900px) { .dc-grid { grid-template-columns:1fr; } }
/* Testimonials */
.test-columns { display:flex; justify-content:center; gap:20px; margin-top:44px; max-height:640px; overflow:hidden; -webkit-mask-image:linear-gradient(to bottom,transparent,black 12%,black 88%,transparent); mask-image:linear-gradient(to bottom,transparent,black 12%,black 88%,transparent); }
.test-col { width:320px; flex-shrink:0; display:flex; flex-direction:column; gap:20px; animation:testScroll linear infinite; will-change:transform; }
.test-col.c1 { animation-duration:22s; }
.test-col.c2 { animation-duration:27s; }
.test-col.c3 { animation-duration:24s; }
@keyframes testScroll { from { transform:translateY(0); } to { transform:translateY(-50%); } }
@media (max-width:900px) { .test-col.c2, .test-col.c3 { display:none; } }
@media (min-width:901px) and (max-width:1180px) { .test-col.c3 { display:none; } }
@media (prefers-reduced-motion: reduce) { .test-col { animation:none; } }
/* FAQ */
.faq-item { border-bottom:1px solid #E5E7EB; }
.faq-item:last-child { border-bottom:none; }
.faq-item summary { list-style:none; cursor:pointer; padding:20px 0; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary::marker { display:none; }
.faq-arrow { width:26px; height:26px; border-radius:50%; background:#F3F4F6; display:flex; align-items:center; justify-content:center; flex-shrink:0; transition:background var(--dur-ui) ease, transform var(--dur-ui) var(--ease-out); color:#374151; }
.faq-item[open] .faq-arrow { background:#1B4D3E; transform:rotate(180deg); color:white; }
.faq-body { padding-bottom:20px; }
@keyframes faqIn { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:none; } }
details[open] .faq-body { animation:faqIn .2s ease; }
/* Franchise form success swap */
@keyframes franqSuccessIn { from { opacity:0; transform:scale(.95); } to { opacity:1; transform:scale(1); } }
.franq-success-in { animation:franqSuccessIn var(--dur-ui) var(--ease-out) both; }
/* Alumnos — galería circular 3D */
.alumni-gallery-wrap { position:relative; width:100%; height:440px; display:flex; align-items:center; justify-content:center; perspective:1400px; }
.alumni-ring { position:relative; width:100%; height:100%; transform-style:preserve-3d; animation:alumniSpin 40s linear infinite; }
@keyframes alumniSpin { from { transform:rotateY(0deg); } to { transform:rotateY(360deg); } }
.alumni-gallery-wrap:hover .alumni-ring, .alumni-gallery-wrap:focus-within .alumni-ring { animation-play-state:paused; }
.alumni-card {
  position:absolute; top:50%; left:50%; width:200px; height:260px; margin-top:-130px; margin-left:-100px;
  border-radius:16px; overflow:hidden; backface-visibility:hidden;
  box-shadow:0 20px 45px rgba(0,0,0,.35); border:1px solid rgba(255,255,255,.12);
  transform:rotateY(calc(var(--i) * 40deg)) translateZ(400px);
}
.alumni-card img { width:100%; height:100%; object-fit:cover; display:block; }
.alumni-badge {
  position:absolute; left:0; right:0; bottom:0; padding:12px 14px;
  background:linear-gradient(to top, rgba(0,0,0,.75), transparent);
  color:white; font-family:'Inter',sans-serif; font-size:12.5px; font-weight:600;
}
@media (max-width:900px) {
  .alumni-gallery-wrap { height:300px; }
  .alumni-card { width:130px; height:170px; margin-top:-85px; margin-left:-65px; transform:rotateY(calc(var(--i) * 40deg)) translateZ(240px); }
  .alumni-badge { font-size:11px; padding:9px 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .alumni-ring { animation:none; }
}

/* ═══ Páginas de sede ═══ */
.sede-hero { position:relative; padding:150px 28px 64px; background:linear-gradient(155deg,#0b2a17 0%,#1B4D3E 55%,#091e11 100%); overflow:hidden; }
.sede-hero::before { content:''; position:absolute; bottom:-60px; left:50%; transform:translateX(-50%); width:700px; height:400px; background:radial-gradient(ellipse,rgba(13,148,136,.22) 0%,transparent 65%); border-radius:50%; pointer-events:none; }
.breadcrumb { font-family:'Inter',sans-serif; font-size:12.5px; color:rgba(255,255,255,.5); display:flex; align-items:center; gap:6px; }
.breadcrumb a { color:rgba(255,255,255,.7); transition:color var(--dur-fast) ease; }
.breadcrumb a:hover { color:#F97316; }
.sede-photo-frame { border-radius:20px; overflow:hidden; box-shadow:0 20px 50px rgba(0,0,0,.3); }
.sede-photo-frame img { width:100%; height:100%; object-fit:cover; display:block; }
.map-frame { border-radius:20px; overflow:hidden; box-shadow:0 8px 32px rgba(0,0,0,.1); border:1px solid #E5E7EB; }
.map-frame iframe { width:100%; height:100%; border:0; display:block; }
.sede-gallery-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media (max-width:700px) { .sede-gallery-grid { grid-template-columns:1fr; } }

.sede-link { transition: color var(--dur-fast) ease, border-color var(--dur-fast) ease; }
.sede-link:hover { color: #F97316 !important; border-color: #F97316 !important; }
