/* =====================================================================
   Portfólio Docente — Poliana Gomes Rodrigues
   Visual clean & moderno · modo claro/escuro · responsivo (mobile/tablet/desktop)
   Offline-first · fontes do sistema.
   ===================================================================== */

:root{
  --ink:#322a39;
  --head:#2f1838;
  --plum:#5a3566;
  --plum-deep:#2f1838;
  --terra:#d9685a;
  --terra-soft:#eab5a8;
  --gold:#c8973f;
  --cream:#f7f2ec;
  --paper:#ffffff;
  --line:#ece3d8;
  --muted:#7c7280;
  --surface-2:#faf6f0;

  --serif:"Georgia","Cambria","Times New Roman",serif;
  --sans:"Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;

  --shadow-sm:0 1px 2px rgba(47,24,56,.04);
  --shadow:0 12px 30px rgba(47,24,56,.08);
  --shadow-lg:0 30px 70px rgba(47,24,56,.18);
  --radius:20px;
  --radius-sm:14px;
  --maxw:1180px;
  --nav-h:70px;
}

/* ---------- MODO ESCURO ---------- */
[data-theme="dark"]{
  --ink:#e9e2ec;
  --head:#f4eef6;
  --plum:#7c4f8a;
  --plum-deep:#241029;
  --terra:#e8806f;
  --terra-soft:#eab5a8;
  --cream:#15101a;
  --paper:#1e1724;
  --line:#352a3e;
  --muted:#a99db0;
  --surface-2:#191320;
  --shadow-sm:0 1px 2px rgba(0,0,0,.3);
  --shadow:0 14px 34px rgba(0,0,0,.45);
  --shadow-lg:0 30px 70px rgba(0,0,0,.6);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 12px)}
body{
  font-family:var(--sans);color:var(--ink);background:var(--cream);
  line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden;
  transition:background .4s ease,color .4s ease;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--terra);color:#fff}

h1,h2,h3,.serif{font-family:var(--serif);font-weight:600;line-height:1.12;letter-spacing:-.015em;color:var(--head)}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 clamp(20px,5vw,40px)}
.section{padding:clamp(64px,9vw,118px) 0}
.overline{
  font-size:.72rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;
  color:var(--terra);margin-bottom:16px;display:inline-block;
}
.section h2{font-size:clamp(1.9rem,4.4vw,3.1rem);margin-bottom:20px}
.lead{font-size:clamp(1.04rem,2.2vw,1.2rem);color:var(--muted);max-width:64ch}

