/* =========================================================
   FIT ROOM · Santa Teresa
   Direction: futuristic · luxe · ultra-clean
   Monochrome paper + near-black features + lime laser accent
   Type: Hanken Grotesk (display/body) · Space Mono (labels)
   ========================================================= */

:root{
  --paper:   #F3F4F0;
  --white:   #FFFFFF;
  --ink:     #0C0D0B;
  --ink-2:   #54574D;
  --ink-3:   #71746A;   /* darkened for legibility (AA on paper) */
  --hair:    #E2E3DC;
  --hair-2:  #D4D5CC;
  --black:   #0B0C0A;
  --black-2: #16180F;
  --lime:    #8CC63F;
  --lime-dk: #55801A;   /* accent text — AA on light */
  --lime-gl: rgba(140,198,63,.16);

  --maxw: 1320px;
  --pad: clamp(20px, 4.5vw, 72px);

  --f: "Hanken Grotesk", -apple-system, BlinkMacSystemFont, sans-serif;
  --m: "Space Mono", ui-monospace, monospace;

  --ease: cubic-bezier(.16,.84,.24,1);
  --ease-out: cubic-bezier(.22,1,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--f); font-weight:400; font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }

/* keyboard focus — visible on light & dark contexts */
*:focus-visible{ outline:2px solid var(--ink); outline-offset:3px; border-radius:1px; }
.standard *:focus-visible,.site-footer *:focus-visible,.founder *:focus-visible,
.price-card--feature *:focus-visible,.loc--active *:focus-visible{ outline-color:var(--paper); }
h1,h2,h3{ margin:0; font-weight:600; line-height:1; letter-spacing:-.03em; }
p{ margin:0 0 1em; }
.hidden{ display:none !important; }

.container{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--pad); }
.section{ padding-block:clamp(80px,12vw,170px); position:relative; }

/* ---- mono micro-type ---- */
.mono{ font-family:var(--m); font-weight:400; font-size:.72rem; letter-spacing:.04em; text-transform:uppercase; }
.label{ display:flex; align-items:center; gap:.8em; color:var(--ink-2); margin:0 0 2.4em; font-size:.72rem; }
.label span{ color:var(--lime-dk); }
.label::after{ content:""; height:1px; flex:1; background:var(--hair-2); max-width:120px; }

/* ---- section heads ---- */
.section-head{ max-width:760px; margin:0 auto clamp(48px,7vw,84px); }
.section-head h2{ font-size:clamp(2.4rem,6.4vw,5rem); letter-spacing:-.04em; }
.section-head__lead{ color:var(--ink-2); margin-top:1.1em; font-size:1.06rem; max-width:48ch; }
.section-head--left{ margin-inline:0; }
.section-head--light{ color:var(--paper); }
.section-head--light .label{ color:rgba(243,244,240,.6); }
.section-head--light .label span{ color:var(--lime); }
.section-head--light .label::after{ background:rgba(243,244,240,.2); }
.section-head--light .section-head__lead{ color:rgba(243,244,240,.66); }

/* ---- buttons ---- */
.btn{
  --bg:var(--ink); --fg:var(--paper);
  display:inline-flex; align-items:center; justify-content:center; gap:.6em;
  font-family:var(--m); font-weight:400; font-size:.74rem; letter-spacing:.08em; text-transform:uppercase;
  padding:1.05em 1.9em; background:var(--bg); color:var(--fg);
  border:1px solid var(--bg); border-radius:2px; cursor:pointer;
  position:relative; overflow:hidden; transition:color .4s var(--ease), border-color .4s var(--ease);
}
.btn::before{ content:""; position:absolute; inset:0; background:var(--lime); transform:translateY(101%); transition:transform .45s var(--ease); z-index:0; }
.btn:hover::before{ transform:translateY(0); }
.btn>*{ position:relative; z-index:1; }
.btn:hover{ color:var(--ink); border-color:var(--lime); }
.btn--line{ --bg:transparent; --fg:var(--ink); border-color:var(--hair-2); }
.btn--line:hover{ color:var(--ink); border-color:var(--lime); }
.btn--lg{ padding:1.2em 2.4em; font-size:.78rem; }
/* wrap btn text so z-index works without extra markup */
.btn{ isolation:isolate; }

/* =========================================================
   SCROLL PROGRESS
   ========================================================= */
