/* =================================================================
   CAPOEIRA ARTE LUTA — Design System
   High-contrast editorial · ink / bone / berimbau-gold
   ================================================================= */

/* ---------- Tokens ---------- */
:root{
  /* core palette */
  --ink:        #15110b;   /* warm near-black */
  --ink-2:      #1f1810;   /* lifted ink for panels */
  --ink-3:      #2c241a;   /* hairlines on dark */
  --paper:      #f1ead9;   /* bone white, warm */
  --paper-2:    #e8dec8;   /* deeper bone, alternating */
  --paper-3:    #ddd1b6;   /* deepest bone */
  --gold:       #b9852b;   /* berimbau gold */
  --gold-2:     #d6a443;   /* bright gold on dark */
  --blood:      #6f2a20;   /* rare oxblood accent (corda vermelha) */

  /* text */
  --t-strong:   #15110b;
  --t-body:     #463c2c;
  --t-muted:    #6c604c;
  --t-on-ink:   #ece3d0;
  --t-on-ink-mut:#a99a80;

  /* lines */
  --line:       rgba(21,17,11,.16);
  --line-soft:  rgba(21,17,11,.10);
  --line-ink:   rgba(236,227,208,.16);

  /* type */
  --serif: "Fraunces", Georgia, "Times New Roman", serif;
  --sans:  "Archivo", "Helvetica Neue", Arial, sans-serif;

  /* metrics */
  --container: 1280px;
  --reading: 64ch;
  --gutter: clamp(1.25rem, 4vw, 3.5rem);
  --section-y: clamp(4.5rem, 9vw, 8.5rem);
  --radius: 2px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{
  margin:0;
  background:var(--paper);
  color:var(--t-body);
  font-family:var(--sans);
  font-size:clamp(1rem,.97rem + .2vw,1.075rem);
  line-height:1.65;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; }
ul[class]{ list-style:none; margin:0; padding:0; }
::selection{ background:var(--ink); color:var(--paper); }

/* ---------- Typography ---------- */
h1,h2,h3,h4{
  font-family:var(--serif);
  color:var(--t-strong);
  font-weight:560;
  line-height:1.02;
  letter-spacing:-.015em;
  margin:0;
  font-optical-sizing:auto;
}
.display{
  font-size:clamp(2.7rem,1.6rem + 5.2vw,5.4rem);
  font-weight:560;
  line-height:.97;
  letter-spacing:-.025em;
}
.h-xl{ font-size:clamp(2.1rem,1.4rem + 3vw,3.5rem); line-height:1.0; letter-spacing:-.02em; }
.h-lg{ font-size:clamp(1.7rem,1.2rem + 2vw,2.6rem); }
.h-md{ font-size:clamp(1.35rem,1.1rem + 1vw,1.7rem); }
p{ margin:0 0 1.1em; }
p:last-child{ margin-bottom:0; }
strong{ font-weight:600; color:var(--t-strong); }
em{ font-style:italic; }

.lead{
  font-family:var(--serif);
  font-size:clamp(1.25rem,1.05rem + 1vw,1.65rem);
  line-height:1.4;
  color:var(--t-strong);
  font-weight:400;
  letter-spacing:-.01em;
}

/* eyebrow / index labels */
.eyebrow{
  font-family:var(--sans);
  font-size:.72rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.24em;
  color:var(--gold);
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  margin:0 0 1.4rem;
}
.eyebrow::before{
  content:"";
  width:1.8rem;height:1px;
  background:var(--gold);
  display:inline-block;
  opacity:.7;
}
.eyebrow--plain::before{ display:none; }
.eyebrow .idx{ font-variant-numeric:tabular-nums; opacity:.6; }

/* ---------- Layout ---------- */
.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-left:max(var(--gutter), env(safe-area-inset-left));
  padding-right:max(var(--gutter), env(safe-area-inset-right));
}
.container--wide{ max-width:1480px; }
.container--narrow{ max-width:920px; }
.section{ padding-block:var(--section-y); position:relative; }
.section--tight{ padding-block:clamp(3rem,6vw,5rem); }
.bg-paper-2{ background:var(--paper-2); }
.bg-paper-3{ background:var(--paper-3); }
.bg-ink{ background:var(--ink); color:var(--t-on-ink); }
.bg-ink h1,.bg-ink h2,.bg-ink h3,.bg-ink h4,.bg-ink .lead{ color:var(--paper); }
.bg-ink strong{ color:var(--paper); }
.bg-ink .eyebrow{ color:var(--gold-2); }
.bg-ink .eyebrow::before{ background:var(--gold-2); }

.grid.cols-12{ display:flex; flex-wrap:wrap; gap:var(--gutter); }

/* rule line */
.rule{ height:1px; background:var(--line); border:0; margin:0; }
.bg-ink .rule{ background:var(--line-ink); }

