/* ============================================================
   MatchPoint NYC — Home  (pixel-perfect, 1440 desktop)
   ============================================================ */
@font-face{
  font-family:"Mona Sans";
  src:url(../fonts/MonaSansVF-Expanded.woff2) format("woff2");
  font-weight:200 900;font-stretch:normal;font-style:normal;font-display:swap;
}

:root{
  --ink:#071328;
  --slate:#23314B;
  --yellow:#FED400;
  --cream:#DED6C6;
  --bg:#F5F5F5;
  --gray:#D9D9D9;
  --gray2:#DDDDDD;
  --arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 3L13 13M5.6 13H13V5.6' stroke='black' stroke-width='1.7' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

*{margin:0;padding:0;box-sizing:border-box}
html{overflow-x:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{
  font-family:"Mona Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--bg);color:var(--ink);
  width:1440px;margin:0 auto;overflow-x:hidden;
}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
ul{list-style:none}

.container{width:1280px;margin:0 auto}

/* ---------- reusable arrow glyph ---------- */
[data-arrow]{position:relative}
.btn__ico{
  width:36px;height:36px;border-radius:50%;background:var(--ink);
  display:inline-grid;place-items:center;flex:0 0 auto;
}
.btn__ico::before{content:"";width:15px;height:15px;background:#fff;
  -webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat}

/* ---------- pill buttons ---------- */
.btn--pill{
  display:inline-flex;align-items:center;gap:10px;
  height:57px;padding:0 8px 0 20px;border-radius:1000px;
  font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;
  color:var(--ink);white-space:nowrap;
}
.btn--yellow{background:var(--yellow)}
.glass .btn--pill,.btn--pill.nav__cta{background:var(--yellow)}

/* ---------- tags / meta pills ---------- */
.tag{
  display:inline-flex;align-items:center;height:39px;padding:0 20px;border-radius:1000px;
  font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink);
}
.tag--light{background:rgba(255,255,255,.88)}
.tag--cream{background:var(--cream)}

/* ---------- glassmorphism ---------- */
.glass{background:rgba(255,255,255,.2);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}

/* ---------- section heads ---------- */
.sec-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:76px}
.sec-title{font-size:52px;font-weight:600;line-height:57px;text-transform:uppercase;color:var(--ink);max-width:700px}
.sec-head__right{width:417px;display:flex;flex-direction:column;align-items:flex-end;gap:24px;padding-top:9px}
.sec-desc{font-size:16px;font-weight:400;line-height:19px;letter-spacing:.04em;color:var(--slate);text-align:left;width:100%}

.eyebrow{font-size:18px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--yellow)}

/* ============================================================
   HERO
   ============================================================ */