.scroll-bar{ position:fixed; top:0; left:0; height:2px; width:0; background:var(--lime); z-index:200; transition:width .1s linear; }

/* =========================================================
   LOGO
   ========================================================= */
.logo{ display:inline-flex; align-items:center; gap:.3em; font-weight:800; font-size:1.34rem; letter-spacing:.02em; line-height:1; }
.logo__fit{ color:var(--ink); }
.logo__room{ color:var(--lime-dk); }
.logo__pulse{ width:32px; height:18px; overflow:visible; }
.logo__pulse polyline{ fill:none; stroke:var(--lime); stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; }
.logo--light .logo__fit{ color:var(--paper); }
.logo--light .logo__room{ color:var(--lime); }

/* =========================================================
   HEADER
   ========================================================= */
.site-header{ position:fixed; inset:0 0 auto 0; z-index:100; padding-block:20px; transition:background .4s var(--ease), padding .4s var(--ease), box-shadow .4s var(--ease); }
.site-header.scrolled{ background:rgba(243,244,240,.78); backdrop-filter:saturate(160%) blur(16px); box-shadow:0 1px 0 var(--hair); padding-block:12px; }
.header__inner{ display:flex; align-items:center; justify-content:space-between; gap:24px; }
.nav{ display:flex; gap:30px; margin-inline-start:auto; }
.nav a{ font-family:var(--m); font-size:.72rem; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-2); display:flex; align-items:baseline; gap:.4em; transition:color .3s; }
.nav a i{ font-style:normal; font-size:.6rem; color:var(--ink-3); }
.nav a:hover{ color:var(--ink); }
.nav a:hover i{ color:var(--lime-dk); }
.header__cta{ margin-inline-start:6px; }

.nav-toggle{ display:none; width:42px; height:42px; border:0; background:none; cursor:pointer; flex-direction:column; gap:6px; align-items:center; justify-content:center; }
.nav-toggle span{ width:24px; height:1.5px; background:var(--ink); transition:transform .35s var(--ease), opacity .25s; }
.nav-toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(3.75px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2){ transform:translateY(-3.75px) rotate(-45deg); }
.mobile-menu{ position:fixed; inset:0 0 auto 0; padding:92px var(--pad) 40px; background:var(--paper); display:flex; flex-direction:column; gap:2px; transform:translateY(-110%); transition:transform .55s var(--ease); z-index:90; box-shadow:0 30px 50px rgba(0,0,0,.07); }
.mobile-menu.open{ transform:translateY(0); }
.mobile-menu a{ font-size:1.9rem; font-weight:600; letter-spacing:-.03em; padding:14px 0; border-bottom:1px solid var(--hair); display:flex; align-items:baseline; gap:.5em; }
.mobile-menu a i{ font-style:normal; font-family:var(--m); font-size:.8rem; color:var(--ink-3); }
.mobile-menu .btn{ margin-top:22px; align-self:flex-start; }

/* =========================================================
   HERO
   ========================================================= */
.hero{ padding-top:clamp(120px,15vw,180px); padding-bottom:clamp(40px,6vw,72px); }
.hero__top{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px 24px; color:var(--ink-2); padding-bottom:clamp(20px,3vw,34px); border-bottom:1px solid var(--hair); }
.hero__title{ font-size:clamp(4.2rem,18vw,15rem); font-weight:700; letter-spacing:-.05em; line-height:.86; padding-block:clamp(22px,3vw,40px); }
.hero__title em{ font-style:normal; color:var(--lime-dk); }
.reveal-line{ display:block; overflow:hidden; }
.reveal-line>span{ display:block; transform:translateY(105%); transition:transform 1s var(--ease-out); }
.reveal-line.in>span{ transform:translateY(0); }
.reveal-line:nth-child(2)>span{ transition-delay:.12s; }

.hero__bottom{ display:flex; justify-content:space-between; align-items:flex-end; gap:40px; flex-wrap:wrap; padding-top:clamp(18px,2.5vw,30px); border-top:1px solid var(--hair); }
.hero__lead{ max-width:42ch; }
.hero__lead p{ font-size:1.12rem; color:var(--ink-2); margin-bottom:1.6em; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:12px; }
.hero__stats{ display:flex; gap:clamp(22px,3vw,46px); }
.stat{ display:flex; flex-direction:column; align-items:flex-start; position:relative; }
.stat__k{ font-size:clamp(2.4rem,4vw,3.4rem); font-weight:600; letter-spacing:-.04em; line-height:1; }
.stat em{ position:absolute; top:0; right:-.5em; color:var(--lime-dk); font-style:normal; font-size:1.4rem; }
.stat__l{ color:var(--ink-3); margin-top:.5em; }