/* ---------- Buttons ---------- */
.btn{
  --bg:var(--ink); --fg:var(--paper); --bd:var(--ink);
  display:inline-flex; align-items:center; gap:.65rem;
  font-family:var(--sans); font-size:.78rem; font-weight:600;
  text-transform:uppercase; letter-spacing:.14em;
  padding:1.02rem 1.6rem;
  background:var(--bg); color:var(--fg);
  border:1px solid var(--bd); border-radius:var(--radius);
  cursor:pointer; position:relative; overflow:hidden;
  transition:color .45s var(--ease), background .45s var(--ease), border-color .45s var(--ease);
  white-space:nowrap;
}
.btn .arw{ transition:transform .4s var(--ease); }
.btn:hover .arw{ transform:translateX(4px); }
.btn--gold{ --bg:var(--gold); --fg:#1a1206; --bd:var(--gold); }
.btn--gold:hover{ --bg:#a5751f; --bd:#a5751f; }
.btn--ink:hover{ --bg:transparent; --fg:var(--ink); }
.btn--ghost{ --bg:transparent; --fg:var(--ink); --bd:rgba(21,17,11,.4); }
.btn--ghost:hover{ --bg:var(--ink); --fg:var(--paper); --bd:var(--ink); }
.bg-ink .btn--ghost,.hero .btn--ghost{ --fg:var(--paper); --bd:rgba(236,227,208,.4); }
.bg-ink .btn--ghost:hover,.hero .btn--ghost:hover{ --bg:var(--paper); --fg:var(--ink); --bd:var(--paper); }
.btn--lg{ padding:1.15rem 2rem; font-size:.82rem; }

/* text link with underline reveal */
.tlink{
  font-family:var(--sans); font-weight:600; font-size:.82rem;
  text-transform:uppercase; letter-spacing:.14em;
  color:var(--gold); display:inline-flex; align-items:center; gap:.55rem;
  padding-bottom:.25rem; border-bottom:1px solid currentColor;
  transition:gap .35s var(--ease), color .3s;
}
.tlink:hover{ gap:.95rem; }
.bg-ink .tlink{ color:var(--gold-2); }

/* ---------- Photo treatment ---------- */
.figure{ position:relative; overflow:hidden; background:var(--ink-2); border-radius:var(--radius); }
.treat{
  filter:grayscale(1) contrast(1.05) brightness(.97) sepia(.14);
  transition:filter .8s var(--ease), transform 1.1s var(--ease);
  width:100%; height:100%; object-fit:cover;
}
.figure:hover .treat{ filter:grayscale(.15) contrast(1.02) sepia(.02); transform:scale(1.025); }
.figure--static .treat{ filter:grayscale(1) contrast(1.05) brightness(.96) sepia(.14); }
.figure--static:hover .treat{ transform:none; }
.figcap{
  font-family:var(--sans); font-size:.72rem; letter-spacing:.04em;
  color:var(--t-muted); margin-top:.7rem; display:flex; gap:.6rem; align-items:baseline;
}
.figcap .figcap__n{ color:var(--gold); font-weight:600; font-variant-numeric:tabular-nums; }

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:60;
  background:color-mix(in srgb, var(--paper) 88%, transparent);
  backdrop-filter:saturate(1.1) blur(8px);
  border-bottom:1px solid var(--line);
  transition:background .3s, border-color .3s, transform .45s var(--ease);
}
.site-header--hidden{ transform:translateY(-100%); }
.site-header__bar{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; min-height:74px;
}
.brand{ display:flex; align-items:center; gap:.85rem; }
.brand__mark{ width:30px; height:38px; flex:0 0 auto; }
.brand__mark path,.brand__mark circle,.brand__mark line{ stroke:var(--ink); }
.brand__logo{ height:56px; width:auto; display:block; }
.brand__txt{ display:flex; flex-direction:column; line-height:1; }
.brand__name{
  font-family:var(--serif); font-weight:600; font-size:1.06rem;
  letter-spacing:-.01em; color:var(--ink); text-transform:uppercase;
  white-space:nowrap;
}
.brand__sub{
  font-family:var(--sans); font-size:.6rem; font-weight:600;
  letter-spacing:.22em; text-transform:uppercase; color:var(--t-muted);
  margin-top:.32rem;
}
.nav{ display:flex; align-items:center; gap:clamp(.45rem,.78vw,1rem); }
.nav a{
  font-family:var(--sans); font-size:.72rem; font-weight:500;
  letter-spacing:.07em; text-transform:uppercase; color:var(--t-body);
  position:relative; padding:.4rem 0; transition:color .25s; white-space:nowrap;
}
.nav a::after{
  content:""; position:absolute; left:0; bottom:0; height:1.5px; width:0;
  background:var(--gold); transition:width .3s var(--ease);
}
.nav a:hover{ color:var(--ink); }
.nav a:hover::after,.nav a[aria-current="page"]::after{ width:100%; }
.nav a[aria-current="page"]{ color:var(--ink); }
.header-cta{ display:flex; align-items:center; gap:.7rem; }
.header-cta .btn{ padding:.82rem 1.25rem; font-size:.72rem; letter-spacing:.1em; }
.nav-toggle{ display:none; }

/* mobile menu */
.menu-overlay{
  position:fixed; inset:0; z-index:80; background:var(--ink); color:var(--t-on-ink);
  transform:translateY(-100%); transition:transform .55s var(--ease);
  display:flex; flex-direction:column;
  padding:max(1.5rem, env(safe-area-inset-top)) var(--gutter) max(3rem, calc(3rem + env(safe-area-inset-bottom)));
  overflow-y:auto;
}
.menu-overlay.open{ transform:translateY(0); }
.menu-overlay__top{ display:flex; justify-content:space-between; align-items:center; min-height:74px; }
.menu-overlay__top .brand__name,.menu-overlay__top .brand__sub{ color:var(--paper); }
.menu-overlay__top .brand__mark path,.menu-overlay__top .brand__mark circle,.menu-overlay__top .brand__mark line{ stroke:var(--gold-2); }
.menu-list{ margin-top:2rem; display:flex; flex-direction:column; }
.menu-list a{
  font-family:var(--serif); font-size:clamp(1.7rem,8vw,2.4rem); font-weight:500;
  color:var(--paper); padding:.55rem 0; border-bottom:1px solid var(--line-ink);
  display:flex; align-items:baseline; gap:1rem; letter-spacing:-.01em;
}
.menu-list a .mi{ font-family:var(--sans); font-size:.7rem; letter-spacing:.2em; color:var(--gold-2); font-weight:600; }
.menu-list a:hover{ color:var(--gold-2); }
.menu-overlay__foot{ margin-top:auto; padding-top:2rem; display:flex; flex-wrap:wrap; gap:1.5rem; font-size:.8rem; color:var(--t-on-ink-mut); }
.menu-overlay__foot a{ color:var(--gold-2); }

.icon-btn{
  display:inline-flex; align-items:center; justify-content:center;
  width:46px; height:46px; background:transparent; border:1px solid var(--line);
  border-radius:var(--radius); cursor:pointer; color:var(--ink);
}
.menu-overlay .icon-btn{ color:var(--paper); border-color:var(--line-ink); }

/* ---------- Hero (home) ---------- */
.hero{ position:relative; min-height:clamp(620px,92vh,960px); min-height:clamp(620px,92svh,960px); display:flex; align-items:flex-end; color:var(--paper); overflow:hidden; }
.hero__media{ position:absolute; inset:0; z-index:0; }
.hero__media img{ width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.08) brightness(.62) sepia(.18); }
.hero__media::after{
  content:""; position:absolute; inset:0;
  background:
    linear-gradient(to top, rgba(12,9,5,.92) 0%, rgba(12,9,5,.5) 38%, rgba(12,9,5,.28) 70%, rgba(12,9,5,.5) 100%),
    linear-gradient(to right, rgba(12,9,5,.72) 0%, rgba(12,9,5,.15) 55%, transparent 100%);
}
.hero__inner{ position:relative; z-index:2; width:100%; padding-bottom:clamp(2.5rem,6vw,5rem); padding-top:clamp(5rem,12vh,8rem); }
.hero__eyebrow{ color:var(--gold-2); }
.hero__eyebrow::before{ background:var(--gold-2); }
.hero h1{ color:var(--paper); max-width:16ch; }
.hero__sub{ font-family:var(--serif); font-size:clamp(1.15rem,1rem + .8vw,1.5rem); color:var(--t-on-ink); max-width:44ch; margin-top:1.6rem; font-weight:400; line-height:1.45; }
.hero__actions{ display:flex; flex-wrap:wrap; gap:1rem; margin-top:2.4rem; }
.hero__stats{
  display:flex; flex-wrap:wrap; gap:2.2rem 3rem; margin-top:3rem;
  padding-top:2rem; border-top:1px solid var(--line-ink);
}
.hero__stat{ display:flex; flex-direction:column; gap:.25rem; }
.hero__stat b{ font-family:var(--serif); font-size:1.7rem; font-weight:600; color:var(--paper); line-height:1; }
.hero__stat span{ font-family:var(--sans); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--t-on-ink-mut); }
.hero__side{
  position:absolute; right:calc(var(--gutter) - .2rem); top:50%; z-index:2;
  writing-mode:vertical-rl; transform:translateY(-50%);
  font-family:var(--sans); font-size:.68rem; font-weight:600; letter-spacing:.32em; text-transform:uppercase;
  color:var(--t-on-ink-mut);
}
@media (max-width:760px){ .hero__side{ display:none; } }

