/* ----------------------------- */
/*  VARIABLES & GLOBAL SETTINGS  */
/* ----------------------------- */
:root{
  /* Tetrad Palette */
  --clr-primary:#005bea;           /* Azul vibrante */
  --clr-primary-dark:#0046b7;
  --clr-secondary:#f20732;         /* Rojo intenso  */
  --clr-secondary-dark:#c10528;
  --clr-accent-1:#ffa41b;          /* Naranja vivo  */
  --clr-accent-1-dark:#d9850f;
  --clr-accent-2:#18a999;          /* Verde/Teal    */
  --clr-accent-2-dark:#0e7467;

  --clr-bg:#ffffff;
  --clr-bg-alt:#f4f7fa;
  --clr-text:#222222;
  --clr-text-light:#555555;

  --radius-sm:.35rem;
  --radius-md:.75rem;
  --radius-lg:1.25rem;

  --shadow-sm:0 2px 6px rgba(0,0,0,.08);
  --shadow-md:0 4px 12px rgba(0,0,0,.12);

  --ff-heading:'Archivo Black',sans-serif;
  --ff-body:'Roboto',sans-serif;

  --transition:all .35s ease;
}

/* Reset */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--ff-body);
  color:var(--clr-text);
  background:var(--clr-bg);
  line-height:1.6;
}
img{display:block;max-width:100%;height:auto;}
a{text-decoration:none;color:var(--clr-primary);transition:color .2s ease;}
a:hover{color:var(--clr-secondary);}
h1,h2,h3,h4,h5,h6{
  font-family:var(--ff-heading);
  color:var(--clr-text);
  text-align:center;
  line-height:1.2;
}
p{margin-bottom:1rem;}

/* Utility Containers */
.container{
  width:90%;
  max-width:1200px;
  margin-inline:auto;
}
.is-two-thirds{width:100%;}

/* ----------------------------- */
/*  HEADER & NAVIGATION          */
/* ----------------------------- */
.site-header{
  background:var(--clr-bg);
  box-shadow:var(--shadow-sm);
  position:sticky;top:0;z-index:800;
}
.navbar{
  display:flex;align-items:center;justify-content:space-between;
  padding:.75rem 1rem;
}
.logo{font-family:var(--ff-heading);font-size:1.5rem;color:var(--clr-primary);}
.nav-menu{display:flex;gap:1rem;list-style:none;}
.nav-menu a{font-weight:500;color:var(--clr-text);padding:.5rem .25rem;position:relative;}
.nav-menu a::after{
  content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--clr-primary);
  transition:width .3s ease;
}
.nav-menu a:hover::after{width:100%;}
.nav-toggle{
  display:none;background:none;border:none;font-size:1.5rem;color:var(--clr-primary);cursor:pointer;
}

/* Mobile Nav */
@media(max-width:768px){
  .nav-toggle{display:block;}
  .nav-menu{
    position:absolute;top:100%;left:0;width:100%;flex-direction:column;
    background:var(--clr-bg);max-height:0;overflow:hidden;transition:max-height .3s ease;
  }
  .nav-menu.open{max-height:420px;}
  .nav-menu a{padding:.75rem 1rem;}
}

/* ----------------------------- */
/*  BUTTONS                      */
/* ----------------------------- */
.btn,.btn-cta,button,input[type='submit']{
  display:inline-block;
  font-family:var(--ff-heading);
  background:var(--clr-primary);
  color:#fff;
  padding:.75rem 1.25rem;
  border:none;
  border-radius:var(--radius-sm);
  box-shadow:var(--shadow-sm);
  cursor:pointer;
  transition:var(--transition);
}
.btn-cta:hover,.btn:hover,button:hover,input[type='submit']:hover{
  background:var(--clr-secondary);
  transform:translateY(-2px);
}

