:root{
  --azul:#0b3d78;
  --azul2:#061f3f;
  --azul3:#0f5fa8;
  --dorado:#d8a528;
  --gris:#f4f7fb;
  --texto:#1f2937;
  --muted:#64748b;
  --white:#ffffff;
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  font-family:'Open Sans',sans-serif;
  color:var(--texto);
  background:#fff;
  overflow-x:hidden;
}

h1,h2,h3,h4,h5,h6,.navbar-brand{
  font-family:'Poppins',sans-serif;
}

a{
  text-decoration:none !important;
}

img{
  max-width:100%;
}

/* TOPBAR */
.topbar{
  background:linear-gradient(90deg,var(--azul2),var(--azul));
  color:#fff;
  font-size:14px;
  padding:8px 0;
}

.topbar i{
  color:var(--dorado);
}

/* NAVBAR */
.navbar{
  background:#fff;
  min-height:78px;
  padding:10px 0;
  box-shadow:0 8px 24px rgba(15,61,117,.10);
  z-index:1050;
}

.navbar.scrolled{
  box-shadow:0 12px 32px rgba(15,61,117,.18);
}

.navbar-brand{
  font-weight:900;
  color:var(--azul)!important;
  font-size:17px;
  display:flex;
  align-items:center;
  gap:10px;
}

.navbar-brand img{
  width:48px;
  height:48px;
  object-fit:contain;
}

.navbar-nav{
  align-items:center;
}

.nav-link{
  color:#1e293b!important;
  font-weight:800;
  font-size:15px;
  padding:10px 9px!important;
}

.nav-link:hover{
  color:var(--azul)!important;
}

.dropdown-menu{
  border:0;
  border-radius:16px;
  padding:10px;
  box-shadow:0 18px 45px rgba(0,0,0,.15);
}

.dropdown-item{
  font-weight:700;
  border-radius:10px;
  padding:10px 14px;
}

.dropdown-item:hover{
  background:#eaf3ff;
  color:var(--azul);
}

/* HERO */
.hero{
  position:relative;
  min-height:720px;
  display:flex;
  align-items:center;
  color:#fff;
  overflow:hidden;
  background:
    linear-gradient(90deg,rgba(6,31,63,.95),rgba(11,61,120,.78),rgba(11,61,120,.30)),
    url('/assets/img/hero/hero-banner.png') center center / cover no-repeat;
}

.hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:radial-gradient(circle at 20% 20%,rgba(216,165,40,.18),transparent 28%);
  z-index:1;
}

.hero::after{
  content:"";
  position:absolute;
  bottom:-1px;
  left:0;
  width:100%;
  height:90px;
  background:linear-gradient(0deg,#fff,transparent);
  z-index:1;
}

.hero-content{
  position:relative;
  z-index:2;
}

.hero h1{
  font-size:clamp(2.4rem,5vw,4.7rem);
  line-height:1.05;
  font-weight:900;
  color:#fff;
  letter-spacing:-1px;
}

.hero p{
  font-size:1.08rem;
  color:#eef6ff;
  max-width:760px;
}

.badge-proceso{
  display:inline-flex;
  align-items:center;
  gap:8px;
  background:rgba(216,165,40,.18);
  border:1px solid rgba(216,165,40,.85);
  color:#fff;
  padding:10px 18px;
  border-radius:999px;
  font-weight:800;
}

.btn-main{
  background:var(--dorado)!important;
  color:#111!important;
  border:0!important;
  border-radius:999px;
  padding:13px 24px;
  font-weight:900;
  transition:.25s ease;
}

.btn-main:hover{
  background:#c49320!important;
  transform:translateY(-3px);
}

.btn-glass{
  color:#fff!important;
  border:2px solid rgba(255,255,255,.85)!important;
  border-radius:999px;
  padding:12px 24px;
  font-weight:900;
  background:rgba(255,255,255,.08);
}

.btn-glass:hover{
  background:#fff;
  color:var(--azul)!important;
}

.hero-panel{
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.25);
  backdrop-filter:blur(16px);
  border-radius:30px;
  padding:28px;
  box-shadow:0 25px 60px rgba(0,0,0,.25);
}

.hero-mini{
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:16px;
  border-radius:18px;
  background:rgba(255,255,255,.13);
  margin-bottom:14px;
}

.hero-mini i{
  color:var(--dorado);
  font-size:1.55rem;
}

.hero-mini strong,
.hero-mini p{
  color:#fff;
}

/* QUICK ACCESS */
.quick-access{
  position:relative;
  z-index:5;
  margin-top:-60px;
}

.quick-card{
  display:block;
  height:100%;
  background:#fff;
  border-radius:24px;
  padding:28px 20px;
  text-align:center;
  color:var(--azul);
  box-shadow:0 18px 45px rgba(15,61,117,.16);
  border:1px solid #e8eef7;
  transition:.25s ease;
}

.quick-card i{
  font-size:34px;
  color:var(--azul);
}

.quick-card h6{
  color:var(--azul);
  font-weight:900;
}

.quick-card:hover{
  transform:translateY(-8px);
  background:linear-gradient(135deg,var(--azul),var(--azul2));
  color:#fff;
}

.quick-card:hover i,
.quick-card:hover h6{
  color:#fff;
}

/* NOTICE */
.notice-strip{
  background:linear-gradient(90deg,var(--dorado),#f4ce62);
  color:#111;
  font-weight:900;
  padding:14px 0;
}

/* SECTIONS */
.section{
  padding:90px 0;
}

.bg-soft{
  background:var(--gris);
}

.title-pill{
  display:inline-flex;
  align-items:center;
  gap:7px;
  background:#e9f3ff;
  color:var(--azul);
  border-radius:999px;
  padding:8px 16px;
  font-size:14px;
  font-weight:800;
  margin-bottom:14px;
}

.section-title{
  color:var(--azul);
  font-weight:900;
  font-size:clamp(2rem,4vw,2.7rem);
  margin-bottom:12px;
}

.section-subtitle{
  max-width:880px;
  margin:0 auto 45px;
  color:var(--muted);
  line-height:1.7;
}

/* CARDS */
.info-card,
.service-card,
.news-card,
.content-card{
  background:#fff;
  border-radius:26px;
  padding:32px;
  height:100%;
  border:1px solid #e8eef7;
  box-shadow:0 14px 36px rgba(15,61,117,.09);
  transition:.25s ease;
  color:var(--texto);
}

.info-card:hover,
.service-card:hover,
.news-card:hover,
.content-card:hover{
  transform:translateY(-7px);
  box-shadow:0 22px 52px rgba(15,61,117,.16);
}

.icon-box{
  width:64px;
  height:64px;
  border-radius:20px;
  display:grid;
  place-items:center;
  color:#fff;
  background:linear-gradient(135deg,var(--azul),var(--azul3));
  font-size:1.75rem;
  margin-bottom:18px;
}

/* PROGRAM CARDS */
.program-card{
  background:#fff;
  border-radius:26px;
  overflow:hidden;
  height:100%;
  border:1px solid #e8eef7;
  box-shadow:0 14px 36px rgba(15,61,117,.10);
  transition:.25s ease;
}

.program-card:hover{
  transform:translateY(-7px);
  box-shadow:0 24px 58px rgba(15,61,117,.18);
}

.program-img{
  position:relative;
  height:245px;
  width:100%;
  overflow:hidden;
}

.program-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
  transition:.45s ease;
}

.program-card:hover .program-img img{
  transform:scale(1.07);
}

.program-img::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(0deg,rgba(6,31,63,.68),transparent 60%);
}

.program-icon{
  position:absolute;
  left:20px;
  bottom:20px;
  z-index:2;
  width:58px;
  height:58px;
  border-radius:18px;
  background:var(--dorado);
  color:#111;
  display:grid;
  place-items:center;
  font-size:1.6rem;
}

.program-body{
  padding:28px;
}

.program-body h4{
  color:var(--azul);
  font-weight:900;
  margin-bottom:12px;
}

.program-body p{
  color:#475569;
  line-height:1.65;
}

.program-link{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--azul);
  font-weight:900;
}

.program-link:hover{
  color:var(--dorado);
}

/* STATUS */
.status-box{
  background:
    radial-gradient(circle at top right,rgba(216,165,40,.25),transparent 26%),
    linear-gradient(135deg,var(--azul),var(--azul2));
  color:#fff;
  border-radius:30px;
  padding:44px;
  box-shadow:0 24px 55px rgba(7,31,61,.25);
}

.status-box h2,
.status-box h3,
.status-box p{
  color:#fff;
}

.counter-box{
  background:#fff;
  border-radius:22px;
  padding:26px 18px;
  text-align:center;
  color:var(--texto);
}

.counter{
  font-size:2.4rem;
  font-weight:900;
  color:var(--azul);
}

/* TIMELINE */
.timeline-item{
  position:relative;
  padding-left:34px;
  margin-bottom:26px;
}

.timeline-item::before{
  content:"";
  position:absolute;
  left:0;
  top:4px;
  width:18px;
  height:18px;
  border-radius:50%;
  background:var(--dorado);
  box-shadow:0 0 0 7px rgba(216,165,40,.20);
}

.timeline-item::after{
  content:"";
  position:absolute;
  left:8px;
  top:28px;
  width:2px;
  height:calc(100% + 8px);
  background:#dce4ee;
}

.timeline-item:last-child::after{
  display:none;
}

/* FORMS */
.contact-card{
  background:#fff;
  border-radius:30px;
  padding:34px;
  border:1px solid #e8eef7;
  box-shadow:0 20px 55px rgba(15,61,117,.14);
}

.form-control,
.form-select{
  border-radius:14px;
  padding:14px 16px;
  border:1px solid #d9e2ef;
}

.form-control:focus,
.form-select:focus{
  border-color:var(--azul);
  box-shadow:0 0 0 .25rem rgba(15,61,117,.12);
}

/* FAQ */
.accordion-item{
  border:1px solid #dce4ef;
}

.accordion-button{
  font-weight:800;
  color:var(--azul);
}

.accordion-button:not(.collapsed){
  background:#e9f3ff;
  color:var(--azul);
}

/* FOOTER */
footer{
  background:
    radial-gradient(circle at 20% 0%,rgba(14,165,233,.18),transparent 28%),
    linear-gradient(135deg,#071f3d,#04162c);
  color:#dbeafe;
  padding:65px 0 22px;
}

footer p,
footer a{
  color:#dbeafe;
}

footer a{
  display:block;
  margin-bottom:9px;
  transition:.2s ease;
}

footer a:hover{
  color:#fff;
  transform:translateX(4px);
}

.footer-title{
  color:#fff;
  font-weight:900;
  margin-bottom:18px;
}

.apontech{
  border-top:1px solid rgba(255,255,255,.15);
  margin-top:36px;
  padding-top:18px;
  text-align:center;
  color:#fff;
}

/* FLOAT BUTTONS */
.float-actions{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:999;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.float-btn{
  width:52px;
  height:52px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--azul);
  color:#fff;
  box-shadow:0 14px 32px rgba(0,0,0,.25);
}

.float-btn.gold{
  background:var(--dorado);
  color:#111;
}

/* RESPONSIVE */
@media(min-width:992px){
  .dropdown:hover .dropdown-menu{
    display:block;
  }
}

@media(max-width:991px){
  .topbar{
    text-align:center;
  }

  .navbar-brand img{
    width:44px;
    height:44px;
  }

  .hero{
    min-height:auto;
    padding:90px 0 120px;
    text-align:center;
    background:
      linear-gradient(180deg,rgba(6,31,63,.96),rgba(11,61,120,.80)),
      url('/assets/img/hero/hero-banner.png') center center / cover no-repeat;
  }

  .hero p{
    margin-left:auto;
    margin-right:auto;
  }

  .hero-panel{
    margin-top:30px;
  }

  .quick-access{
    margin-top:-45px;
  }

  .section{
    padding:70px 0;
  }

  .program-img{
    height:220px;
  }
}

@media(max-width:575px){
  .topbar{
    font-size:12px;
  }

  .navbar-brand span{
    font-size:15px;
  }

  .hero h1{
    font-size:2.2rem;
  }

  .program-img{
    height:210px;
  }

  .status-box,
  .contact-card{
    padding:28px;
  }
}
/* ===== MOVIMIENTO E INTERACCI脫N PROFESIONAL ===== */

.hero{
  animation:heroZoom 14s ease-in-out infinite alternate;
}

@keyframes heroZoom{
  from{background-size:100%}
  to{background-size:108%}
}

.badge-proceso{
  animation:pulseBadge 2.5s infinite;
}

@keyframes pulseBadge{
  0%{box-shadow:0 0 0 0 rgba(216,165,40,.45)}
  70%{box-shadow:0 0 0 14px rgba(216,165,40,0)}
  100%{box-shadow:0 0 0 0 rgba(216,165,40,0)}
}

.hero-panel{
  animation:floatPanel 4s ease-in-out infinite;
}

@keyframes floatPanel{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-12px)}
}

.hero-mini,
.info-card,
.program-card,
.service-card,
.news-card,
.quick-card{
  cursor:pointer;
}

.hero-mini:hover{
  transform:translateX(10px) scale(1.02);
}

.info-card:hover .icon-box,
.service-card:hover .icon-box,
.news-card:hover .icon-box{
  transform:rotate(-6deg) scale(1.08);
}

.icon-box{
  transition:.3s ease;
}

.btn-main,
.btn-glass{
  position:relative;
  overflow:hidden;
}

.btn-main::after,
.btn-glass::after{
  content:"";
  position:absolute;
  top:0;
  left:-100%;
  width:70%;
  height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);
  transform:skewX(-20deg);
  transition:.6s;
}

.btn-main:hover::after,
.btn-glass:hover::after{
  left:130%;
}

.program-card:hover .program-icon{
  animation:bounceIcon .55s ease;
}

@keyframes bounceIcon{
  0%{transform:scale(1)}
  45%{transform:scale(1.18)}
  100%{transform:scale(1)}
}

.quick-card{
  position:relative;
  overflow:hidden;
}

.quick-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(135deg,rgba(216,165,40,.18),transparent);
  opacity:0;
  transition:.3s;
}

.quick-card:hover::before{
  opacity:1;
}

.notice-strip{
  overflow:hidden;
}

.notice-strip marquee{
  letter-spacing:.3px;
}

.section-title{
  position:relative;
}

.section-title::after{
  content:"";
  display:block;
  width:80px;
  height:4px;
  border-radius:999px;
  background:var(--dorado);
  margin:14px auto 0;
}

.text-start .section-title::after,
.col-lg-6 .section-title::after{
  margin-left:0;
}

.float-btn{
  transition:.3s ease;
  animation:floatButton 2.2s ease-in-out infinite;
}

.float-btn:hover{
  transform:scale(1.12) translateY(-4px);
}

@keyframes floatButton{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-6px)}
}

.nav-link{
  position:relative;
}

.nav-link::after{
  content:"";
  position:absolute;
  left:8px;
  right:8px;
  bottom:4px;
  height:3px;
  border-radius:999px;
  background:var(--dorado);
  transform:scaleX(0);
  transition:.25s ease;
}

.nav-link:hover::after{
  transform:scaleX(1);
}

.dropdown-item{
  transition:.22s ease;
}

.dropdown-item:hover{
  transform:translateX(5px);
}

.counter{
  animation:counterGlow 2.5s infinite alternate;
}

@keyframes counterGlow{
  from{text-shadow:none}
  to{text-shadow:0 0 18px rgba(15,61,117,.25)}
}

.contact-card{
  transition:.3s ease;
}

.contact-card:hover{
  transform:translateY(-6px);
}

.form-control,
.form-select{
  transition:.25s ease;
}

.form-control:hover,
.form-select:hover{
  border-color:var(--azul);
}

/* entrada suave general */
[data-aos]{
  pointer-events:auto;
}

/* mejora m贸vil */
@media(max-width:575px){
  .hero{
    animation:none;
  }

  .hero-panel{
    animation:none;
  }
}:root{
  --sl-primary:#0ea5a4;
  --sl-primary-dark:#0b8a89;
  --sl-secondary:#0f172a;
  --sl-accent:#f59e0b;
  --sl-blue:#2563eb;
  --sl-bg:#f8fafc;
  --sl-soft:#eef9f9;
  --sl-white:#ffffff;
  --sl-text:#334155;
  --sl-muted:#64748b;
  --sl-border:rgba(15,23,42,.10);
  --sl-shadow:0 24px 70px rgba(15,23,42,.12);
  --sl-shadow-soft:0 16px 45px rgba(15,23,42,.10);
  --sl-radius:28px;
  --sl-transition:all .35s cubic-bezier(.2,.8,.2,1);
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  font-family:'Poppins','Segoe UI',sans-serif;
  color:var(--sl-text);
  background:var(--sl-bg);
  overflow-x:hidden;
}

a{
  text-decoration:none;
}

img{
  max-width:100%;
  display:block;
}

::selection{
  background:var(--sl-primary);
  color:#fff;
}

/* HERO */

.sl-hero{
  position:relative;
  min-height:100vh;
  overflow:hidden;
  color:#fff;
  background:#061827;
}

.sl-hero-bg{
  position:absolute;
  inset:0;
  background:
    linear-gradient(105deg,rgba(6,24,39,.96),rgba(8,47,73,.82),rgba(14,165,164,.25)),
    url('/assets/img/hero/hero-banner.png') center/cover no-repeat;
  transform:scale(1.04);
  animation:heroZoom 18s ease-in-out infinite alternate;
}

.sl-hero-grid{
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);
  background-size:70px 70px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.65),transparent);
  opacity:.28;
}

.sl-hero::before,
.sl-hero::after{
  content:"";
  position:absolute;
  width:440px;
  height:440px;
  border-radius:999px;
  filter:blur(35px);
  opacity:.32;
  pointer-events:none;
}

.sl-hero::before{
  background:var(--sl-primary);
  top:10%;
  right:8%;
  animation:floatOrb 9s ease-in-out infinite;
}

.sl-hero::after{
  background:var(--sl-blue);
  bottom:5%;
  left:4%;
  animation:floatOrb 11s ease-in-out infinite reverse;
}

.sl-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:10px 16px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  background:rgba(255,255,255,.10);
  backdrop-filter:blur(14px);
  color:#dffefe;
  font-weight:700;
  font-size:.88rem;
  margin-bottom:24px;
  box-shadow:0 10px 30px rgba(0,0,0,.12);
}

.sl-eyebrow span{
  width:9px;
  height:9px;
  border-radius:999px;
  background:#22c55e;
  box-shadow:0 0 0 8px rgba(34,197,94,.18);
}

.sl-hero-title{
  font-size:clamp(2.55rem,6vw,5.35rem);
  font-weight:900;
  letter-spacing:-.065em;
  line-height:.96;
  margin:0;
  max-width:960px;
}

.sl-hero-text{
  margin:26px 0 0;
  max-width:740px;
  font-size:1.12rem;
  line-height:1.85;
  color:rgba(255,255,255,.82);
}

.sl-hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:32px;
}

.sl-btn-primary,
.sl-btn-outline{
  border-radius:999px;
  padding:14px 24px;
  font-weight:800;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  transition:var(--sl-transition);
}

.sl-btn-primary{
  color:#fff!important;
  background:linear-gradient(135deg,var(--sl-primary),var(--sl-blue));
  border:0;
  box-shadow:0 15px 35px rgba(14,165,164,.32);
}

.sl-btn-primary:hover{
  transform:translateY(-4px);
  box-shadow:0 22px 50px rgba(14,165,164,.42);
}