/* ---------- Awards band ---------- */
.awards{ display:grid; grid-template-columns:minmax(0,.8fr) 1px minmax(0,1fr) 1px minmax(0,1fr); gap:clamp(1.5rem,3vw,3rem); align-items:start; }
.awards .vline{ background:var(--line-ink); width:1px; align-self:stretch; }
.award__year{ font-family:var(--sans); font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold-2); margin-bottom:.9rem; }
.award__title{ font-family:var(--serif); font-size:clamp(1.4rem,1.1rem + 1vw,1.95rem); color:var(--paper); line-height:1.05; margin-bottom:.7rem; }
.award__desc{ color:var(--t-on-ink-mut); font-size:.95rem; }
@media (max-width:860px){
  .awards{ grid-template-columns:1fr; }
  .awards .vline{ width:auto; height:1px; }
}

/* ---------- Editorial numbered list ---------- */
.elist{ border-top:1px solid var(--line); }
.elrow{
  display:grid; grid-template-columns:5rem minmax(0,1fr) minmax(0,1.3fr);
  gap:clamp(1rem,3vw,3rem); align-items:baseline;
  padding:clamp(1.8rem,3.5vw,3rem) 0; border-bottom:1px solid var(--line);
  transition:padding-left .4s var(--ease);
}
.elrow:hover{ padding-left:.8rem; }
.elrow__n{ font-family:var(--serif); font-size:1.1rem; color:var(--gold); font-weight:600; font-variant-numeric:tabular-nums; }
.elrow__t{ font-family:var(--serif); font-size:clamp(1.3rem,1.05rem + 1vw,1.85rem); color:var(--t-strong); line-height:1.05; letter-spacing:-.01em; }
.elrow__d{ color:var(--t-body); }
@media (max-width:760px){
  .elrow{ grid-template-columns:2.5rem 1fr; }
  .elrow__d{ grid-column:1/-1; padding-left:2.5rem; }
}