/* ----------------------------- */
/*  HERO                         */
/* ----------------------------- */
.hero-section{
  position:relative;
  width:100%;
  min-height:80vh;
  display:flex;
  align-items:center;
  background-size:cover!important;
  background-repeat:no-repeat!important;
  background-position:center;
  color:#ffffff;
  text-shadow:1px 1px 3px rgba(0,0,0,.6);
}
.hero-section .container{text-align:center;}
.hero-section p{max-width:650px;margin-inline:auto;margin-bottom:2rem;color:#fff;}

/* ----------------------------- */
/*  SECTION STANDARD             */
/* ----------------------------- */
section{
  padding:4rem 0;
}
.section-title{margin-bottom:2rem;text-shadow:1px 1px 3px rgba(0,0,0,.12);}

/* Curved divider */
.section-curved{
  position:relative;background:var(--clr-bg-alt);
}
.section-curved::before{
  content:'';position:absolute;top:-60px;left:0;width:100%;height:60px;
  background:var(--clr-bg-alt);
  clip-path:ellipse(75% 100% at 50% 0%);
}

/* ----------------------------- */
/*  INNOVATION                   */
/* ----------------------------- */
.progress-wrapper{margin-top:1.5rem;}
progress{
  width:100%;height:1rem;border:none;border-radius:var(--radius-sm);
  overflow:hidden;
}
progress::-webkit-progress-bar{background:#ddd;}
progress::-webkit-progress-value{background:var(--clr-accent-1);}
progress::-moz-progress-bar{background:var(--clr-accent-1);}

/* ----------------------------- */
/*  RESOURCES                    */
/* ----------------------------- */
.resource-links{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:1.5rem;
}
.card{
  background:var(--clr-bg);
  border-radius:var(--radius-sm);
  box-shadow:var(--shadow-sm);
  display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:1.25rem;
  transition:var(--transition);
}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
.card-content a{font-weight:700;color:var(--clr-primary);}
.card-content a:hover{color:var(--clr-secondary);}
.card p{color:var(--clr-text-light);}

/* ----------------------------- */
/*  BLOG                         */
/* ----------------------------- */
.custom-slider{
  display:grid;
  grid-auto-flow:column;
  gap:1.5rem;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
}
.custom-slider .slide{scroll-snap-align:start;min-width:300px;}
.image-container{width:100%;height:200px;overflow:hidden;border-radius:var(--radius-sm);}
.image-container img{
  width:100%;height:100%;object-fit:cover;margin:0 auto;
}

/* ----------------------------- */
/*  CLIENTELE / GALLERY          */
/* ----------------------------- */
.gallery{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:1.5rem;
}
.gallery .card-image{height:200px;}
.gallery h4{margin-top:1rem;color:var(--clr-primary);}

/* ----------------------------- */
/*  INSTRUCTORS                  */
/* ----------------------------- */
.team-cards{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:1.5rem;
}
.team-cards .card-image{width:240px;height:240px;border-radius:50%;overflow:hidden;}
.team-cards h4{margin-top:1rem;color:var(--clr-primary);}

/* ----------------------------- */
/*  HISTORY / TIMELINE           */
/* ----------------------------- */
.timeline{
  list-style:none;padding-left:0;max-width:600px;margin:2rem auto;
  border-left:3px solid var(--clr-primary);
}
.timeline li{
  padding:.5rem 1rem;
  position:relative;
}
.timeline li::before{
  content:'';
  position:absolute;left:-9px;top:8px;
  width:14px;height:14px;border-radius:50%;
  background:var(--clr-primary);
}

/* ----------------------------- */
/*  CONTACT FORM                 */
/* ----------------------------- */
.contact-section .form-group{margin-bottom:1rem;}
.contact-section label{display:block;margin-bottom:.35rem;font-weight:500;}
.contact-section input,.contact-section textarea{
  width:100%;padding:.65rem .85rem;border:1px solid #ccc;border-radius:var(--radius-sm);
  font-family:var(--ff-body);transition:border .2s ease;
}
.contact-section input:focus,
.contact-section textarea:focus{outline:none;border-color:var(--clr-primary);}

/* ----------------------------- */
/*  FOOTER                       */
/* ----------------------------- */
.site-footer{
  background:var(--clr-primary-dark);
  color:#ffffff;
  padding:2rem 0;
  text-align:center;
}
.footer-nav a{color:#ffffff;font-weight:500;margin:0 .5rem;}
.footer-nav a:hover{color:var(--clr-accent-1);}
.social-links a{
  color:#ffffff;
  margin:0 .35rem;
  padding:.25rem .5rem;
  background:rgba(255,255,255,.1);
  border-radius:var(--radius-sm);
  transition:var(--transition);
}
.social-links a:hover{background:rgba(255,255,255,.25);}

/* ----------------------------- */
/*  SUCCESS PAGE                 */
/* ----------------------------- */
.success-wrapper{
  min-height:100vh;
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  text-align:center;
}
.success-wrapper h1{color:var(--clr-primary);margin-bottom:1rem;}

/* ----------------------------- */
/*  PRIVACY & TERMS PAGES        */
/* ----------------------------- */
.legal-page{padding-top:100px;padding-bottom:3rem;}
.legal-page h2{margin-bottom:1.5rem;color:var(--clr-primary);}

/* ----------------------------- */
/*  COOKIES POPUP (additional)   */
/* ----------------------------- */
#cookie-popup button:hover{background:var(--clr-secondary);}

/* ----------------------------- */
/*  MEDIA QUERIES                */
/* ----------------------------- */
@media(max-width:576px){
  h1{font-size:2rem;}
  h2{font-size:1.5rem;}
  .hero-section{padding:3rem 0;}
}

/* ----------------------------- */
/*  MICROANIMATIONS              */
/* ----------------------------- */
@keyframes buttonPulse{
  0%,100%{transform:scale(1);}
  50%{transform:scale(1.05);}
}
.btn-cta:hover{animation:buttonPulse .6s forwards;}

@keyframes riseUp{
  0%{opacity:0;transform:translateY(20px);}
  100%{opacity:1;transform:translateY(0);}
}
.card{animation:riseUp .8s ease both;}

/* ----------------------------- */
/*  CURVED GRID BACKGROUND       */
/* ----------------------------- */
.section-curved{
  background-image:
    radial-gradient(circle at 15% 10%,rgba(255,255,255,.15) 0,transparent 40%),
    radial-gradient(circle at 85% 30%,rgba(255,255,255,.15) 0,transparent 50%),
    linear-gradient(135deg,rgba(0,0,0,.02) 25%,transparent 25%,transparent 50%,rgba(0,0,0,.02) 50%,rgba(0,0,0,.02) 75%,transparent 75%,transparent);
  background-size:200px 200px,350px 350px,70px 70px;
}

/* ----------------------------- */
/*  READ MORE LINKS              */
/* ----------------------------- */
.read-more{
  display:inline-block;
  font-weight:700;
  color:var(--clr-accent-1);
  position:relative;
  padding-right:1.4rem;
}
.read-more::after{
  content:'➜';position:absolute;right:0;top:0;color:inherit;transition:transform .25s ease;
}
.read-more:hover::after{transform:translateX(4px);}
.nav-toggle{
  display: none;
}