/* ===================================================================
   GLOBAL THEME — Minimalist + Adaptive Typography
   =================================================================== */

:root{
  /* Tetradic Palette */
  --clr-primary:#0B3954;
  --clr-primary-dark:#082735;
  --clr-secondary:#FF6663;
  --clr-secondary-dark:#E05A57;
  --clr-accent:#E0FF4F;
  --clr-accent-dark:#BACF3F;
  --clr-neutral:#BFD7EA;
  --clr-neutral-dark:#9FB6C4;

  /* Grays for backgrounds & text */
  --clr-bg:#FFFFFF;
  --clr-bg-dark:#222222;
  --clr-text:#222222;
  --clr-text-light:#FFFFFF;

  /* Typography scale */
  --fs-base:clamp(1rem,2vw,1.125rem);
  --fs-lg:clamp(1.25rem,3vw,1.375rem);
  --fs-xl:clamp(2rem,5vw,3rem);

  /* Shadows & Radius */
  --shadow-sm:0 2px 4px rgba(0,0,0,.05);
  --shadow-md:0 4px 12px rgba(0,0,0,.1);
  --radius:8px;

  /* Transition */
  --transition:all .3s ease;
}

/* ===================================================================
   BASE
   =================================================================== */
html{
  scroll-behavior:smooth;
}
body{
  font-family:'DM Sans',sans-serif;
  font-size:var(--fs-base);
  color:var(--clr-text);
  background-color:var(--clr-neutral);
  line-height:1.6;
}
h1,h2,h3,h4,h5,h6{
  font-family:'Space Grotesk',sans-serif;
  color:var(--clr-bg-dark);
  line-height:1.25;
  text-align:center;
  text-shadow:1px 1px 3px rgba(0,0,0,.5);
}
h1{font-size:var(--fs-xl);}
h2{font-size:clamp(1.75rem,4vw,2.5rem);}
p{max-width:65ch;margin:0 auto;}

/* ===================================================================
   GLOBAL COMPONENTS
   =================================================================== */

/* Buttons */
.btn,
button,
input[type='submit']{
  display:inline-block;
  padding:.75rem 2rem;
  border-radius:var(--radius);
  background:var(--clr-secondary);
  color:var(--clr-text-light);
  font-weight:600;
  text-align:center;
  transition:var(--transition);
}
.btn:hover,
button:hover,
input[type='submit']:hover{
  background:var(--clr-secondary-dark);
  transform:translateY(-2px);
  box-shadow:var(--shadow-md);
}

/* Links */
a{transition:var(--transition);}
a:hover{opacity:.85;}
.link-more{
  color:var(--clr-primary);
  font-weight:600;
  position:relative;
}
.link-more::after{
  content:'';
  position:absolute;
  left:0;
  bottom:-2px;
  width:100%;
  height:2px;
  background:var(--clr-accent);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .25s ease-out;
}
.link-more:hover::after{transform:scaleX(1);}

/* Cards */
.card{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  background:var(--clr-bg);
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
  transition:var(--transition);
}
.card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px);}
.card-image{
  width:100%;
  height:220px;
  overflow:hidden;
  border-radius:var(--radius) var(--radius) 0 0;
}
.card-image img{
  width:100%;
  height:100%;
  object-fit:cover;
  margin:0 auto;
}
.card-content{
  padding:1.5rem;
}

/* Progress Element */
progress{
  appearance:none;
  width:100%;
  height:8px;
  border:none;
  border-radius:4px;
  overflow:hidden;
  background:var(--clr-neutral-dark);
}
progress::-webkit-progress-bar{background:var(--clr-neutral-dark);}
progress::-webkit-progress-value{background:var(--clr-primary);}

/* Toggle Switch (peer utility already via Tailwind) */
input[type='checkbox']+div{transition:var(--transition);}
input[type='checkbox']:checked+div{background:var(--clr-primary);}
input[type='checkbox']:checked+div+span{background:var(--clr-bg)}

/* Parallax Utility */
.parallax{
  background-size:cover;
  background-repeat:no-repeat;
  background-attachment:fixed;
}

/* Hero Overlay */
.hero-overlay{
  background:linear-gradient(rgba(0,0,0,.5),rgba(0,0,0,.6));
}

/* Scroll-Reveal / AOS extra */
[data-aos]{opacity:0;transition:opacity .6s ease,transform .6s ease;}
[data-aos].aos-animate{opacity:1;transform:none;}

/* Fixed Header height compensation */
.page-offset{padding-top:100px;}

/* Success Page */
.page-success{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
}

/* ===================================================================
   SECTION-SPECIFIC ENHANCEMENTS
   =================================================================== */

/* Hero */
#hero{
  color:var(--clr-text-light);
  text-shadow:1px 1px 4px rgba(0,0,0,.7);
}

/* Workshops carousel */
.carousel{
  scroll-snap-type:x mandatory;
}
.carousel>div{
  scroll-snap-align:center;
}

/* Events Timeline */
.timeline{position:relative;border-left:4px solid var(--clr-accent);padding-left:1.5rem;}
.timeline-item{position:relative;margin-bottom:2rem;}
.timeline-item::before{
  content:'';
  position:absolute;
  left:-11px;
  top:0;
  width:20px;
  height:20px;
  border-radius:50%;
  background:var(--clr-accent);
}

/* Footer */
footer{
  background:var(--clr-bg-dark);
  color:var(--clr-text-light);
  font-size:.875rem;
}
footer a{color:var(--clr-accent);}
footer a:hover{text-decoration:underline;}

/* Social Links */
.footer-social a{
  padding:0 .5rem;
  font-weight:600;
}

/* =============================================================================
   UTILITIES
   ============================================================================*/
.flex-center{display:flex;align-items:center;justify-content:center;}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;}
.text-shadow{ text-shadow:1px 1px 3px rgba(0,0,0,.5);}

/* =============================================================================
   MEDIA QUERIES
   ============================================================================*/
@media (min-width:768px){
  .grid-lg-3{grid-template-columns:repeat(3,1fr);}
}