.hero__media{ margin-top:clamp(34px,5vw,64px); position:relative; }
.hero__media img{ width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:3px; filter:grayscale(1) contrast(1.02); transition:filter 1s var(--ease); }
.hero__media:hover img{ filter:grayscale(0) contrast(1); }
.hero__media-tag{ position:absolute; left:16px; bottom:14px; color:#fff; mix-blend-mode:difference; }

/* =========================================================
   MARQUEE
   ========================================================= */
.marquee{ border-block:1px solid var(--hair); overflow:hidden; padding-block:16px; }
.marquee__track{ display:flex; align-items:center; gap:30px; width:max-content; animation:scroll 30s linear infinite; }
.marquee span{ font-size:clamp(1.6rem,3.6vw,2.6rem); font-weight:600; letter-spacing:-.03em; white-space:nowrap; color:var(--ink); }
.marquee i{ color:var(--lime); font-style:normal; font-size:1.4rem; }
@keyframes scroll{ to{ transform:translateX(-50%); } }

/* =========================================================
   ABOUT
   ========================================================= */
.about__grid{ display:grid; grid-template-columns:0.55fr 1.45fr; grid-template-areas:"head copy" "media media"; gap:clamp(24px,4vw,56px) clamp(24px,5vw,80px); }
.about__head{ grid-area:head; }
.about__copy{ grid-area:copy; max-width:38ch; }
.about__copy h2{ font-size:clamp(2.2rem,5vw,3.8rem); letter-spacing:-.04em; margin-bottom:.6em; }
.about__copy p{ color:var(--ink-2); }
.about__copy strong{ color:var(--ink); font-weight:600; }
.pull{ margin:1.8em 0 0; font-size:1.35rem; font-weight:500; letter-spacing:-.02em; line-height:1.3; color:var(--ink); }
.pull .mono{ color:var(--lime-dk); font-size:1.4rem; }
.pull cite{ display:block; font-family:var(--m); font-size:.7rem; font-style:normal; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-3); margin-top:1em; }
.about__media{ grid-area:media; margin-top:clamp(20px,3vw,40px); }
.about__media img{ width:100%; aspect-ratio:21/9; object-fit:cover; border-radius:3px; }

/* =========================================================
   CLASSES
   ========================================================= */
.class-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--hair); border:1px solid var(--hair); border-radius:3px; overflow:hidden; }
.class-card{ background:var(--paper); transition:background .5s var(--ease); }
.class-card:hover{ background:var(--white); }
.class-card__img{ overflow:hidden; aspect-ratio:4/5; }
.class-card__img img{ width:100%; height:100%; object-fit:cover; filter:grayscale(1); transition:transform .9s var(--ease), filter .7s var(--ease); }
.class-card:hover .class-card__img img{ transform:scale(1.05); filter:grayscale(0); }
.class-card__body{ padding:24px clamp(18px,1.6vw,26px) 30px; }
.class-card__meta{ display:flex; justify-content:space-between; color:var(--ink-3); margin-bottom:1.4em; }
.class-card__meta .mono:last-child{ color:var(--lime-dk); }
.class-card__body h3{ font-size:1.7rem; letter-spacing:-.03em; margin-bottom:.5em; }
.class-card__body p{ font-size:.92rem; color:var(--ink-2); margin:0; }

/* =========================================================
   THE STANDARD (dark)
   ========================================================= */
.standard{ background:var(--black); color:var(--paper); }
.standard::before{ content:""; position:absolute; inset:0; background:radial-gradient(120% 60% at 90% -10%, var(--lime-gl), transparent 55%); pointer-events:none; }
.standard .container{ position:relative; }
.standard-list{ list-style:none; margin:0; padding:0; border-top:1px solid rgba(243,244,240,.13); }
.standard-list li{ display:grid; grid-template-columns:auto 1fr; gap:clamp(20px,5vw,90px); align-items:start; padding:clamp(26px,3.4vw,44px) 0; border-bottom:1px solid rgba(243,244,240,.13); transition:padding-inline-start .5s var(--ease); }
.standard-list li:hover{ padding-inline-start:clamp(8px,1.5vw,22px); }
.standard-list__k{ color:var(--lime); font-size:.8rem; padding-top:.5em; }
.standard-list h3{ font-size:clamp(1.6rem,3.2vw,2.6rem); letter-spacing:-.03em; margin-bottom:.35em; max-width:18ch; }
.standard-list p{ color:rgba(243,244,240,.62); margin:0; max-width:52ch; font-size:1rem; }
.standard-list strong{ color:var(--lime); font-weight:600; }