.sl-btn-outline{
  color:#fff!important;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(255,255,255,.09);
  backdrop-filter:blur(12px);
}

.sl-btn-outline:hover{
  background:rgba(255,255,255,.18);
  transform:translateY(-4px);
}

.sl-hero-note{
  margin-top:28px;
  display:flex;
  align-items:flex-start;
  gap:12px;
  max-width:780px;
  color:#fde68a;
  font-size:.95rem;
  line-height:1.7;
}

.sl-hero-card{
  position:relative;
  padding:32px;
  border-radius:34px;
  background:linear-gradient(145deg,rgba(255,255,255,.18),rgba(255,255,255,.07));
  border:1px solid rgba(255,255,255,.20);
  backdrop-filter:blur(22px);
  box-shadow:0 30px 80px rgba(0,0,0,.28);
  overflow:hidden;
  transform-style:preserve-3d;
  animation:cardFloat 6s ease-in-out infinite;
}

.sl-hero-card-glow{
  position:absolute;
  width:220px;
  height:220px;
  border-radius:999px;
  background:rgba(14,165,164,.55);
  filter:blur(50px);
  right:-70px;
  top:-70px;
}

.sl-status-badge{
  position:relative;
  z-index:1;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 14px;
  border-radius:999px;
  background:rgba(14,165,164,.22);
  color:#ccfbf1;
  font-weight:800;
  margin-bottom:22px;
}

.sl-hero-card h3{
  position:relative;
  z-index:1;
  font-weight:900;
  letter-spacing:-.03em;
  font-size:1.75rem;
  margin-bottom:16px;
}

.sl-hero-card p{
  position:relative;
  z-index:1;
  color:rgba(255,255,255,.78);
  line-height:1.75;
}

.sl-mini-list{
  position:relative;
  z-index:1;
  display:grid;
  gap:13px;
  margin:24px 0;
}

.sl-mini-list div{
  display:flex;
  align-items:center;
  gap:10px;
  color:#f8fafc;
  font-weight:600;
}

.sl-mini-list i{
  color:#5eead4;
}

.sl-hero-kpis{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:14px;
}

.sl-hero-kpis div{
  padding:18px;
  border-radius:22px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
}

.sl-hero-kpis strong{
  display:block;
  font-size:2rem;
  line-height:1;
  color:#fff;
}

.sl-hero-kpis span{
  display:block;
  color:rgba(255,255,255,.70);
  font-size:.86rem;
  margin-top:6px;
}

.sl-scroll-indicator{
  position:absolute;
  left:50%;
  bottom:28px;
  transform:translateX(-50%);
  width:34px;
  height:54px;
  border:2px solid rgba(255,255,255,.45);
  border-radius:999px;
  display:flex;
  justify-content:center;
  padding-top:9px;
}

.sl-scroll-indicator span{
  width:6px;
  height:6px;
  border-radius:999px;
  background:#fff;
  animation:scrollDot 1.7s infinite;
}

/* QUICK */

.sl-quick{
  position:relative;
  z-index:5;
  margin-top:-52px;
}

.sl-quick-wrap{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
  padding:18px;
  border-radius:32px;
  background:rgba(255,255,255,.84);
  backdrop-filter:blur(18px);
  box-shadow:var(--sl-shadow);
  border:1px solid rgba(255,255,255,.65);
}

.sl-quick-card{
  min-height:120px;
  border-radius:24px;
  padding:22px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:12px;
  color:var(--sl-secondary);
  background:linear-gradient(180deg,#fff,#f8fafc);
  border:1px solid var(--sl-border);
  transition:var(--sl-transition);
  text-align:center;
}

.sl-quick-card i{
  width:48px;
  height:48px;
  border-radius:16px;
  display:grid;
  place-items:center;
  color:#fff;
  background:linear-gradient(135deg,var(--sl-primary),var(--sl-blue));
  font-size:1.25rem;
  box-shadow:0 14px 32px rgba(14,165,164,.25);
}

.sl-quick-card span{
  font-weight:800;
  font-size:.95rem;
}

.sl-quick-card:hover{
  transform:translateY(-8px);
  box-shadow:var(--sl-shadow-soft);
}

/* SECTIONS */

.sl-section{
  position:relative;
  padding:110px 0;
  overflow:hidden;
}

.sl-soft{
  background:
    radial-gradient(circle at 12% 18%,rgba(14,165,164,.12),transparent 32%),
    radial-gradient(circle at 85% 35%,rgba(37,99,235,.10),transparent 35%),
    #f8fbfb;
}

.sl-section-head{
  max-width:850px;
  margin:0 auto 58px;
}

.sl-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:9px 16px;
  border-radius:999px;
  background:rgba(14,165,164,.10);
  color:var(--sl-primary-dark);
  font-weight:900;
  font-size:.86rem;
  margin-bottom:18px;
}

.sl-section h2,
.sl-section-head h2,
.sl-stats h2,
.sl-contact h2{
  color:var(--sl-secondary);
  font-weight:900;
  letter-spacing:-.045em;
  font-size:clamp(2rem,4vw,3.35rem);
  margin-bottom:18px;
}

.sl-section-head p,
.sl-stats p,
.sl-contact p{
  color:var(--sl-muted);
  line-height:1.85;
  font-size:1.02rem;
}

/* TIMELINE */

.sl-timeline{
  position:relative;
  max-width:980px;
  margin:0 auto;
}

.sl-timeline::before{
  content:"";
  position:absolute;
  left:31px;
  top:20px;
  bottom:20px;
  width:3px;
  border-radius:999px;
  background:linear-gradient(var(--sl-primary),var(--sl-blue));
}

.sl-timeline-item{
  position:relative;
  display:grid;
  grid-template-columns:64px 1fr;
  gap:24px;
  margin-bottom:24px;
}

.sl-timeline-icon{
  position:relative;
  z-index:2;
  width:64px;
  height:64px;
  border-radius:22px;
  display:grid;
  place-items:center;
  color:#fff;
  background:linear-gradient(135deg,var(--sl-primary),var(--sl-blue));
  font-size:1.35rem;
  box-shadow:0 18px 40px rgba(14,165,164,.25);
}

.sl-timeline-content{
  padding:26px 28px;
  border-radius:26px;
  background:#fff;
  border:1px solid var(--sl-border);
  box-shadow:var(--sl-shadow-soft);
  transition:var(--sl-transition);
}

.sl-timeline-content:hover{
  transform:translateX(8px);
}

.sl-timeline-content span{
  display:block;
  color:var(--sl-primary-dark);
  font-size:.82rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  margin-bottom:8px;
}

.sl-timeline-content h4{
  color:var(--sl-secondary);
  font-weight:900;
  margin-bottom:8px;
}

.sl-timeline-content p{
  margin:0;
  color:var(--sl-muted);
  line-height:1.7;
}

/* FEATURE CARDS */

.sl-feature-card,
.sl-doc-card,
.sl-community-card,
.sl-contact-card,
.sl-stat-card{
  height:100%;
  border-radius:var(--sl-radius);
  background:#fff;
  border:1px solid var(--sl-border);
  box-shadow:var(--sl-shadow-soft);
  transition:var(--sl-transition);
}

.sl-feature-card{
  padding:34px;
}

.sl-feature-card:hover,
.sl-doc-card:hover,
.sl-community-card:hover,
.sl-stat-card:hover{
  transform:translateY(-10px);
  box-shadow:var(--sl-shadow);
}

.sl-icon{
  width:64px;
  height:64px;
  border-radius:22px;
  display:grid;
  place-items:center;
  color:#fff;
  background:linear-gradient(135deg,var(--sl-primary),var(--sl-blue));
  font-size:1.55rem;
  margin-bottom:24px;
  box-shadow:0 18px 40px rgba(14,165,164,.25);
}

.sl-feature-card h4{
  color:var(--sl-secondary);
  font-weight:900;
  margin-bottom:12px;
}

.sl-feature-card p{
  margin:0;
  color:var(--sl-muted);
  line-height:1.75;
}

/* PROGRAMAS */

.sl-program-card{
  height:100%;
  border-radius:30px;
  background:#fff;
  overflow:hidden;
  border:1px solid var(--sl-border);
  box-shadow:var(--sl-shadow-soft);
  transition:var(--sl-transition);
}

.sl-program-card:hover{
  transform:translateY(-12px);
  box-shadow:var(--sl-shadow);
}

.sl-program-img{
  position:relative;
  height:245px;
  overflow:hidden;
}

.sl-program-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .7s ease;
}

.sl-program-card:hover .sl-program-img img{
  transform:scale(1.12);
}

.sl-program-layer{
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(15,23,42,.75),transparent 65%);
}

.sl-program-icon{
  position:absolute;
  left:24px;
  bottom:22px;
  width:58px;
  height:58px;
  border-radius:20px;
  display:grid;
  place-items:center;
  color:#fff;
  background:linear-gradient(135deg,var(--sl-primary),var(--sl-blue));
  font-size:1.45rem;
  box-shadow:0 16px 35px rgba(0,0,0,.25);
}

.sl-program-body{
  padding:28px;
}

.sl-program-body span{
  display:inline-flex;
  padding:7px 12px;
  border-radius:999px;
  background:rgba(245,158,11,.13);
  color:#92400e;
  font-weight:900;
  font-size:.78rem;
  margin-bottom:14px;
}

.sl-program-body h4{
  color:var(--sl-secondary);
  font-weight:900;
  margin-bottom:12px;
  letter-spacing:-.02em;
}

.sl-program-body p{
  color:var(--sl-muted);
  line-height:1.75;
  min-height:105px;
}

.sl-program-body a{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--sl-primary-dark);
  font-weight:900;
}

.sl-program-body a i{
  transition:var(--sl-transition);
}

.sl-program-body a:hover i{
  transform:translateX(6px);
}

/* STATS */

.sl-stats{
  background:
    linear-gradient(135deg,rgba(15,23,42,.96),rgba(8,47,73,.92)),
    radial-gradient(circle at top right,rgba(14,165,164,.35),transparent 35%);
  color:#fff;
}

.sl-stats h2,
.sl-stats p{
  color:#fff;
}

.sl-stats .sl-pill{
  background:rgba(255,255,255,.10);
  color:#ccfbf1;
}

.sl-stat-card{
  padding:32px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.16);
  backdrop-filter:blur(16px);
  color:#fff;
}

.sl-stat-card strong{
  display:block;
  font-size:3rem;
  font-weight:900;
  line-height:1;
}

.sl-stat-card span{
  display:block;
  margin-top:10px;
  color:rgba(255,255,255,.75);
  font-weight:700;
}

.sl-stat-note{
  margin-top:30px;
  color:rgba(255,255,255,.65);
  font-size:.9rem;
}

/* DOCS */

.sl-doc-card{
  display:block;
  padding:34px;
  color:var(--sl-secondary);
}

.sl-doc-card > i{
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
  border-radius:22px;
  color:#fff;
  background:linear-gradient(135deg,var(--sl-primary),var(--sl-blue));
  font-size:1.5rem;
  margin-bottom:24px;
}

.sl-doc-card h4{
  font-weight:900;
  margin-bottom:12px;
}

.sl-doc-card p{
  color:var(--sl-muted);
  line-height:1.7;
}

.sl-doc-card span{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--sl-primary-dark);
  font-weight:900;
}

/* ECOSYSTEM */

.sl-ecosystem{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:18px;
}

.sl-eco-card{
  position:relative;
  min-height:250px;
  padding:28px;
  border-radius:28px;
  color:#fff;
  background:
    linear-gradient(145deg,rgba(15,23,42,.94),rgba(14,165,164,.78)),
    radial-gradient(circle at top right,rgba(255,255,255,.18),transparent 35%);
  box-shadow:var(--sl-shadow-soft);
  transition:var(--sl-transition);
  overflow:hidden;
}

.sl-eco-card::after{
  content:"";
  position:absolute;
  width:130px;
  height:130px;
  border-radius:999px;
  background:rgba(255,255,255,.11);
  right:-40px;
  bottom:-40px;
  transition:var(--sl-transition);
}

.sl-eco-card:hover{
  transform:translateY(-10px) scale(1.02);
}

.sl-eco-card:hover::after{
  transform:scale(1.5);
}

.sl-eco-card div{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:20px;
  background:rgba(255,255,255,.14);
  backdrop-filter:blur(12px);
  margin-bottom:26px;
}

.sl-eco-card i{
  font-size:1.55rem;
}

.sl-eco-card h4{
  font-weight:900;
  margin-bottom:12px;
}

.sl-eco-card p{
  color:rgba(255,255,255,.78);
  line-height:1.65;
  margin:0;
}

/* COMMUNITY */

.sl-community-card{
  display:block;
  padding:32px;
  color:var(--sl-secondary);
}

.sl-community-card i{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:20px;
  color:#fff;
  background:linear-gradient(135deg,var(--sl-primary),var(--sl-blue));
  margin-bottom:22px;
  font-size:1.35rem;
}

.sl-community-card h4{
  font-weight:900;
  margin-bottom:10px;
}

.sl-community-card p{
  color:var(--sl-muted);
  line-height:1.65;
}

.sl-community-card span{
  display:inline-flex;
  padding:7px 12px;
  border-radius:999px;
  background:rgba(37,99,235,.10);
  color:var(--sl-blue);
  font-weight:900;
  font-size:.78rem;
}

/* FAQ */

.sl-faq .accordion-item{
  border:0;
  margin-bottom:14px;
  border-radius:22px;
  overflow:hidden;
  box-shadow:var(--sl-shadow-soft);
}

.sl-faq .accordion-button{
  padding:22px 24px;
  font-weight:900;
  color:var(--sl-secondary);
  box-shadow:none;
}

.sl-faq .accordion-button:not(.collapsed){
  background:linear-gradient(135deg,rgba(14,165,164,.12),rgba(37,99,235,.10));
  color:var(--sl-primary-dark);
}

.sl-faq .accordion-body{
  padding:0 24px 24px;
  color:var(--sl-muted);
  line-height:1.75;
}

/* CONTACT */

.sl-contact{
  background:
    radial-gradient(circle at 15% 20%,rgba(14,165,164,.12),transparent 30%),
    #fff;
}

.sl-contact-list{
  display:grid;
  gap:16px;
  margin-top:28px;
}

.sl-contact-list div{
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:18px;
  border-radius:22px;
  background:#fff;
  border:1px solid var(--sl-border);
  box-shadow:0 12px 35px rgba(15,23,42,.06);
}

.sl-contact-list i{
  color:var(--sl-primary-dark);
  font-size:1.25rem;
}

.sl-contact-card{
  padding:34px;
}

.sl-contact-card h3{
  color:var(--sl-secondary);
  font-weight:900;
  margin-bottom:8px;
}

.sl-contact-card p{
  color:var(--sl-muted);
}

.sl-contact-card .form-control,
.sl-contact-card .form-select{
  min-height:54px;
  border-radius:16px;
  border:1px solid var(--sl-border);
  padding:13px 16px;
  box-shadow:none;
}

.sl-contact-card textarea.form-control{
  min-height:130px;
}

.sl-contact-card .form-control:focus,
.sl-contact-card .form-select:focus{
  border-color:var(--sl-primary);
  box-shadow:0 0 0 .25rem rgba(14,165,164,.14);
}

.sl-form-alert{
  margin-top:18px;
  display:flex;
  gap:10px;
  padding:16px;
  border-radius:18px;
  background:rgba(245,158,11,.12);
  color:#92400e;
  font-weight:700;
  line-height:1.55;
}

/* FINAL NOTICE */

.sl-final-notice{
  padding:60px 0 100px;
  background:#fff;
}

.sl-final-box{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  padding:34px;
  border-radius:32px;
  background:linear-gradient(135deg,#0f172a,#0b8a89);
  color:#fff;
  box-shadow:var(--sl-shadow);
}

.sl-final-box h3{
  font-weight:900;
  margin-bottom:10px;
}

.sl-final-box p{
  color:rgba(255,255,255,.78);
  line-height:1.75;
  margin:0;
  max-width:860px;
}

/* BACK TOP */

.sl-backtop{
  position:fixed;
  right:22px;
  bottom:22px;
  width:48px;
  height:48px;
  border-radius:999px;
  border:0;
  display:grid;
  place-items:center;
  color:#fff;
  background:linear-gradient(135deg,var(--sl-primary),var(--sl-blue));
  box-shadow:0 16px 35px rgba(14,165,164,.32);
  opacity:0;
  visibility:hidden;
  transform:translateY(14px);
  transition:var(--sl-transition);
  z-index:999;
}

.sl-backtop.show{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
}

/* ANIMATIONS */

@keyframes heroZoom{
  from{transform:scale(1.04);}
  to{transform:scale(1.10);}
}

@keyframes floatOrb{
  0%,100%{transform:translate3d(0,0,0);}
  50%{transform:translate3d(24px,-28px,0);}
}

@keyframes cardFloat{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-14px);}
}

@keyframes scrollDot{
  0%{opacity:1;transform:translateY(0);}
  100%{opacity:0;transform:translateY(24px);}
}

/* RESPONSIVE */

@media (max-width:1199px){
  .sl-ecosystem{
    grid-template-columns:repeat(3,1fr);
  }
}

@media (max-width:991px){
  .sl-hero{
    min-height:auto;
  }

  .sl-hero .min-vh-100{
    min-height:auto!important;
    padding-top:130px!important;
    padding-bottom:120px!important;
  }

  .sl-quick-wrap{
    grid-template-columns:repeat(2,1fr);
  }

  .sl-ecosystem{
    grid-template-columns:repeat(2,1fr);
  }

  .sl-final-box{
    flex-direction:column;
    align-items:flex-start;
  }
}

@media (max-width:575px){
  .sl-section{
    padding:78px 0;
  }

  .sl-hero-title{
    font-size:2.45rem;
  }

  .sl-hero-text{
    font-size:1rem;
  }

  .sl-hero-card{
    padding:24px;
    border-radius:28px;
  }

  .sl-quick{
    margin-top:-35px;
  }

  .sl-quick-wrap{
    grid-template-columns:1fr;
    padding:14px;
  }

  .sl-timeline::before{
    left:24px;
  }

  .sl-timeline-item{
    grid-template-columns:50px 1fr;
    gap:16px;
  }

  .sl-timeline-icon{
    width:50px;
    height:50px;
    border-radius:18px;
  }

  .sl-timeline-content{
    padding:22px;
  }

  .sl-ecosystem{
    grid-template-columns:1fr;
  }

  .sl-program-img{
    height:220px;
  }

  .sl-hero-actions .btn{
    width:100%;
  }
}


/* PROCESO DE AUTORIZACIÓN INSTITUCIONAL */

.sl-auth-hero{
  position:relative;
  overflow:hidden;
  padding:130px 0 90px;
  background:
    radial-gradient(circle at 80% 15%,rgba(14,165,164,.20),transparent 32%),
    radial-gradient(circle at 10% 25%,rgba(37,99,235,.16),transparent 35%),
    linear-gradient(135deg,#f8fafc,#eef9f9);
}

.sl-auth-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(15,23,42,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(15,23,42,.05) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.55),transparent);
}

.sl-auth-hero h1{
  position:relative;
  z-index:1;
  color:var(--sl-secondary);
  font-size:clamp(2.6rem,5vw,5rem);
  font-weight:900;
  letter-spacing:-.06em;
  line-height:.98;
  margin-bottom:24px;
}

.sl-auth-hero p{
  position:relative;
  z-index:1;
  color:var(--sl-muted);
  font-size:1.08rem;
  line-height:1.85;
  max-width:780px;
}