/* ---------- Pull quote ---------- */
.pquote{ position:relative; }
.pquote__mark{ font-family:var(--serif); font-size:clamp(6rem,16vw,12rem); line-height:.7; color:var(--gold); opacity:.85; height:.5em; display:block; }
.pquote blockquote{
  margin:0; font-family:var(--serif); font-style:italic; font-weight:400;
  font-size:clamp(1.5rem,1.1rem + 2.4vw,2.9rem); line-height:1.28; letter-spacing:-.01em;
  color:var(--t-strong); max-width:24ch;
}
.bg-ink .pquote blockquote{ color:var(--paper); }
.pquote__by{ margin-top:1.8rem; font-family:var(--sans); font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; color:var(--t-muted); }
.pquote__by b{ color:var(--gold); }
.bg-ink .pquote__by{ color:var(--t-on-ink-mut); }
.bg-ink .pquote__by b{ color:var(--gold-2); }

/* ---------- Units table ---------- */
.utable{ width:100%; border-collapse:collapse; }
.utable th{
  font-family:var(--sans); font-size:.68rem; font-weight:600; letter-spacing:.16em;
  text-transform:uppercase; color:var(--t-muted); text-align:left; padding:0 1.2rem 1rem 0;
  border-bottom:1px solid var(--ink); white-space:nowrap;
}
.utable td{ padding:1.4rem 1.2rem 1.4rem 0; border-bottom:1px solid var(--line); vertical-align:top; }
.utable tr{ transition:background .3s; }
.utable tbody tr:hover{ background:rgba(185,133,43,.07); }
.uname{ font-family:var(--serif); font-size:1.18rem; color:var(--t-strong); font-weight:560; line-height:1.1; }
.utag{ display:inline-block; margin-top:.45rem; font-family:var(--sans); font-size:.62rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); border:1px solid var(--line); padding:.2rem .5rem; border-radius:var(--radius); }
.uaddr{ color:var(--t-body); font-size:.95rem; }
.uaddr a{ color:var(--t-body); display:inline-flex; align-items:center; gap:.4rem; border-bottom:1px dotted var(--line); transition:color .25s, border-color .25s; }
.uaddr a svg{ flex:0 0 auto; color:var(--gold); }
.uaddr a:hover{ color:var(--gold); border-bottom-color:var(--gold); }
.umin{ color:var(--t-muted); font-size:.9rem; }
.ucontact{ font-variant-numeric:tabular-nums; color:var(--t-body); font-size:.92rem; white-space:nowrap; }
@media (max-width:860px){
  .utable, .utable tbody, .utable tr, .utable td{ display:block; width:100%; }
  .utable thead{ display:none; }
  .utable tr{ border-bottom:1px solid var(--ink); padding:1.4rem 0; }
  .utable td{ padding:.25rem 0; border:0; }
  .utable td.cell-name{ padding-bottom:.6rem; }
}

/* ---------- Cards as editorial blocks (no shadow) ---------- */
.eblock{ border:1px solid var(--line); border-radius:var(--radius); padding:clamp(1.6rem,3vw,2.4rem); background:transparent; transition:border-color .35s, background .35s; }
.eblock:hover{ border-color:var(--ink); }
.bg-ink .eblock{ border-color:var(--line-ink); }
.bg-ink .eblock:hover{ border-color:var(--gold-2); }