/* =========================================================
   BENEFITS
   ========================================================= */
.benefits-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--hair); border-block:1px solid var(--hair); }
.benefit{ background:var(--paper); padding:clamp(28px,3vw,48px) clamp(8px,1.4vw,24px) clamp(36px,5vw,72px); transition:background .5s var(--ease); }
.benefit:hover{ background:var(--white); }
.benefit__k{ color:var(--lime-dk); }
.benefit h3{ font-size:clamp(1.6rem,2.4vw,2.2rem); letter-spacing:-.03em; margin:1.2em 0 .5em; }
.benefit p{ color:var(--ink-2); margin:0; font-size:.95rem; }

/* =========================================================
   PRICING
   ========================================================= */
.founder{ display:flex; align-items:center; justify-content:space-between; gap:28px; flex-wrap:wrap; background:var(--ink); color:var(--paper); border-radius:3px; padding:clamp(26px,3.4vw,46px); margin-bottom:clamp(18px,2vw,30px); position:relative; overflow:hidden; }
.founder::before{ content:""; position:absolute; inset:0; background:radial-gradient(120% 150% at 100% 0%, var(--lime-gl), transparent 52%); pointer-events:none; }
.founder__main{ position:relative; max-width:62ch; }
.founder__tag{ color:var(--lime); display:inline-flex; align-items:center; gap:.5em; margin-bottom:1.1em; }
.founder h3{ font-size:clamp(1.8rem,3.6vw,2.9rem); letter-spacing:-.03em; margin-bottom:.4em; }
.founder p{ color:rgba(243,244,240,.72); margin:0; font-size:1.05rem; }
.founder strong{ color:var(--lime); font-weight:600; }
.founder .btn{ position:relative; flex:none; }

.price-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--hair); border:1px solid var(--hair); border-radius:3px; overflow:hidden; }
.price-card{ background:var(--paper); padding:clamp(26px,2.6vw,42px) clamp(20px,2vw,34px); display:flex; flex-direction:column; transition:background .5s var(--ease); }
.price-card:hover{ background:var(--white); }
.price-card__head{ margin-bottom:1.6em; }
.price-card__head .mono{ color:var(--lime-dk); display:block; margin-bottom:1em; }
.price-card__head h3{ font-size:1.7rem; letter-spacing:-.03em; }
.price-list{ list-style:none; margin:0 0 1.3em; padding:0; flex:1; }
.price-list li{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; padding:.9em 0; border-bottom:1px solid var(--hair); }
.price-list li:first-child{ border-top:1px solid var(--hair); }
.price-list li>span:first-child{ color:var(--ink-2); }
.price-list__p{ font-weight:600; font-size:1.18rem; white-space:nowrap; }
.price-list__p s{ color:var(--ink-3); font-weight:400; font-size:.82em; margin-right:.35em; }
.price-card__note{ color:var(--ink-3); font-size:.84rem; margin:0; }

.price-card--feature{ background:var(--ink); color:var(--paper); }
.price-card--feature:hover{ background:var(--black-2); }
.price-card--feature .price-card__head .mono{ color:var(--lime); }
.price-big{ font-size:clamp(2.8rem,5vw,3.6rem); font-weight:700; letter-spacing:-.04em; line-height:1; margin-bottom:1.1em; display:flex; align-items:baseline; gap:.45em; }
.price-big .mono{ font-size:.78rem; color:rgba(243,244,240,.6); font-weight:400; }
.price-checks{ list-style:none; margin:0 0 1.9em; padding:0; flex:1; }
.price-checks li{ position:relative; padding:.6em 0 .6em 1.7em; color:rgba(243,244,240,.82); font-size:.95rem; border-bottom:1px solid rgba(243,244,240,.1); }
.price-checks li::before{ content:""; position:absolute; left:1px; top:.95em; width:9px; height:5px; border:1.6px solid var(--lime); border-top:0; border-right:0; transform:rotate(-45deg); }
.price-card--feature .btn{ --bg:var(--lime); --fg:var(--ink); border-color:var(--lime); }
.price-card--feature .btn::before{ background:var(--paper); }
.price-card--feature .btn:hover{ color:var(--ink); border-color:var(--paper); }
.pricing__fine{ text-align:center; color:var(--ink-3); margin-top:clamp(24px,3vw,42px); }