.sl-auth-actions{
  position:relative;
  z-index:1;
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:30px;
}

.sl-btn-outline-dark{
  border-radius:999px;
  padding:14px 24px;
  font-weight:900;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  color:var(--sl-secondary)!important;
  background:#fff;
  border:1px solid rgba(15,23,42,.10);
  box-shadow:0 14px 34px rgba(15,23,42,.08);
  transition:var(--sl-transition);
}

.sl-btn-outline-dark:hover{
  transform:translateY(-4px);
  color:var(--sl-primary-dark)!important;
}

.sl-auth-warning{
  position:relative;
  z-index:1;
  margin-top:26px;
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:18px;
  border-radius:22px;
  background:rgba(245,158,11,.12);
  border:1px solid rgba(245,158,11,.22);
  color:#92400e;
  font-weight:700;
  line-height:1.65;
  max-width:780px;
}

.sl-auth-panel{
  position:relative;
  z-index:1;
  padding:34px;
  border-radius:34px;
  background:rgba(255,255,255,.78);
  backdrop-filter:blur(20px);
  border:1px solid rgba(255,255,255,.75);
  box-shadow:var(--sl-shadow);
  overflow:hidden;
}

.sl-auth-panel::after{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  right:-80px;
  top:-80px;
  border-radius:999px;
  background:rgba(14,165,164,.18);
  filter:blur(25px);
}

.sl-auth-panel-icon{
  position:relative;
  z-index:1;
  width:74px;
  height:74px;
  border-radius:24px;
  display:grid;
  place-items:center;
  color:#fff;
  background:linear-gradient(135deg,var(--sl-primary),var(--sl-blue));
  font-size:1.8rem;
  box-shadow:0 18px 40px rgba(14,165,164,.28);
  margin-bottom:24px;
}

.sl-auth-panel h3{
  position:relative;
  z-index:1;
  color:var(--sl-secondary);
  font-weight:900;
  letter-spacing:-.035em;
  margin-bottom:14px;
}

.sl-auth-panel p{
  position:relative;
  z-index:1;
  color:var(--sl-muted);
  line-height:1.75;
}

.sl-auth-status-list{
  position:relative;
  z-index:1;
  display:grid;
  gap:14px;
  margin-top:24px;
}

.sl-auth-status-list div{
  display:flex;
  align-items:center;
  gap:12px;
  padding:15px;
  border-radius:18px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  font-weight:800;
  color:var(--sl-secondary);
}

.sl-auth-status-list span{
  width:10px;
  height:10px;
  border-radius:999px;
  background:#22c55e;
  box-shadow:0 0 0 7px rgba(34,197,94,.12);
  flex:0 0 auto;
}

.sl-auth-summary{
  margin-top:-36px;
  position:relative;
  z-index:5;
}

.sl-auth-summary-card{
  height:100%;
  padding:28px;
  border-radius:28px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:var(--sl-shadow-soft);
  transition:var(--sl-transition);
}

.sl-auth-summary-card:hover{
  transform:translateY(-8px);
  box-shadow:var(--sl-shadow);
}

.sl-auth-summary-card i{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:20px;
  color:#fff;
  background:linear-gradient(135deg,var(--sl-primary),var(--sl-blue));
  font-size:1.45rem;
  margin-bottom:20px;
}

.sl-auth-summary-card h4{
  color:var(--sl-secondary);
  font-weight:900;
  margin-bottom:10px;
}

.sl-auth-summary-card p{
  color:var(--sl-muted);
  line-height:1.7;
  margin:0;
}

.sl-auth-timeline{
  position:relative;
  display:grid;
  gap:20px;
  max-width:980px;
  margin:0 auto;
}

.sl-auth-timeline::before{
  content:"";
  position:absolute;
  top:35px;
  bottom:35px;
  left:32px;
  width:3px;
  border-radius:999px;
  background:linear-gradient(var(--sl-primary),var(--sl-blue));
}

.sl-auth-step{
  position:relative;
  display:grid;
  grid-template-columns:64px 1fr;
  gap:24px;
}

.sl-auth-step-number{
  position:relative;
  z-index:2;
  width:64px;
  height:64px;
  border-radius:22px;
  display:grid;
  place-items:center;
  color:#fff;
  font-weight:900;
  background:linear-gradient(135deg,var(--sl-primary),var(--sl-blue));
  box-shadow:0 18px 40px rgba(14,165,164,.26);
}

.sl-auth-step-content{
  display:flex;
  gap:20px;
  padding:26px;
  border-radius:28px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:var(--sl-shadow-soft);
  transition:var(--sl-transition);
}

.sl-auth-step-content:hover{
  transform:translateX(8px);
  box-shadow:var(--sl-shadow);
}

.sl-auth-step-icon{
  width:58px;
  height:58px;
  border-radius:20px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  background:rgba(14,165,164,.10);
  color:var(--sl-primary-dark);
  font-size:1.45rem;
}

.sl-auth-step-content span{
  display:inline-flex;
  margin-bottom:8px;
  color:var(--sl-primary-dark);
  font-weight:900;
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.sl-auth-step-content h4{
  color:var(--sl-secondary);
  font-weight:900;
  margin-bottom:8px;
}

.sl-auth-step-content p{
  margin:0;
  color:var(--sl-muted);
  line-height:1.7;
}

.sl-auth-cbc-card{
  height:100%;
  padding:32px;
  border-radius:28px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:var(--sl-shadow-soft);
  transition:var(--sl-transition);
}

.sl-auth-cbc-card:hover{
  transform:translateY(-10px);
  box-shadow:var(--sl-shadow);
}

.sl-auth-cbc-icon{
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
  border-radius:22px;
  color:#fff;
  background:linear-gradient(135deg,var(--sl-primary),var(--sl-blue));
  font-size:1.55rem;
  margin-bottom:22px;
}

.sl-auth-cbc-card h4{
  color:var(--sl-secondary);
  font-weight:900;
  margin-bottom:12px;
}

.sl-auth-cbc-card p{
  color:var(--sl-muted);
  line-height:1.75;
  margin:0;
}

.sl-auth-note{
  display:flex;
  gap:12px;
  padding:18px;
  border-radius:22px;
  background:rgba(14,165,164,.10);
  color:var(--sl-primary-dark);
  font-weight:800;
  line-height:1.65;
  margin-top:24px;
}

.sl-auth-doc-card{
  height:100%;
  display:flex;
  align-items:center;
  gap:16px;
  padding:20px;
  border-radius:24px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 14px 38px rgba(15,23,42,.08);
  transition:var(--sl-transition);
}

.sl-auth-doc-card:hover{
  transform:translateY(-6px);
  box-shadow:var(--sl-shadow-soft);
}

.sl-auth-doc-card i{
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  border-radius:18px;
  color:#fff;
  background:linear-gradient(135deg,var(--sl-primary),var(--sl-blue));
  font-size:1.3rem;
  flex:0 0 auto;
}

.sl-auth-doc-card strong{
  display:block;
  color:var(--sl-secondary);
  font-weight:900;
  margin-bottom:4px;
}

.sl-auth-doc-card span{
  display:block;
  color:var(--sl-muted);
  font-size:.9rem;
  line-height:1.45;
}

.sl-auth-norm{
  background:
    linear-gradient(135deg,rgba(15,23,42,.96),rgba(8,47,73,.94)),
    radial-gradient(circle at top right,rgba(14,165,164,.35),transparent 35%);
  color:#fff;
}

.sl-auth-norm h2,
.sl-auth-norm p{
  color:#fff;
}

.sl-auth-norm .sl-pill{
  background:rgba(255,255,255,.10);
  color:#ccfbf1;
}

.sl-auth-norm-box{
  display:grid;
  gap:16px;
}

.sl-auth-norm-box div{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:20px;
  border-radius:24px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.14);
  backdrop-filter:blur(14px);
}

.sl-auth-norm-box i{
  color:#5eead4;
  font-size:1.25rem;
  margin-top:2px;
}

.sl-auth-norm-box span{
  color:rgba(255,255,255,.82);
  line-height:1.7;
  font-weight:700;
}

.sl-auth-final{
  padding:80px 0;
  background:#fff;
}

.sl-auth-final-box{
  padding:42px;
  border-radius:34px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  background:linear-gradient(135deg,#0f172a,#0b8a89);
  color:#fff;
  box-shadow:var(--sl-shadow);
}

.sl-auth-final-box span{
  display:inline-flex;
  margin-bottom:12px;
  color:#99f6e4;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.8rem;
}

.sl-auth-final-box h2{
  color:#fff;
  font-weight:900;
  letter-spacing:-.04em;
  margin-bottom:14px;
}

.sl-auth-final-box p{
  max-width:850px;
  color:rgba(255,255,255,.78);
  line-height:1.75;
  margin:0;
}

@media(max-width:991px){
  .sl-auth-hero{
    padding:100px 0 80px;
  }

  .sl-auth-final-box{
    flex-direction:column;
    align-items:flex-start;
  }
}

@media(max-width:575px){
  .sl-auth-actions .btn{
    width:100%;
  }

  .sl-auth-step{
    grid-template-columns:50px 1fr;
    gap:16px;
  }

  .sl-auth-timeline::before{
    left:25px;
  }

  .sl-auth-step-number{
    width:50px;
    height:50px;
    border-radius:18px;
  }

  .sl-auth-step-content{
    flex-direction:column;
    padding:22px;
  }

  .sl-auth-final-box{
    padding:28px;
  }
}  

/* PÁGINA PROGRAMA - PLANTILLA MAESTRA */

.sl-program-hero{
  position:relative;
  overflow:hidden;
  padding:140px 0 110px;
  color:#fff;
  background:#061827;
}

.sl-program-hero-bg{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  transform:scale(1.08);
  animation:heroZoom 18s ease-in-out infinite alternate;
}

.sl-program-hero::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(105deg,rgba(6,24,39,.96),rgba(15,23,42,.82),rgba(14,165,164,.35)),
    radial-gradient(circle at 80% 15%,rgba(14,165,164,.35),transparent 32%);
  z-index:1;
}

.sl-program-hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  background-image:
    linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);
  background-size:70px 70px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),transparent);
}

.sl-program-hero .container{
  z-index:3;
}

.sl-pill-light{
  background:rgba(255,255,255,.12)!important;
  color:#ccfbf1!important;
  border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(12px);
}

.sl-program-hero h1{
  font-size:clamp(2.8rem,6vw,5.4rem);
  font-weight:900;
  letter-spacing:-.065em;
  line-height:.95;
  margin-bottom:24px;
}

.sl-program-hero p{
  color:rgba(255,255,255,.82);
  font-size:1.1rem;
  line-height:1.85;
  max-width:780px;
}

.sl-program-hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:30px;
}

.sl-program-alert{
  margin-top:28px;
  display:flex;
  align-items:flex-start;
  gap:12px;
  max-width:780px;
  padding:18px;
  border-radius:22px;
  background:rgba(245,158,11,.14);
  border:1px solid rgba(245,158,11,.25);
  color:#fde68a;
  font-weight:700;
  line-height:1.65;
}

.sl-program-panel{
  position:relative;
  padding:34px;
  border-radius:34px;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.20);
  backdrop-filter:blur(22px);
  box-shadow:0 30px 80px rgba(0,0,0,.28);
  overflow:hidden;
  animation:cardFloat 6s ease-in-out infinite;
}

.sl-program-panel::after{
  content:"";
  position:absolute;
  width:220px;
  height:220px;
  right:-80px;
  top:-80px;
  border-radius:999px;
  background:rgba(14,165,164,.45);
  filter:blur(38px);
}

.sl-program-panel-icon{
  position:relative;
  z-index:1;
  width:76px;
  height:76px;
  border-radius:26px;
  display:grid;
  place-items:center;
  color:#fff;
  background:linear-gradient(135deg,var(--sl-primary),var(--sl-blue));
  font-size:2rem;
  box-shadow:0 18px 44px rgba(14,165,164,.32);
  margin-bottom:24px;
}

.sl-program-panel h3{
  position:relative;
  z-index:1;
  font-weight:900;
  margin-bottom:14px;
}

.sl-program-panel p{
  position:relative;
  z-index:1;
  color:rgba(255,255,255,.78);
}

.sl-program-status{
  position:relative;
  z-index:1;
  display:grid;
  gap:14px;
  margin-top:24px;
}

.sl-program-status div{
  display:flex;
  gap:12px;
  align-items:center;
  padding:14px;
  border-radius:18px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.13);
  color:#fff;
  font-weight:700;
}

.sl-program-status span{
  width:10px;
  height:10px;
  border-radius:999px;
  background:#22c55e;
  box-shadow:0 0 0 7px rgba(34,197,94,.14);
  flex:0 0 auto;
}

.sl-program-note{
  display:flex;
  gap:12px;
  margin-top:24px;
  padding:18px;
  border-radius:22px;
  background:rgba(245,158,11,.12);
  border:1px solid rgba(245,158,11,.20);
  color:#92400e;
  font-weight:800;
  line-height:1.65;
}

.sl-program-feature{
  height:100%;
  padding:28px;
  border-radius:28px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:var(--sl-shadow-soft);
  transition:var(--sl-transition);
}

.sl-program-feature:hover{
  transform:translateY(-10px);
  box-shadow:var(--sl-shadow);
}

.sl-program-feature i{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border-radius:20px;
  color:#fff;
  background:linear-gradient(135deg,var(--sl-primary),var(--sl-blue));
  font-size:1.45rem;
  margin-bottom:20px;
}

.sl-program-feature h4{
  color:var(--sl-secondary);
  font-weight:900;
  margin-bottom:10px;
}

.sl-program-feature p{
  color:var(--sl-muted);
  line-height:1.75;
  margin:0;
}

.sl-program-grid-info{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}

.sl-program-info-card{
  min-height:260px;
  padding:34px;
  border-radius:30px;
  color:#fff;
  background:
    linear-gradient(145deg,rgba(15,23,42,.95),rgba(14,165,164,.82)),
    radial-gradient(circle at top right,rgba(255,255,255,.18),transparent 35%);
  box-shadow:var(--sl-shadow-soft);
  transition:var(--sl-transition);
}

.sl-program-info-card:hover{
  transform:translateY(-10px);
  box-shadow:var(--sl-shadow);
}

.sl-program-info-card h3{
  font-weight:900;
  margin-bottom:14px;
}

.sl-program-info-card p{
  color:rgba(255,255,255,.78);
  line-height:1.75;
  margin:0;
}

.sl-labor-list{
  display:grid;
  gap:16px;
}

.sl-labor-item{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:20px;
  border-radius:24px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 14px 38px rgba(15,23,42,.08);
  transition:var(--sl-transition);
}

.sl-labor-item:hover{
  transform:translateX(8px);
  box-shadow:var(--sl-shadow-soft);
}

.sl-labor-item i{
  color:var(--sl-primary-dark);
  font-size:1.25rem;
  margin-top:2px;
}

.sl-labor-item span{
  color:var(--sl-secondary);
  font-weight:700;
  line-height:1.65;
}

.sl-plan-wrap{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:20px;
}

.sl-plan-card{
  display:flex;
  gap:20px;
  padding:26px;
  border-radius:28px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:var(--sl-shadow-soft);
  transition:var(--sl-transition);
}

.sl-plan-card:hover{
  transform:translateY(-8px);
  box-shadow:var(--sl-shadow);
}

.sl-plan-cycle{
  width:64px;
  height:64px;
  border-radius:22px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  color:#fff;
  font-size:1.4rem;
  font-weight:900;
  background:linear-gradient(135deg,var(--sl-primary),var(--sl-blue));
}

.sl-plan-card h4{
  color:var(--sl-secondary);
  font-weight:900;
  margin-bottom:8px;
}

.sl-plan-card p{
  color:var(--sl-muted);
  line-height:1.7;
  margin:0;
}

.sl-equipment-box{
  display:grid;
  gap:16px;
}

.sl-equipment-box div{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:22px;
  border-radius:24px;
  background:#fff;
  border:1px solid rgba(15,23,42,.08);
  box-shadow:0 14px 38px rgba(15,23,42,.08);
}

.sl-equipment-box i{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:17px;
  color:#fff;
  background:linear-gradient(135deg,var(--sl-primary),var(--sl-blue));
}

.sl-equipment-box span{
  color:var(--sl-secondary);
  line-height:1.7;
  font-weight:700;
}

.sl-program-final{
  padding:80px 0;
  background:#fff;
}

.sl-program-final-box{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:30px;
  padding:42px;
  border-radius:34px;
  color:#fff;
  background:linear-gradient(135deg,#0f172a,#0b8a89);
  box-shadow:var(--sl-shadow);
}

.sl-program-final-box span{
  display:inline-flex;
  margin-bottom:12px;
  color:#99f6e4;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  font-size:.8rem;
}

.sl-program-final-box h2{
  color:#fff;
  font-weight:900;
  letter-spacing:-.04em;
  margin-bottom:14px;
}

.sl-program-final-box p{
  color:rgba(255,255,255,.78);
  line-height:1.75;
  max-width:850px;
  margin:0;
}

@media(max-width:991px){
  .sl-program-hero{
    padding:110px 0 90px;
  }

  .sl-program-grid-info{
    grid-template-columns:1fr;
  }

  .sl-plan-wrap{
    grid-template-columns:1fr;
  }

  .sl-program-final-box{
    flex-direction:column;
    align-items:flex-start;
  }
}

@media(max-width:575px){
  .sl-program-hero-actions .btn{
    width:100%;
  }

  .sl-program-panel{
    padding:26px;
  }

  .sl-plan-card{
    flex-direction:column;
  }

  .sl-program-final-box{
    padding:28px;
  }
}

/* =========================================================
   PROGRAMA: FISIOTERAPIA Y REHABILITACIÓN
   Portal Institucional San Luis
   Parte 1/3
========================================================= */

.sl-fisio-page {
  --fisio-primary: #0891b2;
  --fisio-secondary: #14b8a6;
  --fisio-dark: #0f172a;
  --fisio-soft: #ecfeff;
  --fisio-glass: rgba(255, 255, 255, 0.14);
  --fisio-border: rgba(255, 255, 255, 0.22);
  color: var(--fisio-dark);
  overflow: hidden;
}

.section-space {
  padding: 110px 0;
}

.section-heading span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--fisio-primary);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: .78rem;
  margin-bottom: 14px;
}

.section-heading h2 {
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 800;
  line-height: 1.1;
  margin-bottom: 18px;
}

.section-heading p {
  color: #64748b;
  font-size: 1.05rem;
  line-height: 1.8;
  max-width: 820px;
  margin: auto;
}

/* HERO */
.fisio-hero {
  position: relative;
  min-height: 100vh;
  isolation: isolate;
  background: #020617;
}

.fisio-hero-bg {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(120deg, rgba(8,145,178,.92), rgba(15,23,42,.82)),
    url('/assets/img/programas/fisioterapia.jpg') center/cover fixed;
  z-index: -3;
}

.fisio-hero-overlay {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 20%, rgba(20,184,166,.35), transparent 32%),
    radial-gradient(circle at 80% 70%, rgba(59,130,246,.30), transparent 35%);
  z-index: -2;
}

.fisio-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  border: 1px solid var(--fisio-border);
  border-radius: 999px;
  background: var(--fisio-glass);
  backdrop-filter: blur(18px);
  color: #fff;
  font-weight: 700;
  margin-bottom: 24px;
}

.fisio-title {
  color: #fff;
  font-size: clamp(3rem, 7vw, 6.5rem);
  font-weight: 900;
  line-height: .95;
  letter-spacing: -0.06em;
}