/* ---------- Stats strip ---------- */
.statstrip{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line-ink); border-block:1px solid var(--line-ink); }
.statstrip > div{ background:var(--ink); padding:clamp(1.5rem,3vw,2.6rem) clamp(1rem,2vw,1.8rem); }
.statstrip b{ display:block; font-family:var(--serif); font-size:clamp(2rem,1.3rem + 2.5vw,3.4rem); color:var(--gold-2); line-height:1; font-weight:600; }
.statstrip span{ display:block; margin-top:.7rem; font-family:var(--sans); font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--t-on-ink-mut); }
@media (max-width:760px){ .statstrip{ grid-template-columns:1fr 1fr; } }

/* ---------- Page hero (inner pages) ---------- */
.phero{ padding-top:clamp(3.5rem,7vw,6rem); padding-bottom:clamp(2.5rem,5vw,4rem); position:relative; }
.phero__index{ font-family:var(--sans); font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color:var(--t-muted); margin-bottom:1.4rem; display:flex; gap:.7rem; align-items:center; }
.phero__index b{ color:var(--gold); font-variant-numeric:tabular-nums; }
.phero h1{ max-width:18ch; }
.phero__lead{ margin-top:1.8rem; max-width:54ch; }

/* breadcrumb-ish meta row */
.meta-row{ display:flex; flex-wrap:wrap; gap:1.4rem 2.4rem; margin-top:2.4rem; padding-top:1.6rem; border-top:1px solid var(--line); }
.meta-row .mi{ display:flex; flex-direction:column; gap:.25rem; }
.meta-row .mi b{ font-family:var(--serif); font-size:1.25rem; color:var(--t-strong); }
.meta-row .mi span{ font-family:var(--sans); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--t-muted); }

/* ---------- Mestre profile ---------- */
.mestre{ display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(1.5rem,4vw,4rem); align-items:start; }
.mestre--flip{ direction:rtl; }
.mestre--flip > *{ direction:ltr; }
.mestre__photo{ aspect-ratio:4/5; }
.mestre__role{ font-family:var(--sans); font-size:.74rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin:1rem 0 .4rem; }
ul.awardlist{ display:grid; gap:.9rem; margin-top:1.8rem; border-top:1px solid var(--line); padding-top:1.8rem; }
.awardlist li{ display:grid; grid-template-columns:auto 1fr; gap:1rem; align-items:baseline; font-size:.95rem; }
.awardlist li .yr{ font-family:var(--sans); font-size:.7rem; font-weight:600; letter-spacing:.1em; color:var(--gold); white-space:nowrap; font-variant-numeric:tabular-nums; }
@media (max-width:760px){ .mestre{ grid-template-columns:1fr; } .mestre--flip{ direction:ltr; } }

/* ---------- Graduação ladder ---------- */
.cord-table{ width:100%; border-collapse:collapse; }
.cord-table th{ font-family:var(--sans); font-size:.68rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--t-muted); text-align:left; padding:0 1rem 1rem 0; border-bottom:1px solid var(--ink); }
.cord-table td{ padding:1.05rem 1rem 1.05rem 0; border-bottom:1px solid var(--line); vertical-align:middle; }
.cord-table tr:hover{ background:rgba(185,133,43,.06); }
.cord-swatch{ display:inline-flex; align-items:center; gap:.8rem; }
.cord-chip{ width:46px; height:14px; border-radius:1px; flex:0 0 auto; border:1px solid rgba(21,17,11,.2); }
.cord-name{ font-family:var(--serif); font-size:1.05rem; color:var(--t-strong); }
.cord-level{ font-family:var(--sans); font-size:.7rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--t-muted); }
.cord-mean{ color:var(--t-body); font-size:.95rem; }
@media (max-width:860px){
  .cord-table, .cord-table tbody, .cord-table tr, .cord-table td{ display:block; width:100%; }
  .cord-table thead{ display:none; }
  .cord-table tr{ border-bottom:1px solid var(--ink); padding:1.2rem 0; }
  .cord-table td{ padding:.35rem 0; border:0; }
  .cord-table td[data-label]::before{
    content:attr(data-label);
    display:block; font-family:var(--sans); font-size:.62rem; font-weight:600;
    letter-spacing:.16em; text-transform:uppercase; color:var(--t-muted); margin-bottom:.35rem;
  }
}

