/* ============================================================
   GRACIE BARRA MAIA — 24H Draft · Daily Shot Solutions
   Light (default) + Dark mode · centered · airy
   ============================================================ */

/* ---------- THEME TOKENS ---------- */
:root{
  --accent:      #DE2B26;
  --accent-deep: #B01E1A;
  --on-accent:   #FFFFFF;

  --bg:       #FFFFFF;
  --bg-2:     #F6F2EB;
  --bg-3:     #EFE9DE;
  --surface:  #FFFFFF;
  --text:     #16110F;
  --text-soft:#453D37;
  --text-mut: #726860;
  --border:   rgba(22,17,15,.12);
  --border-2: rgba(22,17,15,.08);
  --shadow:   0 26px 60px -34px rgba(22,17,15,.28);
  --shadow-red: 0 20px 46px -22px rgba(222,43,38,.45);

  --hero-a:  #FFFFFF;
  --hero-b:  #F1EBE0;
  --hero-grid: rgba(22,17,15,.055);
  --hero-glow: rgba(222,43,38,.12);
  --hero-text: var(--text);
  --hero-mut:  var(--text-mut);

  --ph-a: #EFE9DE;
  --ph-b: #E7E0D3;
  --ph-text: rgba(22,17,15,.5);

  --display: 'Anton', 'Barlow Condensed', Impact, sans-serif;
  --cond:    'Barlow Condensed', 'Barlow', sans-serif;
  --body:    'Barlow', -apple-system, system-ui, sans-serif;
  --wrap: 1180px;
}

[data-theme="dark"]{
  --bg:       #14100E;
  --bg-2:     #1B1613;
  --bg-3:     #221C19;
  --surface:  #1E1A18;
  --text:     #F5F1EA;
  --text-soft:rgba(245,241,234,.82);
  --text-mut: rgba(245,241,234,.6);
  --border:   rgba(245,241,234,.14);
  --border-2: rgba(245,241,234,.08);
  --shadow:   0 30px 70px -34px rgba(0,0,0,.6);
  --shadow-red: 0 20px 46px -20px rgba(222,43,38,.6);

  --hero-a:  #14100E;
  --hero-b:  #14100E;
  --hero-grid: rgba(245,241,234,.05);
  --hero-glow: rgba(222,43,38,.4);

  --ph-a: #221C19;
  --ph-b: #2A2320;
  --ph-text: rgba(245,241,234,.55);
}