.fisio-title span {
  display: block;
  background: linear-gradient(90deg, #67e8f9, #ccfbf1);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.fisio-lead {
  color: rgba(255,255,255,.86);
  font-size: 1.18rem;
  line-height: 1.8;
  max-width: 760px;
  margin: 28px 0;
}

.fisio-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.btn-fisio-primary,
.btn-fisio-glass {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 24px;
  border-radius: 16px;
  text-decoration: none;
  font-weight: 800;
  transition: .35s ease;
}

.btn-fisio-primary {
  background: linear-gradient(135deg, #22d3ee, #14b8a6);
  color: #06202a;
  box-shadow: 0 20px 45px rgba(20,184,166,.35);
}

.btn-fisio-primary:hover {
  transform: translateY(-4px);
  color: #06202a;
}

.btn-fisio-glass {
  color: #fff;
  border: 1px solid var(--fisio-border);
  background: var(--fisio-glass);
  backdrop-filter: blur(18px);
}

.btn-fisio-glass:hover {
  transform: translateY(-4px);
  color: #fff;
}

/* PANEL HERO */
.fisio-side-panel {
  position: relative;
  padding: 30px;
  border-radius: 34px;
  border: 1px solid var(--fisio-border);
  background: rgba(255,255,255,.13);
  backdrop-filter: blur(24px);
  box-shadow: 0 30px 80px rgba(0,0,0,.28);
}

.panel-header {
  display: flex;
  gap: 16px;
  align-items: center;
  color: #fff;
  margin-bottom: 28px;
}

.panel-header i {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: rgba(255,255,255,.18);
  font-size: 1.8rem;
}

.panel-header h3 {
  margin: 0;
  font-weight: 800;
}

.panel-header p {
  margin: 4px 0 0;
  color: rgba(255,255,255,.72);
}

.panel-grid {
  display: grid;
  gap: 16px;
}

.panel-item {
  padding: 20px;
  border-radius: 22px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.18);
}

.panel-item strong {
  display: block;
  color: #67e8f9;
  font-size: 2rem;
  line-height: 1;
}

.panel-item span {
  color: rgba(255,255,255,.82);
  font-size: .95rem;
}

.floating-indicator {
  position: absolute;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  border-radius: 999px;
  background: rgba(255,255,255,.92);
  color: #0f172a;
  font-weight: 800;
  box-shadow: 0 18px 38px rgba(0,0,0,.20);
  animation: fisioFloat 4s ease-in-out infinite;
}

.indicator-one {
  top: -22px;
  right: 18px;
}

.indicator-two {
  bottom: -22px;
  left: 20px;
  animation-delay: 1.2s;
}

@keyframes fisioFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}

/* WHY */
.fisio-why {
  background:
    radial-gradient(circle at top left, rgba(20,184,166,.12), transparent 34%),
    #f8fafc;
}

.why-card {
  height: 100%;
  padding: 32px 26px;
  border-radius: 28px;
  background: #fff;
  border: 1px solid #e2e8f0;
  box-shadow: 0 20px 50px rgba(15,23,42,.06);
  transition: .35s ease;
}

.why-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 28px 70px rgba(8,145,178,.15);
}

.why-icon {
  width: 66px;
  height: 66px;
  display: grid;
  place-items: center;
  border-radius: 22px;
  background: linear-gradient(135deg, #cffafe, #ccfbf1);
  color: var(--fisio-primary);
  font-size: 2rem;
  margin-bottom: 22px;
}

.why-card h3 {
  font-weight: 800;
  margin-bottom: 12px;
}

.why-card p {
  color: #64748b;
  line-height: 1.7;
  margin: 0;
}

/* PROFILE */
.fisio-profile {
  background: #fff;
}

.profile-visual {
  position: relative;
  min-height: 430px;
  display: grid;
  place-items: center;
}

.profile-circle {
  position: absolute;
  width: 330px;
  height: 330px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(8,145,178,.18), rgba(20,184,166,.18));
  filter: blur(2px);
}

.profile-card-main {
  position: relative;
  max-width: 390px;
  padding: 38px;
  border-radius: 34px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(8,145,178,.18);
  backdrop-filter: blur(18px);
  box-shadow: 0 30px 80px rgba(8,145,178,.13);
}

.profile-card-main i {
  width: 74px;
  height: 74px;
  display: grid;
  place-items: center;
  border-radius: 24px;
  background: linear-gradient(135deg, #0891b2, #14b8a6);
  color: #fff;
  font-size: 2.2rem;
  margin-bottom: 24px;
}

.profile-card-main h3 {
  font-weight: 900;
  margin-bottom: 14px;
}

.profile-card-main p {
  color: #64748b;
  line-height: 1.8;
  margin: 0;
}

.profile-list {
  display: grid;
  gap: 14px;
  margin-top: 26px;
}

.profile-list div {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 16px 18px;
  border-radius: 18px;
  background: #f8fafc;
  color: #334155;
  font-weight: 700;
}

.profile-list i {
  color: var(--fisio-secondary);
  font-size: 1.25rem;
}

/* SKILLS */
.fisio-skills {
  background:
    linear-gradient(180deg, #f8fafc, #ecfeff);
}

.skills-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 22px;
}

.skill-card {
  padding: 30px 24px;
  border-radius: 28px;
  background: rgba(255,255,255,.82);
  border: 1px solid rgba(8,145,178,.14);
  box-shadow: 0 20px 55px rgba(15,23,42,.06);
  transition: .35s ease;
}

.skill-card:hover {
  transform: translateY(-10px) scale(1.02);
  box-shadow: 0 30px 80px rgba(8,145,178,.16);
}

.skill-card i {
  color: var(--fisio-primary);
  font-size: 2.3rem;
  margin-bottom: 18px;
}

.skill-card h3 {
  font-size: 1.1rem;
  font-weight: 850;
  margin-bottom: 12px;
}

.skill-card p {
  color: #64748b;
  line-height: 1.7;
  margin: 0;
  font-size: .95rem;
}

/* RESPONSIVE */
@media (max-width: 1199px) {
  .skills-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 991px) {
  .fisio-hero {
    padding: 130px 0 80px;
  }

  .fisio-hero .min-vh-100 {
    min-height: auto !important;
  }

  .skills-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .section-space {
    padding: 85px 0;
  }
}

@media (max-width: 575px) {
  .fisio-title {
    font-size: 3.1rem;
  }

  .fisio-hero-actions {
    flex-direction: column;
  }

  .btn-fisio-primary,
  .btn-fisio-glass {
    justify-content: center;
    width: 100%;
  }

  .skills-grid {
    grid-template-columns: 1fr;
  }

  .floating-indicator {
    position: relative;
    inset: auto;
    margin-top: 14px;
    width: 100%;
    justify-content: center;
  }
}
/* =========================================================
   FISIOTERAPIA Y REHABILITACIÓN - PARTE 2/3
========================================================= */

/* ÁREAS */
.fisio-areas {
  background:
    radial-gradient(circle at 15% 20%, rgba(34,211,238,.16), transparent 32%),
    radial-gradient(circle at 85% 80%, rgba(20,184,166,.14), transparent 34%),
    #ffffff;
}

.areas-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}

.area-card {
  position: relative;
  min-height: 300px;
  padding: 34px 30px;
  border-radius: 32px;
  background:
    linear-gradient(180deg, rgba(255,255,255,.94), rgba(236,254,255,.78));
  border: 1px solid rgba(8,145,178,.14);
  box-shadow: 0 24px 70px rgba(15,23,42,.07);
  overflow: hidden;
  transition: .38s ease;
}

.area-card::before {
  content: "";
  position: absolute;
  inset: auto -40px -60px auto;
  width: 170px;
  height: 170px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(34,211,238,.22), rgba(20,184,166,.22));
  transition: .38s ease;
}

.area-card:hover {
  transform: translateY(-12px);
  box-shadow: 0 35px 90px rgba(8,145,178,.16);
}

.area-card:hover::before {
  transform: scale(1.25);
}

.area-icon {
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  border-radius: 24px;
  background: linear-gradient(135deg, #0891b2, #14b8a6);
  color: #fff;
  font-size: 2.2rem;
  margin-bottom: 24px;
  box-shadow: 0 18px 35px rgba(8,145,178,.28);
}

.area-card h3 {
  position: relative;
  font-weight: 900;
  margin-bottom: 14px;
}

.area-card p {
  position: relative;
  color: #64748b;
  line-height: 1.75;
  margin: 0;
}

/* CAMPO LABORAL */
.fisio-work {
  background:
    linear-gradient(135deg, #0f172a, #083344);
  color: #fff;
  position: relative;
}

.fisio-work::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 10%, rgba(34,211,238,.22), transparent 30%),
    radial-gradient(circle at 80% 80%, rgba(20,184,166,.18), transparent 35%);
  pointer-events: none;
}

.work-sticky {
  position: sticky;
  top: 110px;
  padding: 34px;
  border-radius: 34px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(20px);
  box-shadow: 0 30px 80px rgba(0,0,0,.22);
}

.work-label {
  display: inline-flex;
  padding: 9px 15px;
  border-radius: 999px;
  background: rgba(34,211,238,.14);
  color: #67e8f9;
  font-weight: 800;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 18px;
}

.work-sticky h2 {
  font-size: clamp(2rem, 4vw, 3.4rem);
  font-weight: 900;
  line-height: 1.08;
  margin-bottom: 18px;
}

.work-sticky p {
  color: rgba(255,255,255,.76);
  line-height: 1.8;
}

.work-note {
  display: flex;
  gap: 12px;
  padding: 18px;
  border-radius: 22px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.14);
  color: rgba(255,255,255,.84);
  margin-top: 24px;
  line-height: 1.6;
}

.work-note i {
  color: #67e8f9;
  font-size: 1.25rem;
}

.work-timeline {
  position: relative;
  display: grid;
  gap: 24px;
}