/* ---------- Gallery ---------- */
.gal-filter{ display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:2.5rem; }
.gal-filter button{
  display:inline-flex; align-items:center; min-height:44px;
  font-family:var(--sans); font-size:.72rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase;
  padding:.6rem 1.1rem; background:transparent; border:1px solid var(--line); border-radius:var(--radius); color:var(--t-muted); cursor:pointer; transition:.3s;
}
.gal-filter button:hover{ color:var(--ink); border-color:var(--ink); }
.gal-filter button.active{ background:var(--ink); color:var(--paper); border-color:var(--ink); }
.gal-grid{ display:grid; grid-template-columns:repeat(12,1fr); gap:clamp(.6rem,1.4vw,1.1rem); grid-auto-flow:dense; }
.gal-item{ position:relative; overflow:hidden; border-radius:var(--radius); background:var(--ink-2); }
.gal-item img{ width:100%; height:100%; object-fit:cover; aspect-ratio:1/1; }
.gal-item.tall{ grid-row:span 2; }
.gal-item .gal-cap{ position:absolute; left:0; right:0; bottom:0; padding:1.4rem 1.1rem .9rem; color:var(--paper); font-family:var(--sans); font-size:.72rem; letter-spacing:.1em; text-transform:uppercase; background:linear-gradient(to top,rgba(12,9,5,.85),transparent); opacity:0; transition:opacity .4s; }
.gal-item:hover .gal-cap{ opacity:1; }
.gs-3{ grid-column:span 3; } .gs-4{ grid-column:span 4; } .gs-6{ grid-column:span 6; } .gs-5{ grid-column:span 5; } .gs-7{ grid-column:span 7; }
@media (max-width:860px){ .gs-3,.gs-4,.gs-5,.gs-6,.gs-7{ grid-column:span 6; } .gal-item.tall{ grid-row:auto; } }

/* ---------- Sponsors ---------- */
.sponsors-grid{ display:grid; grid-template-columns:repeat(6,1fr); gap:clamp(.55rem,1vw,.9rem); }
.sponsor{
  background:#fff; border:1px solid var(--line); border-radius:2px;
  aspect-ratio:3/2; display:flex; align-items:center; justify-content:center;
  padding:clamp(.85rem,1.5vw,1.35rem); transition:border-color .35s;
}
.sponsor:hover{ border-color:var(--ink); }
.sponsor img{
  max-width:100%; max-height:100%; width:auto; object-fit:contain;
  filter:grayscale(1); opacity:.58;
  transition:opacity .45s var(--ease), filter .45s var(--ease);
}
.sponsor:hover img{ filter:grayscale(0); opacity:1; }
@media (max-width:980px){ .sponsors-grid{ grid-template-columns:repeat(4,1fr); } }
@media (max-width:560px){ .sponsors-grid{ grid-template-columns:repeat(3,1fr); } }

/* ---------- Form ---------- */
.field{ display:flex; flex-direction:column; gap:.5rem; margin-bottom:1.4rem; }
.field label{ font-family:var(--sans); font-size:.7rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--t-muted); }
.field input,.field select,.field textarea{
  font-family:var(--sans); font-size:1rem; color:var(--ink);
  background:transparent; border:0; border-bottom:1px solid var(--ink);
  padding:.7rem 0; border-radius:0;
}
.field input:focus,.field select,.field textarea:focus{ outline:none; border-bottom-color:var(--gold); }
.field textarea{ resize:vertical; min-height:120px; }
.field input::placeholder,.field textarea::placeholder{ color:var(--t-muted); opacity:.7; }

/* ---------- Process steps ---------- */
.steps{ counter-reset:step; display:grid; gap:0; border-top:1px solid var(--line-ink); }
.step{ display:grid; grid-template-columns:auto 1fr; gap:clamp(1.2rem,3vw,2.4rem); padding:clamp(1.6rem,3vw,2.4rem) 0; border-bottom:1px solid var(--line-ink); align-items:start; }
.step__n{ font-family:var(--serif); font-size:clamp(1.8rem,1.2rem + 2vw,2.8rem); color:var(--gold-2); line-height:1; font-weight:600; }
.step h3{ color:var(--paper); margin-bottom:.6rem; }
.step p{ color:var(--t-on-ink-mut); }

/* ---------- Footer ---------- */
.site-footer{ background:var(--ink); color:var(--t-on-ink-mut); padding-top:clamp(4rem,7vw,6.5rem); }
.footer-top{ display:grid; grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr)); gap:clamp(2rem,4vw,3.5rem); padding-bottom:clamp(3rem,5vw,4.5rem); border-bottom:1px solid var(--line-ink); }
.footer-brand .brand__name{ color:var(--paper); font-size:1.3rem; }
.footer-brand .brand__mark path,.footer-brand .brand__mark circle,.footer-brand .brand__mark line{ stroke:var(--gold-2); }
.footer-mission{ font-family:var(--serif); font-size:1.15rem; line-height:1.4; color:var(--t-on-ink); max-width:34ch; margin-top:1.6rem; }
.fcol h4{ font-family:var(--sans); font-size:.7rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-2); margin-bottom:1.3rem; }
.fcol ul{ display:grid; gap:.85rem; list-style:none; padding:0; margin:0; }
.fcol a{ color:var(--t-on-ink-mut); font-size:.92rem; transition:color .25s; }
.fcol a:hover{ color:var(--paper); }
.fcol p{ font-size:.92rem; color:var(--t-on-ink-mut); }
.footer-bottom{ display:flex; flex-wrap:wrap; gap:1rem 2rem; justify-content:space-between; align-items:center; padding-block:2rem; font-size:.78rem; letter-spacing:.04em; }
.footer-bottom a{ color:var(--gold-2); }
.social{ display:flex; gap:.6rem; }
.social a{ width:40px; height:40px; border:1px solid var(--line-ink); border-radius:var(--radius); display:inline-flex; align-items:center; justify-content:center; color:var(--t-on-ink-mut); transition:.3s; }
.social a:hover{ color:var(--ink); background:var(--gold-2); border-color:var(--gold-2); }
@media (max-width:860px){ .footer-top{ grid-template-columns:1fr 1fr; } }
@media (max-width:540px){ .footer-top{ grid-template-columns:1fr; } }