/* ---------- NAV ---------- */
.nav{
  position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--cream) 82%,transparent);
  backdrop-filter:blur(14px) saturate(1.3);border-bottom:1px solid var(--line);
  transition:background .4s,border-color .4s;
}
.nav__inner{display:flex;align-items:center;justify-content:space-between;height:var(--nav-h);gap:16px}
.nav__brand{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-weight:600;font-size:1.04rem;color:var(--head)}
.nav__brand .mono{
  width:36px;height:36px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:linear-gradient(150deg,var(--plum),var(--plum-deep));color:#fff;font-family:var(--serif);font-size:1.05rem;
}
.nav__links{display:flex;gap:2px;align-items:center}
.nav__links a:not(.nav__switch){
  font-size:.92rem;color:var(--ink);padding:8px 14px;border-radius:10px;transition:.2s;font-weight:500;opacity:.85;
}
.nav__links a:not(.nav__switch):hover{background:color-mix(in srgb,var(--plum) 12%,transparent);opacity:1}
.nav__switch{
  font-size:.84rem;font-weight:600;padding:9px 16px;border-radius:999px;margin-left:6px;
  border:1.5px solid var(--plum);color:var(--plum);transition:.2s;white-space:nowrap;
}
.nav__switch:hover{background:var(--plum);color:#fff}
.nav__actions{display:flex;align-items:center;gap:8px}
.nav__theme{
  width:40px;height:40px;border-radius:50%;border:1.5px solid var(--line);background:var(--paper);
  cursor:pointer;display:grid;place-items:center;font-size:1.1rem;transition:.2s;color:var(--ink);flex:none;
}
.nav__theme:hover{border-color:var(--terra);transform:rotate(-12deg)}
.nav__toggle{display:none;background:none;border:0;cursor:pointer;font-size:1.6rem;color:var(--head);width:40px;height:40px}

/* ---------- HERO ---------- */
.hero{
  position:relative;color:#fff;overflow:hidden;
  background:
    radial-gradient(110% 90% at 82% -10%,rgba(217,104,90,.4),transparent 52%),
    linear-gradient(155deg,#5a3566 0%,#2f1838 72%);
  padding:clamp(72px,11vw,120px) 0 clamp(80px,12vw,128px);
}
.hero::after{
  content:"";position:absolute;inset:0;opacity:.06;pointer-events:none;
  background-image:radial-gradient(circle,#fff 1px,transparent 1.4px);background-size:30px 30px;
}
.hero__inner{position:relative;display:grid;grid-template-columns:1.5fr .9fr;gap:clamp(32px,5vw,64px);align-items:center}
.hero .badge{
  display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;
  color:var(--terra-soft);border:1px solid rgba(255,255,255,.22);padding:7px 15px;border-radius:999px;margin-bottom:26px;
}
.hero h1{font-size:clamp(2.5rem,6.5vw,4.6rem);margin-bottom:12px;color:#f3c75e;letter-spacing:-.02em;text-shadow:0 2px 22px rgba(0,0,0,.28)}
.hero__role{font-size:clamp(1.05rem,2.5vw,1.25rem);color:var(--terra-soft);font-weight:500;margin-bottom:24px}
.hero__tag{font-size:clamp(1.08rem,2.6vw,1.28rem);max-width:46ch;color:rgba(255,255,255,.92);font-family:var(--serif);font-style:italic;line-height:1.5}
.hero__meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}
.hero__meta span{font-size:.85rem;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);padding:8px 15px;border-radius:999px;backdrop-filter:blur(4px)}
.hero__photo{justify-self:center;display:flex;flex-direction:column;align-items:center;width:100%}
.portrait{
  width:clamp(180px,40vw,250px);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;margin:0 auto;
  background:linear-gradient(160deg,rgba(255,255,255,.18),rgba(255,255,255,.03));
  border:1.5px solid rgba(255,255,255,.28);box-shadow:var(--shadow-lg);
  font-family:var(--serif);font-size:5rem;color:#fff;overflow:hidden;
}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 28%}
.hero__note{font-size:.72rem;color:rgba(255,255,255,.5);text-align:center;margin-top:14px;max-width:240px}

/* ---------- SOBRE ---------- */
.about{background:var(--paper)}
.about__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,72px);align-items:start}
.about p+p{margin-top:16px}
.about p{font-size:1.05rem}
.pull{
  border-left:3px solid var(--terra);padding:4px 0 4px 24px;margin:8px 0 28px;
  font-family:var(--serif);font-style:italic;font-size:clamp(1.25rem,3vw,1.5rem);color:var(--head);line-height:1.4;
}
.edit{background:color-mix(in srgb,var(--gold) 22%,transparent);border-radius:5px;padding:1px 6px;color:var(--gold);font-style:normal;font-size:.94em;font-weight:600}
.principles{list-style:none;display:grid;gap:16px;margin-top:10px}
.principles li{display:flex;gap:14px;align-items:flex-start;font-size:1.02rem}
.principles .dot{width:9px;height:9px;border-radius:50%;background:var(--terra);margin-top:10px;flex:none}
.principles b{color:var(--head)}

/* ---------- SEÇÃO GENÉRICA com leve alternância ---------- */
.metodos{background:var(--cream)}
.eixos{background:var(--paper)}
.galeria{background:var(--cream)}