*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  font-family:var(--body); color:var(--text); background:var(--bg);
  line-height:1.65; font-weight:400; -webkit-font-smoothing:antialiased; overflow-x:hidden;
  transition:background .3s ease, color .3s ease;
}
img{ display:block; max-width:100%; }
a{ color:inherit; text-decoration:none; }
::selection{ background:var(--accent); color:#fff; }

h1,h2,h3{ font-family:var(--display); font-weight:400; line-height:1; letter-spacing:.5px; text-transform:uppercase; }
h1{ font-size:clamp(2.5rem,6.4vw,5rem); }
h2{ font-size:clamp(1.8rem,3.8vw,3.1rem); }
.h2--light{ color:var(--text); }
.hl{ color:var(--accent); }
em{ font-style:italic; }

.eyebrow{
  font-family:var(--cond); text-transform:uppercase; letter-spacing:.28em;
  font-size:.76rem; font-weight:600; color:var(--accent); margin-bottom:1.4rem; display:block;
}
.eyebrow--red,.eyebrow--light{ color:var(--accent); }

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-family:var(--cond); font-weight:600; font-size:.92rem; letter-spacing:.08em;
  text-transform:uppercase; padding:.9rem 1.7rem; border-radius:5px; cursor:pointer;
  border:2px solid transparent; white-space:nowrap;
  transition:transform .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.btn__ico{ font-size:1.05em; }
.btn--red{ background:var(--accent); color:var(--on-accent); }
.btn--red:hover{ background:var(--accent-deep); transform:translateY(-2px); box-shadow:var(--shadow-red); }
.btn--dark{ background:var(--text); color:var(--bg); }
.btn--dark:hover{ transform:translateY(-2px); box-shadow:var(--shadow); opacity:.92; }
.btn--ghost{ border-color:var(--accent); color:var(--accent); background:transparent; }
.btn--ghost:hover{ background:var(--accent); color:var(--on-accent); transform:translateY(-2px); }
.btn--ghost-dark{ border-color:var(--text); color:var(--text); background:transparent; }
.btn--ghost-dark:hover{ background:var(--text); color:var(--bg); transform:translateY(-2px); }
.btn--nav{ padding:.6rem 1.15rem; font-size:.84rem; }
.btn--lg{ padding:1rem 2.1rem; font-size:1rem; }
.btn--xl{ padding:1.2rem 2.7rem; font-size:1.12rem; }
.btn--block{ width:100%; }

/* ---------- NAV ---------- */
.nav{ position:fixed; inset:0 0 auto 0; z-index:80; background:transparent; border-bottom:1px solid transparent;
  transition:background .3s ease, box-shadow .3s ease, border-color .3s ease; }
.nav.scrolled{ background:color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter:blur(12px); border-bottom-color:var(--border); box-shadow:0 10px 30px -24px rgba(0,0,0,.4); }
.nav__inner{ max-width:var(--wrap); margin:0 auto; padding:.9rem 1.6rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.brand{ display:flex; align-items:center; gap:.7rem; }
.brand__logo{ width:46px; height:46px; border-radius:50%; box-shadow:0 6px 16px -8px rgba(0,0,0,.4); }
.brand__txt{ display:flex; flex-direction:column; line-height:1; }
.brand__name{ font-family:var(--display); font-size:1.18rem; letter-spacing:.5px; color:var(--text); text-transform:uppercase; }
.brand__sub{ font-family:var(--cond); font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:var(--accent); margin-top:.28rem; font-weight:600; }
.nav__right{ display:flex; align-items:center; gap:1.6rem; }
.nav__links{ display:flex; align-items:center; gap:1.9rem; }
.nav__links a{ font-family:var(--cond); font-weight:500; font-size:.94rem; letter-spacing:.05em; color:var(--text); text-transform:uppercase; position:relative; }
.nav__links a:not(.btn)::after{ content:""; position:absolute; left:0; bottom:-5px; width:0; height:2px; background:var(--accent); transition:width .25s ease; }
.nav__links a:not(.btn):hover::after{ width:100%; }

.theme-btn{ width:38px; height:38px; border-radius:50%; border:2px solid var(--border); background:transparent; color:var(--text); cursor:pointer; display:grid; place-items:center; font-size:1.05rem; line-height:1; transition:.2s; flex:0 0 auto; }
.theme-btn:hover{ border-color:var(--accent); color:var(--accent); }
.theme-btn .moon{ display:none; }
[data-theme="dark"] .theme-btn .sun{ display:none; }
[data-theme="dark"] .theme-btn .moon{ display:block; }

.burger{ display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:6px; }
.burger span{ width:26px; height:2px; background:var(--text); transition:.3s; }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

/* ---------- HERO ---------- */
.hero{ position:relative; min-height:100svh; display:flex; align-items:center; justify-content:center; text-align:center; color:var(--hero-text); overflow:hidden; }
.hero__bg{ position:absolute; inset:0; z-index:0; background:linear-gradient(180deg,var(--hero-a),var(--hero-b)); }
.hero__mat{
  position:absolute; inset:-10% -10% -30% -10%;
  background-image:
    linear-gradient(var(--hero-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--hero-grid) 1px, transparent 1px);
  background-size:64px 64px;
  transform:perspective(680px) rotateX(58deg) scale(1.6); transform-origin:center 78%;
  mask-image:linear-gradient(to top, #000 6%, transparent 62%);
  -webkit-mask-image:linear-gradient(to top, #000 6%, transparent 62%);
}
.hero__glow{ position:absolute; inset:0;
  background:
    radial-gradient(58% 52% at 50% 8%, var(--hero-glow), transparent 62%),
    radial-gradient(70% 60% at 10% 100%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 55%);
}
.hero__inner{ position:relative; z-index:2; max-width:900px; margin:0 auto; padding:9rem 1.6rem 7rem; width:100%; }
.hero__title{ margin-bottom:2rem; }
.hero__lead{ font-size:clamp(1rem,1.4vw,1.16rem); max-width:56ch; margin:0 auto 2.8rem; color:var(--hero-mut); font-weight:400; }
.hero__lead strong{ color:var(--hero-text); font-weight:600; }
.hero__cta{ display:flex; gap:1rem; flex-wrap:wrap; justify-content:center; margin-bottom:2.8rem; }
.hero__chips{ list-style:none; display:flex; flex-wrap:wrap; gap:.8rem 1.6rem; justify-content:center; }
.hero__chips li{ font-family:var(--cond); font-size:.94rem; color:var(--hero-text); display:flex; align-items:center; gap:.5rem; }
.hero__chips span{ color:var(--accent); font-weight:700; }
.hero__scroll{ position:absolute; left:50%; bottom:26px; transform:translateX(-50%); z-index:3; width:26px; height:42px; border:2px solid color-mix(in srgb, var(--hero-text) 40%, transparent); border-radius:14px; }
.hero__scroll span{ position:absolute; left:50%; top:8px; width:4px; height:8px; background:var(--accent); border-radius:2px; transform:translateX(-50%); animation:scrollDot 1.6s ease-in-out infinite; }
@keyframes scrollDot{ 0%,100%{opacity:0;transform:translate(-50%,0)} 40%{opacity:1} 80%{opacity:0;transform:translate(-50%,14px)} }

/* ---------- MARQUEE ---------- */
.marquee{ background:var(--accent); color:#fff; overflow:hidden; padding:.9rem 0; }
.marquee__track{ display:flex; align-items:center; gap:1.8rem; white-space:nowrap; width:max-content; animation:scroll 30s linear infinite; }
.marquee__track span{ font-family:var(--display); font-size:1.2rem; letter-spacing:1px; text-transform:uppercase; }
.marquee__track i{ font-style:normal; font-size:.9rem; opacity:.85; }
@keyframes scroll{ to{ transform:translateX(-50%); } }

/* ---------- LEGADO ---------- */
.legado{ background:var(--bg-2); }
.legado__inner{ max-width:var(--wrap); margin:0 auto; padding:clamp(3.5rem,6vw,5rem) 1.6rem; display:grid; grid-template-columns:repeat(4,1fr); gap:2rem 1.5rem; text-align:center; }
.stat{ padding:0 .5rem; position:relative; }
.stat + .stat::before{ content:""; position:absolute; left:0; top:12%; height:76%; width:1px; background:var(--border); }
.stat__n{ font-family:var(--display); font-size:clamp(2rem,3.2vw,2.7rem); line-height:1; color:var(--accent); display:block; margin-bottom:.7rem; }
.stat__n b{ font-weight:400; }
.stat__l{ font-family:var(--cond); font-size:.88rem; letter-spacing:.04em; color:var(--text-mut); text-transform:uppercase; }

/* ---------- SECTION HEAD ---------- */
.section-head{ text-align:center; max-width:720px; margin:0 auto clamp(3rem,6vw,4.5rem); }
.section-head h2{ margin-bottom:0; }
.section-head__lead{ color:var(--text-mut); margin-top:1.4rem; font-size:1rem; }
.section-head__lead--light{ color:var(--text-mut); }

/* generic section padding — airy */
.escola,.metodo,.professor,.programas,.marcar,.horarios,.benef,.galeria,.depo,.local,.formsec,.final{
  padding:clamp(5rem,9vw,8rem) 1.6rem;
}

/* ---------- ESCOLA ---------- */
.escola{ background:var(--bg); }
.escola__grid{ max-width:820px; margin:0 auto; display:flex; flex-direction:column; align-items:center; text-align:center; gap:clamp(2.5rem,5vw,3.5rem); }
.escola__media{ position:relative; width:min(420px,90%); }
.escola__stamp{ position:absolute; right:-14px; bottom:-22px; background:var(--accent); color:#fff; padding:1.1rem 1.4rem; border-radius:6px; box-shadow:var(--shadow-red); text-align:left; }
.escola__stamp b{ font-family:var(--display); font-size:1.4rem; display:block; line-height:1; text-transform:uppercase; }
.escola__stamp span{ font-family:var(--cond); font-size:.86rem; letter-spacing:.04em; }
.escola__text h2{ margin-bottom:1.8rem; }
.escola__text p{ color:var(--text-soft); margin-bottom:1.3rem; max-width:56ch; font-size:1.02rem; }
.escola__text p strong{ color:var(--text); font-weight:600; }
.ticks{ list-style:none; display:inline-grid; gap:1rem; margin:2rem 0 2.4rem; text-align:left; }
.ticks li{ position:relative; padding-left:2rem; font-family:var(--cond); font-size:1.04rem; }
.ticks li::before{ content:"🔺"; position:absolute; left:0; top:.05rem; font-size:.8rem; }

/* PHOTO placeholders */
.photo{ position:relative; border-radius:10px; overflow:hidden; box-shadow:var(--shadow); display:grid; place-items:center; min-height:220px;
  background:repeating-linear-gradient(45deg, var(--ph-a) 0 14px, var(--ph-b) 14px 28px); }
.photo::after{ content:attr(data-ph); position:absolute; bottom:12px; left:12px; right:12px;
  font-family:var(--cond); font-size:.82rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ph-text); text-align:center; }
.photo::before{ content:"🔺"; font-size:2.2rem; opacity:.28; }
.photo--tall{ aspect-ratio:4/5; }
.photo--portrait{ aspect-ratio:3/4; }
.photo__badge{ position:absolute; width:92px; height:92px; border-radius:50%; box-shadow:0 10px 24px -8px rgba(0,0,0,.35); opacity:.96; }
.photo__belt{ position:absolute; left:0; right:0; bottom:0; height:22px; background:var(--accent-deep); }
.photo__belt::after{ content:""; position:absolute; right:22%; top:0; bottom:0; width:26px; background:#14100E; }
.photo--has-img{ background:none; }
.photo__img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.photo--has-img::before,.photo--has-img::after{ display:none; }
.photo--has-img .photo__belt{ display:none; }

/* ---------- MÉTODO ---------- */
.metodo{ background:var(--bg-2); }
.metodo__head{ text-align:center; max-width:780px; margin:0 auto clamp(3rem,6vw,4rem); }
.metodo__lead{ color:var(--text-soft); font-size:1.06rem; margin-top:1.4rem; }
.metodo__lead strong{ color:var(--text); }
.pillars{ max-width:var(--wrap); margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); gap:1.3rem; }
.pillar{ background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:2.4rem 1.8rem; text-align:center; transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.pillar:hover{ transform:translateY(-6px); border-color:var(--accent); box-shadow:var(--shadow); }
.pillar__ico{ font-size:2.2rem; color:var(--accent); display:block; margin-bottom:1.2rem; }
.pillar h3{ font-size:1.28rem; margin-bottom:.9rem; letter-spacing:.4px; }
.pillar p{ color:var(--text-mut); font-size:.94rem; }

/* JORNADA DA FAIXA */
.jornada{ max-width:960px; margin:clamp(3.5rem,6vw,5.5rem) auto 0; display:flex; flex-direction:column; align-items:center; text-align:center; gap:clamp(2.5rem,4vw,3.5rem); }
.jornada__label h3{ margin:.6rem 0 1.2rem; }
.jornada__label p{ color:var(--text-mut); font-size:1.02rem; max-width:52ch; }
.belts{ position:relative; width:100%; display:grid; grid-template-columns:repeat(5,1fr); gap:.9rem; padding-top:2.4rem; }
.belt-track{ position:absolute; top:6px; left:6px; right:6px; height:8px; border-radius:6px; background:var(--border); overflow:hidden; }
.belt-track__fill{ display:block; height:100%; width:0; border-radius:6px;
  background:linear-gradient(90deg,#D9CFBE,#2F6FB0,#6C3FA0,#6B4326,#14100E); transition:width 1.6s cubic-bezier(.5,0,.2,1); }
.belt{ text-align:center; }
.belt__swatch{ display:block; height:34px; border-radius:5px; background:var(--b); border:1px solid var(--border); box-shadow:0 8px 20px -12px rgba(0,0,0,.4); margin-bottom:.7rem; position:relative; }
.belt__swatch--black::after{ content:""; position:absolute; right:14%; top:0; bottom:0; width:20%; background:var(--stripe,#DE2B26); }
.belt b{ font-family:var(--display); font-size:1rem; color:var(--text); display:block; letter-spacing:.4px; }
.belt small{ font-family:var(--cond); font-size:.78rem; color:var(--text-mut); }

/* ---------- PROFESSOR ---------- */
.professor{ background:var(--bg); }
.professor__grid{ max-width:760px; margin:0 auto; display:flex; flex-direction:column; align-items:center; text-align:center; gap:clamp(2.5rem,5vw,3.5rem); }
.professor__media{ position:relative; width:min(360px,85%); order:-1; }
.professor__tag{ position:absolute; left:50%; transform:translateX(-50%); bottom:-14px; background:var(--accent); color:#fff; font-family:var(--cond); letter-spacing:.1em; text-transform:uppercase; font-size:.82rem; padding:.5rem 1.1rem; border-radius:4px; box-shadow:var(--shadow-red); white-space:nowrap; }
.professor__text h2{ margin-bottom:1.2rem; }
.professor__name{ font-family:var(--display); text-transform:uppercase; color:var(--accent); font-size:1.4rem; letter-spacing:.5px; margin-bottom:1.2rem; }
.professor__note{ font-size:.9rem; color:var(--accent-deep); margin-bottom:1.2rem; }
.professor__text p{ color:var(--text-soft); font-size:1.02rem; margin-bottom:1.3rem; max-width:52ch; }
.professor__text p strong{ color:var(--text); font-weight:600; }
.creds{ list-style:none; display:inline-grid; gap:0; margin:1.6rem 0 2.4rem; border-top:1px solid var(--border); min-width:min(480px,90%); text-align:left; }
.creds li{ display:flex; justify-content:space-between; gap:1.2rem; padding:.95rem .2rem; border-bottom:1px solid var(--border); }
.creds__k{ font-family:var(--cond); text-transform:uppercase; letter-spacing:.12em; font-size:.8rem; color:var(--accent); font-weight:600; }
.creds__v{ font-family:var(--cond); font-size:.98rem; text-align:right; color:var(--text); }
.creds__v em{ color:var(--text-mut); font-size:.9em; }

/* ---------- PROGRAMAS ---------- */
.programas{ background:var(--bg-2); }
.prog-grid{ max-width:var(--wrap); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; }
.prog{ background:var(--surface); border:1px solid var(--border); border-radius:10px; padding:2.4rem 2rem; position:relative; overflow:hidden; text-align:center; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.prog::before{ content:""; position:absolute; left:0; right:0; top:0; height:5px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .3s ease; }
.prog:hover{ transform:translateY(-6px); box-shadow:var(--shadow); border-color:transparent; }
.prog:hover::before{ transform:scaleX(1); }
.prog__tag{ font-family:var(--cond); text-transform:uppercase; letter-spacing:.14em; font-size:.76rem; font-weight:600; color:var(--accent); }
.prog h3{ font-size:1.4rem; margin:.8rem 0 .9rem; letter-spacing:.4px; }
.prog p{ color:var(--text-mut); font-size:.94rem; margin-bottom:1.6rem; }
.prog__cta{ font-family:var(--cond); font-weight:600; text-transform:uppercase; letter-spacing:.06em; font-size:.92rem; color:var(--text); border-bottom:2px solid var(--accent); padding-bottom:2px; }
.prog__cta:hover{ color:var(--accent); }
.prog--feat{ background:var(--accent); border-color:var(--accent); }
.prog--feat .prog__tag,.prog--feat h3,.prog--feat .prog__cta{ color:#fff; }
.prog--feat p{ color:rgba(255,255,255,.86); }
.prog--feat .prog__cta{ border-bottom-color:rgba(255,255,255,.8); }
.prog--feat::before{ background:#fff; }

/* ---------- MARCAR (BOOKING) ---------- */
.marcar{ background:var(--bg); }
.marcar__inner{ max-width:640px; margin:0 auto; display:flex; flex-direction:column; align-items:center; text-align:center; gap:clamp(2.5rem,5vw,3.5rem); }
.marcar__intro h2{ margin:.6rem 0 1.4rem; }
.marcar__intro > p{ color:var(--text-mut); font-size:1.04rem; margin:0 auto 2rem; max-width:48ch; }
.marcar__perks{ list-style:none; display:inline-grid; gap:1.1rem; text-align:left; }
.marcar__perks li{ display:flex; align-items:center; gap:1rem; font-family:var(--cond); font-size:1.02rem; color:var(--text); }
.marcar__perks span{ flex:0 0 auto; width:30px; height:30px; border-radius:50%; background:var(--accent); color:#fff; display:grid; place-items:center; font-family:var(--display); font-size:1rem; }

.booking{ width:100%; background:var(--surface); border:1px solid var(--border); color:var(--text); border-radius:14px; padding:clamp(1.8rem,3.4vw,2.6rem); box-shadow:var(--shadow); }
.booking__step{ margin-bottom:1.7rem; }
.booking__q{ display:block; font-family:var(--cond); font-weight:600; text-transform:uppercase; letter-spacing:.08em; font-size:.86rem; color:var(--accent); margin-bottom:.9rem; text-align:center; }
.chips{ display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; }
.chip{ font-family:var(--cond); font-weight:500; font-size:.92rem; padding:.6rem 1.1rem; border-radius:50px; border:2px solid var(--border); background:var(--bg); color:var(--text); cursor:pointer; transition:.18s; }
.chip:hover{ border-color:var(--accent); }
.chip.is-on{ background:var(--accent); border-color:var(--accent); color:#fff; }
.booking__out{ margin-top:1.8rem; border-top:1px solid var(--border); padding-top:1.6rem; text-align:center; }
.booking__summary{ font-family:var(--cond); font-size:.98rem; margin-bottom:1.1rem; min-height:1.5em; }
.booking__summary b{ color:var(--accent); }
.booking__alt{ display:block; width:100%; margin-top:1rem; background:none; border:0; cursor:pointer; font-family:var(--cond); font-size:.92rem; color:var(--text-mut); letter-spacing:.03em; }
.booking__alt:hover{ color:var(--accent); }

/* ---------- HORÁRIOS ---------- */
.horarios{ background:var(--bg-2); }
.sched{ max-width:var(--wrap); margin:0 auto; }
.sched__tabs{ display:flex; gap:.6rem; justify-content:center; margin-bottom:2rem; }
.sched__tab{ font-family:var(--cond); font-weight:600; text-transform:uppercase; letter-spacing:.06em; font-size:.94rem; padding:.7rem 1.5rem; border-radius:50px; border:2px solid var(--text); background:transparent; color:var(--text); cursor:pointer; transition:.2s; }
.sched__tab.is-on{ background:var(--accent); border-color:var(--accent); color:#fff; }
.sched__panel{ display:none; overflow-x:auto; }
.sched__panel.is-on{ display:block; }
.sched__table{ width:100%; border-collapse:collapse; background:var(--surface); border-radius:10px; overflow:hidden; box-shadow:var(--shadow); min-width:680px; }
.sched__table th{ background:var(--text); color:var(--bg); font-family:var(--cond); text-transform:uppercase; letter-spacing:.08em; font-size:.84rem; padding:.95rem .6rem; }
.sched__table td{ padding:.9rem .6rem; text-align:center; font-family:var(--cond); font-size:.92rem; border-bottom:1px solid var(--border); border-right:1px solid var(--border); color:var(--text); }
.sched__table td.t{ background:var(--bg-3); font-weight:600; color:var(--accent); }
.sched__table td.x{ color:var(--text-mut); opacity:.5; }
.sched__table td.hl2{ background:color-mix(in srgb, var(--accent) 12%, transparent); font-weight:600; color:var(--accent-deep); }
.sched__table tr:last-child td{ border-bottom:0; }
.sched__foot{ text-align:center; margin-top:1.8rem; font-family:var(--cond); font-size:.98rem; }
.sched__foot a{ color:var(--accent); border-bottom:2px solid var(--accent); }

/* ---------- BENEFÍCIOS ---------- */
.benef{ background:var(--bg); }
.benef__inner{ max-width:900px; margin:0 auto; display:flex; flex-direction:column; align-items:center; text-align:center; gap:clamp(2.5rem,5vw,3.5rem); }
.benef__text h2{ margin:.6rem 0 1.2rem; }
.benef__text p{ color:var(--text-mut); font-size:1.02rem; max-width:52ch; }
.benef__list{ list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:.4rem 2.4rem; width:100%; text-align:left; }
.benef__list li{ padding:1.5rem 0; border-top:2px solid var(--accent); }
.benef__list b{ font-family:var(--display); font-size:1.24rem; text-transform:uppercase; letter-spacing:.4px; display:block; margin-bottom:.5rem; }
.benef__list span{ color:var(--text-mut); font-size:.94rem; }

/* ---------- GALERIA ---------- */
.galeria{ background:var(--bg-2); }
.gal-grid{ max-width:var(--wrap); margin:0 auto; display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; gap:1rem; }
.gal-grid .photo{ min-height:0; }
.gal-a{ grid-column:span 2; grid-row:span 2; }
.gal-b{ grid-column:span 2; }
.gal-e{ grid-column:span 2; }
.galeria__cta{ text-align:center; margin-top:2.8rem; }

/* ---------- DEPOIMENTOS ---------- */
.depo{ background:var(--accent); color:#fff; }
.depo .eyebrow,.depo .eyebrow--light{ color:#fff; }
.depo .h2--light{ color:#fff; }
.depo .section-head__lead,.depo .section-head__lead--light{ color:rgba(255,255,255,.85); }
.depo-grid{ max-width:var(--wrap); margin:0 auto; display:grid; grid-template-columns:repeat(3,1fr); gap:1.3rem; }
.quote-card{ background:rgba(20,16,14,.14); border:1px solid rgba(255,255,255,.22); border-radius:12px; padding:2.4rem 2rem; text-align:center; }
.stars{ color:#fff; letter-spacing:3px; margin-bottom:1.2rem; font-size:.98rem; }
.quote-card blockquote{ font-size:1.02rem; line-height:1.6; margin-bottom:1.4rem; }
.quote-card figcaption{ font-family:var(--cond); text-transform:uppercase; letter-spacing:.08em; font-size:.82rem; opacity:.9; }

/* ---------- LOCAL ---------- */
.local{ background:var(--bg); }
.local__grid{ max-width:820px; margin:0 auto; display:flex; flex-direction:column; align-items:center; text-align:center; gap:clamp(2.5rem,5vw,3.5rem); }
.local__info h2{ margin-bottom:1.8rem; }
.local__facts{ list-style:none; display:inline-grid; gap:1.2rem; margin-bottom:2.4rem; text-align:center; }
.local__facts li{ display:flex; flex-direction:column; align-items:center; border-bottom:1px solid var(--border); padding-bottom:1rem; font-family:var(--cond); font-size:1.02rem; color:var(--text); }
.local__facts li span:first-child{ font-size:.78rem; text-transform:uppercase; letter-spacing:.16em; color:var(--accent); margin-bottom:.4rem; font-weight:600; }
.local__facts a{ color:var(--text); border-bottom:1px solid var(--accent); }
.local__cta{ display:flex; gap:1rem; flex-wrap:wrap; justify-content:center; }
.local__map{ width:100%; border-radius:12px; overflow:hidden; box-shadow:var(--shadow); min-height:360px; position:relative;
  background:repeating-linear-gradient(45deg, var(--ph-a) 0 14px, var(--ph-b) 14px 28px); }
.local__map-ph{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.7rem; text-align:center; color:var(--text); padding:2rem; }
.local__pin{ font-size:2.4rem; color:var(--accent); }
.local__map-ph b{ font-family:var(--display); font-size:1.4rem; text-transform:uppercase; letter-spacing:.5px; }
.local__map-ph span,.local__map-ph em{ color:var(--text-mut); }

/* ---------- FORMULÁRIO ---------- */
.formsec{ background:var(--bg-2); }
.formsec__inner{ max-width:820px; margin:0 auto; background:var(--surface); border:1px solid var(--border); border-radius:16px; padding:clamp(2.2rem,4.5vw,3.4rem); box-shadow:var(--shadow); }
.formsec__head{ text-align:center; margin-bottom:2.4rem; }
.formsec__head h2{ margin:.6rem 0 .9rem; }
.formsec__head p{ color:var(--text-mut); }
.cform__row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:1rem; }
.cform input, .cform textarea{ width:100%; font-family:var(--body); font-size:.95rem; padding:.95rem 1.1rem; border:2px solid var(--border); border-radius:7px; background:var(--bg); color:var(--text); transition:border-color .2s ease; }
.cform input::placeholder,.cform textarea::placeholder{ color:var(--text-mut); }
.cform input:focus, .cform textarea:focus{ outline:none; border-color:var(--accent); }
.cform textarea{ resize:vertical; margin-bottom:1rem; }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; opacity:0; }
.cform__foot{ display:flex; align-items:center; gap:1.4rem; flex-wrap:wrap; justify-content:center; }
.cform__status{ font-family:var(--cond); font-size:.94rem; }
.cform__status.ok{ color:#1a7a3a; }
.cform__status.err{ color:var(--accent-deep); }

/* ---------- FINAL ---------- */
.final{ background:var(--bg-3); text-align:center; position:relative; overflow:hidden; }
.final::before{ content:""; position:absolute; inset:0; background:radial-gradient(60% 90% at 50% 120%, color-mix(in srgb, var(--accent) 20%, transparent), transparent 60%); }
.final__inner{ position:relative; max-width:820px; margin:0 auto; }
.final h2{ margin:.6rem 0 1.4rem; font-size:clamp(2.1rem,4.8vw,3.9rem); }
.final__lead{ color:var(--text-soft); font-size:1.06rem; max-width:46ch; margin:0 auto 2.6rem; }
.final__or{ margin-top:1.6rem; font-family:var(--cond); font-size:.98rem; color:var(--text-mut); }
.final__or a{ color:var(--accent); border-bottom:2px solid var(--accent); }

/* ---------- FOOTER (grounded dark-ink) ---------- */
.footer{ background:#0C0908; color:rgba(245,241,234,.6); }
.footer__inner{ max-width:var(--wrap); margin:0 auto; padding:4.5rem 1.6rem 2.5rem; display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:2.5rem; }
.footer__brand{ display:flex; gap:1rem; align-items:flex-start; }
.footer__logo{ width:56px; height:56px; border-radius:50%; flex:0 0 auto; }
.footer .brand__name{ font-size:1.2rem; color:#F5F1EA; }
.footer__brand p{ margin-top:.7rem; max-width:38ch; font-size:.88rem; line-height:1.7; }
.footer__col h4{ font-family:var(--cond); text-transform:uppercase; letter-spacing:.14em; font-size:.78rem; color:var(--accent); font-weight:600; margin-bottom:1.1rem; }
.footer__col a{ display:block; font-family:var(--cond); font-size:.93rem; padding:.3rem 0; color:rgba(245,241,234,.6); }
.footer__col a:hover{ color:#F5F1EA; }
.footer__bottom{ max-width:var(--wrap); margin:0 auto; padding:1.6rem; border-top:1px solid rgba(245,241,234,.12); display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; font-family:var(--cond); font-size:.9rem; }
.footer__made a{ color:var(--accent); }

/* ---------- FAB ---------- */
.fab{ position:fixed; right:1.2rem; bottom:1.2rem; z-index:90; width:58px; height:58px; border-radius:50%; background:#25D366; color:#fff; display:grid; place-items:center; box-shadow:0 14px 30px -8px rgba(37,211,102,.6); transition:transform .2s ease; }
.fab:hover{ transform:scale(1.08); }

/* ---------- REVEAL ---------- */
.reveal{ opacity:0; transform:translateY(30px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; }
  .reveal{ opacity:1; transform:none; }
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1000px){
  .legado__inner{ grid-template-columns:1fr 1fr; }
  .stat + .stat::before{ display:none; }
  .pillars{ grid-template-columns:1fr 1fr; }
  .prog-grid{ grid-template-columns:1fr 1fr; }
  .depo-grid{ grid-template-columns:1fr; }
  .gal-grid{ grid-template-columns:1fr 1fr; }
  .gal-a{ grid-column:span 2; }
}
@media (max-width:860px){
  .nav__links{ position:fixed; inset:0 0 auto 0; flex-direction:column; background:var(--bg); padding:6rem 2rem 2.5rem; gap:1.4rem; transform:translateY(-100%); transition:transform .35s ease; box-shadow:var(--shadow); border-bottom:1px solid var(--border); }
  .nav__links.open{ transform:translateY(0); }
  .nav__links a{ font-size:1.4rem; }
  .burger{ display:flex; z-index:85; }
  .benef__list{ grid-template-columns:1fr; text-align:center; }
  .benef__list li{ border-top:none; border-bottom:2px solid var(--accent); padding:1.2rem 0; }
}
@media (max-width:560px){
  .nav__inner{ padding:.7rem 1.1rem; }
  .nav__right{ gap:.8rem; }
  .hero__inner{ padding:7.5rem 1.2rem 5rem; }
  .hero__cta .btn{ width:100%; }
  .legado__inner{ grid-template-columns:1fr; }
  .pillars,.prog-grid{ grid-template-columns:1fr; }
  .belts{ grid-template-columns:1fr 1fr; gap:1.2rem; padding-top:1rem; }
  .belt-track{ display:none; }
  .gal-grid{ grid-template-columns:1fr; grid-auto-rows:210px; }
  .gal-a,.gal-b,.gal-e{ grid-column:span 1; grid-row:span 1; }
  .escola__stamp{ right:8px; }
  .creds li{ flex-direction:column; gap:.2rem; text-align:center; }
  .creds__v{ text-align:center; }
  .footer__inner{ grid-template-columns:1fr 1fr; }
  .footer__brand{ grid-column:span 2; }
  .footer__bottom{ justify-content:center; text-align:center; }
  .cform__row{ grid-template-columns:1fr; }
}