/* ---------- Misc utility ---------- */
.stack-sm > * + *{ margin-top:1rem; }
.stack > * + *{ margin-top:1.6rem; }
.stack-lg > * + *{ margin-top:2.6rem; }
.mt-cta{ margin-top:2.6rem; }
.maxr{ max-width:var(--reading); }
.tabnum{ font-variant-numeric:tabular-nums; }
.gold{ color:var(--gold); }
.bg-ink .gold{ color:var(--gold-2); }

/* ---------- Flexbox column helpers (12-col emulation) ----------
   Each cN item takes N/12 of the row width, minus its share of the
   gaps that the flex container's own `gap` doesn't cover (since only
   one `gap` is inserted between items, not one per virtual column).
   skip1 / skip2 add extra left margin equal to 1 or 2 "empty columns"
   so asymmetric layouts (with a gap between siblings) still line up. */
.c1{ flex:0 0 calc(8.3333% - .91667*var(--gutter)); min-width:0; }
.c2{ flex:0 0 calc(16.6667% - .83333*var(--gutter)); min-width:0; }
.c3{ flex:0 0 calc(25% - .75*var(--gutter)); min-width:0; }
.c4{ flex:0 0 calc(33.3333% - .66667*var(--gutter)); min-width:0; }
.c5{ flex:0 0 calc(41.6667% - .58333*var(--gutter)); min-width:0; }
.c6{ flex:0 0 calc(50% - .5*var(--gutter)); min-width:0; }
.c7{ flex:0 0 calc(58.3333% - .41667*var(--gutter)); min-width:0; }
.c8{ flex:0 0 calc(66.6667% - .33333*var(--gutter)); min-width:0; }
.c9{ flex:0 0 calc(75% - .25*var(--gutter)); min-width:0; }
.c10{ flex:0 0 calc(83.3333% - .16667*var(--gutter)); min-width:0; }
.c11{ flex:0 0 calc(91.6667% - .08333*var(--gutter)); min-width:0; }
.c12{ flex:0 0 calc(100% - 0*var(--gutter)); min-width:0; }
.skip1{ margin-left:calc(8.3333% + .08333*var(--gutter)); }
.skip2{ margin-left:calc(16.6667% + .16667*var(--gutter)); }
@media (max-width:860px){
  [class*="c1"],[class*="c2"],[class*="c3"],[class*="c4"],[class*="c5"],[class*="c6"],
  [class*="c7"],[class*="c8"],[class*="c9"]{ flex:1 1 100%; }
  [class*="skip"]{ margin-left:0; }
}