/* ---------- CARDS / METODOLOGIAS ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px;margin-top:48px}
.card{
  background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:30px 28px;
  box-shadow:var(--shadow-sm);transition:transform .3s,box-shadow .3s,border-color .3s;
}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--terra) 40%,var(--line))}
.card .ic{
  width:52px;height:52px;border-radius:15px;display:grid;place-items:center;margin-bottom:20px;
  background:linear-gradient(150deg,color-mix(in srgb,var(--terra) 20%,transparent),color-mix(in srgb,var(--plum) 16%,transparent));font-size:1.55rem;
}
.card h3{font-size:1.16rem;color:var(--head);margin-bottom:9px}
.card p{font-size:.96rem;color:var(--muted)}

/* ---------- BNCC ---------- */
.bncc{background:linear-gradient(165deg,#2f1838,#1c0e22);color:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.bncc h2{color:#fff}
.bncc .overline{color:var(--terra-soft)}
.bncc .lead{color:rgba(255,255,255,.78)}
.comp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(248px,1fr));gap:14px;margin-top:48px}
.comp{
  background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);padding:22px;
  display:flex;gap:16px;align-items:flex-start;transition:.3s;
}
.comp:hover{background:rgba(255,255,255,.08);border-color:rgba(217,104,90,.55);transform:translateY(-3px)}
.comp .num{font-family:var(--serif);font-size:1.8rem;color:var(--terra-soft);line-height:1;flex:none;width:34px}
.comp h4{font-size:.99rem;margin-bottom:5px;font-weight:600;color:#fff}
.comp p{font-size:.85rem;color:rgba(255,255,255,.66);line-height:1.55}

/* ---------- EIXOS / PROJETOS ---------- */
.eixo{padding:clamp(48px,7vw,72px) 0;border-bottom:1px solid var(--line)}
.eixo:last-child{border-bottom:0;padding-bottom:0}
.eixo__head{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center;margin-bottom:34px}
.eixo__n{
  font-family:var(--serif);font-size:2.3rem;color:#fff;background:linear-gradient(150deg,var(--plum),var(--plum-deep));
  width:72px;height:72px;border-radius:20px;display:grid;place-items:center;flex:none;box-shadow:var(--shadow-sm);
}
.eixo__head h3{font-size:clamp(1.5rem,3.4vw,2.15rem);color:var(--head)}
.eixo__head p{color:var(--muted);font-size:1.04rem;margin-top:8px;max-width:72ch}
.chips{display:flex;flex-wrap:wrap;gap:9px;margin:24px 0 32px}
.chip{
  font-size:.83rem;font-weight:500;background:var(--surface-2);border:1px solid var(--line);
  padding:7px 15px;border-radius:999px;color:var(--head);
}
.chip--bncc{background:color-mix(in srgb,var(--terra) 14%,transparent);border-color:color-mix(in srgb,var(--terra) 36%,transparent);color:var(--terra)}

.collage{display:grid;gap:14px;grid-template-columns:repeat(4,1fr)}
.collage figure{position:relative;border-radius:var(--radius-sm);overflow:hidden;cursor:zoom-in;box-shadow:var(--shadow-sm);background:var(--surface-2);aspect-ratio:1}
.collage figure img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.collage figure:hover img{transform:scale(1.07)}
.collage figcaption{
  position:absolute;inset:auto 0 0 0;padding:30px 15px 13px;font-size:.82rem;color:#fff;
  background:linear-gradient(transparent,rgba(20,8,26,.9));opacity:0;transition:.3s;line-height:1.4;
}
.collage figure:hover figcaption{opacity:1}
.collage .feat{grid-row:span 2;grid-column:span 2;aspect-ratio:auto}

/* ---------- GALERIA ---------- */
.filters{display:flex;flex-wrap:wrap;gap:10px;margin:32px 0 38px}
.filters button{
  font-family:var(--sans);font-size:.87rem;font-weight:600;cursor:pointer;
  background:var(--paper);border:1.5px solid var(--line);color:var(--muted);
  padding:9px 18px;border-radius:999px;transition:.2s;
}
.filters button:hover{border-color:var(--terra);color:var(--terra)}
.filters button.active{background:linear-gradient(150deg,var(--plum),var(--plum-deep));border-color:transparent;color:#fff}
.grid-masonry{columns:3;column-gap:14px}
.grid-masonry figure{
  break-inside:avoid;margin:0 0 14px;border-radius:var(--radius-sm);overflow:hidden;cursor:zoom-in;
  box-shadow:var(--shadow-sm);position:relative;background:var(--surface-2);
}
.grid-masonry img{width:100%;transition:transform .6s ease}
.grid-masonry figure:hover img{transform:scale(1.06)}
.grid-masonry figcaption{
  position:absolute;inset:auto 0 0 0;padding:26px 13px 12px;font-size:.78rem;color:#fff;
  background:linear-gradient(transparent,rgba(20,8,26,.92));opacity:0;transition:.3s;
}
.grid-masonry figure:hover figcaption{opacity:1}
.is-hidden{display:none!important}

/* ---------- CARROSSEL HORIZONTAL (arrasta pro lado) ---------- */
.carousel{
  display:flex;flex-wrap:nowrap;gap:14px;
  overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x proximity;scroll-behavior:smooth;
  padding:6px 2px 6px;margin-top:16px;cursor:grab;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.carousel.dragging{cursor:grabbing;scroll-behavior:auto;scroll-snap-type:none}
.carousel::-webkit-scrollbar{display:none}
.carousel>*{flex:0 0 auto;scroll-snap-align:start;margin:0!important}
.grid-masonry.carousel img{pointer-events:none} /* arrastar a galeria sem disparar o lightbox */
.carousel.dragging *{user-select:none}
/* galeria como carrossel */
.grid-masonry.carousel{columns:auto;column-gap:0;gap:28px}
.grid-masonry.carousel>figure{width:clamp(220px,50vw,272px)}
.grid-masonry.carousel>figure img{height:340px;object-fit:cover;display:block;width:100%}
/* vídeos como carrossel */
.vgrid.carousel{display:flex;grid-template-columns:none}
.vgrid.carousel>.vcard{width:clamp(240px,74vw,300px)}
/* depoimentos (retrato) como carrossel */
.depoimentos .vgrid.carousel>.vcard{width:clamp(195px,66vw,230px)}
/* metodologias como carrossel */
.cards.carousel{display:flex;grid-template-columns:none}
.cards.carousel>.card{width:clamp(228px,74vw,252px)}
/* wrapper + setas */
.carousel-wrap{position:relative}
.carousel-nav{
  position:absolute;top:calc(50% - 12px);transform:translateY(-50%);z-index:6;
  width:46px;height:46px;border-radius:50%;border:0;cursor:pointer;
  background:color-mix(in srgb,var(--plum) 90%,#000);color:#fff;font-size:1.5rem;line-height:1;
  display:grid;place-items:center;box-shadow:0 6px 20px rgba(0,0,0,.35);opacity:.92;transition:.2s;
}
.carousel-nav:hover{opacity:1;transform:translateY(-50%) scale(1.07)}
.carousel-nav.prev{left:-8px}
.carousel-nav.next{right:-8px}
.carousel-nav[disabled]{opacity:0;pointer-events:none}
@media(max-width:680px){.carousel-nav{display:none}.grid-masonry.carousel>figure{width:64vw}.grid-masonry.carousel>figure img{height:42vh}}

/* ---------- VÍDEOS ---------- */
.videos{background:linear-gradient(165deg,#2f1838,#1c0e22);color:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.videos h2{color:#fff}.videos .overline{color:var(--terra-soft)}.videos .lead{color:rgba(255,255,255,.78)}
.vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-top:48px}
.vcard{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);overflow:hidden;transition:.3s}
.vcard:hover{border-color:rgba(217,104,90,.5)}
.vcard video{width:100%;display:block;background:#000;aspect-ratio:16/10;object-fit:cover}
.vcard figcaption{padding:13px 17px;font-size:.86rem;color:rgba(255,255,255,.8)}

/* ---------- DEPOIMENTOS (vídeos com áudio, aspecto preservado) ---------- */
.depoimentos .vgrid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.depoimentos .vcard{display:flex;flex-direction:column}
.depoimentos .vcard video{aspect-ratio:9/16;height:auto;object-fit:cover;background:#000;flex:0 0 auto}
.depoimentos .vcard figcaption{flex:1 0 auto;min-height:46px;display:flex;align-items:center;justify-content:center;text-align:center}

/* ---------- CARTAS DOS ESTUDANTES (depoimentos escritos) ---------- */
.cartas{background:linear-gradient(165deg,#2f1838,#1c0e22);color:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.cartas h2{color:#fff}
.cartas .overline{color:var(--terra-soft)}
.cartas .lead{color:rgba(255,255,255,.78)}
.cartas-grid.carousel{align-items:stretch}
.cartas-grid.carousel>.carta{width:clamp(248px,72vw,286px)}
.carta{
  position:relative;display:flex;flex-direction:column;height:336px;overflow:hidden;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);
  padding:22px 24px 20px;cursor:pointer;transition:transform .3s,background .3s,border-color .3s;
}
.carta:hover,.carta:focus-visible{
  transform:translateY(-5px);background:rgba(255,255,255,.09);
  border-color:rgba(217,104,90,.55);outline:none;
}
.carta__mark{font-family:var(--serif);font-size:3rem;line-height:.5;height:.36em;color:var(--terra-soft)}
.carta__text{
  white-space:pre-line;font-size:.95rem;line-height:1.6;color:rgba(255,255,255,.84);margin:8px 0 14px;
  flex:1 1 auto;overflow:hidden;
  display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;
  -webkit-mask-image:linear-gradient(180deg,#000 70%,transparent);mask-image:linear-gradient(180deg,#000 70%,transparent);
}
.carta__by{order:3;display:flex;align-items:center;gap:12px;flex:none;border-top:1px solid rgba(255,255,255,.15);padding-top:16px}
.carta__mono{
  width:42px;height:42px;border-radius:50%;flex:none;display:grid;place-items:center;
  font-family:var(--serif);font-size:1.05rem;color:#fff;background:linear-gradient(150deg,var(--terra),#b04a3f);border:1px solid rgba(255,255,255,.2);
}
.carta__name{display:flex;flex-direction:column;line-height:1.2;font-weight:600;color:#fff;font-size:.97rem}
.carta__name small{font-weight:500;font-size:.7rem;color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:.12em;margin-top:2px}
.carta__more{order:2;margin:18px 0 16px;font-size:.82rem;font-weight:600;color:var(--terra-soft);flex:none}

/* todos os carrosséis: sem setas (só arrasto + automático) + indicador de rolagem lateral */
.carousel-nav{display:none!important}
.scroll-hint{display:inline-flex;align-items:center;gap:8px;margin:22px 0 0;font-size:.82rem;font-weight:600;letter-spacing:.02em;color:var(--terra)}
.scroll-hint .ic{font-size:1.05rem;line-height:1;animation:hintSlide 1.5s ease-in-out infinite}
@keyframes hintSlide{0%,100%{transform:translateX(-5px)}50%{transform:translateX(5px)}}
@media(prefers-reduced-motion:reduce){.scroll-hint .ic{animation:none}}
/* afinamento do espaçamento do indicador por seção (Cartas mantém o padrão) */
#videos .filters{margin-bottom:14px}
#videos .scroll-hint{margin-top:2px}
#videos .vgrid.carousel{margin-top:6px}
#depoimentos .vgrid.carousel{margin-top:8px}

/* modal da carta */
.carta-modal{
  position:fixed;inset:0;z-index:100;background:rgba(15,7,19,.95);display:none;place-items:center;
  padding:clamp(16px,4vw,40px);backdrop-filter:blur(4px);
}
.carta-modal.open{display:grid}
.carta-modal__box{
  position:relative;background:linear-gradient(165deg,#3a2145,#241029);color:#fff;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);
  max-width:640px;width:100%;max-height:86vh;overflow:auto;padding:clamp(30px,5vw,48px);box-shadow:var(--shadow-lg);
}
.carta-modal__mark{font-family:var(--serif);font-size:4rem;line-height:.5;height:.4em;display:block;color:var(--terra-soft)}
.carta-modal__text{white-space:pre-line;font-size:1.04rem;line-height:1.78;color:rgba(255,255,255,.9);margin:16px 0 24px}
.carta-modal__by{display:flex;align-items:center;gap:14px;border-top:1px solid rgba(255,255,255,.14);padding-top:20px}
.carta-modal__mono{
  width:48px;height:48px;border-radius:50%;flex:none;display:grid;place-items:center;
  font-family:var(--serif);font-size:1.2rem;color:#fff;background:linear-gradient(150deg,var(--terra),#b04a3f);border:1px solid rgba(255,255,255,.2);
}
.carta-modal__name{display:flex;flex-direction:column;line-height:1.2;font-weight:600;color:#fff;font-size:1.06rem}
.carta-modal__name small{font-weight:500;font-size:.7rem;color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:.12em;margin-top:2px}
.carta-modal__x{
  position:absolute;top:14px;right:14px;width:42px;height:42px;border-radius:50%;border:0;cursor:pointer;
  background:var(--surface-2);color:var(--ink);font-size:1.2rem;transition:.2s;
}
.carta-modal__x:hover{background:var(--terra);color:#fff}

/* ---------- CONTATO ---------- */
.contato{background:var(--paper);text-align:center}
.contato__cards{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;margin-top:48px}
.ccard{
  flex:0 1 300px;max-width:340px;
  display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;
  background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:34px 24px;
  transition:transform .3s,box-shadow .3s,border-color .3s;
}
.ccard:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:color-mix(in srgb,var(--terra) 40%,var(--line))}
.ccard .ic{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(150deg,var(--plum),var(--plum-deep));color:#fff;margin-bottom:4px}
.ccard .ic svg{width:24px;height:24px}
.ccard .lbl{font-size:.74rem;text-transform:uppercase;letter-spacing:.16em;color:var(--muted);font-weight:700}
.ccard .val{font-size:1.06rem;color:var(--head);font-weight:600;word-break:break-word}

/* ---------- ENCERRAMENTO ---------- */
.closing{background:var(--cream);text-align:center}
.closing .pull{border:0;text-align:center;padding:0;margin:0 auto 16px;max-width:22ch;font-size:clamp(1.7rem,4.5vw,2.6rem);color:var(--head)}
.closing .lead{margin:0 auto}

/* ---------- FOOTER ---------- */
.footer{background:linear-gradient(165deg,#2f1838,#160b1b);color:rgba(255,255,255,.72);padding:54px 0;text-align:center;font-size:.9rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.footer .mono{width:48px;height:48px;border-radius:50%;display:inline-grid;place-items:center;margin-bottom:16px;background:rgba(255,255,255,.08);color:#fff;font-family:var(--serif);font-size:1.3rem;border:1px solid rgba(255,255,255,.2)}
.footer b{color:#fff;font-family:var(--serif);font-weight:600}
.footer__links{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 22px;margin-top:16px}
.footer__links a{color:var(--terra-soft);font-weight:600;transition:.2s}
.footer__links a:hover{color:#fff}

/* ---------- LIGHTBOX ---------- */
.lb{position:fixed;inset:0;z-index:100;background:rgba(15,7,19,.95);display:none;place-items:center;padding:clamp(16px,4vw,40px);backdrop-filter:blur(4px)}
.lb.open{display:grid}
.lb img{max-width:92vw;max-height:84vh;border-radius:10px;box-shadow:var(--shadow-lg)}
.lb__cap{position:absolute;bottom:22px;left:0;right:0;text-align:center;color:#fff;font-size:.95rem;padding:0 20px}
.lb__x,.lb__nav{position:absolute;background:rgba(255,255,255,.14);border:0;color:#fff;cursor:pointer;border-radius:50%;transition:.2s}
.lb__x{top:20px;right:24px;width:46px;height:46px;font-size:1.5rem}
.lb__nav{top:50%;transform:translateY(-50%);width:52px;height:52px;font-size:1.9rem;display:grid;place-items:center}
.lb__prev{left:18px}.lb__next{right:18px}
.lb__x:hover,.lb__nav:hover{background:var(--terra)}

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

/* ===================== RESPONSIVO ===================== */
/* Tablet */
@media(max-width:1024px){
  .grid-masonry{columns:2}
}
@media(max-width:920px){
  .hero__inner{grid-template-columns:1fr;text-align:center;justify-items:center}
  .hero .badge,.hero__meta{justify-content:center}
  .hero__txt{display:flex;flex-direction:column;align-items:center}
  .hero__photo{order:-1;justify-self:center}
  .about__grid{grid-template-columns:1fr}
  .collage{grid-template-columns:repeat(2,1fr)}
  .contato__cards{grid-template-columns:1fr}
  .contato__cards{max-width:480px;margin-left:auto;margin-right:auto;margin-top:40px}
}
/* Mobile */
@media(max-width:640px){
  .nav__links{
    position:fixed;inset:var(--nav-h) 0 auto 0;background:var(--paper);flex-direction:column;align-items:stretch;
    padding:14px 20px 22px;gap:2px;border-bottom:1px solid var(--line);box-shadow:var(--shadow);
    transform:translateY(-135%);transition:transform .32s ease;
  }
  .nav__links.open{transform:none}
  .nav__links a:not(.nav__switch){padding:13px 14px;opacity:1}
  .nav__switch{margin:8px 0 0;text-align:center}
  .nav__toggle{display:grid;place-items:center}
  .eixo__head{grid-template-columns:1fr;text-align:center;gap:16px}
  .eixo__n{margin:0 auto}
  .chips{justify-content:center}
  .collage{grid-template-columns:1fr 1fr;gap:10px}
  .collage .feat{grid-column:span 2;grid-row:span 1;aspect-ratio:16/11}
  .grid-masonry{columns:1}
  .pull{padding-left:18px}
}
@media(max-width:380px){
  .collage{grid-template-columns:1fr}
  .collage .feat{grid-column:span 1}
}

/* ===================== PRINT / PDF ===================== */
@media print{
  [data-theme="light"]{
    --cream:#fff;--paper:#fff;--surface-2:#fff;--ink:#1a1320;--head:#2f1838;--line:#dcd3e0;--muted:#54495c;
  }
  html,body{background:var(--cream)}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .nav,.nav__toggle,.nav__theme,.filters,.lb,.hero__note,.scroll-hint,.carousel-nav,.footer__links a[href^="http"]:after{display:none!important}
  .reveal,.js .reveal{opacity:1!important;transform:none!important}
  .hero,.bncc,.videos,.footer,.eixo__n,.portrait,.card .ic,.nav__brand .mono,.comp,.ccard .ic{
    -webkit-print-color-adjust:exact;print-color-adjust:exact;
  }
  /* Capa: hero centralizado, ocupando bem a 1ª página */
  .hero{padding:120px 0;break-after:page;text-align:center}
  .hero__inner{grid-template-columns:1fr;justify-items:center;gap:26px}
  .hero__photo{order:-1}
  .hero__tag{margin:0 auto}
  .hero__meta{justify-content:center}
  .hero h1{text-shadow:none}
  .section{padding:26px 0}
  .section h2{break-after:avoid}
  .overline{break-after:avoid}
  /* Sobre em coluna única para não espremer o texto */
  .about__grid{grid-template-columns:1fr;gap:14px}
  .about .reveal:first-child{break-after:avoid}
  .eixo{padding:20px 0;break-inside:avoid;page-break-inside:avoid}
  .eixo__head{break-after:avoid}
  .card,.comp,.ccard{break-inside:avoid}
  .collage figure,.grid-masonry figure{break-inside:avoid;box-shadow:none;border:1px solid #e6ddec}
  .collage figcaption,.grid-masonry figcaption{opacity:1;position:static;background:none;color:#5a5060;padding:6px 4px 0;font-size:.72rem}
  /* Colagem uniforme e limpa na impressão */
  .collage{grid-template-columns:repeat(2,1fr);gap:10px}
  .collage figure{aspect-ratio:auto}
  .collage figure img{aspect-ratio:4/3;height:auto}
  .collage .feat{grid-column:span 2;grid-row:auto}
  .collage .feat img{aspect-ratio:16/9}
  .grid-masonry{columns:2;column-gap:10px}
  .galeria{break-before:page}
  .contato,.closing{break-inside:avoid}
  /* Cartas dos estudantes: ficam fora do PDF — 19 depoimentos completos passam do
     limite rígido de 200in (14400pt) por página do PDF. Ficam só no site (interativo). */
  .cartas,.carta-modal{display:none!important}
  .card:hover,.comp:hover,.ccard:hover{transform:none;box-shadow:none}
  a{color:inherit}
}
@page{margin:0}