/* =========================================================
   TEAM
   ========================================================= */
.team-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--hair); border:1px solid var(--hair); border-radius:3px; overflow:hidden; }
.member{ background:var(--paper); display:grid; grid-template-columns:1fr 1.1fr; gap:clamp(18px,2vw,32px); align-items:center; padding:clamp(20px,2.2vw,34px); transition:background .5s var(--ease); }
.member:hover{ background:var(--white); }
.member__img img{ width:100%; aspect-ratio:1/1; object-fit:cover; border-radius:2px; filter:grayscale(1); transition:filter .7s var(--ease); }
.member:hover .member__img img{ filter:grayscale(0); }
.member__role{ color:var(--lime-dk); margin:0 0 .8em; }
.member__body h3{ font-size:clamp(1.7rem,2.6vw,2.3rem); letter-spacing:-.03em; margin-bottom:.6em; }
.member__body p{ font-size:.94rem; color:var(--ink-2); margin:0; }

/* =========================================================
   LOCATIONS
   ========================================================= */
.loc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--hair); border:1px solid var(--hair); border-radius:3px; overflow:hidden; }
.loc{ background:var(--paper); padding:clamp(30px,4vw,60px) clamp(20px,2.4vw,40px); min-height:clamp(180px,22vw,300px); display:flex; flex-direction:column; justify-content:space-between; transition:background .5s var(--ease), color .5s var(--ease); }
.loc>.mono{ color:var(--ink-3); }
.loc h3{ font-size:clamp(2rem,4.4vw,3.6rem); letter-spacing:-.04em; }
.loc--active{ background:var(--ink); color:var(--paper); }
.loc--active>.mono{ color:rgba(243,244,240,.55); }
.loc__pin{ color:var(--lime); display:inline-flex; align-items:center; gap:.5em; margin-top:.8em; }

/* =========================================================
   CTA BAND
   ========================================================= */
.cta-band{ background:var(--paper); border-block:1px solid var(--hair); }
.cta-band__inner{ display:flex; align-items:flex-end; justify-content:space-between; gap:40px; flex-wrap:wrap; padding-block:clamp(64px,9vw,120px); }
.cta-band h2{ font-size:clamp(2.4rem,6vw,5rem); letter-spacing:-.04em; }
.cta-band h2 em{ font-style:normal; color:var(--lime-dk); }
.cta-band .label{ margin-bottom:1.4em; }

/* =========================================================
   CONTACT
   ========================================================= */