/* ---------- Reveal on scroll ---------- */
.reveal{ opacity:0; transform:translateY(22px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal[data-d="1"]{ transition-delay:.08s; }
.reveal[data-d="2"]{ transition-delay:.16s; }
.reveal[data-d="3"]{ transition-delay:.24s; }
@media (prefers-reduced-motion: reduce){ .reveal{ opacity:1; transform:none; transition:none; } }

/* ---------- Header nav responsive ---------- */
@media (max-width:1279px){
  .nav{ display:none; }
  .header-cta .btn{ display:none; }
  .nav-toggle{ display:inline-flex; }
}
@media (min-width:1280px){
  .menu-overlay{ display:none; }
  .nav-toggle{ display:none; }
}

/* skip link */
.skip{ position:absolute; left:-9999px; top:0; background:var(--ink); color:var(--paper); padding:.8rem 1.2rem; z-index:200; }
.skip:focus{ left:0; }

/* ---------- Back to top ---------- */
.back-to-top{
  position:fixed;
  right:max(clamp(1rem,3vw,2rem), env(safe-area-inset-right));
  bottom:max(clamp(1rem,3vw,2rem), env(safe-area-inset-bottom));
  z-index:70;
  display:inline-flex; align-items:center; justify-content:center;
  width:46px; height:46px;
  background:var(--ink); color:var(--paper);
  border:1px solid var(--ink); border-radius:var(--radius); cursor:pointer;
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:opacity .35s var(--ease), transform .35s var(--ease), background .3s, border-color .3s, color .3s;
}
.back-to-top svg{ flex:0 0 auto; }
.back-to-top:hover{ background:var(--gold); border-color:var(--gold); color:#1a1206; }
.back-to-top.is-visible{ opacity:1; visibility:visible; transform:none; }

/* ---------- Book covers (página Mídia) ---------- */
.bookcover{ position:relative; aspect-ratio:3/4; background:var(--ink); border-radius:var(--radius); padding:clamp(1.4rem,2.6vw,2.2rem); display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; border:1px solid var(--ink-3); }
.bookcover::after{ content:""; position:absolute; left:0; top:0; bottom:0; width:7px; background:var(--gold); }
.bookcover--paper{ background:var(--paper-3); border-color:var(--line); }
.bookcover--paper .bc-kicker,.bookcover--paper .bc-title,.bookcover--paper .bc-foot{ color:var(--ink); }
.bc-kicker{ font-family:var(--sans); font-size:.66rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-2); }
.bc-title{ font-family:var(--serif); font-size:clamp(1.4rem,1.1rem + 1.4vw,2.1rem); line-height:1.05; color:var(--paper); margin-top:.6rem; }
.bc-foot{ font-family:var(--sans); font-size:.72rem; letter-spacing:.06em; color:var(--t-on-ink-mut); }
.bookcover--paper .bc-foot{ color:var(--t-muted); }
.bc-disc{ width:34px; height:34px; border-radius:50%; border:2px solid var(--gold-2); position:relative; }
.bc-disc::after{ content:""; position:absolute; inset:13px; border-radius:50%; background:var(--gold-2); }

/* ---------- Social cards (página Mídia) ---------- */
.social-card{ display:flex; flex-direction:column; gap:1rem; min-height:170px; justify-content:space-between; text-decoration:none; }
.social-card .sc-label{ font-family:var(--sans); font-size:.68rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-2); display:flex; align-items:center; gap:.6rem; }
.social-card h3{ color:var(--paper); }
.social-card .sc-go{ font-family:var(--sans); font-size:.76rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-2); display:inline-flex; gap:.5rem; align-items:center; transition:gap .35s var(--ease); }
.social-card:hover .sc-go{ gap:.95rem; }

/* ---------- Event cards (página Eventos) ---------- */
.event-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(1rem,2vw,1.6rem); }
.event-card{ display:flex; flex-direction:column; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; transition:border-color .35s; text-decoration:none; background:var(--paper); }
.event-card:hover{ border-color:var(--ink); }
.event-card__img{ position:relative; overflow:hidden; aspect-ratio:4/3; background:var(--ink-2); }
.event-card__date{
  position:absolute; left:.9rem; top:.9rem; z-index:2;
  background:var(--ink); color:var(--paper); font-family:var(--sans); font-size:.68rem; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; padding:.45rem .7rem; border-radius:var(--radius);
}
.event-card__body{ padding:1.4rem 1.5rem 1.6rem; display:flex; flex-direction:column; gap:.8rem; flex:1; }
.event-card__title{ font-family:var(--serif); font-size:1.3rem; color:var(--t-strong); line-height:1.1; }
.event-card__excerpt{ color:var(--t-body); font-size:.92rem; line-height:1.55; flex:1; }
.event-card__go{ font-family:var(--sans); font-size:.72rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); display:inline-flex; align-items:center; gap:.5rem; transition:gap .35s var(--ease); }
.event-card:hover .event-card__go{ gap:.9rem; }
@media (max-width:980px){ .event-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px){ .event-grid{ grid-template-columns:1fr; } }

/* ---------- Single evento (post) ---------- */
.single-evento__date{ font-family:var(--sans); font-size:.72rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); display:inline-flex; align-items:center; gap:.5rem; }
.single-evento__content{ font-size:1.02rem; line-height:1.75; }
.single-evento__content p{ margin-bottom:1.3em; }
.single-evento__content h2,.single-evento__content h3{ margin-top:2rem; margin-bottom:.8rem; }
.single-evento__content img{ border-radius:var(--radius); margin:1.6rem 0; max-width:100%; height:auto; }
.single-evento__content ul,.single-evento__content ol{ margin:0 0 1.3em; padding-left:1.4em; list-style:revert; }

/* ---------- Explore cards (página Aulas) ---------- */
.explore-card{ display:flex; flex-direction:column; gap:1rem; min-height:220px; justify-content:space-between; text-decoration:none; }
.explore-card .ec-label{ font-family:var(--sans); font-size:.68rem; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--gold-2); }
.explore-card h3{ color:var(--paper); }
.explore-card .ec-go{ font-family:var(--sans); font-size:.76rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--gold-2); display:inline-flex; gap:.5rem; align-items:center; transition:gap .35s var(--ease); }
.explore-card:hover .ec-go{ gap:.95rem; }