.work-timeline::before {
  content: "";
  position: absolute;
  top: 20px;
  bottom: 20px;
  left: 33px;
  width: 2px;
  background: linear-gradient(180deg, #22d3ee, #14b8a6);
  opacity: .65;
}

.work-item {
  position: relative;
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 22px;
}

.work-number {
  position: relative;
  z-index: 2;
  width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  border-radius: 22px;
  background: linear-gradient(135deg, #22d3ee, #14b8a6);
  color: #06202a;
  font-weight: 900;
  box-shadow: 0 20px 45px rgba(34,211,238,.25);
}

.work-content {
  padding: 28px;
  border-radius: 28px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(16px);
  transition: .35s ease;
}

.work-content:hover {
  transform: translateX(8px);
  background: rgba(255,255,255,.14);
}

.work-content h3 {
  font-weight: 850;
  margin-bottom: 10px;
}

.work-content p {
  color: rgba(255,255,255,.74);
  line-height: 1.7;
  margin: 0;
}

/* PLAN DE ESTUDIOS */
.fisio-plan {
  background:
    radial-gradient(circle at top right, rgba(8,145,178,.12), transparent 34%),
    #f8fafc;
}

.plan-shell {
  border-radius: 36px;
  padding: 34px;
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(8,145,178,.14);
  box-shadow: 0 30px 90px rgba(15,23,42,.08);
}

.plan-header {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
  padding: 26px;
  border-radius: 28px;
  background: linear-gradient(135deg, #083344, #0891b2);
  color: #fff;
  margin-bottom: 28px;
}

.plan-header span {
  display: block;
  color: #a5f3fc;
  font-size: .82rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 8px;
}

.plan-header h3 {
  margin: 0;
  font-weight: 900;
}

.plan-pill {
  flex-shrink: 0;
  padding: 12px 18px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.20);
  font-weight: 800;
}

.plan-semesters {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.semester-card {
  padding: 26px;
  border-radius: 28px;
  background:
    linear-gradient(180deg, #ffffff, #ecfeff);
  border: 1px solid rgba(8,145,178,.13);
  transition: .35s ease;
}

.semester-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 24px 65px rgba(8,145,178,.13);
}

.semester-top {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
}

.semester-top span {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: linear-gradient(135deg, #0891b2, #14b8a6);
  color: #fff;
  font-weight: 900;
  font-size: 1.2rem;
}

.semester-top h4 {
  margin: 0;
  font-weight: 850;
  color: #0f172a;
}

.semester-card ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 11px;
}

.semester-card li {
  position: relative;
  padding-left: 24px;
  color: #475569;
  line-height: 1.5;
}

.semester-card li::before {
  content: "\F26A";
  font-family: "bootstrap-icons";
  position: absolute;
  left: 0;
  top: 1px;
  color: var(--fisio-secondary);
}

.plan-disclaimer {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-top: 28px;
  padding: 20px 22px;
  border-radius: 24px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  color: #9a3412;
  font-weight: 700;
  line-height: 1.6;
}

.plan-disclaimer i {
  font-size: 1.35rem;
}

/* RESPONSIVE PARTE 2 */
@media (max-width: 1199px) {
  .areas-grid,
  .plan-semesters {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 991px) {
  .work-sticky {
    position: relative;
    top: auto;
  }
}

@media (max-width: 767px) {
  .areas-grid,
  .plan-semesters {
    grid-template-columns: 1fr;
  }

  .plan-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .plan-pill {
    width: 100%;
    text-align: center;
  }

  .work-item {
    grid-template-columns: 54px 1fr;
    gap: 16px;
  }

  .work-number {
    width: 54px;
    height: 54px;
    border-radius: 18px;
    font-size: .9rem;
  }

  .work-timeline::before {
    left: 26px;
  }
}
/* =========================================================
   FISIOTERAPIA Y REHABILITACIÓN - PARTE 3/3
========================================================= */

/* TECNOLOGÍA */
.fisio-tech {
  background:
    radial-gradient(circle at 10% 15%, rgba(34,211,238,.14), transparent 30%),
    radial-gradient(circle at 90% 75%, rgba(20,184,166,.14), transparent 34%),
    #ffffff;
}

.tech-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}

.tech-card {
  position: relative;
  min-height: 260px;
  padding: 34px 30px;
  border-radius: 32px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(8,145,178,.14);
  box-shadow: 0 24px 70px rgba(15,23,42,.07);
  overflow: hidden;
  transition: .36s ease;
}

.tech-card::after {
  content: "";
  position: absolute;
  right: -60px;
  top: -60px;
  width: 160px;
  height: 160px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(34,211,238,.20), rgba(20,184,166,.20));
  transition: .36s ease;
}

.tech-card:hover {
  transform: translateY(-12px);
  box-shadow: 0 35px 90px rgba(8,145,178,.16);
}

.tech-card:hover::after {
  transform: scale(1.25);
}

.tech-card i {
  position: relative;
  z-index: 2;
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  border-radius: 24px;
  background: linear-gradient(135deg, #0891b2, #14b8a6);
  color: #fff;
  font-size: 2.1rem;
  margin-bottom: 24px;
  box-shadow: 0 18px 35px rgba(8,145,178,.28);
}

.tech-card h3,
.tech-card p {
  position: relative;
  z-index: 2;
}

.tech-card h3 {
  font-weight: 900;
  margin-bottom: 14px;
}

.tech-card p {
  color: #64748b;
  line-height: 1.75;
  margin: 0;
}

/* INFRAESTRUCTURA */
.fisio-infra {
  background:
    linear-gradient(180deg, #ecfeff, #f8fafc);
}

.infra-content span {
  display: inline-flex;
  padding: 9px 15px;
  border-radius: 999px;
  background: rgba(8,145,178,.10);
  color: var(--fisio-primary);
  font-weight: 800;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 16px;
}

.infra-content h2 {
  font-size: clamp(2rem, 4vw, 3.4rem);
  font-weight: 900;
  line-height: 1.08;
  margin-bottom: 18px;
}

.infra-content p {
  color: #64748b;
  line-height: 1.8;
  font-size: 1.05rem;
}

.infra-list {
  display: grid;
  gap: 14px;
  margin-top: 26px;
}

.infra-list div {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 16px 18px;
  border-radius: 18px;
  background: #ffffff;
  border: 1px solid rgba(8,145,178,.12);
  color: #334155;
  font-weight: 750;
  box-shadow: 0 16px 38px rgba(15,23,42,.05);
}

.infra-list i {
  color: var(--fisio-secondary);
  font-size: 1.25rem;
}

.infra-visual {
  display: grid;
  gap: 22px;
}

.infra-card {
  padding: 28px;
  border-radius: 30px;
  background: rgba(255,255,255,.84);
  border: 1px solid rgba(8,145,178,.14);
  box-shadow: 0 22px 60px rgba(15,23,42,.07);
  transition: .35s ease;
}

.infra-card.active,
.infra-card:hover {
  transform: translateX(10px);
  background: linear-gradient(135deg, #083344, #0891b2);
  color: #fff;
}

.infra-card i {
  font-size: 2.2rem;
  color: var(--fisio-primary);
  margin-bottom: 14px;
}

.infra-card.active i,
.infra-card:hover i {
  color: #67e8f9;
}

.infra-card h3 {
  font-weight: 900;
  margin-bottom: 10px;
}

.infra-card p {
  color: #64748b;
  line-height: 1.7;
  margin: 0;
}

.infra-card.active p,
.infra-card:hover p {
  color: rgba(255,255,255,.78);
}

/* FAQ */
.fisio-faq {
  background: #ffffff;
}

.faq-wrap {
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
}

.fisio-faq .accordion {
  display: grid;
  gap: 16px;
}

.fisio-faq .accordion-item {
  border: 1px solid rgba(8,145,178,.14);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 16px 45px rgba(15,23,42,.05);
}

.fisio-faq .accordion-button {
  padding: 22px 24px;
  font-weight: 850;
  color: #0f172a;
  background: #ffffff;
  box-shadow: none;
}

.fisio-faq .accordion-button:not(.collapsed) {
  color: #075985;
  background: #ecfeff;
}

.fisio-faq .accordion-body {
  color: #64748b;
  line-height: 1.8;
  padding: 0 24px 24px;
}

/* CTA FINAL */
.fisio-final-cta {
  padding: 110px 0;
  background:
    radial-gradient(circle at 20% 20%, rgba(34,211,238,.20), transparent 32%),
    radial-gradient(circle at 80% 80%, rgba(20,184,166,.22), transparent 34%),
    linear-gradient(135deg, #0f172a, #083344);
}

.cta-box {
  max-width: 980px;
  margin: auto;
  padding: 56px;
  border-radius: 38px;
  text-align: center;
  color: #fff;
  background: rgba(255,255,255,.11);
  border: 1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(22px);
  box-shadow: 0 35px 100px rgba(0,0,0,.25);
}

.cta-box span {
  display: inline-flex;
  margin-bottom: 16px;
  padding: 9px 16px;
  border-radius: 999px;
  background: rgba(34,211,238,.14);
  color: #67e8f9;
  font-weight: 800;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.cta-box h2 {
  font-size: clamp(2rem, 4vw, 3.6rem);
  font-weight: 900;
  line-height: 1.08;
  margin-bottom: 18px;
}

.cta-box p {
  color: rgba(255,255,255,.78);
  line-height: 1.8;
  font-size: 1.08rem;
  max-width: 780px;
  margin: 0 auto 28px;
}

/* AVISO */
.fisio-aviso {
  padding: 70px 0;
  background: #fff7ed;
}

.aviso-box {
  display: grid;
  grid-template-columns: 76px 1fr;
  gap: 24px;
  align-items: flex-start;
  padding: 34px;
  border-radius: 30px;
  background: #ffffff;
  border: 1px solid #fed7aa;
  box-shadow: 0 20px 60px rgba(154,52,18,.08);
}

.aviso-icon {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  border-radius: 24px;
  background: #ffedd5;
  color: #c2410c;
  font-size: 2.2rem;
}

.aviso-box h2 {
  color: #9a3412;
  font-weight: 900;
  margin-bottom: 12px;
}

.aviso-box p {
  color: #7c2d12;
  line-height: 1.8;
  margin: 0;
  font-weight: 650;
}

/* RESPONSIVE PARTE 3 */
@media (max-width: 1199px) {
  .tech-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 991px) {
  .infra-card.active,
  .infra-card:hover {
    transform: translateY(-6px);
  }
}

@media (max-width: 767px) {
  .tech-grid {
    grid-template-columns: 1fr;
  }

  .cta-box {
    padding: 36px 24px;
    border-radius: 30px;
  }

  .aviso-box {
    grid-template-columns: 1fr;
    padding: 28px 22px;
  }

  .aviso-icon {
    width: 64px;
    height: 64px;
    font-size: 1.8rem;
  }
}

@media (max-width: 575px) {
  .fisio-final-cta {
    padding: 80px 0;
  }

  .fisio-aviso {
    padding: 55px 0;
  }
}
/* =========================================================
   PROGRAMA: FARMACIA
   PARTE 1/3
========================================================= */

.sl-farmacia-page {
  --farma-primary: #059669;
  --farma-secondary: #0ea5e9;
  --farma-accent: #22c55e;
  --farma-dark: #052e2b;
  --farma-soft: #ecfdf5;
  color: #0f172a;
  overflow: hidden;
}

.sl-farmacia-page .section-space {
  padding: 110px 0;
}

/* HERO */
.farma-hero {
  position: relative;
  min-height: 100vh;
  background: #041f1e;
  isolation: isolate;
}

.farma-hero-bg {
  position: absolute;
  inset: 0;
  z-index: -3;
  background:
    linear-gradient(120deg, rgba(5,46,43,.88), rgba(6,78,59,.74)),
    url('/assets/img/programas/farmacia.jpg') center/cover fixed;
}

.farma-hero-particles {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(circle at 15% 20%, rgba(34,197,94,.28), transparent 28%),
    radial-gradient(circle at 80% 30%, rgba(14,165,233,.22), transparent 30%),
    radial-gradient(circle at 55% 85%, rgba(16,185,129,.20), transparent 34%);
}

.farma-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  border-radius: 999px;
  color: #fff;
  font-weight: 800;
  background: rgba(255,255,255,.13);
  border: 1px solid rgba(255,255,255,.20);
  backdrop-filter: blur(18px);
  margin-bottom: 24px;
}

.farma-title {
  color: #fff;
  font-size: clamp(3.4rem, 7vw, 6.8rem);
  font-weight: 950;
  line-height: .92;
  letter-spacing: -0.065em;
}

.farma-title span {
  display: block;
  margin-top: 18px;
  font-size: clamp(1.3rem, 2.4vw, 2.2rem);
  letter-spacing: -0.025em;
  line-height: 1.15;
  background: linear-gradient(90deg, #bbf7d0, #7dd3fc);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.farma-lead {
  max-width: 760px;
  color: rgba(255,255,255,.84);
  font-size: 1.16rem;
  line-height: 1.82;
  margin: 28px 0;
}

.farma-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.btn-farma-primary,
.btn-farma-glass {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 24px;
  border-radius: 16px;
  text-decoration: none;
  font-weight: 850;
  transition: .35s ease;
}

.btn-farma-primary {
  background: linear-gradient(135deg, #22c55e, #0ea5e9);
  color: #022c22;
  box-shadow: 0 20px 48px rgba(34,197,94,.32);
}

.btn-farma-primary:hover {
  transform: translateY(-4px);
  color: #022c22;
}

.btn-farma-glass {
  color: #fff;
  border: 1px solid rgba(255,255,255,.20);
  background: rgba(255,255,255,.12);
  backdrop-filter: blur(18px);
}

.btn-farma-glass:hover {
  transform: translateY(-4px);
  color: #fff;
}

/* PANEL */
.farma-panel {
  position: relative;
  padding: 30px;
  border-radius: 36px;
  background: rgba(255,255,255,.13);
  border: 1px solid rgba(255,255,255,.20);
  backdrop-filter: blur(24px);
  box-shadow: 0 35px 90px rgba(0,0,0,.25);
}

.farma-panel-head {
  display: flex;
  align-items: center;
  gap: 16px;
  color: #fff;
  margin-bottom: 24px;
}

.farma-panel-head > i {
  width: 60px;
  height: 60px;
  display: grid;
  place-items: center;
  border-radius: 20px;
  font-size: 1.9rem;
  background: rgba(255,255,255,.15);
}

.farma-panel-head h3 {
  margin: 0;
  font-weight: 900;
}

.farma-panel-head p {
  margin: 4px 0 0;
  color: rgba(255,255,255,.72);
}

.farma-lab-card {
  position: relative;
  padding: 30px;
  border-radius: 30px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.18);
  color: #fff;
  overflow: hidden;
  margin-bottom: 20px;
}

.lab-icon {
  width: 74px;
  height: 74px;
  display: grid;
  place-items: center;
  border-radius: 25px;
  background: linear-gradient(135deg, #22c55e, #0ea5e9);
  font-size: 2.2rem;
  margin-bottom: 22px;
}

.farma-lab-card h4 {
  font-weight: 900;
  margin-bottom: 10px;
}

.farma-lab-card p {
  color: rgba(255,255,255,.76);
  line-height: 1.7;
  margin: 0;
}

.molecule {
  position: absolute;
  border-radius: 50%;
  background: rgba(187,247,208,.38);
  box-shadow: 0 0 35px rgba(34,197,94,.35);
  animation: farmaPulse 3.5s ease-in-out infinite;
}

.molecule-one {
  width: 18px;
  height: 18px;
  top: 28px;
  right: 42px;
}

.molecule-two {
  width: 12px;
  height: 12px;
  top: 70px;
  right: 90px;
  animation-delay: .8s;
}

.molecule-three {
  width: 24px;
  height: 24px;
  bottom: 36px;
  right: 54px;
  animation-delay: 1.4s;
}

@keyframes farmaPulse {
  0%, 100% {
    transform: scale(1);
    opacity: .75;
  }

  50% {
    transform: scale(1.45);
    opacity: 1;
  }
}

.farma-panel-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.farma-panel-grid div {
  padding: 18px 20px;
  border-radius: 22px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.16);
}

.farma-panel-grid strong {
  display: block;
  color: #bbf7d0;
  font-size: 1.8rem;
  line-height: 1;
  font-weight: 950;
}

.farma-panel-grid span {
  color: rgba(255,255,255,.82);
}

.farma-float {
  position: absolute;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  padding: 12px 16px;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: #052e2b;
  font-weight: 850;
  box-shadow: 0 20px 40px rgba(0,0,0,.20);
  animation: farmaFloat 4s ease-in-out infinite;
}

.float-one {
  top: -22px;
  right: 24px;
}

.float-two {
  bottom: -22px;
  left: 24px;
  animation-delay: 1.2s;
}

@keyframes farmaFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}

/* WHY */
.farma-why {
  background:
    radial-gradient(circle at 15% 18%, rgba(34,197,94,.12), transparent 32%),
    #f8fafc;
}

.farma-why-card {
  height: 100%;
  padding: 32px 26px;
  border-radius: 30px;
  background: #fff;
  border: 1px solid rgba(5,150,105,.12);
  box-shadow: 0 20px 55px rgba(15,23,42,.06);
  transition: .35s ease;
}

.farma-why-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 30px 80px rgba(5,150,105,.15);
}

.farma-why-icon {
  width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  border-radius: 23px;
  background: linear-gradient(135deg, #dcfce7, #e0f2fe);
  color: var(--farma-primary);
  font-size: 2rem;
  margin-bottom: 22px;
}

.farma-why-card h3 {
  font-weight: 900;
  margin-bottom: 12px;
}

.farma-why-card p {
  color: #64748b;
  line-height: 1.72;
  margin: 0;
}

/* PROFILE */
.farma-profile {
  background: #fff;
}

.farma-profile-content span {
  display: inline-flex;
  padding: 9px 15px;
  border-radius: 999px;
  background: rgba(5,150,105,.10);
  color: var(--farma-primary);
  font-weight: 850;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 16px;
}

.farma-profile-content h2 {
  font-size: clamp(2rem, 4vw, 3.4rem);
  line-height: 1.08;
  font-weight: 950;
  margin-bottom: 18px;
}

.farma-profile-content p {
  color: #64748b;
  line-height: 1.82;
  font-size: 1.05rem;
}

.farma-profile-list {
  display: grid;
  gap: 14px;
  margin-top: 26px;
}

.farma-profile-list div {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 16px 18px;
  border-radius: 18px;
  background: #f8fafc;
  color: #334155;
  font-weight: 750;
}

.farma-profile-list i {
  color: var(--farma-primary);
  font-size: 1.25rem;
}

.farma-profile-visual {
  position: relative;
  min-height: 460px;
  display: grid;
  place-items: center;
}

.farma-orbit {
  position: absolute;
  width: 360px;
  height: 360px;
  border-radius: 50%;
  border: 2px dashed rgba(5,150,105,.20);
  animation: farmaRotate 18s linear infinite;
}

@keyframes farmaRotate {
  to { transform: rotate(360deg); }
}

.farma-profile-card {
  position: relative;
  z-index: 2;
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(5,150,105,.14);
  box-shadow: 0 28px 80px rgba(5,150,105,.13);
  backdrop-filter: blur(18px);
}

.farma-profile-card.main {
  max-width: 390px;
  padding: 40px;
  border-radius: 36px;
}

.farma-profile-card.main i {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  border-radius: 25px;
  background: linear-gradient(135deg, #059669, #0ea5e9);
  color: #fff;
  font-size: 2.2rem;
  margin-bottom: 22px;
}

.farma-profile-card.main h3 {
  font-weight: 950;
  margin-bottom: 12px;
}

.farma-profile-card.main p {
  color: #64748b;
  line-height: 1.7;
  margin: 0;
}

.farma-profile-card.small {
  position: absolute;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 17px;
  border-radius: 999px;
  font-weight: 850;
}

.farma-profile-card.small.one {
  top: 54px;
  right: 40px;
}

.farma-profile-card.small.two {
  bottom: 62px;
  left: 40px;
}

/* SKILLS */
.farma-skills {
  background:
    linear-gradient(180deg, #f8fafc, #ecfdf5);
}

.farma-skills-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 22px;
}

.farma-skill-card {
  padding: 30px 24px;
  border-radius: 30px;
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(5,150,105,.13);
  box-shadow: 0 20px 55px rgba(15,23,42,.06);
  transition: .35s ease;
}

.farma-skill-card:hover {
  transform: translateY(-10px) scale(1.02);
  box-shadow: 0 30px 80px rgba(5,150,105,.16);
}

.farma-skill-card i {
  color: var(--farma-primary);
  font-size: 2.25rem;
  margin-bottom: 18px;
}

.farma-skill-card h3 {
  font-size: 1.08rem;
  font-weight: 900;
  margin-bottom: 12px;
}

.farma-skill-card p {
  color: #64748b;
  line-height: 1.7;
  margin: 0;
  font-size: .95rem;
}

/* RESPONSIVE PARTE 1 */
@media (max-width: 1199px) {
  .farma-skills-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

@media (max-width: 991px) {
  .farma-hero {
    padding: 130px 0 80px;
  }

  .farma-hero .min-vh-100 {
    min-height: auto !important;
  }

  .farma-skills-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .sl-farmacia-page .section-space {
    padding: 85px 0;
  }
}

@media (max-width: 575px) {
  .farma-title {
    font-size: 3.1rem;
  }

  .farma-actions {
    flex-direction: column;
  }

  .btn-farma-primary,
  .btn-farma-glass {
    width: 100%;
    justify-content: center;
  }

  .farma-skills-grid {
    grid-template-columns: 1fr;
  }

  .farma-float {
    position: relative;
    inset: auto;
    width: 100%;
    justify-content: center;
    margin-top: 14px;
  }

  .farma-profile-card.small {
    position: relative;
    inset: auto;
    margin-top: 14px;
  }
}
/* =========================================================
   PROGRAMA: FARMACIA
   PARTE 2/3
========================================================= */

/* ÁREAS */
.farma-areas {
  background:
    radial-gradient(circle at 10% 20%, rgba(34,197,94,.13), transparent 30%),
    radial-gradient(circle at 90% 80%, rgba(14,165,233,.12), transparent 34%),
    #ffffff;
}

.farma-areas-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}

.farma-area-card {
  position: relative;
  min-height: 300px;
  padding: 34px 30px;
  border-radius: 32px;
  background: linear-gradient(180deg, #ffffff, #ecfdf5);
  border: 1px solid rgba(5,150,105,.13);
  box-shadow: 0 24px 70px rgba(15,23,42,.07);
  overflow: hidden;
  transition: .38s ease;
}

.farma-area-card::before {
  content: "";
  position: absolute;
  right: -55px;
  bottom: -65px;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(34,197,94,.18), rgba(14,165,233,.18));
  transition: .38s ease;
}

.farma-area-card:hover {
  transform: translateY(-12px);
  box-shadow: 0 35px 90px rgba(5,150,105,.16);
}

.farma-area-card:hover::before {
  transform: scale(1.22);
}

.farma-area-icon {
  position: relative;
  z-index: 2;
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  border-radius: 24px;
  background: linear-gradient(135deg, #059669, #0ea5e9);
  color: #fff;
  font-size: 2.15rem;
  margin-bottom: 24px;
  box-shadow: 0 18px 35px rgba(5,150,105,.28);
}

.farma-area-card h3,
.farma-area-card p {
  position: relative;
  z-index: 2;
}

.farma-area-card h3 {
  font-weight: 950;
  margin-bottom: 14px;
}

.farma-area-card p {
  color: #64748b;
  line-height: 1.75;
  margin: 0;
}

/* CAMPO LABORAL */
.farma-work {
  position: relative;
  background: linear-gradient(135deg, #052e2b, #064e3b);
  color: #fff;
}

.farma-work::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 15% 15%, rgba(34,197,94,.24), transparent 30%),
    radial-gradient(circle at 85% 75%, rgba(14,165,233,.18), transparent 35%);
}

.farma-work-panel {
  position: sticky;
  top: 110px;
  padding: 34px;
  border-radius: 34px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.15);
  backdrop-filter: blur(20px);
  box-shadow: 0 30px 85px rgba(0,0,0,.24);
}

.farma-work-panel > span {
  display: inline-flex;
  padding: 9px 15px;
  border-radius: 999px;
  background: rgba(187,247,208,.14);
  color: #bbf7d0;
  font-weight: 850;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 18px;
}

.farma-work-panel h2 {
  font-size: clamp(2rem, 4vw, 3.4rem);
  font-weight: 950;
  line-height: 1.08;
  margin-bottom: 18px;
}

.farma-work-panel p {
  color: rgba(255,255,255,.76);
  line-height: 1.82;
}

.farma-work-alert {
  display: flex;
  gap: 12px;
  padding: 18px;
  border-radius: 22px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.14);
  color: rgba(255,255,255,.84);
  margin-top: 24px;
  line-height: 1.6;
}

.farma-work-alert i {
  color: #bbf7d0;
  font-size: 1.25rem;
}

.farma-work-flow {
  position: relative;
  display: grid;
  gap: 24px;
}

.farma-work-flow::before {
  content: "";
  position: absolute;
  top: 20px;
  bottom: 20px;
  left: 33px;
  width: 2px;
  background: linear-gradient(180deg, #22c55e, #0ea5e9);
  opacity: .65;
}

.farma-work-step {
  position: relative;
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 22px;
}

.step-marker {
  position: relative;
  z-index: 2;
  width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  border-radius: 22px;
  background: linear-gradient(135deg, #22c55e, #0ea5e9);
  color: #022c22;
  font-weight: 950;
  box-shadow: 0 20px 45px rgba(34,197,94,.25);
}

.step-content {
  padding: 28px;
  border-radius: 28px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.14);
  backdrop-filter: blur(16px);
  transition: .35s ease;
}

.step-content:hover {
  transform: translateX(8px);
  background: rgba(255,255,255,.14);
}

.step-content h3 {
  font-weight: 900;
  margin-bottom: 10px;
}

.step-content p {
  color: rgba(255,255,255,.74);
  line-height: 1.7;
  margin: 0;
}

/* PLAN */
.farma-plan {
  background:
    radial-gradient(circle at top right, rgba(34,197,94,.12), transparent 34%),
    #f8fafc;
}

.farma-plan-shell {
  padding: 34px;
  border-radius: 36px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(5,150,105,.13);
  box-shadow: 0 30px 90px rgba(15,23,42,.08);
}

.farma-plan-top {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
  padding: 26px;
  border-radius: 28px;
  background: linear-gradient(135deg, #052e2b, #059669);
  color: #fff;
  margin-bottom: 28px;
}

.farma-plan-top span {
  display: block;
  color: #bbf7d0;
  font-size: .82rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 8px;
}

.farma-plan-top h3 {
  margin: 0;
  font-weight: 950;
}

.farma-plan-status {
  flex-shrink: 0;
  padding: 12px 18px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.20);
  font-weight: 850;
}

.farma-plan-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.farma-semester-card {
  padding: 26px;
  border-radius: 28px;
  background: linear-gradient(180deg, #ffffff, #ecfdf5);
  border: 1px solid rgba(5,150,105,.13);
  transition: .35s ease;
}

.farma-semester-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 24px 65px rgba(5,150,105,.13);
}

.farma-semester-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
}

.farma-semester-head span {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: linear-gradient(135deg, #059669, #0ea5e9);
  color: #fff;
  font-weight: 950;
  font-size: 1.2rem;
}

.farma-semester-head h4 {
  margin: 0;
  font-weight: 900;
  color: #0f172a;
}

.farma-semester-card ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 11px;
}

.farma-semester-card li {
  position: relative;
  padding-left: 24px;
  color: #475569;
  line-height: 1.5;
}

.farma-semester-card li::before {
  content: "\F26A";
  font-family: "bootstrap-icons";
  position: absolute;
  left: 0;
  top: 1px;
  color: var(--farma-primary);
}

.farma-plan-note {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-top: 28px;
  padding: 20px 22px;
  border-radius: 24px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  color: #9a3412;
  font-weight: 750;
  line-height: 1.6;
}

.farma-plan-note i {
  font-size: 1.35rem;
}

/* RESPONSIVE PARTE 2 */
@media (max-width: 1199px) {
  .farma-areas-grid,
  .farma-plan-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 991px) {
  .farma-work-panel {
    position: relative;
    top: auto;
  }
}

@media (max-width: 767px) {
  .farma-areas-grid,
  .farma-plan-grid {
    grid-template-columns: 1fr;
  }

  .farma-plan-top {
    flex-direction: column;
    align-items: flex-start;
  }

  .farma-plan-status {
    width: 100%;
    text-align: center;
  }

  .farma-work-step {
    grid-template-columns: 54px 1fr;
    gap: 16px;
  }

  .step-marker {
    width: 54px;
    height: 54px;
    border-radius: 18px;
    font-size: .9rem;
  }

  .farma-work-flow::before {
    left: 26px;
  }
}
/* =========================================================
   PROGRAMA: FARMACIA
   PARTE 3/3
========================================================= */

/* TECNOLOGÍA */
.farma-tech {
  background:
    radial-gradient(circle at 10% 15%, rgba(34,197,94,.13), transparent 30%),
    radial-gradient(circle at 90% 75%, rgba(14,165,233,.12), transparent 34%),
    #ffffff;
}

.farma-tech-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}

.farma-tech-card {
  position: relative;
  min-height: 270px;
  padding: 34px 30px;
  border-radius: 32px;
  background: rgba(255,255,255,.90);
  border: 1px solid rgba(5,150,105,.13);
  box-shadow: 0 24px 70px rgba(15,23,42,.07);
  overflow: hidden;
  transition: .36s ease;
}

.farma-tech-card::after {
  content: "";
  position: absolute;
  right: -60px;
  top: -60px;
  width: 165px;
  height: 165px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(34,197,94,.18), rgba(14,165,233,.18));
  transition: .36s ease;
}

.farma-tech-card:hover {
  transform: translateY(-12px);
  box-shadow: 0 35px 90px rgba(5,150,105,.16);
}

.farma-tech-card:hover::after {
  transform: scale(1.25);
}

.farma-tech-card i {
  position: relative;
  z-index: 2;
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  border-radius: 24px;
  background: linear-gradient(135deg, #059669, #0ea5e9);
  color: #fff;
  font-size: 2.1rem;
  margin-bottom: 24px;
  box-shadow: 0 18px 35px rgba(5,150,105,.28);
}

.farma-tech-card h3,
.farma-tech-card p {
  position: relative;
  z-index: 2;
}

.farma-tech-card h3 {
  font-weight: 950;
  margin-bottom: 14px;
}

.farma-tech-card p {
  color: #64748b;
  line-height: 1.75;
  margin: 0;
}

/* INFRAESTRUCTURA */
.farma-infra {
  background:
    linear-gradient(180deg, #ecfdf5, #f8fafc);
}

.farma-infra-visual {
  display: grid;
  gap: 22px;
}

.farma-infra-card {
  padding: 28px;
  border-radius: 30px;
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(5,150,105,.13);
  box-shadow: 0 22px 60px rgba(15,23,42,.07);
  transition: .35s ease;
}

.farma-infra-card.active,
.farma-infra-card:hover {
  transform: translateX(10px);
  background: linear-gradient(135deg, #052e2b, #059669);
  color: #fff;
}

.farma-infra-card i {
  font-size: 2.2rem;
  color: var(--farma-primary);
  margin-bottom: 14px;
}

.farma-infra-card.active i,
.farma-infra-card:hover i {
  color: #bbf7d0;
}

.farma-infra-card h3 {
  font-weight: 950;
  margin-bottom: 10px;
}

.farma-infra-card p {
  color: #64748b;
  line-height: 1.7;
  margin: 0;
}

.farma-infra-card.active p,
.farma-infra-card:hover p {
  color: rgba(255,255,255,.78);
}

.farma-infra-content span {
  display: inline-flex;
  padding: 9px 15px;
  border-radius: 999px;
  background: rgba(5,150,105,.10);
  color: var(--farma-primary);
  font-weight: 850;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 16px;
}

.farma-infra-content h2 {
  font-size: clamp(2rem, 4vw, 3.4rem);
  font-weight: 950;
  line-height: 1.08;
  margin-bottom: 18px;
}

.farma-infra-content p {
  color: #64748b;
  line-height: 1.82;
  font-size: 1.05rem;
}

.farma-infra-list {
  display: grid;
  gap: 14px;
  margin-top: 26px;
}

.farma-infra-list div {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 16px 18px;
  border-radius: 18px;
  background: #ffffff;
  border: 1px solid rgba(5,150,105,.12);
  color: #334155;
  font-weight: 750;
  box-shadow: 0 16px 38px rgba(15,23,42,.05);
}

.farma-infra-list i {
  color: var(--farma-primary);
  font-size: 1.25rem;
}

/* FAQ */
.farma-faq {
  background: #ffffff;
}

.farma-faq-wrap {
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
}

.farma-faq .accordion {
  display: grid;
  gap: 16px;
}

.farma-faq .accordion-item {
  border: 1px solid rgba(5,150,105,.13);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 16px 45px rgba(15,23,42,.05);
}

.farma-faq .accordion-button {
  padding: 22px 24px;
  font-weight: 850;
  color: #0f172a;
  background: #ffffff;
  box-shadow: none;
}

.farma-faq .accordion-button:not(.collapsed) {
  color: #065f46;
  background: #ecfdf5;
}

.farma-faq .accordion-body {
  color: #64748b;
  line-height: 1.8;
  padding: 0 24px 24px;
}

/* CTA FINAL */
.farma-final-cta {
  padding: 110px 0;
  background:
    radial-gradient(circle at 20% 20%, rgba(34,197,94,.20), transparent 32%),
    radial-gradient(circle at 80% 80%, rgba(14,165,233,.18), transparent 34%),
    linear-gradient(135deg, #052e2b, #064e3b);
}

.farma-cta-box {
  max-width: 980px;
  margin: auto;
  padding: 56px;
  border-radius: 38px;
  text-align: center;
  color: #fff;
  background: rgba(255,255,255,.11);
  border: 1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(22px);
  box-shadow: 0 35px 100px rgba(0,0,0,.25);
}

.farma-cta-box span {
  display: inline-flex;
  margin-bottom: 16px;
  padding: 9px 16px;
  border-radius: 999px;
  background: rgba(187,247,208,.14);
  color: #bbf7d0;
  font-weight: 850;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.farma-cta-box h2 {
  font-size: clamp(2rem, 4vw, 3.6rem);
  font-weight: 950;
  line-height: 1.08;
  margin-bottom: 18px;
}

.farma-cta-box p {
  color: rgba(255,255,255,.78);
  line-height: 1.82;
  font-size: 1.08rem;
  max-width: 780px;
  margin: 0 auto 28px;
}

/* AVISO */
.farma-aviso {
  padding: 70px 0;
  background: #fff7ed;
}

.farma-aviso-box {
  display: grid;
  grid-template-columns: 76px 1fr;
  gap: 24px;
  align-items: flex-start;
  padding: 34px;
  border-radius: 30px;
  background: #ffffff;
  border: 1px solid #fed7aa;
  box-shadow: 0 20px 60px rgba(154,52,18,.08);
}

.farma-aviso-icon {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  border-radius: 24px;
  background: #ffedd5;
  color: #c2410c;
  font-size: 2.2rem;
}

.farma-aviso-box h2 {
  color: #9a3412;
  font-weight: 950;
  margin-bottom: 12px;
}

.farma-aviso-box p {
  color: #7c2d12;
  line-height: 1.82;
  margin: 0;
  font-weight: 650;
}

/* RESPONSIVE PARTE 3 */
@media (max-width: 1199px) {
  .farma-tech-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 991px) {
  .farma-infra-card.active,
  .farma-infra-card:hover {
    transform: translateY(-6px);
  }
}

@media (max-width: 767px) {
  .farma-tech-grid {
    grid-template-columns: 1fr;
  }

  .farma-cta-box {
    padding: 36px 24px;
    border-radius: 30px;
  }

  .farma-aviso-box {
    grid-template-columns: 1fr;
    padding: 28px 22px;
  }

  .farma-aviso-icon {
    width: 64px;
    height: 64px;
    font-size: 1.8rem;
  }
}

@media (max-width: 575px) {
  .farma-final-cta {
    padding: 80px 0;
  }

  .farma-aviso {
    padding: 55px 0;
  }
}

/* =========================================================
   PROGRAMA: GASTRONOMÍA
   PARTE 1/3
========================================================= */

.sl-gastro-page {
  --gastro-gold: #d4af37;
  --gastro-copper: #b87333;
  --gastro-dark: #111111;
  --gastro-deep: #070707;
  --gastro-warm: #fff7ed;
  --gastro-wine: #7f1d1d;
  color: #1f2937;
  overflow: hidden;
}

.sl-gastro-page .section-space {
  padding: 110px 0;
}

/* HERO */
.gastro-hero {
  position: relative;
  min-height: 100vh;
  background: #070707;
  isolation: isolate;
}

.gastro-hero-bg {
  position: absolute;
  inset: 0;
  z-index: -3;
  background:
    linear-gradient(120deg, rgba(0,0,0,.88), rgba(17,17,17,.70)),
    url('/assets/img/programas/gastronomia.jpg') center/cover fixed;
}

.gastro-hero-overlay {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(circle at 18% 25%, rgba(212,175,55,.24), transparent 30%),
    radial-gradient(circle at 82% 74%, rgba(184,115,51,.22), transparent 34%),
    linear-gradient(180deg, transparent, rgba(0,0,0,.35));
}

.gastro-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  border-radius: 999px;
  color: #fff;
  font-weight: 850;
  background: rgba(255,255,255,.11);
  border: 1px solid rgba(212,175,55,.35);
  backdrop-filter: blur(18px);
  margin-bottom: 24px;
}

.gastro-title {
  color: #fff;
  font-size: clamp(3.4rem, 7vw, 7rem);
  font-weight: 950;
  line-height: .92;
  letter-spacing: -0.065em;
}

.gastro-title span {
  display: block;
  margin-top: 18px;
  font-size: clamp(1.25rem, 2.4vw, 2.25rem);
  line-height: 1.15;
  letter-spacing: -0.025em;
  background: linear-gradient(90deg, #facc15, #fed7aa, #ffffff);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.gastro-lead {
  max-width: 780px;
  color: rgba(255,255,255,.84);
  font-size: 1.16rem;
  line-height: 1.82;
  margin: 28px 0;
}

.gastro-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.btn-gastro-primary,
.btn-gastro-glass {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 24px;
  border-radius: 16px;
  text-decoration: none;
  font-weight: 850;
  transition: .35s ease;
}

.btn-gastro-primary {
  background: linear-gradient(135deg, #d4af37, #b87333);
  color: #1c1917;
  box-shadow: 0 20px 48px rgba(212,175,55,.30);
}

.btn-gastro-primary:hover {
  transform: translateY(-4px);
  color: #1c1917;
}

.btn-gastro-glass {
  color: #fff;
  border: 1px solid rgba(212,175,55,.32);
  background: rgba(255,255,255,.10);
  backdrop-filter: blur(18px);
}

.btn-gastro-glass:hover {
  transform: translateY(-4px);
  color: #fff;
}

/* PANEL */
.gastro-panel {
  position: relative;
  padding: 30px;
  border-radius: 36px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(212,175,55,.24);
  backdrop-filter: blur(24px);
  box-shadow: 0 35px 90px rgba(0,0,0,.34);
}

.gastro-panel-head {
  display: flex;
  align-items: center;
  gap: 16px;
  color: #fff;
  margin-bottom: 24px;
}

.gastro-panel-head > i {
  width: 60px;
  height: 60px;
  display: grid;
  place-items: center;
  border-radius: 20px;
  font-size: 1.9rem;
  background: rgba(212,175,55,.18);
  color: #facc15;
}

.gastro-panel-head h3 {
  margin: 0;
  font-weight: 950;
}

.gastro-panel-head p {
  margin: 4px 0 0;
  color: rgba(255,255,255,.72);
}

.gastro-chef-card {
  position: relative;
  padding: 30px;
  border-radius: 30px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(212,175,55,.22);
  color: #fff;
  overflow: hidden;
  margin-bottom: 20px;
}

.gastro-glow {
  position: absolute;
  width: 190px;
  height: 190px;
  right: -70px;
  top: -70px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(212,175,55,.38), transparent 68%);
  animation: gastroGlow 4s ease-in-out infinite;
}

@keyframes gastroGlow {
  0%, 100% { transform: scale(1); opacity: .75; }
  50% { transform: scale(1.25); opacity: 1; }
}

.chef-icon {
  position: relative;
  z-index: 2;
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  border-radius: 26px;
  background: linear-gradient(135deg, #d4af37, #b87333);
  color: #1c1917;
  font-size: 2.2rem;
  margin-bottom: 22px;
}

.gastro-chef-card h4,
.gastro-chef-card p {
  position: relative;
  z-index: 2;
}

.gastro-chef-card h4 {
  font-weight: 950;
  margin-bottom: 10px;
}

.gastro-chef-card p {
  color: rgba(255,255,255,.76);
  line-height: 1.7;
  margin: 0;
}

.gastro-panel-grid {
  display: grid;
  gap: 14px;
}

.gastro-panel-grid div {
  padding: 18px 20px;
  border-radius: 22px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(212,175,55,.18);
}

.gastro-panel-grid strong {
  display: block;
  color: #facc15;
  font-size: 1.8rem;
  line-height: 1;
  font-weight: 950;
}

.gastro-panel-grid span {
  color: rgba(255,255,255,.82);
}

.gastro-float {
  position: absolute;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  padding: 12px 16px;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: #1c1917;
  font-weight: 850;
  box-shadow: 0 20px 40px rgba(0,0,0,.22);
  animation: gastroFloat 4s ease-in-out infinite;
}

.float-one {
  top: -22px;
  right: 24px;
}

.float-two {
  bottom: -22px;
  left: 24px;
  animation-delay: 1.2s;
}

@keyframes gastroFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}

/* WHY */
.gastro-why {
  background:
    radial-gradient(circle at 15% 18%, rgba(212,175,55,.12), transparent 32%),
    #fafaf9;
}

.gastro-why-card {
  height: 100%;
  padding: 32px 26px;
  border-radius: 30px;
  background: #fff;
  border: 1px solid rgba(184,115,51,.14);
  box-shadow: 0 20px 55px rgba(15,23,42,.06);
  transition: .35s ease;
}

.gastro-why-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 30px 80px rgba(184,115,51,.16);
}

.gastro-why-icon {
  width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  border-radius: 23px;
  background: linear-gradient(135deg, #fef3c7, #ffedd5);
  color: var(--gastro-copper);
  font-size: 2rem;
  margin-bottom: 22px;
}

.gastro-why-card h3 {
  font-weight: 950;
  margin-bottom: 12px;
}

.gastro-why-card p {
  color: #64748b;
  line-height: 1.72;
  margin: 0;
}

/* PROFILE */
.gastro-profile {
  background: #fff;
}

.gastro-profile-visual {
  position: relative;
  min-height: 460px;
  display: grid;
  place-items: center;
}

.plate-orbit {
  position: absolute;
  width: 365px;
  height: 365px;
  border-radius: 50%;
  border: 2px dashed rgba(184,115,51,.22);
  animation: gastroRotate 20s linear infinite;
}

@keyframes gastroRotate {
  to { transform: rotate(360deg); }
}

.gastro-profile-card {
  position: relative;
  z-index: 2;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(184,115,51,.16);
  box-shadow: 0 28px 80px rgba(184,115,51,.13);
  backdrop-filter: blur(18px);
}

.gastro-profile-card.main {
  max-width: 390px;
  padding: 40px;
  border-radius: 36px;
}

.gastro-profile-card.main i {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  border-radius: 25px;
  background: linear-gradient(135deg, #d4af37, #b87333);
  color: #1c1917;
  font-size: 2.2rem;
  margin-bottom: 22px;
}

.gastro-profile-card.main h3 {
  font-weight: 950;
  margin-bottom: 12px;
}

.gastro-profile-card.main p {
  color: #64748b;
  line-height: 1.7;
  margin: 0;
}

.gastro-profile-card.small {
  position: absolute;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 17px;
  border-radius: 999px;
  font-weight: 850;
}

.gastro-profile-card.small.one {
  top: 54px;
  right: 40px;
}

.gastro-profile-card.small.two {
  bottom: 62px;
  left: 40px;
}

.gastro-profile-content span {
  display: inline-flex;
  padding: 9px 15px;
  border-radius: 999px;
  background: rgba(212,175,55,.12);
  color: #92400e;
  font-weight: 850;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 16px;
}

.gastro-profile-content h2 {
  font-size: clamp(2rem, 4vw, 3.4rem);
  line-height: 1.08;
  font-weight: 950;
  margin-bottom: 18px;
}

.gastro-profile-content p {
  color: #64748b;
  line-height: 1.82;
  font-size: 1.05rem;
}

.gastro-profile-list {
  display: grid;
  gap: 14px;
  margin-top: 26px;
}

.gastro-profile-list div {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 16px 18px;
  border-radius: 18px;
  background: #fafaf9;
  color: #334155;
  font-weight: 750;
}

.gastro-profile-list i {
  color: var(--gastro-copper);
  font-size: 1.25rem;
}

/* SKILLS */
.gastro-skills {
  background:
    linear-gradient(180deg, #fafaf9, #fff7ed);
}

.gastro-skills-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.gastro-skill-card {
  position: relative;
  padding: 32px 28px;
  border-radius: 30px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(184,115,51,.14);
  box-shadow: 0 20px 55px rgba(15,23,42,.06);
  overflow: hidden;
  transition: .35s ease;
}

.gastro-skill-card::after {
  content: "";
  position: absolute;
  right: -55px;
  bottom: -65px;
  width: 155px;
  height: 155px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(212,175,55,.16), rgba(184,115,51,.16));
  transition: .35s ease;
}

.gastro-skill-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 30px 80px rgba(184,115,51,.16);
}

.gastro-skill-card:hover::after {
  transform: scale(1.22);
}

.gastro-skill-card i,
.gastro-skill-card h3,
.gastro-skill-card p {
  position: relative;
  z-index: 2;
}

.gastro-skill-card i {
  color: var(--gastro-copper);
  font-size: 2.25rem;
  margin-bottom: 18px;
}

.gastro-skill-card h3 {
  font-size: 1.15rem;
  font-weight: 950;
  margin-bottom: 12px;
}

.gastro-skill-card p {
  color: #64748b;
  line-height: 1.72;
  margin: 0;
}

/* RESPONSIVE PARTE 1 */
@media (max-width: 991px) {
  .gastro-hero {
    padding: 130px 0 80px;
  }

  .gastro-hero .min-vh-100 {
    min-height: auto !important;
  }

  .gastro-skills-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .sl-gastro-page .section-space {
    padding: 85px 0;
  }
}

@media (max-width: 575px) {
  .gastro-title {
    font-size: 3.1rem;
  }

  .gastro-actions {
    flex-direction: column;
  }

  .btn-gastro-primary,
  .btn-gastro-glass {
    width: 100%;
    justify-content: center;
  }

  .gastro-skills-grid {
    grid-template-columns: 1fr;
  }

  .gastro-float {
    position: relative;
    inset: auto;
    width: 100%;
    justify-content: center;
    margin-top: 14px;
  }

  .gastro-profile-card.small {
    position: relative;
    inset: auto;
    margin-top: 14px;
  }
}
/* =========================================================
   PROGRAMA: GASTRONOMÍA
   PARTE 2/3
========================================================= */

/* ÁREAS */
.gastro-areas {
  background:
    radial-gradient(circle at 10% 20%, rgba(212,175,55,.13), transparent 30%),
    radial-gradient(circle at 90% 80%, rgba(184,115,51,.12), transparent 34%),
    #ffffff;
}

.gastro-areas-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}

.gastro-area-card {
  position: relative;
  min-height: 300px;
  padding: 34px 30px;
  border-radius: 32px;
  background: linear-gradient(180deg, #ffffff, #fff7ed);
  border: 1px solid rgba(184,115,51,.14);
  box-shadow: 0 24px 70px rgba(15,23,42,.07);
  overflow: hidden;
  transition: .38s ease;
}

.gastro-area-card::before {
  content: "";
  position: absolute;
  right: -55px;
  bottom: -65px;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(212,175,55,.18), rgba(184,115,51,.18));
  transition: .38s ease;
}

.gastro-area-card:hover {
  transform: translateY(-12px);
  box-shadow: 0 35px 90px rgba(184,115,51,.16);
}

.gastro-area-card:hover::before {
  transform: scale(1.22);
}

.gastro-area-icon {
  position: relative;
  z-index: 2;
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  border-radius: 24px;
  background: linear-gradient(135deg, #d4af37, #b87333);
  color: #1c1917;
  font-size: 2.15rem;
  margin-bottom: 24px;
  box-shadow: 0 18px 35px rgba(184,115,51,.25);
}

.gastro-area-card h3,
.gastro-area-card p {
  position: relative;
  z-index: 2;
}

.gastro-area-card h3 {
  font-weight: 950;
  margin-bottom: 14px;
}

.gastro-area-card p {
  color: #64748b;
  line-height: 1.75;
  margin: 0;
}

/* CAMPO LABORAL */
.gastro-work {
  position: relative;
  background:
    linear-gradient(135deg, #070707, #1c1917);
  color: #fff;
}

.gastro-work::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 15% 15%, rgba(212,175,55,.22), transparent 30%),
    radial-gradient(circle at 85% 75%, rgba(184,115,51,.18), transparent 35%);
}

.gastro-work-panel {
  position: sticky;
  top: 110px;
  padding: 34px;
  border-radius: 34px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(212,175,55,.22);
  backdrop-filter: blur(20px);
  box-shadow: 0 30px 85px rgba(0,0,0,.30);
}

.gastro-work-panel > span {
  display: inline-flex;
  padding: 9px 15px;
  border-radius: 999px;
  background: rgba(212,175,55,.14);
  color: #facc15;
  font-weight: 850;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 18px;
}

.gastro-work-panel h2 {
  font-size: clamp(2rem, 4vw, 3.4rem);
  font-weight: 950;
  line-height: 1.08;
  margin-bottom: 18px;
}

.gastro-work-panel p {
  color: rgba(255,255,255,.76);
  line-height: 1.82;
}

.gastro-work-note {
  display: flex;
  gap: 12px;
  padding: 18px;
  border-radius: 22px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(212,175,55,.20);
  color: rgba(255,255,255,.84);
  margin-top: 24px;
  line-height: 1.6;
}

.gastro-work-note i {
  color: #facc15;
  font-size: 1.25rem;
}

.gastro-work-timeline {
  position: relative;
  display: grid;
  gap: 24px;
}

.gastro-work-timeline::before {
  content: "";
  position: absolute;
  top: 20px;
  bottom: 20px;
  left: 33px;
  width: 2px;
  background: linear-gradient(180deg, #d4af37, #b87333);
  opacity: .7;
}

.gastro-work-item {
  position: relative;
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 22px;
}

.gastro-work-number {
  position: relative;
  z-index: 2;
  width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  border-radius: 22px;
  background: linear-gradient(135deg, #d4af37, #b87333);
  color: #1c1917;
  font-weight: 950;
  box-shadow: 0 20px 45px rgba(212,175,55,.25);
}

.gastro-work-content {
  padding: 28px;
  border-radius: 28px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(212,175,55,.18);
  backdrop-filter: blur(16px);
  transition: .35s ease;
}

.gastro-work-content:hover {
  transform: translateX(8px);
  background: rgba(255,255,255,.14);
}

.gastro-work-content h3 {
  font-weight: 950;
  margin-bottom: 10px;
}

.gastro-work-content p {
  color: rgba(255,255,255,.74);
  line-height: 1.7;
  margin: 0;
}

/* PLAN */
.gastro-plan {
  background:
    radial-gradient(circle at top right, rgba(212,175,55,.12), transparent 34%),
    #fafaf9;
}

.gastro-plan-shell {
  padding: 34px;
  border-radius: 36px;
  background: rgba(255,255,255,.90);
  border: 1px solid rgba(184,115,51,.14);
  box-shadow: 0 30px 90px rgba(15,23,42,.08);
}

.gastro-plan-top {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: center;
  padding: 26px;
  border-radius: 28px;
  background: linear-gradient(135deg, #111111, #92400e);
  color: #fff;
  margin-bottom: 28px;
}

.gastro-plan-top span {
  display: block;
  color: #facc15;
  font-size: .82rem;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 8px;
}

.gastro-plan-top h3 {
  margin: 0;
  font-weight: 950;
}

.gastro-plan-status {
  flex-shrink: 0;
  padding: 12px 18px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(212,175,55,.26);
  font-weight: 850;
}

.gastro-menu-board {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 22px;
}

.gastro-semester-card {
  padding: 26px;
  border-radius: 28px;
  background:
    linear-gradient(180deg, #ffffff, #fff7ed);
  border: 1px solid rgba(184,115,51,.14);
  transition: .35s ease;
}

.gastro-semester-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 24px 65px rgba(184,115,51,.13);
}

.gastro-semester-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
}

.gastro-semester-head span {
  width: 52px;
  height: 52px;
  display: grid;
  place-items: center;
  border-radius: 18px;
  background: linear-gradient(135deg, #d4af37, #b87333);
  color: #1c1917;
  font-weight: 950;
  font-size: 1.2rem;
}

.gastro-semester-head h4 {
  margin: 0;
  font-weight: 900;
  color: #0f172a;
}

.gastro-semester-card ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 11px;
}

.gastro-semester-card li {
  position: relative;
  padding-left: 24px;
  color: #475569;
  line-height: 1.5;
}

.gastro-semester-card li::before {
  content: "\F26A";
  font-family: "bootstrap-icons";
  position: absolute;
  left: 0;
  top: 1px;
  color: var(--gastro-copper);
}

.gastro-plan-note {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-top: 28px;
  padding: 20px 22px;
  border-radius: 24px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  color: #9a3412;
  font-weight: 750;
  line-height: 1.6;
}

.gastro-plan-note i {
  font-size: 1.35rem;
}

/* RESPONSIVE PARTE 2 */
@media (max-width: 1199px) {
  .gastro-areas-grid,
  .gastro-menu-board {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 991px) {
  .gastro-work-panel {
    position: relative;
    top: auto;
  }
}

@media (max-width: 767px) {
  .gastro-areas-grid,
  .gastro-menu-board {
    grid-template-columns: 1fr;
  }

  .gastro-plan-top {
    flex-direction: column;
    align-items: flex-start;
  }

  .gastro-plan-status {
    width: 100%;
    text-align: center;
  }

  .gastro-work-item {
    grid-template-columns: 54px 1fr;
    gap: 16px;
  }

  .gastro-work-number {
    width: 54px;
    height: 54px;
    border-radius: 18px;
    font-size: .9rem;
  }

  .gastro-work-timeline::before {
    left: 26px;
  }
}

/* =========================================================
   PROGRAMA: GASTRONOMÍA
   PARTE 3/3
========================================================= */

/* TALLERES */
.gastro-tech {
  background:
    radial-gradient(circle at 10% 15%, rgba(212,175,55,.13), transparent 30%),
    radial-gradient(circle at 90% 75%, rgba(184,115,51,.12), transparent 34%),
    #ffffff;
}

.gastro-tech-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}

.gastro-tech-card {
  position: relative;
  min-height: 270px;
  padding: 34px 30px;
  border-radius: 32px;
  background: rgba(255,255,255,.90);
  border: 1px solid rgba(184,115,51,.14);
  box-shadow: 0 24px 70px rgba(15,23,42,.07);
  overflow: hidden;
  transition: .36s ease;
}

.gastro-tech-card::after {
  content: "";
  position: absolute;
  right: -60px;
  top: -60px;
  width: 165px;
  height: 165px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(212,175,55,.18), rgba(184,115,51,.18));
  transition: .36s ease;
}

.gastro-tech-card:hover {
  transform: translateY(-12px);
  box-shadow: 0 35px 90px rgba(184,115,51,.16);
}

.gastro-tech-card:hover::after {
  transform: scale(1.25);
}

.gastro-tech-card i {
  position: relative;
  z-index: 2;
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  border-radius: 24px;
  background: linear-gradient(135deg, #d4af37, #b87333);
  color: #1c1917;
  font-size: 2.1rem;
  margin-bottom: 24px;
  box-shadow: 0 18px 35px rgba(184,115,51,.25);
}

.gastro-tech-card h3,
.gastro-tech-card p {
  position: relative;
  z-index: 2;
}

.gastro-tech-card h3 {
  font-weight: 950;
  margin-bottom: 14px;
}

.gastro-tech-card p {
  color: #64748b;
  line-height: 1.75;
  margin: 0;
}

/* INFRAESTRUCTURA */
.gastro-infra {
  background:
    linear-gradient(180deg, #fff7ed, #fafaf9);
}

.gastro-infra-content span {
  display: inline-flex;
  padding: 9px 15px;
  border-radius: 999px;
  background: rgba(212,175,55,.12);
  color: #92400e;
  font-weight: 850;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 16px;
}

.gastro-infra-content h2 {
  font-size: clamp(2rem, 4vw, 3.4rem);
  font-weight: 950;
  line-height: 1.08;
  margin-bottom: 18px;
}

.gastro-infra-content p {
  color: #64748b;
  line-height: 1.82;
  font-size: 1.05rem;
}

.gastro-infra-list {
  display: grid;
  gap: 14px;
  margin-top: 26px;
}

.gastro-infra-list div {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 16px 18px;
  border-radius: 18px;
  background: #ffffff;
  border: 1px solid rgba(184,115,51,.14);
  color: #334155;
  font-weight: 750;
  box-shadow: 0 16px 38px rgba(15,23,42,.05);
}

.gastro-infra-list i {
  color: var(--gastro-copper);
  font-size: 1.25rem;
}

.gastro-infra-visual {
  display: grid;
  gap: 22px;
}

.gastro-infra-card {
  padding: 28px;
  border-radius: 30px;
  background: rgba(255,255,255,.86);
  border: 1px solid rgba(184,115,51,.14);
  box-shadow: 0 22px 60px rgba(15,23,42,.07);
  transition: .35s ease;
}

.gastro-infra-card.active,
.gastro-infra-card:hover {
  transform: translateX(10px);
  background: linear-gradient(135deg, #111111, #92400e);
  color: #fff;
}

.gastro-infra-card i {
  font-size: 2.2rem;
  color: var(--gastro-copper);
  margin-bottom: 14px;
}

.gastro-infra-card.active i,
.gastro-infra-card:hover i {
  color: #facc15;
}

.gastro-infra-card h3 {
  font-weight: 950;
  margin-bottom: 10px;
}

.gastro-infra-card p {
  color: #64748b;
  line-height: 1.7;
  margin: 0;
}

.gastro-infra-card.active p,
.gastro-infra-card:hover p {
  color: rgba(255,255,255,.78);
}

/* FAQ */
.gastro-faq {
  background: #ffffff;
}

.gastro-faq-wrap {
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
}

.gastro-faq .accordion {
  display: grid;
  gap: 16px;
}

.gastro-faq .accordion-item {
  border: 1px solid rgba(184,115,51,.14);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 16px 45px rgba(15,23,42,.05);
}

.gastro-faq .accordion-button {
  padding: 22px 24px;
  font-weight: 850;
  color: #0f172a;
  background: #ffffff;
  box-shadow: none;
}

.gastro-faq .accordion-button:not(.collapsed) {
  color: #92400e;
  background: #fff7ed;
}

.gastro-faq .accordion-body {
  color: #64748b;
  line-height: 1.8;
  padding: 0 24px 24px;
}

/* CTA FINAL */
.gastro-final-cta {
  padding: 110px 0;
  background:
    radial-gradient(circle at 20% 20%, rgba(212,175,55,.22), transparent 32%),
    radial-gradient(circle at 80% 80%, rgba(184,115,51,.20), transparent 34%),
    linear-gradient(135deg, #070707, #1c1917);
}

.gastro-cta-box {
  max-width: 980px;
  margin: auto;
  padding: 56px;
  border-radius: 38px;
  text-align: center;
  color: #fff;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(212,175,55,.22);
  backdrop-filter: blur(22px);
  box-shadow: 0 35px 100px rgba(0,0,0,.30);
}

.gastro-cta-box span {
  display: inline-flex;
  margin-bottom: 16px;
  padding: 9px 16px;
  border-radius: 999px;
  background: rgba(212,175,55,.14);
  color: #facc15;
  font-weight: 850;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.gastro-cta-box h2 {
  font-size: clamp(2rem, 4vw, 3.6rem);
  font-weight: 950;
  line-height: 1.08;
  margin-bottom: 18px;
}

.gastro-cta-box p {
  color: rgba(255,255,255,.78);
  line-height: 1.82;
  font-size: 1.08rem;
  max-width: 780px;
  margin: 0 auto 28px;
}

/* AVISO */
.gastro-aviso {
  padding: 70px 0;
  background: #fff7ed;
}

.gastro-aviso-box {
  display: grid;
  grid-template-columns: 76px 1fr;
  gap: 24px;
  align-items: flex-start;
  padding: 34px;
  border-radius: 30px;
  background: #ffffff;
  border: 1px solid #fed7aa;
  box-shadow: 0 20px 60px rgba(154,52,18,.08);
}

.gastro-aviso-icon {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  border-radius: 24px;
  background: #ffedd5;
  color: #c2410c;
  font-size: 2.2rem;
}

.gastro-aviso-box h2 {
  color: #9a3412;
  font-weight: 950;
  margin-bottom: 12px;
}

.gastro-aviso-box p {
  color: #7c2d12;
  line-height: 1.82;
  margin: 0;
  font-weight: 650;
}

/* RESPONSIVE PARTE 3 */
@media (max-width: 1199px) {
  .gastro-tech-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 991px) {
  .gastro-infra-card.active,
  .gastro-infra-card:hover {
    transform: translateY(-6px);
  }
}

@media (max-width: 767px) {
  .gastro-tech-grid {
    grid-template-columns: 1fr;
  }

  .gastro-cta-box {
    padding: 36px 24px;
    border-radius: 30px;
  }

  .gastro-aviso-box {
    grid-template-columns: 1fr;
    padding: 28px 22px;
  }

  .gastro-aviso-icon {
    width: 64px;
    height: 64px;
    font-size: 1.8rem;
  }
}

@media (max-width: 575px) {
  .gastro-final-cta {
    padding: 80px 0;
  }

  .gastro-aviso {
    padding: 55px 0;
  }
}
/* =========================================================
   PROGRAMA: CONTABILIDAD
   PARTE 1/3
========================================================= */

.sl-conta-page {
  --conta-blue: #0f4c81;
  --conta-green: #10b981;
  --conta-dark: #0f172a;
  --conta-petrol: #083344;
  --conta-soft: #f0fdfa;
  color: #0f172a;
  overflow: hidden;
}

.sl-conta-page .section-space {
  padding: 110px 0;
}

/* HERO */
.conta-hero {
  position: relative;
  min-height: 100vh;
  background: #08111f;
  isolation: isolate;
}

.conta-hero-bg {
  position: absolute;
  inset: 0;
  z-index: -3;
  background:
    linear-gradient(120deg, rgba(15,23,42,.92), rgba(15,76,129,.76)),
    url('/assets/img/programas/contabilidad.jpg') center/cover fixed;
}

.conta-hero-pattern {
  position: absolute;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(circle at 16% 22%, rgba(16,185,129,.22), transparent 30%),
    radial-gradient(circle at 85% 70%, rgba(14,165,233,.20), transparent 34%),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(180deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size: auto, auto, 54px 54px, 54px 54px;
}

.conta-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 18px;
  border-radius: 999px;
  color: #fff;
  font-weight: 850;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(18px);
  margin-bottom: 24px;
}

.conta-title {
  color: #fff;
  font-size: clamp(3.3rem, 7vw, 6.8rem);
  font-weight: 950;
  line-height: .92;
  letter-spacing: -0.065em;
}

.conta-title span {
  display: block;
  margin-top: 18px;
  font-size: clamp(1.25rem, 2.4vw, 2.25rem);
  line-height: 1.15;
  letter-spacing: -0.025em;
  background: linear-gradient(90deg, #67e8f9, #86efac, #ffffff);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.conta-lead {
  max-width: 780px;
  color: rgba(255,255,255,.84);
  font-size: 1.16rem;
  line-height: 1.82;
  margin: 28px 0;
}

.conta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.btn-conta-primary,
.btn-conta-glass {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 15px 24px;
  border-radius: 16px;
  text-decoration: none;
  font-weight: 850;
  transition: .35s ease;
}

.btn-conta-primary {
  background: linear-gradient(135deg, #10b981, #0ea5e9);
  color: #022c22;
  box-shadow: 0 20px 48px rgba(16,185,129,.30);
}

.btn-conta-primary:hover {
  transform: translateY(-4px);
  color: #022c22;
}

.btn-conta-glass {
  color: #fff;
  border: 1px solid rgba(255,255,255,.20);
  background: rgba(255,255,255,.10);
  backdrop-filter: blur(18px);
}

.btn-conta-glass:hover {
  transform: translateY(-4px);
  color: #fff;
}

/* DASHBOARD HERO */
.conta-dashboard-panel {
  position: relative;
  padding: 30px;
  border-radius: 36px;
  background: rgba(255,255,255,.11);
  border: 1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(24px);
  box-shadow: 0 35px 95px rgba(0,0,0,.32);
}

.dashboard-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #fff;
  margin-bottom: 22px;
}

.dashboard-head span {
  color: #86efac;
  font-weight: 850;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.dashboard-head h3 {
  margin: 4px 0 0;
  font-weight: 950;
}

.dashboard-head i {
  width: 58px;
  height: 58px;
  display: grid;
  place-items: center;
  border-radius: 20px;
  background: rgba(16,185,129,.18);
  color: #86efac;
  font-size: 1.8rem;
}

.kpi-grid {
  display: grid;
  gap: 14px;
  margin-bottom: 18px;
}

.kpi-card {
  padding: 18px 20px;
  border-radius: 22px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.16);
}

.kpi-card span {
  display: block;
  color: rgba(255,255,255,.72);
  font-weight: 700;
  margin-bottom: 8px;
}

.kpi-card strong {
  display: block;
  color: #ffffff;
  font-size: 1.9rem;
  line-height: 1;
  margin-bottom: 12px;
}

.kpi-bar {
  height: 8px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  overflow: hidden;
}

.kpi-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #10b981, #0ea5e9);
  animation: contaBar 2.2s ease both;
}

@keyframes contaBar {
  from { width: 0; }
}

.chart-card {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 18px;
  align-items: center;
  padding: 22px;
  border-radius: 26px;
  background: rgba(255,255,255,.13);
  border: 1px solid rgba(255,255,255,.16);
  color: #fff;
}

.chart-bars {
  display: flex;
  align-items: end;
  gap: 8px;
  height: 100px;
}

.chart-bars span {
  width: 14px;
  border-radius: 999px 999px 4px 4px;
  background: linear-gradient(180deg, #67e8f9, #10b981);
  animation: contaBars 2.5s ease-in-out infinite alternate;
}

.chart-bars span:nth-child(2) { animation-delay: .2s; }
.chart-bars span:nth-child(3) { animation-delay: .4s; }
.chart-bars span:nth-child(4) { animation-delay: .6s; }
.chart-bars span:nth-child(5) { animation-delay: .8s; }

@keyframes contaBars {
  from { transform: scaleY(.78); }
  to { transform: scaleY(1); }
}

.chart-card h4 {
  font-weight: 950;
  margin-bottom: 6px;
}

.chart-card p {
  color: rgba(255,255,255,.72);
  margin: 0;
}

.conta-float {
  position: absolute;
  display: inline-flex;
  gap: 8px;
  align-items: center;
  padding: 12px 16px;
  border-radius: 999px;
  background: rgba(255,255,255,.94);
  color: #0f172a;
  font-weight: 850;
  box-shadow: 0 20px 40px rgba(0,0,0,.22);
  animation: contaFloat 4s ease-in-out infinite;
}

.float-one {
  top: -22px;
  right: 24px;
}

.float-two {
  bottom: -22px;
  left: 24px;
  animation-delay: 1.2s;
}

@keyframes contaFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-12px); }
}

/* WHY */
.conta-why {
  background:
    radial-gradient(circle at 15% 18%, rgba(16,185,129,.11), transparent 32%),
    #f8fafc;
}

.conta-why-card {
  height: 100%;
  padding: 32px 26px;
  border-radius: 30px;
  background: #fff;
  border: 1px solid rgba(15,76,129,.12);
  box-shadow: 0 20px 55px rgba(15,23,42,.06);
  transition: .35s ease;
}

.conta-why-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 30px 80px rgba(15,76,129,.15);
}

.conta-why-icon {
  width: 68px;
  height: 68px;
  display: grid;
  place-items: center;
  border-radius: 23px;
  background: linear-gradient(135deg, #dbeafe, #d1fae5);
  color: var(--conta-blue);
  font-size: 2rem;
  margin-bottom: 22px;
}

.conta-why-card h3 {
  font-weight: 950;
  margin-bottom: 12px;
}

.conta-why-card p {
  color: #64748b;
  line-height: 1.72;
  margin: 0;
}

/* PROFILE */
.conta-profile {
  background: #fff;
}

.conta-profile-content span {
  display: inline-flex;
  padding: 9px 15px;
  border-radius: 999px;
  background: rgba(15,76,129,.10);
  color: var(--conta-blue);
  font-weight: 850;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 16px;
}

.conta-profile-content h2 {
  font-size: clamp(2rem, 4vw, 3.4rem);
  line-height: 1.08;
  font-weight: 950;
  margin-bottom: 18px;
}

.conta-profile-content p {
  color: #64748b;
  line-height: 1.82;
  font-size: 1.05rem;
}

.conta-profile-list {
  display: grid;
  gap: 14px;
  margin-top: 26px;
}

.conta-profile-list div {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 16px 18px;
  border-radius: 18px;
  background: #f8fafc;
  color: #334155;
  font-weight: 750;
}

.conta-profile-list i {
  color: var(--conta-green);
  font-size: 1.25rem;
}

.conta-profile-visual {
  position: relative;
  min-height: 460px;
  display: grid;
  place-items: center;
}

.finance-orbit {
  position: absolute;
  width: 365px;
  height: 365px;
  border-radius: 50%;
  border: 2px dashed rgba(15,76,129,.20);
  animation: contaRotate 18s linear infinite;
}

@keyframes contaRotate {
  to { transform: rotate(360deg); }
}

.finance-card {
  position: relative;
  z-index: 2;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(15,76,129,.14);
  box-shadow: 0 28px 80px rgba(15,76,129,.13);
  backdrop-filter: blur(18px);
}

.finance-card.main {
  max-width: 390px;
  padding: 40px;
  border-radius: 36px;
}

.finance-card.main i {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  border-radius: 25px;
  background: linear-gradient(135deg, #0f4c81, #10b981);
  color: #fff;
  font-size: 2.2rem;
  margin-bottom: 22px;
}

.finance-card.main h3 {
  font-weight: 950;
  margin-bottom: 12px;
}

.finance-card.main p {
  color: #64748b;
  line-height: 1.7;
  margin: 0;
}

.finance-card.mini {
  position: absolute;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 13px 17px;
  border-radius: 999px;
  font-weight: 850;
}

.finance-card.mini.one {
  top: 54px;
  right: 40px;
}

.finance-card.mini.two {
  bottom: 62px;
  left: 40px;
}

/* SKILLS */
.conta-skills {
  background:
    linear-gradient(180deg, #f8fafc, #f0fdfa);
}

.conta-skills-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}

.conta-skill-card {
  position: relative;
  padding: 32px 28px;
  border-radius: 30px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(15,76,129,.13);
  box-shadow: 0 20px 55px rgba(15,23,42,.06);
  overflow: hidden;
  transition: .35s ease;
}

.conta-skill-card::after {
  content: "";
  position: absolute;
  right: -55px;
  bottom: -65px;
  width: 155px;
  height: 155px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(14,165,233,.14), rgba(16,185,129,.14));
  transition: .35s ease;
}

.conta-skill-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 30px 80px rgba(15,76,129,.16);
}

.conta-skill-card:hover::after {
  transform: scale(1.22);
}

.conta-skill-card i,
.conta-skill-card h3,
.conta-skill-card p {
  position: relative;
  z-index: 2;
}

.conta-skill-card i {
  color: var(--conta-blue);
  font-size: 2.25rem;
  margin-bottom: 18px;
}

.conta-skill-card h3 {
  font-size: 1.15rem;
  font-weight: 950;
  margin-bottom: 12px;
}

.conta-skill-card p {
  color: #64748b;
  line-height: 1.72;
  margin: 0;
}

/* RESPONSIVE PARTE 1 */
@media (max-width: 991px) {
  .conta-hero {
    padding: 130px 0 80px;
  }

  .conta-hero .min-vh-100 {
    min-height: auto !important;
  }

  .conta-skills-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .sl-conta-page .section-space {
    padding: 85px 0;
  }
}

@media (max-width: 575px) {
  .conta-title {
    font-size: 3.1rem;
  }

  .conta-actions {
    flex-direction: column;
  }

  .btn-conta-primary,
  .btn-conta-glass {
    width: 100%;
    justify-content: center;
  }

  .conta-skills-grid {
    grid-template-columns: 1fr;
  }

  .chart-card {
    grid-template-columns: 1fr;
  }

  .conta-float {
    position: relative;
    inset: auto;
    width: 100%;
    justify-content: center;
    margin-top: 14px;
  }

  .finance-card.mini {
    position: relative;
    inset: auto;
    margin-top: 14px;
  }
}
/*====================================================
CONTABILIDAD - PARTE 2
====================================================*/

.conta-areas{
background:#fff;
}

.conta-areas-grid{
display:grid;
grid-template-columns:repeat(3,1fr);
gap:28px;
}

.conta-area-card{
background:#fff;
border-radius:24px;
padding:35px;
border:1px solid #e5e7eb;
transition:.35s;
box-shadow:0 20px 45px rgba(15,23,42,.05);
}

.conta-area-card:hover{
transform:translateY(-10px);
box-shadow:0 30px 70px rgba(15,76,129,.12);
}

.conta-area-icon{
width:70px;
height:70px;
border-radius:20px;
display:grid;
place-items:center;
background:linear-gradient(135deg,#0f4c81,#10b981);
color:#fff;
font-size:30px;
margin-bottom:20px;
}

.conta-work{
background:linear-gradient(135deg,#08111f,#0f4c81);
color:#fff;
}

.conta-timeline{
display:grid;
gap:30px;
max-width:900px;
margin:auto;
}

.timeline-item{
display:flex;
gap:25px;
align-items:flex-start;
}

.timeline-icon{
width:70px;
height:70px;
border-radius:22px;
display:grid;
place-items:center;
background:linear-gradient(135deg,#10b981,#22d3ee);
font-size:30px;
color:#fff;
flex-shrink:0;
}

.timeline-content{
padding:30px;
border-radius:24px;
background:rgba(255,255,255,.08);
backdrop-filter:blur(15px);
border:1px solid rgba(255,255,255,.12);
}

.timeline-content h3{
font-weight:800;
margin-bottom:10px;
}

.timeline-content p{
color:rgba(255,255,255,.78);
margin:0;
line-height:1.7;
}

.conta-plan{
background:#f8fafc;
}

.semester-card{
background:#fff;
padding:35px;
border-radius:25px;
box-shadow:0 20px 45px rgba(15,23,42,.05);
height:100%;
}

.semester-card h3{
width:60px;
height:60px;
border-radius:18px;
display:grid;
place-items:center;
background:linear-gradient(135deg,#0f4c81,#10b981);
color:#fff;
font-weight:800;
margin-bottom:25px;
}

.semester-card ul{
padding-left:18px;
margin:0;
display:grid;
gap:10px;
}

.semester-card li{
color:#475569;
line-height:1.6;
}

@media(max-width:992px){

.conta-areas-grid{
grid-template-columns:repeat(2,1fr);
}

}

@media(max-width:768px){

.conta-areas-grid{
grid-template-columns:1fr;
}

.timeline-item{
flex-direction:column;
}

}
/*====================================================
CONTABILIDAD - PARTE 3
====================================================*/

.conta-tech {
  background: #ffffff;
}

.conta-tech-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.conta-tech-card {
  position: relative;
  min-height: 270px;
  padding: 34px;
  border-radius: 30px;
  background: #ffffff;
  border: 1px solid rgba(15,76,129,.13);
  box-shadow: 0 24px 70px rgba(15,23,42,.07);
  overflow: hidden;
  transition: .35s ease;
}

.conta-tech-card::after {
  content: "";
  position: absolute;
  right: -60px;
  top: -60px;
  width: 165px;
  height: 165px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(14,165,233,.15), rgba(16,185,129,.15));
  transition: .35s ease;
}

.conta-tech-card:hover {
  transform: translateY(-12px);
  box-shadow: 0 35px 90px rgba(15,76,129,.16);
}

.conta-tech-card:hover::after {
  transform: scale(1.25);
}

.conta-tech-card i,
.conta-tech-card h3,
.conta-tech-card p {
  position: relative;
  z-index: 2;
}

.conta-tech-card i {
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  border-radius: 24px;
  background: linear-gradient(135deg, #0f4c81, #10b981);
  color: #fff;
  font-size: 2.1rem;
  margin-bottom: 24px;
}

.conta-tech-card h3 {
  font-weight: 900;
  margin-bottom: 14px;
}

.conta-tech-card p {
  color: #64748b;
  line-height: 1.75;
  margin: 0;
}

.conta-infra {
  background: linear-gradient(180deg, #f0fdfa, #f8fafc);
}

.conta-infra-content span {
  display: inline-flex;
  padding: 9px 15px;
  border-radius: 999px;
  background: rgba(15,76,129,.10);
  color: #0f4c81;
  font-weight: 800;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 16px;
}

.conta-infra-content h2 {
  font-size: clamp(2rem, 4vw, 3.4rem);
  font-weight: 950;
  line-height: 1.08;
  margin-bottom: 18px;
}

.conta-infra-content p {
  color: #64748b;
  line-height: 1.82;
  font-size: 1.05rem;
}

.conta-infra-list {
  display: grid;
  gap: 14px;
  margin-top: 26px;
}

.conta-infra-list div {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 16px 18px;
  border-radius: 18px;
  background: #fff;
  border: 1px solid rgba(15,76,129,.12);
  color: #334155;
  font-weight: 750;
  box-shadow: 0 16px 38px rgba(15,23,42,.05);
}

.conta-infra-list i {
  color: #10b981;
  font-size: 1.25rem;
}

.conta-infra-visual {
  display: grid;
  gap: 22px;
}

.conta-infra-card {
  padding: 28px;
  border-radius: 30px;
  background: rgba(255,255,255,.88);
  border: 1px solid rgba(15,76,129,.13);
  box-shadow: 0 22px 60px rgba(15,23,42,.07);
  transition: .35s ease;
}

.conta-infra-card.active,
.conta-infra-card:hover {
  transform: translateX(10px);
  background: linear-gradient(135deg, #0f172a, #0f4c81);
  color: #fff;
}

.conta-infra-card i {
  font-size: 2.2rem;
  color: #0f4c81;
  margin-bottom: 14px;
}

.conta-infra-card.active i,
.conta-infra-card:hover i {
  color: #86efac;
}

.conta-infra-card h3 {
  font-weight: 900;
  margin-bottom: 10px;
}

.conta-infra-card p {
  color: #64748b;
  line-height: 1.7;
  margin: 0;
}

.conta-infra-card.active p,
.conta-infra-card:hover p {
  color: rgba(255,255,255,.78);
}

.conta-faq {
  background: #fff;
}

.conta-faq-wrap {
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
}

.conta-faq .accordion {
  display: grid;
  gap: 16px;
}

.conta-faq .accordion-item {
  border: 1px solid rgba(15,76,129,.13);
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 16px 45px rgba(15,23,42,.05);
}

.conta-faq .accordion-button {
  padding: 22px 24px;
  font-weight: 850;
  color: #0f172a;
  background: #fff;
  box-shadow: none;
}

.conta-faq .accordion-button:not(.collapsed) {
  color: #0f4c81;
  background: #f0fdfa;
}

.conta-faq .accordion-body {
  color: #64748b;
  line-height: 1.8;
  padding: 0 24px 24px;
}

.conta-final-cta {
  padding: 110px 0;
  background:
    radial-gradient(circle at 20% 20%, rgba(16,185,129,.22), transparent 32%),
    radial-gradient(circle at 80% 80%, rgba(14,165,233,.18), transparent 34%),
    linear-gradient(135deg, #08111f, #0f4c81);
}

.conta-cta-box {
  max-width: 980px;
  margin: auto;
  padding: 56px;
  border-radius: 38px;
  text-align: center;
  color: #fff;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.16);
  backdrop-filter: blur(22px);
  box-shadow: 0 35px 100px rgba(0,0,0,.30);
}

.conta-cta-box span {
  display: inline-flex;
  margin-bottom: 16px;
  padding: 9px 16px;
  border-radius: 999px;
  background: rgba(16,185,129,.14);
  color: #86efac;
  font-weight: 850;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .08em;
}

.conta-cta-box h2 {
  font-size: clamp(2rem, 4vw, 3.6rem);
  font-weight: 950;
  line-height: 1.08;
  margin-bottom: 18px;
}

.conta-cta-box p {
  color: rgba(255,255,255,.78);
  line-height: 1.82;
  font-size: 1.08rem;
  max-width: 780px;
  margin: 0 auto 28px;
}

.conta-aviso {
  padding: 70px 0;
  background: #fff7ed;
}

.conta-aviso-box {
  display: grid;
  grid-template-columns: 76px 1fr;
  gap: 24px;
  align-items: flex-start;
  padding: 34px;
  border-radius: 30px;
  background: #ffffff;
  border: 1px solid #fed7aa;
  box-shadow: 0 20px 60px rgba(154,52,18,.08);
}

.conta-aviso-icon {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  border-radius: 24px;
  background: #ffedd5;
  color: #c2410c;
  font-size: 2.2rem;
}

.conta-aviso-box h2 {
  color: #9a3412;
  font-weight: 950;
  margin-bottom: 12px;
}

.conta-aviso-box p {
  color: #7c2d12;
  line-height: 1.82;
  margin: 0;
  font-weight: 650;
}

@media (max-width: 1199px) {
  .conta-tech-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 991px) {
  .conta-infra-card.active,
  .conta-infra-card:hover {
    transform: translateY(-6px);
  }
}

@media (max-width: 767px) {
  .conta-tech-grid {
    grid-template-columns: 1fr;
  }

  .conta-cta-box {
    padding: 36px 24px;
    border-radius: 30px;
  }

  .conta-aviso-box {
    grid-template-columns: 1fr;
    padding: 28px 22px;
  }

  .conta-aviso-icon {
    width: 64px;
    height: 64px;
    font-size: 1.8rem;
  }
}

/* =========================================================
   PANTALLA DE CARGA INSTITUCIONAL
   ========================================================= */
.sl-preloader {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: grid;
  place-items: center;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 42%, rgba(15, 95, 168, .34), transparent 34%),
    linear-gradient(145deg, #04152b 0%, #082f5e 52%, #061f3f 100%);
  opacity: 1;
  visibility: visible;
  transition: opacity .55s ease, visibility .55s ease;
}

.sl-preloader::before {
  content: "";
  position: absolute;
  inset: -40%;
  background: conic-gradient(
    from 180deg,
    transparent 0 38%,
    rgba(216, 165, 40, .10) 45%,
    rgba(255, 222, 128, .16) 50%,
    rgba(216, 165, 40, .10) 55%,
    transparent 62% 100%
  );
  animation: sl-preloader-glow 7s linear infinite;
}

.sl-preloader.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.sl-preloader-inner {
  position: relative;
  z-index: 1;
  width: min(84vw, 360px);
  text-align: center;
}

.sl-preloader-logo-wrap {
  position: relative;
  width: 142px;
  height: 142px;
  margin: 0 auto 24px;
  display: grid;
  place-items: center;
}

.sl-preloader-logo-wrap::before,
.sl-preloader-logo-wrap::after {
  content: "";
  position: absolute;
  border-radius: 50%;
}

.sl-preloader-logo-wrap::before {
  inset: 0;
  border: 1px solid rgba(255, 255, 255, .16);
  box-shadow:
    0 0 45px rgba(15, 95, 168, .38),
    inset 0 0 30px rgba(255, 255, 255, .06);
  animation: sl-preloader-ring 2.2s ease-in-out infinite;
}

.sl-preloader-logo-wrap::after {
  inset: 9px;
  border-top: 2px solid var(--dorado);
  border-right: 2px solid transparent;
  animation: sl-preloader-spin 1.8s linear infinite;
}

.sl-preloader-logo {
  position: relative;
  z-index: 2;
  width: 92px;
  height: 92px;
  object-fit: contain;
  filter: drop-shadow(0 12px 24px rgba(0, 0, 0, .32));
  animation: sl-preloader-zoom 1.65s ease-in-out infinite;
}

.sl-preloader-title {
  margin: 0;
  color: #fff;
  font-family: 'Poppins', sans-serif;
  font-size: clamp(1rem, 3.2vw, 1.22rem);
  font-weight: 800;
  letter-spacing: .02em;
}

.sl-preloader-text {
  margin: 7px 0 18px;
  color: rgba(255, 255, 255, .68);
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.sl-preloader-line {
  position: relative;
  width: min(250px, 72vw);
  height: 3px;
  margin: 0 auto;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, .11);
}

.sl-preloader-line::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: -42%;
  width: 42%;
  border-radius: inherit;
  background: linear-gradient(
    90deg,
    transparent,
    var(--dorado),
    #ffe7a0,
    var(--dorado),
    transparent
  );
  box-shadow: 0 0 15px rgba(216, 165, 40, .88);
  animation: sl-preloader-line 1.35s ease-in-out infinite;
}

@keyframes sl-preloader-zoom {
  0%, 100% { transform: scale(.92); }
  50% { transform: scale(1.06); }
}

@keyframes sl-preloader-ring {
  0%, 100% { transform: scale(.94); opacity: .55; }
  50% { transform: scale(1.06); opacity: 1; }
}

@keyframes sl-preloader-spin {
  to { transform: rotate(360deg); }
}

@keyframes sl-preloader-line {
  0% { left: -42%; }
  100% { left: 100%; }
}

@keyframes sl-preloader-glow {
  to { transform: rotate(360deg); }
}

@media (max-width: 575px) {
  .sl-preloader-logo-wrap {
    width: 120px;
    height: 120px;
    margin-bottom: 20px;
  }

  .sl-preloader-logo {
    width: 78px;
    height: 78px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sl-preloader::before,
  .sl-preloader-logo-wrap::before,
  .sl-preloader-logo-wrap::after,
  .sl-preloader-logo,
  .sl-preloader-line::after {
    animation: none !important;
  }

  .sl-preloader-line::after {
    left: 29%;
  }
}