.hero{position:relative;color:#fff}
.hero__bg{position:absolute;left:0;right:0;top:0;height:902px;background-size:cover;background-position:center top;z-index:0}
.hero__overlay{position:absolute;left:0;right:0;top:0;height:902px;background:rgba(7,19,40,.6);z-index:1}
.hero__inner{position:relative;height:902px;z-index:2}

/* nav */
.nav{position:absolute;top:26px;left:-33px;width:1346px;height:73px;
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 12px 8px 33px;border-radius:20px;
  background:rgba(255,255,255,.2);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
.nav__logo img{height:48px;width:auto}
.nav__menu{display:flex;align-items:center;gap:0}
.nav__menu li{display:flex;align-items:center;gap:8px;position:relative;
  padding:0 24px;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#fff}
.nav__menu li:not(:last-child)::after{content:"";position:absolute;right:0;top:50%;transform:translateY(-50%);width:1px;height:24px;background:rgba(255,255,255,.5)}
.nav__menu li.is-active{color:var(--yellow)}
.caret{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #fff}
.caret--yellow{border-top-color:var(--yellow)}
.nav__cta{height:57px}

/* stat card */
.hero__stat{position:absolute;top:269px;left:1033px;width:247px;height:127px;border-radius:20px;padding:20px}
.stat__num{font-size:46px;font-weight:800;letter-spacing:-.02em;line-height:1;color:var(--yellow)}
.stat__label{font-size:14px;font-weight:500;line-height:17px;color:#fff;margin-top:6px}
.stat__avatars{display:flex;margin-top:14px}
.stat__avatars span{width:37px;height:37px;border-radius:50%;border:2px solid var(--cream);background-size:cover;background-position:center;margin-left:-14px}
.stat__avatars span:first-child{margin-left:0}
.hero__cut{position:absolute;top:308px;left:1202px;width:113px;height:138px;object-fit:cover}

/* hero copy */
.hero__copy{position:absolute;left:0;top:377px;width:900px}
.hero__title{font-size:76px;font-weight:700;line-height:76px;letter-spacing:-.01em;text-transform:uppercase;margin-top:46px;color:#fff}
.hero__sports{font-size:16px;font-weight:600;line-height:19px;color:var(--cream);margin-top:44px}
.hero__quiz{display:inline-flex;align-items:center;gap:20px;height:95px;padding:0 8px 0 19px;border-radius:20px;margin-top:46px}
.hero__quiz-text{font-size:16px;font-weight:500;color:#fff}

.hero__social{position:absolute;top:628px;left:1295px;width:39px;height:141px}

/* trust bar */
.trust{position:relative;z-index:2;background:var(--ink);height:70px;display:flex;align-items:center}
.trust__inner{width:1440px;margin:0 auto;padding:0 47px;display:flex;align-items:center;justify-content:space-between}
.trust__item{display:flex;align-items:center;gap:22px;position:relative;flex:0 1 auto;white-space:nowrap;
  font-size:16px;font-weight:800;letter-spacing:.02em;text-transform:uppercase;color:var(--cream)}
.trust__inner .trust__item:not(:last-child){padding-right:70px}
.trust__item:not(:last-child)::after{content:"";position:absolute;right:35px;width:1px;height:45px;background:rgba(222,214,198,.21)}
.trust .dot{width:12px;height:12px;border-radius:50%;background:var(--yellow);flex:0 0 auto}

/* ============================================================
   PROGRAM CARDS  (kids / adults)
   ============================================================ */
.programs{padding:100px 0 0}
.cards{display:grid;grid-template-columns:repeat(3,412px);gap:22px 22px}

.card{position:relative;width:412px;height:444px;background:#fff;border-radius:20px;
  box-shadow:0 10px 30px rgba(0,0,0,.12)}
.card__media{position:absolute;top:11px;left:11px;width:390px;height:278px;border-radius:16px 16px 0 0;overflow:hidden}
.card__img{position:absolute;inset:0;background-size:cover;background-position:center}
.card__media .tag{position:absolute;top:1px;left:1px}
.card__title{position:absolute;top:301px;left:23px;font-size:30px;font-weight:600;line-height:1;color:var(--ink)}
.card__meta{position:absolute;top:389px;left:23px;display:flex;gap:8px}
.fab{position:absolute;top:372px;left:345px;width:56px;height:56px;border-radius:50%;background:var(--yellow);display:grid;place-items:center}
.fab::before{content:"";width:22px;height:22px;background:var(--ink);
  -webkit-mask:var(--arrow) center/contain no-repeat;mask:var(--arrow) center/contain no-repeat}

/* dark summer card */
.card--dark{overflow:hidden}
.card--dark .card__img--full{position:absolute;inset:0;background-size:cover;background-position:center;border-radius:20px}
.card--dark .card__overlay{position:absolute;inset:0;background:rgba(7,19,40,.45);border-radius:20px}
.card--dark__body{position:absolute;inset:0;padding:24px;display:flex;flex-direction:column;justify-content:flex-end;gap:16px;color:#fff}
.card--dark .card__title{position:static;color:#fff;font-size:30px}
.card--dark .card__desc{font-size:18px;font-weight:500;line-height:1.1;color:#fff}

/* ============================================================
   Shared: horizontal arrow glyphs + carousel navs
   ============================================================ */
:root{
  --arrow-r:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12H19M13 6L19.5 12L13 18.5' stroke='black' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --arrow-l:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 12H5M11 6L4.5 12L11 18.5' stroke='black' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.cnav{width:56px;height:56px;border-radius:50%;display:inline-grid;place-items:center;flex:0 0 auto}
.cnav::before{content:"";width:22px;height:22px;background:currentColor;
  -webkit-mask:var(--arrow-r) center/contain no-repeat;mask:var(--arrow-r) center/contain no-repeat}
.cnav[data-arrow-left]::before{-webkit-mask:var(--arrow-l) center/contain no-repeat;mask:var(--arrow-l) center/contain no-repeat}
.cnav--ghost{width:41px;height:41px;border:1px solid var(--ink);color:var(--ink)}
.cnav--ghost-w{width:41px;height:41px;border:1px solid #fff;color:#fff}
.cnav--dark{background:var(--ink);color:#fff}
.cnav--white{background:#fff;color:var(--ink)}
.carousel-nav{display:flex;align-items:center;gap:9px}
.card--faded{opacity:.5}
.card__title--sm{font-size:26px;line-height:1.05;max-width:360px}

/* ============================================================
   SUMMER BANNER
   ============================================================ */
.banner{position:relative;margin-top:130px;height:600px;overflow:hidden;color:#fff}
.banner__bg{position:absolute;inset:0;background-size:cover;background-position:center}
.banner__overlay{position:absolute;inset:0;background:rgba(7,19,40,.6)}
.banner__inner{position:relative;height:100%}
.banner__title{position:absolute;top:342px;left:0;width:900px;font-size:76px;font-weight:700;line-height:76px;letter-spacing:-.01em;text-transform:uppercase}
.banner__desc{position:absolute;top:520px;left:0;width:440px;font-size:16px;font-weight:500;line-height:19px;color:var(--cream)}
.banner__cta{position:absolute;top:497px;right:0}

/* ============================================================
   ADULTS
   ============================================================ */
.adults{margin-top:130px}
.cards--row{display:flex;gap:22px;overflow:hidden}
.adults .card,.reviews .card{flex:0 0 412px}
.carousel-nav{margin-top:36px;justify-content:flex-end}

/* ============================================================
   SEMESTER
   ============================================================ */
.semester{margin-top:130px}
.sec-title--wide{max-width:742px}
.sem-cards{display:flex;gap:36px}
.sem-card{position:relative;width:622px;height:482px;border-radius:40px;padding:53px 46px 46px;
  box-shadow:0 10px 30px rgba(0,0,0,.12);display:flex;flex-direction:column;overflow:hidden}
.sem-card--dark{background:linear-gradient(180deg,#071328 0%,#23314B 100%);color:#fff}
.sem-card--light{background:#fff;color:var(--ink)}
.sem-badge{position:absolute;top:20px;right:46px;height:48px;display:inline-flex;align-items:center;padding:0 24px;
  border-radius:1000px;font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:uppercase}
.sem-badge--yellow{background:var(--yellow);color:var(--ink)}
.sem-title{font-size:46px;font-weight:600;line-height:1;color:#fff;white-space:nowrap}
.sem-title--ink{color:var(--ink)}
.sem-sub{margin-top:34px;font-size:16px;font-weight:400;line-height:21px;letter-spacing:.04em;color:#DDD;max-width:466px}
.sem-sub--slate{color:var(--slate)}
.sem-date{margin-top:20px;align-self:flex-start;height:45px;display:inline-flex;align-items:center;padding:0 16px;
  border-radius:1000px;font-size:18px;font-weight:600}
.sem-date--white{background:#fff;color:var(--ink)}
.sem-date--gray{background:var(--gray);color:var(--ink)}
.sem-label{margin-top:24px;font-size:16px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#DDD}
.sem-label--slate{color:var(--slate)}
.countdown{display:flex;gap:18px;margin-top:14px}
.cd{display:flex;flex-direction:column;align-items:center;gap:8px;width:60px}
.cd__num{width:60px;height:46px;border-radius:10px;background:var(--yellow);color:var(--ink);
  display:grid;place-items:center;font-size:30px;font-weight:600}
.countdown--gray .cd__num{background:var(--gray)}
.cd__lbl{font-size:12px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:#DDD}
.sem-card--light .cd__lbl{color:var(--slate)}
.sem-cta{margin-top:auto;align-self:flex-start}
.sem-cta--ghost{background:transparent;border:1px solid var(--ink);color:var(--ink)}
.sem-cta--ghost .btn__ico{background:var(--yellow)}
.sem-cta--ghost .btn__ico::before{background:var(--ink)}

/* ============================================================
   GALLERY
   ============================================================ */
.gallery{position:relative;margin-top:130px;height:809px;background:var(--slate);overflow:hidden;color:#fff}
.gallery__title{position:absolute;top:70px;left:0;right:0;text-align:center;font-size:52px;font-weight:600;text-transform:uppercase;z-index:3}
.gallery__word{position:absolute;left:50%;transform:translateX(-50%);white-space:nowrap;font-weight:900;color:#fff;opacity:.06;z-index:1;text-transform:uppercase}
.gallery__word--top{top:100px;font-size:200px;letter-spacing:-.02em}
.gallery__word--bot{top:640px;font-size:160px;letter-spacing:-.02em}
.gallery__row{position:absolute;top:245px;left:50%;transform:translateX(-50%);display:flex;gap:24px;z-index:2}
.gallery__img{height:392px;border-radius:20px;background-size:cover;background-position:center;flex:0 0 auto}
.gallery__img:nth-child(1){width:560px}
.gallery__img:nth-child(2){width:394px}
.gallery__img:nth-child(3){width:492px}
.gallery__img:nth-child(4){width:425px}
.gallery__img--fade{opacity:.5}
.gallery__nav{position:absolute;top:683px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:9px;z-index:3}

/* ============================================================
   TWO CLUBS
   ============================================================ */
.clubs{margin-top:130px}
.clubs__head{display:grid;grid-template-columns:1fr 417px;row-gap:33px;margin-bottom:47px;align-items:start}
.clubs__head .sec-title{grid-column:1;grid-row:1}
.clubs__desc{grid-column:2;grid-row:1;align-self:start}
.clubs__toggle{grid-column:1;grid-row:2;display:inline-flex;gap:6px;background:#fff;border-radius:100px;padding:8px;width:max-content}
.tog{height:57px;display:inline-flex;align-items:center;padding:0 24px;border-radius:1000px;
  font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--ink)}
.tog--active{background:var(--ink);color:#fff}
.clubs__card{display:flex;height:711px;background:#fff;border-radius:40px;box-shadow:0 10px 30px rgba(0,0,0,.12);overflow:hidden}
.clubs__info{width:648px;padding:12px 0 0 33px}
.clubs__thumb{width:502px;height:229px;border-radius:30px;background-size:cover;background-position:center}
.clubs__name{margin-top:57px;font-size:36px;font-weight:600;color:var(--ink)}
.clubs__hours{margin-top:15px;font-size:16px;font-weight:400;line-height:21px;letter-spacing:.04em;color:var(--slate);max-width:417px}
.clubs__rows{margin-top:44px;display:flex;flex-direction:column;gap:24px}
.crow{display:flex;gap:12px;align-items:center}
.crow__ico{width:54px;height:54px;border-radius:10px;background:rgba(221,221,221,.9);flex:0 0 auto}
.crow__k{display:block;font-size:12px;font-weight:400;letter-spacing:.04em;color:var(--slate)}
.crow__v{display:block;margin-top:8px;font-size:16px;font-weight:600;letter-spacing:.04em;color:var(--slate)}
.crow__v--b{font-weight:800}
.clubs__cta{margin-top:40px}
.clubs__map{flex:1;position:relative;background-size:cover;background-position:center}
.clubs__maptag{position:absolute;top:12px;left:12px}

/* ============================================================
   QUIZ
   ============================================================ */
.quizsec{position:relative;margin-top:130px;height:630px;background:var(--slate);overflow:hidden;color:#fff}
.quizsec__media{position:absolute;left:0;top:0;width:712px;height:100%;background-size:cover;background-position:center}
.quizsec__tag{position:absolute;top:12px;left:12px}
.quizsec__form{position:absolute;left:758px;top:53px;width:602px}
.quizsec__eyebrow{font-size:16px;font-weight:900;letter-spacing:.02em;text-transform:uppercase;color:#fff}
.quizsec__sub{margin-top:10px;font-size:14px;font-weight:500;line-height:17px;color:var(--cream);max-width:456px}
.quizsec__steps{display:flex;gap:12px;margin-top:74px}
.qstep{width:40px;height:40px;border-radius:100px;display:grid;place-items:center;font-size:16px;font-weight:900;color:var(--yellow);border:1px solid var(--yellow)}
.qstep--active{background:var(--yellow);color:var(--ink);border-color:var(--yellow)}
.quizsec__q{margin-top:36px;font-size:36px;font-weight:900;line-height:40px;text-transform:uppercase;max-width:568px}
.quizsec__field{display:flex;align-items:center;gap:10px;margin-top:36px;width:602px;height:85px;padding:14px;border-radius:20px}
.quizsec__select{flex:1;height:57px;background:#fff;border-radius:100px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;color:rgba(35,49,75,.4);font-size:16px;font-weight:500}
.caret--ink{border-top-color:var(--ink)}

/* ============================================================
   TESTIMONIALS
   ============================================================ */
.reviews{margin-top:130px}
.reviews .carousel-nav{margin-top:0}
.reviews__cards{margin-top:0}
.rcard{position:relative;width:412px;height:560px;border-radius:20px;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.12);overflow:hidden;flex:0 0 412px}
.rcard__img{position:absolute;left:0;top:1px;width:412px;height:481px;background-size:cover;background-position:center;border-radius:20px 20px 30px 30px}
.rcard__img::after{content:"";position:absolute;inset:0;background:rgba(7,19,40,.27);border-radius:inherit}
.rcard__foot{position:absolute;left:24px;top:498px;display:flex;align-items:center;gap:12px}
.rcard__av{width:46px;height:46px;border-radius:50%;background-size:cover;background-position:center;flex:0 0 auto}
.rcard__name{font-size:16px;font-weight:600;color:var(--ink)}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{margin-top:169px;background:var(--ink);color:#fff;height:654px}
.footer__inner{padding-top:73px}
.footer__top{display:flex;justify-content:space-between}
.footer__brand{width:520px}
.footer__logo{height:34px;width:auto}
.footer__desc{margin-top:78px;font-size:16px;font-weight:500;line-height:19px;color:var(--cream);max-width:440px}
.footer__cols{display:flex;gap:170px;padding-right:80px}
.fcol__h{font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--yellow);margin-bottom:24px}
.fcol a{display:block;font-size:16px;font-weight:500;color:var(--cream);margin-bottom:22px}
.footer__clubs{display:flex;gap:120px;margin-top:120px}
.fclub{display:flex;gap:12px;align-items:center}
.fclub__ico{width:54px;height:54px;border-radius:10px;background:rgba(221,221,221,.9);flex:0 0 auto}
.fclub__name{font-size:24px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}
.fclub__addr{margin-top:8px;font-size:16px;font-weight:600;letter-spacing:.04em;color:#fff}
.footer__bottom{margin-top:66px}
.footer__copy{font-size:16px;font-weight:500;color:var(--cream)}

/* ============================================================
   REFINEMENTS (match Figma reference exactly)
   ============================================================ */
/* two-tone section titles */
.sec-title .muted{color:#B4B8C1}

/* active nav caret points up */
.caret--up{border-top:0;border-bottom:6px solid var(--yellow)}

/* mixed-weight hero headline */
.hero__title{font-weight:400}
.hero__title strong{font-weight:800}

/* mixed-weight quiz question */
.quizsec__q{font-weight:500}
.quizsec__q strong{font-weight:900}

/* semester: titles wrap to 2 lines, CTAs full-width */
.sem-title{white-space:normal;max-width:430px}
.sem-cta{width:100%;justify-content:space-between}

/* club info icons -> dark navy square with white glyph */
.crow__ico{background:var(--ink);display:grid;place-items:center}
.crow__ico svg{width:22px;height:22px;display:block}
.clubs__hours b{font-weight:700;color:var(--slate)}

/* reviews: video play button + stars */
.rcard__play{position:absolute;top:204px;left:170px;width:72px;height:72px;border-radius:50%;
  background:var(--yellow);z-index:3;display:grid;place-items:center}
.rcard__play::before{content:"";width:0;height:0;margin-left:5px;
  border-left:21px solid var(--ink);border-top:12px solid transparent;border-bottom:12px solid transparent}
.rcard__foot{left:24px;right:24px;top:510px;width:auto;justify-content:space-between}
.rcard__who{display:flex;align-items:center;gap:12px}
.stars{color:var(--yellow);font-size:15px;letter-spacing:2px;line-height:1}

/* footer */
.footer__top{justify-content:flex-start}
.footer__logo{height:44px}
.footer__brand{width:573px;flex:0 0 573px}
.footer__social{display:flex;gap:12px;margin-top:34px}
.soc{width:40px;height:40px;border-radius:50%;background:var(--cream);display:grid;place-items:center}
.soc svg{width:22px;height:22px;display:block}
.footer__cols{gap:0;padding-right:0}
.fcol{width:auto}
.fcol:nth-child(1){width:313px}
.fcol:nth-child(2){width:278px}
.footer__clubs{gap:0;justify-content:flex-start}
.footer__clubs .fclub:first-child{width:573px;flex:0 0 573px}
.fclub__ico{background:var(--ink);display:grid;place-items:center}
.fclub__ico svg{width:24px;height:24px;display:block}