.contact{ background:var(--white); }
.contact__grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(40px,6vw,90px); }
.contact__lead{ color:var(--ink-2); max-width:40ch; margin-bottom:2.4em; font-size:1.05rem; }
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field{ display:block; margin-bottom:20px; }
.field>span{ display:block; color:var(--ink-3); margin-bottom:.7em; }
.field>span small{ text-transform:none; letter-spacing:0; }
.field input,.field textarea{ width:100%; font-family:var(--f); font-size:1rem; color:var(--ink); background:var(--paper); border:1px solid var(--hair-2); border-radius:2px; padding:.9em 1em; transition:border-color .3s, box-shadow .3s, background .3s; resize:vertical; }
.field input::placeholder,.field textarea::placeholder{ color:var(--ink-3); }
.field input:focus,.field textarea:focus{ outline:none; border-color:var(--ink); background:var(--white); box-shadow:0 0 0 3px var(--lime-gl); }
.form .btn{ margin-top:6px; }
.form__status{ margin-top:1.2em; min-height:1.2em; color:var(--ink-2); }
.form__status.ok{ color:var(--lime-dk); }
.form__status.err{ color:#c0492f; }

.contact__info{ display:flex; flex-direction:column; gap:26px; }
.info-block h3{ color:var(--ink-3); font-weight:400; margin-bottom:.7em; }
.info-block p{ margin:0; color:var(--ink); }
.info-contact a{ border-bottom:1px solid transparent; transition:border-color .3s; }
.info-contact a:hover{ border-color:var(--lime); }
.hours{ list-style:none; margin:0; padding:0; }
.hours li{ display:flex; justify-content:space-between; gap:20px; padding:.5em 0; border-bottom:1px solid var(--hair); font-size:.96rem; }
.hours li span:first-child{ color:var(--ink-2); }
.map{ border-radius:3px; overflow:hidden; aspect-ratio:4/3; border:1px solid var(--hair); margin-top:2px; }
.map iframe{ width:100%; height:100%; border:0; filter:grayscale(1) contrast(1.05); transition:filter .6s; }
.map:hover iframe{ filter:grayscale(0); }

/* =========================================================
   FOOTER
   ========================================================= */
.site-footer{ background:var(--black); color:var(--paper); padding-top:clamp(60px,9vw,110px); }
.footer__inner{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; align-items:start; padding-bottom:clamp(40px,6vw,80px); }
.footer__brand p{ margin:1.4em 0 0; color:rgba(243,244,240,.5); }
.footer__nav{ display:flex; flex-direction:column; gap:13px; }
.footer__nav a{ color:rgba(243,244,240,.74); font-size:.96rem; width:fit-content; transition:color .3s; }
.footer__nav a:hover{ color:var(--lime); }
.footer__tag{ font-size:clamp(2.2rem,4vw,3.4rem); font-weight:700; letter-spacing:-.04em; line-height:.9; margin:0; text-align:right; }
.footer__tag em{ font-style:normal; color:var(--lime); }
.footer__base{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px; border-top:1px solid rgba(243,244,240,.14); padding-block:24px; color:rgba(243,244,240,.46); }

/* =========================================================
   FLOATING WHATSAPP
   ========================================================= */
.wa-float{ position:fixed; right:22px; bottom:22px; z-index:80; width:56px; height:56px; border-radius:50%; background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center; box-shadow:0 14px 34px rgba(37,211,102,.42); transition:transform .3s var(--ease); animation:wa-in .6s var(--ease) .9s both; }
.wa-float:hover{ transform:scale(1.08); }
.wa-float::after{ content:""; position:absolute; inset:0; border-radius:50%; border:1.5px solid #25D366; animation:wa-ring 2.6s ease-out infinite; }
@keyframes wa-ring{ 0%{ transform:scale(1); opacity:.6; } 100%{ transform:scale(1.7); opacity:0; } }
@keyframes wa-in{ from{ transform:scale(0); } to{ transform:scale(1); } }

/* =========================================================
   REVEAL
   ========================================================= */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity 1s var(--ease-out), transform 1s var(--ease-out); }
.reveal.in{ opacity:1; transform:none; }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1000px){
  .about__grid{ grid-template-columns:1fr; grid-template-areas:"head" "copy" "media"; }
  .class-grid{ grid-template-columns:repeat(2,1fr); }
  .benefits-grid{ grid-template-columns:repeat(2,1fr); }
  .price-grid{ grid-template-columns:1fr; }
  .price-card--feature{ order:-1; }
  .contact__grid{ grid-template-columns:1fr; }
  .footer__inner{ grid-template-columns:1fr 1fr; }
  .footer__tag{ text-align:left; }
}
@media (max-width:680px){
  body{ font-size:16px; }
  .nav,.header__cta{ display:none; }
  .nav-toggle{ display:flex; }
  .hero__bottom{ flex-direction:column; align-items:flex-start; gap:30px; }
  .hero__media img{ aspect-ratio:4/3; }
  .class-grid{ grid-template-columns:1fr; }
  .benefits-grid{ grid-template-columns:1fr; }
  .team-grid{ grid-template-columns:1fr; }
  .member{ grid-template-columns:1fr; }
  .member__img{ max-width:200px; }
  .loc-grid{ grid-template-columns:1fr; }
  .loc{ min-height:130px; flex-direction:row; align-items:center; justify-content:space-between; }
  .form__row{ grid-template-columns:1fr; }
  .footer__inner{ grid-template-columns:1fr; }
  .cta-band__inner{ align-items:flex-start; }
}

@media (prefers-reduced-motion:reduce){
  *{ animation:none !important; transition:none !important; }
  .reveal,.reveal-line>span{ opacity:1 !important; transform:none !important; }
}
