:root {
  --paper: #faf8f5;
  --ink: #101116;
  --teal: #087763;
  --mint-wash: #e7f7f0;
  --mint: #70efc4;
  --radius: 8px;
  --header-height: 72px;
}

body { overflow-wrap: break-word; }
section[id], article[id] { scroll-margin-top: calc(var(--header-height) + 12px); }
.site-header,
.site-header.scrolled {
  height: var(--header-height);
  isolation: isolate;
  background: linear-gradient(90deg, #91b5a9 0, #a4c4b9 13%, #eff9f5 31%, #fff 53%);
  color: var(--ink);
  border-bottom: 1px solid var(--line);
}
/* The four dots follow the same slow drift as the Gestión header. */
.site-header::before {
  position: absolute;
  inset-block: 0;
  pointer-events: none;
  content: "";
  left: 29%;
  width: clamp(118px, 19vw, 270px);
  z-index: -1;
  background:
    radial-gradient(circle at 24% 50%, transparent 0 8px, #08776342 10px 13px, transparent 16px),
    radial-gradient(circle at 47% 17%, #66cbcc65 0 15px, transparent 21px),
    radial-gradient(circle at 71% 50%, #70efc475 0 19px, transparent 27px),
    radial-gradient(circle at 47% 86%, #66cbcc60 0 16px, transparent 22px);
  filter: blur(2px);
  animation: nav-logo-dots 12s ease-in-out infinite alternate;
}
@keyframes nav-logo-dots {
  from { transform: translateX(-14px); opacity: .58; }
  to { transform: translateX(14px); opacity: .92; }
}
@media (prefers-reduced-motion: reduce) {
  .site-header::before { animation: none; opacity: .7; }
}
.site-header .brand { position: relative; }
.site-header .brand img {
  width: clamp(148px, 16vw, 210px);
  clip-path: polygon(0 0, 100% 0, 100% 67%, 22% 67%, 22% 100%, 0 100%);
}
/* Darken only the slogan, preserving the colors of the mark above it. */
.site-header .brand::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: url("../images/logo-netpadel-fondo-claro.png") center / 100% 100% no-repeat;
  clip-path: inset(67% 0 0 22%);
  filter: brightness(.36);
}
.site-header .menu-toggle { color: var(--ink); }
.site-header .lang a.active { color: var(--teal) !important; }
.site-header .nav-wrap { gap: 16px; }
.site-header .main-nav { gap: clamp(10px, 1.1vw, 20px); font-size: .8rem; }
.site-header .student-access {
  border-radius: 6px;
  border: 0;
  background: var(--mint);
  color: var(--ink);
  padding: 9px 12px;
}
.site-header .lang { gap: 2px; padding-left: 8px; }
.site-header .lang a { min-width: 0; padding: 6px 4px !important; }
.site-header .lang a::before { display: none; }
.button { border-radius: 7px; }
.home-page-main { padding-top: var(--header-height); }
.home-page-main section { padding: clamp(46px, 5.8vw, 84px) 0; }
.home-page-main h2 { font-size: clamp(2.15rem, 4.3vw, 4.4rem); line-height: 1.02; }
.home-page-main .hero {
  display: grid;
  grid-template-columns: minmax(0, 42fr) minmax(0, 58fr);
  height: auto;
  min-height: 0;
  padding: 0;
  background: var(--paper);
  color: var(--ink);
}
.home-page-main .slides {
  position: relative;
  grid-column: 2;
  grid-row: 1;
}
.home-page-main .slide picture { display: block; height: 100%; }
.home-page-main .slide img { object-position: 38% center; }
.home-page-main .slide::after {
  background: linear-gradient(90deg, var(--paper), transparent 19%), linear-gradient(0deg, rgba(5, 12, 12, .4), transparent 35%);
}
.home-page-main .hero-inner {
  grid-area: 1 / 1;
  width: auto;
  margin: 0;
  padding: clamp(32px, 4vw, 60px) 12px 53px max(20px, calc((100vw - var(--max)) / 2));
}
.home-page-main .hero h1 {
  font-size: clamp(3.3rem, 6.2vw, 6.45rem);
  line-height: .91;
  margin-bottom: 20px;
}
.home-page-main .hero-lead {
  color: var(--ink);
  max-width: 49ch;
  margin-bottom: 23px;
  font-size: clamp(.96rem, 1.24vw, 1.12rem);
}
.home-page-main .hero h1 span { color: #008865; }
.home-page-main .hero .eyebrow { color: var(--ink); }
.home-page-main .hero .ghost { color: var(--ink); border-color: var(--ink); background: var(--white); }
.home-page-main .slide-dot { background: #9bb9ae; }
.home-page-main .slide-dot.active { background: var(--teal); }
.home-page-main .hero-index { color: var(--ink); }
.home-page-main .hero .button { padding: 12px 15px; }
.home-page-main .slide-nav { bottom: 23px; }
.home-page-main .partners {
  height: 92px;
  padding-block: 9px;
  background: var(--white);
  border-bottom: 2px solid #c6e3d8;
}
.home-page-main .partner-logo {
  height: 58px;
  grid-template-rows: minmax(0, 1fr);
  padding-block: 5px;
}
.home-page-main .partners-window::before,
.home-page-main .partners-window::after { width: 32px; }
.home-page-main .partners-label {
  display: flex;
  flex-basis: auto;
  padding: 0 16px 0 max(20px, calc((100vw - var(--max)) / 2));
  background: var(--white);
  color: var(--ink);
  border-right: 1px solid var(--line);
}
.home-page-main .partners-window { width: auto; flex: 1; min-width: 0; }
.home-proof { background: var(--mint-wash); color: var(--ink); }
.home-proof .stats {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  padding: 16px 0;
  border: 0;
  background: transparent;
}
.home-proof .stat {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 5px clamp(8px, 2.5vw, 30px);
  background: transparent;
}
.home-proof .stat + .stat { border-left: 1px solid var(--line); }
.home-proof .stat strong { color: var(--teal); font-size: clamp(1.15rem, 2.8vw, 2.4rem); }
.home-proof .stat span { line-height: 1.35; }
#academia .intro-grid { gap: clamp(24px, 5vw, 68px); align-items: center; }
#academia h2 { margin-bottom: 0; }
#academia .intro-text { margin-bottom: 0; }
.home-page-main #academia { background: var(--paper); }
#academia h2 { font-size: clamp(1.8rem, 3.1vw, 3rem); }
.academy-programs { margin-top: 16px; }
.academy-programs summary { cursor: pointer; color: var(--teal); font-weight: 750; }
.academy-programs p { margin: 12px 0 6px; }
.home-page-main .programs {
  padding: clamp(24px, 3.2vw, 48px) 0 0;
  background: var(--white);
  color: var(--ink);
}
.program-head h2 { margin-bottom: 12px; }
.program-head h2::after,
.home-course h3::after,
.home-feature h2::after {
  content: "";
  display: block;
  width: 44px;
  height: 3px;
  margin-top: 12px;
  border-radius: 2px;
  background: #00a87b;
}
.home-course-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 14px;
}
.home-course {
  min-height: clamp(200px, 23vw, 300px);
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: flex-end;
  border-radius: var(--radius);
  background: #101a1a;
  color: var(--white);
}
.home-course img,
.home-course::after {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: inherit;
}
.home-course img { object-fit: cover; z-index: -2; }
.home-course::after {
  content: "";
  z-index: -1;
  background: linear-gradient(0deg, rgba(4, 12, 12, .98), rgba(4, 12, 12, .72) 38%, transparent 80%);
}
.home-course-copy { padding: 22px; }
.home-course h3 { font-size: clamp(1.55rem, 2.4vw, 2.35rem); line-height: 1.05; margin-bottom: 0; }
.home-course h3::after, .home-feature h2::after { background: var(--mint); }
.home-course h3 span { color: var(--mint); font-size: .65em; }
.home-course h3 a::after { content: ""; position: absolute; inset: 0; border-radius: var(--radius); }
.home-course h3 a:focus-visible::after { outline: 3px solid var(--mint); outline-offset: 3px; }
.home-visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.home-page-main .home-opportunities { padding: clamp(18px, 3vw, 36px) 0 16px; background: var(--white); }
.home-opportunity {
  min-height: 220px;
  padding: clamp(18px, 2.4vw, 30px);
  background: linear-gradient(90deg, var(--paper) 42%, rgba(250, 248, 245, .95) 56%, transparent), url("../images/course-flexible.jpg") center right / cover;
}
.home-opportunity:nth-child(2) {
  background-image: linear-gradient(90deg, var(--paper) 42%, rgba(250, 248, 245, .95) 56%, transparent), url("../images/hero-community.jpg");
}
.home-opportunity h3, .home-opportunity p { max-width: 67%; }
.home-opportunity h3 { font-size: clamp(1.35rem, 2.6vw, 2.5rem); margin-bottom: 9px; }
.home-opportunity p { color: var(--ink); font-size: .92rem; line-height: 1.45; }
.home-opportunity .button { padding: 9px 11px; font-size: .79rem; }
.home-opportunities .home-sponsorship {
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 20px 22px 20px 40%;
  position: relative;
  overflow: hidden;
  min-height: 206px;
  background: var(--mint-wash);
  color: var(--ink);
}
.home-opportunities .home-sponsorship::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 39%;
  background: url("../images/patrocinio-empresas.jpg") center 25% / cover no-repeat;
  clip-path: polygon(0 0, 100% 0, 90% 100%, 0 100%);
}
.home-sponsorship h3 { font-size: clamp(1.5rem, 2.8vw, 2.7rem); margin-bottom: 6px; }
.home-sponsorship .home-sponsor-subtitle { margin-bottom: 6px; font-weight: 700; }
.home-sponsorship p:last-child { color: var(--ink); font-size: .86rem; line-height: 1.4; }
.home-sponsorship .button { padding: 9px 12px; font-size: .8rem; }
.home-editorial {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  padding-bottom: 24px;
  align-items: start;
}
.home-page-main .home-editorial section {
  padding: 0;
  border-radius: var(--radius);
  background: var(--white);
}
.home-page-main .home-editorial .news::before { content: none; }
.home-feature {
  position: relative;
  isolation: isolate;
  display: flex;
  align-items: flex-end;
  min-height: clamp(155px, 17vw, 225px);
  padding: clamp(16px, 2vw, 26px);
  border-radius: var(--radius);
  background: #10201f;
  color: var(--white);
  cursor: pointer;
  list-style: none;
}
.home-feature::-webkit-details-marker { display: none; }
.home-feature img, .home-feature::before {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: inherit;
}
.home-feature img { z-index: -2; object-fit: cover; object-position: center 41%; }
.home-feature::before {
  content: "";
  z-index: -1;
  background: linear-gradient(90deg, rgba(5, 13, 15, .92), rgba(5, 13, 15, .55) 70%, rgba(5, 13, 15, .28));
}
.home-feature::after {
  content: "+";
  position: absolute;
  right: 14px;
  top: 12px;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--white);
  color: var(--ink);
  font-weight: 800;
}
.home-editorial details[open] .home-feature::after { content: "−"; }
.home-feature-label {
  display: inline-block;
  padding: 5px 8px;
  margin-bottom: 9px;
  border-radius: 4px;
  background: var(--mint);
  color: var(--ink);
  font-size: .76rem;
  font-weight: 800;
}
.home-page-main .home-feature h2 {
  margin: 0;
  max-width: 24ch;
  color: var(--white);
  font-size: clamp(1.45rem, 2.65vw, 2.55rem);
}
.home-feature-detail { padding: 18px 22px; }
.home-feature-detail p:last-child, .home-feature-detail ol { margin-bottom: 0; }
.home-feature-meta { color: var(--teal); font-weight: 700; }
.site-footer {
  background: var(--white);
  color: var(--ink);
  border-top: 1px solid var(--line);
  padding: 30px 0 16px;
}
.site-footer .footer-logo { width: 210px; margin-bottom: 12px; }
.site-footer .footer-copy, .site-footer .footer-links a, .site-footer .footer-bottom { color: var(--muted); }
.site-footer .footer-title { color: var(--teal); }
.site-footer .footer-links a:hover { color: var(--teal); }
.site-footer .footer-bottom { border-color: var(--line); }
.courses-page-main { padding-top: var(--header-height); background: var(--paper); }
.courses-hero {
  padding: clamp(65px, 9vw, 125px) 0;
  color: var(--ink);
  background: linear-gradient(90deg, var(--paper) 26%, rgba(250, 248, 245, .92) 52%, rgba(250, 248, 245, .15)), url("../images/hero-performance.jpg") center 38% / cover;
}
.courses-hero .eyebrow { color: var(--teal); }
.courses-hero-inner > p:last-child { color: var(--ink); }
.courses-hero::after { content: none; }
.courses-hero h1,
.contact-v2 .contact-copy h1 { font-size: clamp(2.9rem, 6.8vw, 6.5rem); }
.courses-grid-section { padding: clamp(40px, 6vw, 84px) 0; }
.course-column { border-radius: var(--radius); box-shadow: none; }
.course-column h2 { min-height: 0; }
.courses-faq { background: var(--white); }
.contact-page-main { padding-top: var(--header-height); }
.contact-v2 { background: var(--paper); padding-bottom: clamp(46px, 7vw, 96px); }
.contact-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: center;
  min-height: clamp(340px, 37vw, 520px);
  margin-bottom: clamp(26px, 4vw, 54px);
  padding: clamp(48px, 7vw, 90px) 0;
  background: var(--paper);
}
.contact-hero .contact-cover {
  position: absolute;
  inset: 0;
  height: 100%;
  z-index: -1;
}
.contact-hero .contact-cover span {
  background: linear-gradient(90deg, var(--paper) 8%, rgba(250, 248, 245, .93) 43%, rgba(250, 248, 245, .23));
}
.contact-v2 .contact-hero .contact-copy { margin: 0; color: var(--ink); }
.contact-v2 .contact-hero .contact-copy > p:last-child { margin-bottom: 0; color: var(--ink); }
.contact-cover img { filter: none; transform: none; }
.contact-shell { border: 1px solid var(--line); border-radius: var(--radius); box-shadow: none; }
.contact-details-panel { background: var(--mint-wash); color: var(--ink); }
.contact-detail, .detail-icon { border-color: var(--line); }
.contact-detail small, .contact-location .address { color: var(--muted); }
.contact-detail:hover, .contact-location .eyebrow, .directions-link { color: var(--teal); }
.directions-link { border-color: var(--teal); }
.contact-v2 .contact-form input,
.contact-v2 .contact-form textarea { border-radius: 8px; }
.contact-v2 .contact-copy .eyebrow { color: var(--teal); }

@media (max-width: 1050px) and (min-width: 901px) {
  .site-header .main-nav { gap: 8px; font-size: .73rem; }
  .site-header .lang { padding-left: 4px; }
}

@media (max-width: 760px) {
  :root { --header-height: 62px; }
  .home-page-main .hero { grid-template-columns: 1fr; }
  .home-page-main .hero-inner { grid-area: 1 / 1; padding: 38px 20px 24px; }
  .home-page-main .hero h1 { font-size: clamp(3rem, 12vw, 5.3rem); }
  .home-page-main .slides { grid-area: 2 / 1; min-height: clamp(250px, 64vw, 435px); }
  .home-page-main .slide::after { background: linear-gradient(0deg, rgba(5, 12, 12, .6), transparent 35%); }
  .home-page-main .slide-nav { left: 20px; bottom: 18px; }
  .home-page-main .hero-index { color: var(--white); }
  .home-page-main .partners { height: 82px; }
  .home-page-main .partners-label { display: none; }
  .home-proof .stat { flex-direction: column; align-items: flex-start; gap: 5px; }
  .home-proof .stat span { font-size: .72rem; }
  #academia .intro-grid,
  .home-course-grid,
  .home-editorial { grid-template-columns: 1fr; }
  .home-page-main .program-head { display: block; }
  .home-course { min-height: 210px; }
  .home-opportunities .home-sponsorship { grid-template-columns: 1fr; gap: 12px; padding: 0 20px 20px; }
  .home-opportunities .home-sponsorship::before {
    position: static;
    justify-self: stretch;
    width: auto;
    height: clamp(140px, 45vw, 240px);
    margin-inline: -20px;
    clip-path: none;
  }
  .home-opportunity h3,
  .home-opportunity p { max-width: 88%; }
  .contact-v2 .contact-copy h1 { overflow-wrap: anywhere; }
}

@media (max-width: 900px) {
  .site-header::before { left: auto; right: 48px; }
  .site-header .main-nav .student-access { color: var(--ink) !important; }
  .site-header .main-nav .lang a.active { color: var(--mint) !important; }
}
