/* ============================================================
   IPMCONT — Instituto Paranaense da Mulher Contabilista
   Static export · clean HTML/CSS · Figma-ready
   ============================================================ */

/* ---------- Design tokens ---------- */
:root{
  --bg:#FDFCFA;
  --surface:#FFFFFF;
  --surface-2:#F6F2EC;
  --border:#E8E2D8;
  --ink:#1A1413;
  --foreground:#211B19;
  --muted:#6E6660;
  --primary:#E06618;
  --primary-glow:#F0813A;
  --primary-deep:#B8480F;

  --grad-primary: linear-gradient(135deg,#E06618 0%, #F0813A 100%);
  --grad-warm:    linear-gradient(180deg,#FFFFFF 0%, #FAF7F4 100%);
  --grad-ink:     linear-gradient(180deg,#0A0A0A 0%, #1A1413 100%);

  --shadow-soft:    0 8px 30px -12px rgba(20,12,8,.18);
  --shadow-elegant: 0 30px 80px -40px rgba(20,12,8,.35);
  --shadow-glow:    0 20px 60px -20px rgba(224,102,24,.45);

  --r-sm: 8px;
  --r-md: 14px;
  --r-lg: 20px;
  --r-xl: 28px;
  --r-2xl: 36px;

  --font-serif: "Cormorant Garamond", "Playfair Display", Georgia, serif;
  --font-sans:  "Plus Jakarta Sans", "Inter", system-ui, -apple-system, sans-serif;

  --container: 80rem;
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family: var(--font-sans);
  font-size:16px;
  line-height:1.6;
  color:var(--foreground);
  background:var(--bg);
  -webkit-font-smoothing:antialiased;
  font-feature-settings:"ss01","cv11";
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
h1,h2,h3,h4{
  font-family: var(--font-serif);
  letter-spacing:-0.02em;
  font-weight:500;
  margin:0;
  color:var(--foreground);
}
p{ margin:0; }
ul,ol,dl{ margin:0; padding:0; list-style:none; }

/* ---------- Layout helpers ---------- */
.container{ max-width:var(--container); margin-inline:auto; padding-inline:1.5rem; }
.section{ padding:6rem 0; }
.section--lg{ padding:8rem 0; }
.section--warm{ background:var(--grad-warm); }
.section--surface{ background:var(--surface-2); }

.eyebrow{
  display:block;
  font-size:12px;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.22em;
  color:#ff6501;
  margin-bottom:.85rem;
}

.lead{
  font-size:1.075rem;
  line-height:1.7;
  color:var(--muted);
}

/* ---------- Typography scale ---------- */
.h-display{ font-family:var(--font-serif); font-size:clamp(2.6rem,5.6vw,4.6rem); line-height:1.04; }
.h-1{ font-family:var(--font-serif); font-size:clamp(2.1rem,3.6vw,3rem); line-height:1.1; }
.h-2{ font-family:var(--font-serif); font-size:clamp(1.6rem,2.4vw,2rem); line-height:1.2; }
.h-3{ font-family:var(--font-serif); font-size:1.35rem; line-height:1.3; }
.italic-grad{ font-style:italic; background:var(--grad-primary); -webkit-background-clip:text; background-clip:text; color:transparent; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.85rem 1.4rem;
  border-radius:999px;
  font-size:.875rem; font-weight:500;
  transition: all .35s cubic-bezier(.22,1,.36,1);
  border:1px solid transparent;
  white-space:nowrap;
}
.btn .arrow{ width:16px; height:16px; transition: transform .3s; }
.btn:hover .arrow{ transform: translate(2px,-2px); }

.btn--primary{
  background: var(--grad-primary);
  color:#fff;
  box-shadow: var(--shadow-glow);
}
.btn--primary:hover{ transform: translateY(-2px); }

.btn--ghost{
  border-color: var(--border);
  background: var(--surface);
  color: var(--foreground);
}
.btn--ghost:hover{ border-color: var(--foreground); }

.btn--outline-light{
  border-color: rgba(255,255,255,.3);
  color:#fff;
}
.btn--outline-light:hover{ background: rgba(255,255,255,.1); }

.btn--white{
  background:#fff; color:var(--foreground);
  box-shadow: var(--shadow-soft);
}
.btn--white:hover{ background:var(--foreground); color:#fff; transform: translateY(-2px); }

.link-arrow{
  display:inline-flex; align-items:center; gap:.5rem;
  font-size:.875rem; font-weight:500; color:var(--foreground);
  transition: color .25s;
}
.link-arrow:hover{ color:var(--primary); }

/* ---------- Header ---------- */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:50;
  transition: background .4s, border-color .4s, backdrop-filter .4s;
  background:transparent;
}
.site-header.is-scrolled{
  background: rgba(253,252,250,.82);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-bottom:1px solid rgba(232,226,216,.6);
}
.header-inner{
  display:flex; align-items:center; justify-content:space-between;
  height:6.5rem; transition: height .4s;
}
.site-header.is-scrolled .header-inner{ height:5.5rem; }

.brand{ display:flex; align-items:center; gap:1rem; }
.brand img{ height:4.5rem; width:auto; transition: height .4s; }
.site-header.is-scrolled .brand img{ height:3.75rem; }
.brand-sub{
  display:none; font-size:.7rem; font-weight:500; line-height:1.35;
  color:var(--muted); text-transform:uppercase; letter-spacing:.18em;
}
@media (min-width:640px){ .brand-sub{ display:block; } }

.nav{ display:none; gap:.25rem; align-items:center; }
.nav a{
  padding:.5rem 1rem; border-radius:999px;
  font-size:.875rem; color:rgba(33,27,25,.78);
  transition: background .25s, color .25s;
}
.nav a:hover{ background:var(--surface-2); color:var(--foreground); }

.header-cta{ display:none; gap:.6rem; align-items:center; }

@media (min-width:1024px){
  .nav, .header-cta{ display:flex; }
  .menu-toggle{ display:none; }
}

.menu-toggle{
  width:40px; height:40px; border-radius:999px; border:1px solid var(--border);
  background:transparent; display:inline-flex; align-items:center; justify-content:center;
}

.mobile-menu{ display:none; border-top:1px solid var(--border); background:rgba(253,252,250,.95); backdrop-filter: blur(18px); }
.mobile-menu.open{ display:block; }
.mobile-menu .container{ display:flex; flex-direction:column; gap:.25rem; padding-block:1rem; }
.mobile-menu a{ padding:.75rem 1rem; border-radius:10px; font-size:.875rem; font-weight:500; color:rgba(33,27,25,.85); }
.mobile-menu a:hover{ background:var(--surface-2); }

/* ---------- Hero (home) ---------- */
.hero{ padding-top:9rem; padding-bottom:5rem; position:relative; overflow:hidden; }
@media (min-width:768px){ .hero{ padding-top:11rem; padding-bottom:8rem; } }
.hero-grid{ display:grid; gap:3.5rem; align-items:start; }
@media (min-width:1024px){ .hero-grid{ grid-template-columns: 6fr 6fr; gap:2.5rem; } }
.hero-pill{
  display:inline-flex; align-items:center; gap:.5rem;
  border:1px solid var(--border); background:var(--surface);
  border-radius:999px; padding:.35rem 1rem;
  font-size:.72rem; font-weight:500; letter-spacing:.04em; color:var(--muted);
}
.hero-pill .dot{ width:6px; height:6px; border-radius:999px; background:var(--primary); }
.hero h1{ margin-top:1.5rem; }
.hero p.lead{ margin-top:1.5rem; max-width:36rem; }
.hero-ctas{ display:flex; flex-wrap:wrap; gap:.75rem; margin-top:2rem; }
.hero-social{ display:flex; align-items:center; gap:1rem; margin-top:2.5rem; }
.hero-social .avatars{ display:flex; }
.hero-social .avatars img{
  width:44px; height:44px; border-radius:999px; object-fit:cover;
  border:2px solid var(--bg); margin-left:-12px; box-shadow:var(--shadow-soft);
}
.hero-social .avatars img:first-child{ margin-left:0; }
.stars{ color:var(--primary); letter-spacing:1px; font-size:.875rem; }
.hero-stats{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.5rem; max-width:32rem; margin-top:3rem;
  padding-top:2rem; border-top:1px solid var(--border);
}
.hero-stats dt{ font-family:var(--font-serif); font-size:1.85rem; }
.hero-stats dd{ margin:.25rem 0 0; font-size:.72rem; text-transform:uppercase; letter-spacing:.12em; color:var(--muted); }

.hero-figure{ position:relative; }
.hero-figure .img-wrap{
  position:relative; overflow:visible;
}
.hero-figure img{
  width:100%; height:480px; object-fit:cover;
  border-radius:var(--r-2xl);
  box-shadow: var(--shadow-elegant);
  display:block;
}
@media (min-width:768px){ .hero-figure img{ height:640px; } }
.hero-figure .badge{
  position:absolute; right:-1rem; bottom:-1.5rem;
  display:flex; align-items:center; gap:.85rem;
  background:#FFFDF8; border:1px solid #EFE9DF;
  border-radius:18px; padding:1rem 1.25rem;
  box-shadow: 0 24px 60px -22px rgba(20,12,8,.22);
  max-width: 340px; z-index: 3;
}
.hero-figure .badge .icon{
  width:42px; height:42px; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--grad-primary); color:#fff;
}
.hero-figure::after{
  content:""; position:absolute; right:-80px; top:-80px;
  width:240px; height:240px; border-radius:999px;
  background:var(--grad-primary); opacity:.2; filter:blur(60px);
  pointer-events:none;
}

/* ---------- Sobre block ---------- */
.about-grid{ display:grid; gap:4rem; align-items:start; }
@media (min-width:1024px){ .about-grid{ grid-template-columns: 5fr 7fr; } }
.about-img{ position:relative; overflow:visible; }
.about-img img{
  aspect-ratio:4/5; width:100%; object-fit:cover;
  border-radius:var(--r-2xl); box-shadow:var(--shadow-elegant);
  display:block;
}
.about-badge{
  position:absolute; right:-1.5rem; bottom:-1.5rem;
  background:#FFFDF8; border:1px solid #EFE9DF;
  padding: 1.1rem 1.6rem 1.25rem;
  border-radius:18px; box-shadow: 0 24px 60px -22px rgba(20,12,8,.22);
  display:none; min-width: 200px; z-index: 3;
}
@media (min-width:768px){ .about-badge{ display:block; } }
.about-badge .eyebrow{ margin:0 0 .35rem; }
.about-badge .yb-title{
  font-family: var(--font-serif); font-size: 1.85rem; line-height:1;
  color:#1B1B1B; font-weight:500; letter-spacing:-0.01em;
}
.about-body{ margin-top:1.5rem; display:flex; flex-direction:column; gap:1.25rem; }
.about-body p{ color:var(--muted); font-size:1.05rem; line-height:1.75; }

/* ---------- Section header (eyebrow + h2 + cta) ---------- */
.sec-head{ display:flex; flex-wrap:wrap; gap:1.5rem; align-items:flex-end; justify-content:space-between; }
.sec-head .text{ max-width:42rem; }
.sec-head h2{ margin-top:1rem; }
.sec-head p{ margin-top:1.25rem; color:var(--muted); font-size:1.05rem; }

/* ---------- Benefits grid (floating cards — global standard) ---------- */
.benefits-grid{
  margin-top:3.5rem;
  display:grid; gap: 1.75rem;
  background: transparent;
  border-radius: 0;
  overflow: visible;
  box-shadow: none;
}
@media (min-width:640px){ .benefits-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .benefits-grid{ grid-template-columns:repeat(4,1fr); } }
.benefit-card{
  background:#fff; padding:2rem;
  border-radius: 22px;
  border: 1px solid #EFE9DF;
  box-shadow: 0 1px 2px rgba(0,0,0,.03), 0 12px 32px -18px rgba(20,12,8,.10);
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.benefit-card:hover{
  background:#fff;
  transform: translateY(-4px);
  border-color: #FFE0C7;
  box-shadow: 0 4px 10px rgba(0,0,0,.04), 0 24px 56px -18px rgba(20,12,8,.18);
}
.benefit-icon{
  width:48px; height:48px; border-radius:14px;
  border:1px solid var(--border); background:var(--bg);
  display:inline-flex; align-items:center; justify-content:center;
  color:var(--foreground); transition: color .3s, border-color .3s;
  font-size:1.1rem;
}
.benefit-card:hover .benefit-icon{ border-color:var(--primary); color:var(--primary); }
.benefit-card h3{ margin-top:1.5rem; font-size:1.5rem; }
.benefit-card p{ margin-top:.75rem; font-size:.875rem; color:var(--muted); line-height:1.65; }
.benefit-card .rule{
  margin-top:1.5rem; height:1px; width:48px;
  background:var(--grad-primary); opacity:.6;
  transition: width .35s;
}
.benefit-card:hover .rule{ width:80px; }

/* ---------- Card / event grid ---------- */
.cards-grid{ margin-top:3rem; display:grid; gap:1.5rem; }
@media (min-width:640px){ .cards-grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1024px){ .cards-grid{ grid-template-columns:repeat(3,1fr); } }
.card{
  background:var(--surface); border-radius:var(--r-lg);
  box-shadow: 0 0 0 1px rgba(20,12,8,.06);
  overflow:hidden;
  transition: transform .35s, box-shadow .35s;
}
.card:hover{ transform: translateY(-4px); box-shadow: var(--shadow-elegant); }
.card .media{ position:relative; height:14rem; overflow:hidden; }
.card .media img{ width:100%; height:100%; object-fit:cover; transition: transform .7s; }
.card:hover .media img{ transform: scale(1.05); }
.card .tag{
  position:absolute; top:1rem; left:1rem;
  display:inline-flex; align-items:center; gap:.4rem;
  background:rgba(255,255,255,.95); padding:.25rem .75rem;
  border-radius:999px; font-size:.72rem; font-weight:500;
  backdrop-filter: blur(6px);
}
.card .tag .dot{ width:6px; height:6px; background:var(--primary); border-radius:999px; }
.card .body{ padding:1.5rem; }
.card .meta{ font-size:.72rem; color:var(--muted); display:flex; align-items:center; gap:.5rem; }
.card h3{ margin-top:.75rem; font-size:1.25rem; line-height:1.3; }
.card p{ margin-top:.5rem; font-size:.875rem; color:var(--muted); line-height:1.65; }

/* ---------- Podcast ---------- */
.podcast-wrap{
  position:relative; overflow:hidden;
  border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r-2xl);
  padding:2rem;
  box-shadow:var(--shadow-elegant);
  background: radial-gradient(120% 80% at 0% 0%, #F0813A 0%, #E06618 45%, #B8480F 100%);
  color:#fff;
}
@media (min-width:768px){ .podcast-wrap{ padding:3.5rem; } }
.podcast-grid{ display:grid; gap:3rem; align-items:center; }
@media (min-width:1024px){ .podcast-grid{ grid-template-columns:1fr 1fr; } }
.podcast .eyebrow{ color:#ff6501; letter-spacing:.22em; }
.podcast h2{ color:#fff; }
.podcast p.lead{ color:rgba(255,255,255,.85); max-width:36rem; }
.podcast-ctas{ display:flex; flex-wrap:wrap; gap:.75rem; margin-top:2rem; }
.podcast-list{ margin-top:2.5rem; display:flex; flex-direction:column; gap:.75rem; }
.podcast-list li{
  display:flex; align-items:center; gap:1rem;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.15);
  border-radius:var(--r-lg);
  padding:1rem;
  backdrop-filter: blur(4px);
  transition: transform .3s, background .3s, border-color .3s;
}
.podcast-list li:hover{ transform:translateY(-2px); background:rgba(255,255,255,.15); border-color:rgba(255,255,255,.4); }
.podcast-list .pico{
  width:44px; height:44px; border-radius:999px;
  background:#fff; color:var(--primary);
  display:inline-flex; align-items:center; justify-content:center; flex-shrink:0;
  font-size:1.1rem;
}
.podcast-list .meta{ font-size:.7rem; font-weight:600; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.8); }
.podcast-list .guest{ font-size:.875rem; color:rgba(255,255,255,.7); margin-top:.15rem; }
.podcast-list .title{ font-family:var(--font-serif); font-size:1.15rem; color:#fff; margin-top:.1rem; }
.podcast-video{
  position:relative; overflow:hidden;
  border-radius:var(--r-xl); border:1px solid rgba(255,255,255,.2);
  box-shadow:var(--shadow-elegant);
  display:block;
}
.podcast-video img{ aspect-ratio:4/5; width:100%; object-fit:cover; transition: transform .7s; }
.podcast-video:hover img{ transform: scale(1.05); }
.podcast-video::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(to top, rgba(0,0,0,.7), rgba(0,0,0,.05) 50%, transparent);
}
.podcast-video .play{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  z-index:1;
}
.podcast-video .play span{
  width:80px; height:80px; border-radius:999px;
  background:rgba(255,255,255,.95); color:var(--primary);
  display:inline-flex; align-items:center; justify-content:center;
  box-shadow: var(--shadow-glow); font-size:1.5rem;
  transition: transform .3s;
}
.podcast-video:hover .play span{ transform: scale(1.1); }
.podcast-video .caption{
  position:absolute; left:0; right:0; bottom:0; padding:1.5rem; z-index:1; color:#fff;
}
.podcast-video .caption .live{
  display:inline-flex; align-items:center; gap:.4rem;
  font-size:.7rem; font-weight:600; text-transform:uppercase; letter-spacing:.22em;
  color:rgba(255,255,255,.9);
}
.podcast-video .caption .live::before{
  content:""; width:8px; height:8px; border-radius:999px; background:#ef4444;
}
.podcast-video .caption .h{
  font-family:var(--font-serif); font-size:1.6rem; line-height:1.2; margin-top:.5rem;
}

/* ---------- Members carousel ---------- */
.carousel{
  display:flex; gap:16px; overflow:hidden;
  width:100%; max-width:100%;
  justify-content:flex-start;
  scroll-snap-type: x mandatory;
  padding-bottom:.5rem; margin-top:2.25rem;
  scrollbar-width: none;
  -ms-overflow-style: none;
  scroll-behavior: smooth;
}
.carousel::-webkit-scrollbar{ display:none; width:0; height:0; }
.member{
  flex: 0 0 300px; width:300px; height:375px; scroll-snap-align:start;
  margin:0;
  position:relative; overflow:hidden;
  border-radius:var(--r-lg); background:var(--surface);
  box-shadow: 0 0 0 1px rgba(20,12,8,.06);
}
.member img{ width:100%; height:100%; object-fit:cover; object-position: center 20%; transition: transform .7s; display:block; }
.member:hover img{ transform:scale(1.05); }
.member figcaption{
  position:absolute; inset:auto 0 0 0; padding:1.25rem;
  color:#fff;
  background: linear-gradient(to top, rgba(0,0,0,.72), transparent);
}
.member figcaption .name{ font-family:var(--font-serif); font-size:1.25rem; }
.member figcaption .role{ font-size:.7rem; text-transform:uppercase; letter-spacing:.14em; opacity:.85; margin-top:.2rem; }

/* ---------- Partners grid ---------- */
.partners{
  margin-top:3rem; display:grid; gap:1px;
  grid-template-columns: repeat(2, 1fr);
  background:var(--border); border-radius:var(--r-lg); overflow:hidden;
}
@media (min-width:640px){ .partners{ grid-template-columns:repeat(3,1fr); } }
@media (min-width:1024px){ .partners{ grid-template-columns:repeat(6,1fr); } }
.partners > div{
  background:var(--surface); height:6rem;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--font-serif); font-size:1.1rem; color:var(--muted);
  transition: background .25s, color .25s;
}
.partners > div:hover{ background:var(--surface-2); color:var(--foreground); }

/* ---------- Form / contato ---------- */
.form-wrap{
  background:var(--surface); border-radius:var(--r-2xl);
  padding:2.5rem; box-shadow: var(--shadow-soft);
  border:1px solid var(--border);
}
@media (min-width:768px){ .form-wrap{ padding:3.5rem; } }
.form-grid{ display:grid; gap:1.25rem; }
@media (min-width:640px){ .form-grid{ grid-template-columns:1fr 1fr; } }
.form-field{ display:flex; flex-direction:column; gap:.4rem; }
.form-field.full{ grid-column:1 / -1; }
.form-field label{ font-size:.78rem; text-transform:uppercase; letter-spacing:.14em; color:var(--muted); font-weight:500; }
.form-field input, .form-field textarea, .form-field select{
  background:var(--bg);
  border:1px solid var(--border);
  border-radius:var(--r-md);
  padding:.85rem 1rem; font-size:.95rem; color:var(--foreground);
  font-family:inherit;
  transition: border-color .25s, box-shadow .25s;
}
.form-field textarea{ min-height:140px; resize:vertical; }
.form-field input:focus, .form-field textarea:focus, .form-field select:focus{
  outline:none; border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(224,102,24,.12);
}

/* ---------- Internal page hero ---------- */
.page-hero{ padding-top:9rem; padding-bottom:5rem; }
@media (min-width:768px){ .page-hero{ padding-top:11rem; padding-bottom:7rem; } }
.page-hero-grid{ display:grid; gap:3.5rem; align-items:center; }
@media (min-width:1024px){ .page-hero-grid{ grid-template-columns: 6fr 6fr; } }
.page-hero-figure{ position:relative; overflow:hidden; border-radius:var(--r-2xl); box-shadow:var(--shadow-elegant); }
.page-hero-figure img{ aspect-ratio:4/5; width:100%; object-fit:cover; }

/* ---------- Footer ---------- */
.site-footer{
  background:var(--grad-ink); color:rgba(255,255,255,.78);
  padding:5rem 0 2rem;
}
.footer-grid{ display:grid; gap:3rem; }
@media (min-width:768px){ .footer-grid{ grid-template-columns: 2fr 1fr 1fr 1fr; } }
.site-footer h4{
  font-family: var(--font-sans);
  color:#fff; text-transform:uppercase; letter-spacing:.18em;
  font-size:.72rem; font-weight:600; margin-bottom:1.25rem;
}
.site-footer ul li{ margin-bottom:.6rem; font-size:.9rem; }
.site-footer a:hover{ color:#fff; }
.site-footer .brand-block img{ height:3rem; margin-bottom:1rem; filter:brightness(0) invert(1); opacity:.95; }
.site-footer .brand-block p{ font-size:.9rem; max-width:22rem; color:rgba(255,255,255,.7); }
.footer-bottom{
  margin-top:4rem; padding-top:2rem;
  border-top:1px solid rgba(255,255,255,.1);
  display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between;
  font-size:.78rem; color:rgba(255,255,255,.55);
}

/* ---------- Back to top ---------- */
.back-top{
  position:fixed; bottom:1.25rem; right:1.25rem; z-index:40;
  width:48px; height:48px; border-radius:999px;
  background:rgba(253,252,250,.85); backdrop-filter: blur(18px);
  border:1px solid rgba(33,27,25,.15); color:var(--foreground);
  box-shadow: var(--shadow-elegant);
  display:inline-flex; align-items:center; justify-content:center;
  opacity:0; transform: translateY(12px); pointer-events:none;
  transition: all .45s cubic-bezier(.22,1,.36,1);
}
.back-top.is-visible{ opacity:1; transform: translateY(0); pointer-events:auto; }
.back-top:hover{ background:var(--foreground); color:#fff; transform: translateY(-2px); }
@media (min-width:768px){ .back-top{ bottom:2rem; right:2rem; width:56px; height:56px; } }

/* ---------- Utilities ---------- */
.center{ text-align:center; }
.mt-0{ margin-top:0; } .mt-2{ margin-top:.5rem; } .mt-4{ margin-top:1rem; }
.mt-6{ margin-top:1.5rem; } .mt-8{ margin-top:2rem; } .mt-10{ margin-top:2.5rem; }
.mt-12{ margin-top:3rem; } .mt-16{ margin-top:4rem; }
.flex{ display:flex; } .flex-wrap{ flex-wrap:wrap; } .gap-3{ gap:.75rem; }
.text-muted{ color:var(--muted); }

/* ---------- Animations ---------- */
@keyframes fade-up{ from{ opacity:0; transform: translateY(20px); } to{ opacity:1; transform:none; } }
.fade-up{ animation: fade-up .8s cubic-bezier(.22,1,.36,1) both; }

/* ---------- Refinement pass: editorial proportions + icon polish ---------- */
:root{
  --container: 83.75rem;    /* 1340px premium editorial max */
  --container-wide: 83.75rem;
}
/* Responsive padding: 16px mobile, 24px tablet, 32px desktop */
.container{ padding-inline: 1rem; }
@media (min-width:640px){
  .container{ padding-inline: 1.5rem; }
}
@media (min-width:1024px){
  .container{ padding-inline: 2rem; }
}
.section{ padding: 5.5rem 0; }
@media (min-width:1024px){ .section{ padding: 7rem 0; } }

/* Refined SVG icon system */
.benefit-icon svg{ width:22px; height:22px; stroke-width:1.5; transition: transform .35s cubic-bezier(.22,1,.36,1), color .3s; }
.benefit-card:hover .benefit-icon svg{ transform: translateY(-2px) scale(1.06); }

.hero-figure .badge .icon svg{ width:20px; height:20px; stroke:#fff; }
.card .meta svg{ width:14px; height:14px; vertical-align:-2px; margin-right:.35rem; opacity:.8; }
.btn svg{ width:16px; height:16px; transition: transform .3s cubic-bezier(.22,1,.36,1); }
.btn:hover svg{ transform: translate(2px,-2px); }
.btn .arrow svg{ width:14px; height:14px; }
.link-arrow svg{ width:14px; height:14px; transition: transform .3s cubic-bezier(.22,1,.36,1); }
.link-arrow:hover svg{ transform: translate(3px,-1px); }
.podcast-list .pico svg{ width:20px; height:20px; }
.podcast-video .play span svg{ width:28px; height:28px; margin-left:3px; }
.stars svg{ display:inline-block; margin-right:1px; }
.back-top svg{ width:18px; height:18px; transition: transform .3s; }
.back-top:hover svg{ transform: translateY(-2px); }
.menu-toggle svg{ width:20px; height:20px; }

/* Slightly tighter editorial rhythm for hero & page hero */
.hero{ padding-top: 8.5rem; padding-bottom: 5rem; }
@media (min-width:768px){ .hero{ padding-top: 10rem; padding-bottom: 7rem; } }
.page-hero{ padding-top: 8.5rem; padding-bottom: 4.5rem; }
@media (min-width:768px){ .page-hero{ padding-top: 10rem; padding-bottom: 6rem; } }

/* Slightly narrower body copy max-width inside section heads for readability */
.sec-head .text{ max-width: 38rem; }
.hero p.lead{ max-width: 34rem; }

/* ---------- Footer bottom (refined) ---------- */
.footer-bottom{ align-items:flex-start; gap:1.5rem; }
.footer-bottom .fb-left p{ margin:0; line-height:1.7; }
.footer-bottom .fb-left p:first-child{ color:rgba(255,255,255,.8); }
.footer-bottom .fb-right{ text-align:right; }
.footer-bottom .fb-right a{ color:#fff; border-bottom:1px solid rgba(255,255,255,.3); transition: border-color .25s, color .25s; }
.footer-bottom .fb-right a:hover{ border-color: var(--primary-glow); color: var(--primary-glow); }
.footer-bottom .heart{ color: var(--primary-glow); display:inline-block; transform: translateY(1px); margin: 0 .15rem; }

/* ---------- Header navigation: single-line on laptops ---------- */
.header-inner{ gap: 1.5rem; }
.brand img{ height: 3.5rem; }
.site-header.is-scrolled .brand img{ height: 3rem; }
.brand-sub{
  display:flex !important; flex-direction:column;
  font-size:.62rem; letter-spacing:.18em; line-height:1.4;
}
.brand-sub > span{ white-space:nowrap; }
.menu-toggle{ display:none !important; }
.nav{ gap: .1rem; flex-wrap: nowrap; }
.nav a{
  padding: .5rem .7rem;
  font-size: .82rem;
  letter-spacing: .005em;
  white-space: nowrap;
}
.header-cta{ gap: .5rem; flex-shrink: 0; }
.header-cta .btn{ padding: .65rem 1rem; font-size: .78rem; white-space: nowrap; }

@media (min-width:1280px){
  .nav{ gap:.35rem; }
  .nav a{ padding:.55rem .85rem; font-size:.85rem; }
  .header-cta .btn{ padding:.8rem 1.25rem; font-size:.825rem; }
  .brand-sub{ font-size:.7rem; }
}
@media (min-width:1440px){
  .nav a{ padding:.55rem 1rem; font-size:.875rem; }
}

/* Hide hero stats row — not in the approved hero reference */
.hero-stats{ display:none !important; }

/* ============================================================
   CTA FORM SECTION (dark premium with image banner)
   ============================================================ */
.cta-form-section{ padding: 5rem 0; background: var(--bg); }
.cta-card{
  background: #0F0E0D;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 30px 80px -30px rgba(20,12,8,.55);
}
.cta-banner{ position:relative; aspect-ratio: 16/6; overflow:hidden; }
.cta-banner img{ width:100%; height:100%; object-fit:cover; }
.cta-banner::after{
  content:""; position:absolute; inset:auto 0 0 0; height:50%;
  background: linear-gradient(180deg, transparent 0%, rgba(15,14,13,.85) 100%);
}
.cta-body{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  padding: 3.5rem 4rem 4rem;
  color: #F1ECE6;
}
.cta-eyebrow{ color:#ff6501 !important; letter-spacing:.22em; }
.cta-title{
  font-family: var(--font-serif);
  font-size: clamp(2rem, 3.4vw, 3rem);
  line-height: 1.08;
  letter-spacing: -0.02em;
  font-weight: 500;
  color: #FFFFFF;
  margin-top: 1rem;
}
.cta-lead{
  color: #B8B0A5;
  font-size: .95rem;
  line-height: 1.7;
  margin-top: 1.25rem;
  max-width: 28rem;
}
.cta-benefits{ margin-top: 2.25rem; display:flex; flex-direction:column; gap: .85rem; }
.cta-benefits li{
  display:flex; align-items:center; gap: .85rem;
  color: #E8E2D8; font-size: .92rem;
}
.cta-check{
  display:inline-flex; align-items:center; justify-content:center;
  width: 24px; height: 24px; border-radius: 999px;
  background: rgba(224,102,24,.18);
  color: var(--primary-glow);
  flex-shrink:0;
}
.cta-form{ display:flex; flex-direction:column; gap: .85rem; }
.cta-row{ display:grid; grid-template-columns: 1fr 1fr; gap: .85rem; }
.cta-field{ position:relative; }
.cta-field input,
.cta-field textarea{
  width:100%;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  color: #F1ECE6;
  font-family: var(--font-sans);
  font-size: .92rem;
  padding: .95rem 1.15rem;
  border-radius: 999px;
  outline: none;
  transition: border-color .2s, background .2s;
}
.cta-field textarea{ border-radius: 22px; resize:vertical; min-height: 96px; }
.cta-field input::placeholder,
.cta-field textarea::placeholder{ color: #7A746C; }
.cta-field input:focus,
.cta-field textarea:focus{
  border-color: var(--primary-glow);
  background: rgba(255,255,255,.06);
}
.cta-ico{
  position:absolute; right: 1.15rem; top: 50%; transform: translateY(-50%);
  color: #6B655E; pointer-events:none;
}
.cta-submit{
  margin-top: .5rem;
  background: var(--primary);
  color: #fff;
  border: none;
  font-family: var(--font-sans);
  font-weight: 600;
  font-size: .95rem;
  padding: 1.05rem 1.5rem;
  border-radius: 999px;
  display:inline-flex; align-items:center; justify-content:center; gap: .6rem;
  transition: background .2s, transform .2s;
}
.cta-submit:hover{ background: var(--primary-glow); transform: translateY(-1px); }

@media (max-width: 900px){
  .cta-body{ grid-template-columns: 1fr; padding: 2rem 1.5rem 2.5rem; gap: 2rem; }
  .cta-banner{ aspect-ratio: 16/9; }
  .cta-row{ grid-template-columns: 1fr; }
}

/* ============================================================
   FOOTER REFRESH (matches reference screenshot)
   ============================================================ */
.site-footer{ background:#0A0A0A; color:#B8B0A5; padding: 5rem 0 2rem; }
.footer-grid{
  display:grid;
  grid-template-columns: 1.6fr 1fr 1fr;
  gap: 4rem;
}
.footer-brand{ max-width: 28rem; }
.footer-logo{ display:inline-flex; align-items:center; gap: 1rem; }
.footer-logo img{
  width: 72px; height: 72px; object-fit:contain;
  background: #fff; border-radius: 8px; padding: 6px;
}
.footer-logo span{
  font-size: .72rem; letter-spacing: .18em; color: #B8B0A5;
  font-weight: 500; line-height: 1.4;
}
.footer-tag{
  font-family: var(--font-serif);
  font-size: 1.65rem;
  line-height: 1.2;
  color: #F1ECE6;
  font-weight: 500;
  margin-top: 1.75rem;
  letter-spacing: -0.01em;
}
.footer-desc{
  font-size: .88rem; line-height: 1.7; color: #888178;
  margin-top: 1.1rem;
}
.footer-social{ display:flex; gap:.6rem; margin-top: 1.5rem; }
.footer-social a{
  width: 34px; height: 34px; border-radius: 999px;
  display:inline-flex; align-items:center; justify-content:center;
  border: 1px solid rgba(255,255,255,.12);
  color: #B8B0A5; transition: all .2s;
}
.footer-social a:hover{ border-color: var(--primary); color: var(--primary-glow); }
.footer-col h4{
  font-family: var(--font-sans);
  font-size: .72rem; font-weight: 600;
  text-transform: uppercase; letter-spacing: .22em;
  color: #F1ECE6;
  margin-bottom: 1.4rem;
}
.footer-col ul{ display:flex; flex-direction:column; gap: .85rem; }
.footer-col ul a{
  color: #B8B0A5; font-size: .92rem;
  transition: color .2s;
}
.footer-col ul a:hover{ color: var(--primary-glow); }
.footer-contact li{
  display:flex; align-items:center; gap: .75rem;
  color: #B8B0A5; font-size: .92rem;
}
.fc-ico{
  width: 28px; height: 28px; border-radius:999px;
  background: rgba(224,102,24,.14);
  color: var(--primary-glow);
  display:inline-flex; align-items:center; justify-content:center;
  flex-shrink:0;
}
.site-footer .footer-bottom{
  margin-top: 4rem; padding-top: 2rem;
  border-top: 1px solid rgba(255,255,255,.08);
  display:flex; justify-content:space-between; align-items:flex-end;
  gap: 2rem; flex-wrap: wrap;
}
.site-footer .fb-left p{ font-size: .82rem; color: #6B655E; line-height: 1.7; }
.site-footer .fb-right p{
  font-size: .85rem; color: #B8B0A5;
  padding: .65rem 1.1rem;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
}
.site-footer .fb-right .heart{ color: var(--primary); }
.site-footer .fb-right a{ color: #F1ECE6; font-weight: 600; }
.site-footer .fb-right a:hover{ color: var(--primary-glow); }

@media (max-width: 900px){
  .footer-grid{ grid-template-columns: 1fr; gap: 2.5rem; }
  .site-footer .footer-bottom{ flex-direction: column; align-items:flex-start; }
}

/* ============================================================
   ASSOCIATES — overlay caption + carousel arrows
   ============================================================ */
.associates-wrap{ position:relative; }
.member.member--overlay{
  position:relative; border-radius: 18px; overflow:hidden;
  aspect-ratio: 4/5; background:#1a1413;
}
.member.member--overlay img{
  width:100%; height:100%; object-fit:cover;
  transition: transform .6s ease;
}
.member.member--overlay:hover img{ transform: scale(1.04); }
.member.member--overlay figcaption{
  position:absolute; inset:auto 0 0 0;
  padding: 1.5rem 1.25rem 1.25rem;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.85) 100%);
  color:#fff;
}
.member.member--overlay .name{
  font-family: var(--font-serif); font-size: 1.25rem; font-weight: 500;
  color:#fff; letter-spacing: -0.01em;
}
.member.member--overlay .role{
  font-size: .7rem; text-transform: uppercase; letter-spacing: .18em;
  color: rgba(255,255,255,.78); margin-top: .25rem;
}
.carousel-arrows{
  display:flex; gap: .75rem;
  justify-content:flex-end;
  margin-top: 1.75rem;
}
.ca-btn{
  width: 44px; height: 44px; border-radius:999px;
  background: var(--surface); border: 1px solid var(--border);
  color: var(--foreground);
  display:inline-flex; align-items:center; justify-content:center;
  transition: all .2s;
}
.ca-btn:hover{ background: var(--ink); color:#fff; border-color: var(--ink); }

/* ============================================================
   BLOG / NOTÍCIAS
   ============================================================ */
.blog-hero{ padding: 5rem 0 3rem; background: var(--grad-warm); }
.blog-hero h1{ max-width: 48rem; }
.blog-hero .lead{ max-width: 42rem; margin-top: 1.25rem; }

.blog-tools{
  display:flex; justify-content:space-between; align-items:center;
  gap: 1.5rem; flex-wrap:wrap;
  padding: 1.75rem 0; border-bottom: 1px solid var(--border);
  margin-bottom: 3rem;
}
.blog-tabs{ display:flex; gap: .4rem; flex-wrap:wrap; }
.blog-tab{
  font-size: .82rem; padding: .55rem 1rem;
  border-radius: 999px;
  border: 1px solid var(--border);
  background: transparent; color: var(--muted);
  font-family: var(--font-sans); font-weight: 500;
  transition: all .2s;
}
.blog-tab:hover{ color: var(--foreground); border-color: var(--ink); }
.blog-tab.is-active{
  background: var(--ink); color:#fff; border-color: var(--ink);
}
.blog-search{ position:relative; min-width: 260px; }
.blog-search input{
  width:100%;
  padding: .7rem 1rem .7rem 2.5rem;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  font-family: var(--font-sans); font-size: .88rem;
  color: var(--foreground); outline:none;
  transition: border-color .2s;
}
.blog-search input:focus{ border-color: var(--primary); }
.blog-search .bs-ico{
  position:absolute; left: 1rem; top:50%; transform: translateY(-50%);
  color: var(--muted);
}

.featured-article{
  display:grid; grid-template-columns: 1.2fr 1fr;
  gap: 3rem; align-items:center;
  margin-bottom: 4.5rem;
  padding-bottom: 4.5rem;
  border-bottom: 1px solid var(--border);
}
.featured-article .fa-img{
  aspect-ratio: 4/3; border-radius: 20px; overflow:hidden;
  box-shadow: var(--shadow-elegant);
}
.featured-article .fa-img img{ width:100%; height:100%; object-fit:cover; }
.fa-meta{ display:flex; gap:.75rem; align-items:center; margin-bottom: 1rem; }
.fa-cat{
  font-size: 12px; padding: 0;
  background: transparent; color: #ff6501;
  border-radius: 0;
  text-transform:uppercase; letter-spacing: .22em; font-weight: 500;
}
.fa-date{ font-size: .82rem; color: var(--muted); }
.featured-article h2{
  font-family: var(--font-serif); font-size: clamp(1.75rem, 3vw, 2.5rem);
  line-height: 1.15; letter-spacing: -0.02em; font-weight: 500;
}
.featured-article p{ color: var(--muted); margin-top: 1rem; line-height: 1.75; }

.blog-grid{
  display:grid; grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
}
.article-card{
  background: var(--surface);
  border-radius: 18px; overflow:hidden;
  border: 1px solid var(--border);
  transition: transform .3s, box-shadow .3s;
  display:flex; flex-direction:column;
}
.article-card:hover{ transform: translateY(-4px); box-shadow: var(--shadow-soft); }
.article-card .ac-img{ aspect-ratio: 16/10; overflow:hidden; }
.article-card .ac-img img{ width:100%; height:100%; object-fit:cover; transition: transform .5s; }
.article-card:hover .ac-img img{ transform: scale(1.05); }
.article-card .ac-body{ padding: 1.5rem; display:flex; flex-direction:column; flex:1; }
.ac-meta{ display:flex; gap:.6rem; align-items:center; margin-bottom: .85rem; }
.ac-cat{
  font-size: 12px; padding: 0;
  background: transparent; color: #ff6501;
  border-radius: 0;
  text-transform:uppercase; letter-spacing: .22em; font-weight: 500;
}
.ac-date{ font-size: .78rem; color: var(--muted); }
.article-card h3{
  font-family: var(--font-serif); font-size: 1.35rem;
  line-height: 1.25; letter-spacing: -0.01em; font-weight: 500;
}
.article-card p{
  color: var(--muted); margin-top: .65rem; font-size: .92rem;
  line-height: 1.65; flex:1;
}
.ac-link{
  display:inline-flex; align-items:center; gap:.4rem;
  margin-top: 1.25rem; color: var(--primary);
  font-size: .85rem; font-weight: 600;
}
.ac-link:hover{ color: var(--primary-deep); }

.blog-loadmore{
  margin: 4rem auto 0; display:block;
  padding: 1rem 2.5rem;
  background: transparent; color: var(--foreground);
  border: 1px solid var(--ink);
  border-radius: 999px;
  font-family: var(--font-sans); font-weight: 600; font-size: .92rem;
  transition: all .2s;
}
.blog-loadmore:hover{ background: var(--ink); color: #fff; }

@media (max-width: 900px){
  .featured-article{ grid-template-columns: 1fr; gap: 2rem; }
  .blog-grid{ grid-template-columns: 1fr; }
  .blog-tools{ flex-direction:column; align-items:stretch; }
  .blog-search{ min-width: auto; }
}

/* ---------- Newsletter card ---------- */
.newsletter-card{
  display:grid; grid-template-columns: 1.2fr .9fr; gap:3rem; align-items:center;
  background:#fff; border:1px solid var(--border); border-radius:var(--r-xl);
  padding:3rem; box-shadow: 0 18px 40px -28px rgba(20,12,8,.18);
}
.newsletter-form{ display:flex; gap:.75rem; }
.newsletter-form input{
  flex:1; padding:.95rem 1.1rem; border:1px solid var(--border);
  border-radius:999px; background:#fff; font:inherit; color:var(--ink);
  transition: border-color .25s, box-shadow .25s;
}
.newsletter-form input:focus{ outline:none; border-color:var(--ink); box-shadow:0 0 0 4px rgba(255,101,1,.12); }
@media (max-width: 900px){
  .newsletter-card{ grid-template-columns:1fr; padding:2rem; gap:1.5rem; }
  .newsletter-form{ flex-direction:column; }
}

/* ---------- A11y: reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  *, *::before, *::after{
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}

/* ---------- A11y: focus visibility ---------- */
:focus-visible{
  outline: 2px solid #ff6501;
  outline-offset: 3px;
  border-radius: 4px;
}

/* ---------- Skip link ---------- */
.skip-link{
  position:absolute; left:-9999px; top:0;
  background:#000; color:#fff; padding:.75rem 1rem;
  z-index:9999; border-radius:0 0 6px 0;
  font-size:.875rem;
}
.skip-link:focus{ left:0; }

/* ---------- Certificado Digital button ---------- */
.btn--cert{ gap:.5rem; }
.btn--cert .btn-ico{
  transition: transform .35s cubic-bezier(.22,1,.36,1), color .3s;
  color: #ff6501;
}
.btn--cert:hover{
  transform: translateY(-1px);
  background: rgba(255,101,1,.04);
  border-color: #ff6501;
}
.btn--cert:hover .btn-ico{ transform: scale(1.08); }

/* =====================================================
   INTERNAL HERO (.ihero) — shared across internal pages
   ===================================================== */
.ihero-wrap{ padding: 7rem 0 3rem; }
@media (min-width:768px){ .ihero-wrap{ padding: 9rem 0 4rem; } }

.ihero-crumbs{
  display:flex; align-items:center; gap:.5rem;
  font-size:.78rem; color: var(--muted);
  margin-bottom: 1.25rem; letter-spacing:.04em;
}
.ihero-crumbs a{ color: var(--muted); }
.ihero-crumbs a:hover{ color: #ff6501; }
.ihero-crumbs span{ color: rgba(0,0,0,.25); }
.ihero-crumbs strong{ color: var(--foreground); font-weight:500; }

.ihero{
  position:relative; overflow:hidden;
  border-radius: 28px;
  background: #120d0d;
  box-shadow: 0 40px 90px -40px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.02);
  min-height: 460px;
  max-width: 1280px;
  margin: 0 auto;
  display:grid; grid-template-columns: 1fr;
  isolation: isolate;
}
@media (min-width:900px){
  .ihero{ grid-template-columns: 1.02fr 1fr; min-height: 560px; }
}
/* Ambient orange cinematic light leaks — sit BEHIND content, not over image */
.ihero::before{
  content:""; position:absolute; pointer-events:none; z-index:1;
  left:-12%; top:-30%;
  width:55%; height:120%;
  background: radial-gradient(closest-side, rgba(255,140,40,.22), rgba(255,101,1,0) 70%);
  filter: blur(20px);
}
.ihero::after{
  content:""; position:absolute; pointer-events:none; z-index:1;
  left:35%; bottom:-30%;
  width:40%; height:90%;
  background: radial-gradient(closest-side, rgba(255,101,1,.16), rgba(255,101,1,0) 70%);
  filter: blur(28px);
}
.ihero-media{
  position:relative; min-height: 280px;
  order:-1; z-index:0;
}
@media (min-width:900px){
  .ihero-media{ order:0; min-height:auto; }
}
.ihero-media img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; object-position: center;
}
/* Soft natural transition into dark side — no hard split, no overlay over image center */
.ihero-media::after{
  content:""; position:absolute; inset:0; pointer-events:none;
  background: linear-gradient(90deg, rgba(18,13,13,.85) 0%, rgba(18,13,13,.25) 18%, rgba(18,13,13,0) 38%);
}
@media (min-width:900px){
  .ihero-media::after{
    background:
      linear-gradient(90deg, rgba(18,13,13,1) 0%, rgba(18,13,13,.55) 14%, rgba(18,13,13,0) 34%),
      radial-gradient(ellipse at 0% 50%, rgba(255,120,40,.10), rgba(0,0,0,0) 45%);
  }
}

.ihero-body{
  position:relative; z-index:2;
  padding: 2.25rem 1.75rem;
  display:flex; flex-direction:column; justify-content:center;
  color:#fff;
}
@media (min-width:768px){ .ihero-body{ padding: 3.5rem 3.25rem; } }
@media (min-width:1100px){ .ihero-body{ padding: 4.5rem 4.25rem; } }

.ihero-pill{
  display:inline-flex; align-items:center; gap:.55rem;
  padding:.45rem .95rem;
  border-radius:999px;
  background: rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);
  font-size: 12px; letter-spacing:.22em; text-transform:uppercase;
  color: #ff6501; font-weight:500;
  width:max-content;
  backdrop-filter: blur(6px);
}
.ihero-pill .dot{ width:6px; height:6px; border-radius:999px; background:#ff6501; }

.ihero h1{
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: clamp(2.1rem, 4.4vw, 3.6rem);
  line-height: 1.08;
  letter-spacing: -0.012em;
  margin-top: 1.4rem;
  color:#fff;
  max-width: 18ch;
}
.ihero h1 em{
  font-style: italic;
  color: #ff6501;
  background: none; -webkit-background-clip: initial; background-clip: initial;
}
.ihero-lead{
  margin-top: 1.35rem;
  max-width: 42ch;
  color: rgba(245,235,225,.72);
  font-size: 1rem; line-height: 1.75;
  font-family: var(--font-sans);
}
.ihero-rule{
  margin-top: 2rem;
  width: 64px; height: 2px;
  background: #ff6501;
  border-radius: 2px;
}

/* =====================================================
   ABOUT — Intro w/ year badge
   ===================================================== */
.about-intro{ padding: 5rem 0; }
.about-intro .grid{
  display:grid; gap: 3rem; align-items:center;
}
@media (min-width:900px){
  .about-intro .grid{ grid-template-columns: 1fr 1fr; gap: 4.5rem; }
}
.about-intro .figure{
  position:relative;
  aspect-ratio: 4/5;
  overflow: visible;
}
.about-intro .figure img{
  width:100%; height:100%; object-fit:cover;
  border-radius: 22px;
  box-shadow: var(--shadow-elegant);
  display:block;
}
.about-intro .year-badge{
  position:absolute; right: -18px; bottom: -18px;
  background:#fff; color:#1B1B1B;
  border-radius: 20px;
  padding: 1rem 1.4rem;
  box-shadow: 0 20px 50px -20px rgba(0,0,0,.25);
  text-align:center;
}
.about-intro .year-badge .y{
  font-family: var(--font-serif); font-size: 2.4rem; line-height:1;
  color:#ff6501; font-weight:500;
}
.about-intro .year-badge .l{
  margin-top:.35rem; font-size:10px; letter-spacing:.24em;
  text-transform:uppercase; color:var(--muted);
}

/* =====================================================
   TIMELINE
   ===================================================== */
.timeline-grid{
  display:grid; gap: 1.25rem;
  grid-template-columns: repeat(auto-fit, minmax(220px,1fr));
  margin-top: 3rem;
}
.tl-card{
  background:#fff; border-radius: 18px;
  padding: 1.75rem 1.5rem;
  border:1px solid var(--border);
  transition: transform .35s ease, box-shadow .35s ease;
}
.tl-card:hover{ transform: translateY(-3px); box-shadow: var(--shadow-soft); }
.tl-card .ico-wrap{
  width:42px; height:42px; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  background: rgba(255,101,1,.08); color:#ff6501;
  margin-bottom: 1rem;
}
.tl-card .step{
  font-size: 11px; letter-spacing:.26em; text-transform:uppercase;
  color:#ff6501; font-weight:500;
}
.tl-card h3{
  font-family: var(--font-serif); font-size: 1.35rem;
  margin-top:.5rem; line-height:1.2;
}
.tl-card p{
  margin-top:.6rem; font-size:.88rem; color:var(--muted); line-height:1.6;
}

/* =====================================================
   ABOUT — generic two-col block
   ===================================================== */
.about-two{ padding: 5rem 0; }
.about-two .grid{
  display:grid; gap:3rem; align-items:center;
}
@media (min-width:900px){
  .about-two .grid{ grid-template-columns: 1fr 1fr; gap: 4.5rem; }
}
.about-two.reverse .grid > :first-child{ order:0; }
@media (min-width:900px){
  .about-two.reverse .grid > :first-child{ order:2; }
}
.about-two .figure{
  border-radius: 22px; overflow:hidden;
  box-shadow: var(--shadow-elegant);
  aspect-ratio: 5/4;
}
.about-two .figure img{ width:100%; height:100%; object-fit:cover; }
.about-two h2{
  font-family: var(--font-serif); font-weight:500;
  font-size: clamp(1.8rem, 3vw, 2.5rem); line-height:1.15;
  margin-top:1rem;
}
.about-two p.lead{ margin-top: 1.25rem; }

/* =====================================================
   PROPÓSITO — Mission/Vision/Values
   ===================================================== */
.purpose-grid{
  display:grid; gap:1.25rem; margin-top:3rem;
  grid-template-columns: repeat(auto-fit, minmax(260px,1fr));
}
.purpose-card{
  background:#fff; border-radius: 22px;
  padding: 2rem; border:1px solid var(--border);
  transition: transform .35s, box-shadow .35s;
}
.purpose-card:hover{ transform: translateY(-3px); box-shadow: var(--shadow-soft); }
.purpose-card .ico-wrap{
  width:46px; height:46px; border-radius:14px;
  display:inline-flex; align-items:center; justify-content:center;
  background: linear-gradient(135deg,#ff6501,#ffb03d); color:#fff;
  margin-bottom: 1.25rem;
}
.purpose-card h3{
  font-family: var(--font-serif); font-size:1.5rem; font-weight:500;
}
.purpose-card p{
  margin-top:.65rem; color:var(--muted); font-size:.92rem; line-height:1.7;
}
.values-row{
  display:flex; flex-wrap:wrap; gap:.6rem;
  margin-top: 2rem;
}
.values-row .chip{
  padding:.55rem 1rem; border-radius:999px;
  background: rgba(255,101,1,.06);
  color: #1B1B1B;
  border:1px solid rgba(255,101,1,.22);
  font-size:.82rem; letter-spacing:.04em;
}

/* =====================================================
   COMMUNITY — collage
   ===================================================== */
.community{ padding: 5rem 0; }
.community .grid{
  display:grid; gap:3rem; align-items:center;
}
@media (min-width:900px){
  .community .grid{ grid-template-columns: 1fr 1.05fr; gap: 4.5rem; }
}
.collage{
  display:grid; gap: .75rem;
  grid-template-columns: repeat(2,1fr);
  grid-auto-rows: 160px;
}
.collage .c{ overflow:hidden; border-radius: 18px; }
.collage .c img{ width:100%; height:100%; object-fit:cover; transition: transform .6s; }
.collage .c:hover img{ transform: scale(1.05); }
.collage .c:nth-child(1){ grid-row: span 2; }
.collage .c:nth-child(4){ grid-row: span 2; }

/* =====================================================
   STATS
   ===================================================== */
.stats-row{
  display:grid; gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(200px,1fr));
  margin-top: 2.5rem;
}
.stat-card{
  background:#fff; border:1px solid var(--border);
  border-radius: 18px; padding: 1.75rem;
  transition: transform .35s, box-shadow .35s;
}
.stat-card:hover{ transform: translateY(-2px); box-shadow: var(--shadow-soft); }
.stat-card .n{
  font-family: var(--font-serif); font-size: clamp(2.2rem, 3.5vw, 3rem);
  line-height:1; color:#1B1B1B; font-weight:500;
}
.stat-card .n em{
  background: linear-gradient(90deg,#ff6501,#ffb03d);
  -webkit-background-clip:text; background-clip:text; color: transparent;
  font-style: normal;
}
.stat-card .lbl{
  margin-top:.85rem; font-size:.82rem; color:var(--muted); line-height:1.5;
}

/* ============================================================
   GLOBAL DESIGN SYSTEM — Standardization Pass v3
   Cohesive premium editorial system across all pages
   ============================================================ */
:root{
  --container: 80rem;             /* 1280px standard width */
  --container-wide: 80rem;
  --primary: #ff6501;
  --primary-glow: #ffb03d;
  --primary-soft: #fffa78;
  --ink: #000000;
  --ink-2: #1B1B1B;
  --stone: #C5C1B9;

  --r-card: 18px;
  --r-pill: 999px;

  --shadow-card:  0 1px 2px rgba(0,0,0,.04), 0 8px 24px -14px rgba(20,12,8,.10);
  --shadow-hover: 0 4px 10px rgba(0,0,0,.05), 0 22px 50px -18px rgba(20,12,8,.18);
  --shadow-btn:   0 6px 18px -8px rgba(255,101,1,.45);

  --ease: cubic-bezier(.22,1,.36,1);
  --t-fast: 200ms var(--ease);
  --t-med:  300ms var(--ease);
  --t-slow: 600ms var(--ease);
}

/* Container alignment */
.container{ max-width: var(--container); margin-inline:auto; }

/* Section rhythm */
.section{ padding: 6rem 0; }
@media (min-width:1024px){ .section{ padding: 8.5rem 0; } }

/* Eyebrow — locked global spec */
.eyebrow,
.eyebrow.font-medium.text-orange-500.text-xs{
  font-family: var(--font-sans);
  font-size: 12px !important;
  line-height: 1.2;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: #ff6501 !important;
  margin-bottom: .9rem;
}

/* Typography hierarchy */
h1, .h-1{ font-family: var(--font-serif); font-weight:500; letter-spacing:-0.02em; line-height:1.08; }
h2{ font-family: var(--font-serif); font-weight:500; letter-spacing:-0.018em; line-height:1.12; }
h3{ font-family: var(--font-serif); font-weight:500; letter-spacing:-0.015em; line-height:1.2; }
h4{ font-family: var(--font-serif); font-weight:500; letter-spacing:-0.01em; line-height:1.25; }
p, li{ font-family: var(--font-sans); }
.lead{ color:#5a5550; line-height:1.6; }

/* Buttons — unified */
.btn{ transition: transform var(--t-fast), box-shadow var(--t-med), background var(--t-med), color var(--t-med); border-radius: var(--r-pill); }
.btn--primary{ background:#ff6501; color:#fff; box-shadow: var(--shadow-btn); }
.btn--primary:hover{ transform: translateY(-1px); background:#ff7a1f; box-shadow: 0 10px 26px -8px rgba(255,101,1,.55); }
.btn--ghost:hover{ transform: translateY(-1px); border-color:#1B1B1B; }

/* Cards — unified premium feel */
.benefit-card, .agenda-card, .tl-card, .card, .news-card{
  background:#fff;
  border-radius: var(--r-card);
  box-shadow: var(--shadow-card);
  transition: transform var(--t-med), box-shadow var(--t-med);
}
.benefit-card:hover, .agenda-card:hover, .tl-card:hover, .card:hover, .news-card:hover{
  transform: translateY(-4px);
  box-shadow: var(--shadow-hover);
}

/* Image hover treatment */
.figure img, .past-thumb img, .past-main img, .ihero-media img, .news-card img{
  transition: transform var(--t-slow);
}
.figure:hover img, .past-thumb:hover img, .news-card:hover img{
  transform: scale(1.03);
}

/* Forms — unified */
.cta-form input, .cta-form textarea, input[type="text"], input[type="email"], input[type="tel"], textarea{
  font-family: var(--font-sans);
  border-radius: 12px;
  transition: border-color var(--t-fast), box-shadow var(--t-fast);
}
.cta-form input:focus, .cta-form textarea:focus,
input[type="text"]:focus, input[type="email"]:focus, input[type="tel"]:focus, textarea:focus{
  outline: none;
  border-color: #ff6501;
  box-shadow: 0 0 0 3px rgba(255,101,1,.18);
}

/* Links */
a{ transition: color var(--t-fast); }
.nav a:hover, .footer-col a:hover, .agenda-link:hover{ color:#ff6501; }

/* Icons — consistent stroke */
svg{ stroke-width: 1.5; }
.cta-check svg, .btn svg{ stroke-width: 2; }

/* Chips */
.chip{ transition: background var(--t-fast), border-color var(--t-fast), color var(--t-fast); }
.chip:hover{ border-color:#ff6501; color:#1B1B1B; }

/* Fade-in on scroll (passive baseline) */
@media (prefers-reduced-motion: no-preference){
  .section, .ihero, .cta-card, .benefits-grid, .agenda-grid, .past-events-collage{
    animation: fadeUp .7s var(--ease) both;
  }
  @keyframes fadeUp{
    from{ opacity:0; transform: translateY(12px); }
    to{ opacity:1; transform: none; }
  }
}

/* Responsive guardrails */
@media (max-width: 900px){
  .section{ padding: 4rem 0; }
  h1, .h-1{ font-size: clamp(2rem, 7vw, 2.6rem); }
  h2{ font-size: clamp(1.6rem, 5.5vw, 2.1rem); }
}

/* ---------- Benefits grid — 3-col editorial spacing ---------- */
@media (min-width:1024px){
  .benefits-grid{ grid-template-columns: repeat(3, 1fr) !important; }
}
.benefits-grid{ gap: 1.75rem; }
.benefit-card{ padding: 2.25rem 2rem; }
.benefit-icon{
  width: 44px; height: 44px; border-radius: 12px;
  background: #FFF1E6;            /* soft orange tint */
  border: 1px solid #FFE0C7;
  color: #ff6501;
}
.benefit-card:hover .benefit-icon{
  background: #FFE7D3;
  border-color: #FFC79A;
  color: #ff6501;
}
.benefit-card h3{ font-size: 1.4rem; margin-top: 2rem; }
.benefit-card p{ margin-top: .85rem; }
.benefit-card .rule{
  height: 2px; width: 48px;
  background: #ff6501; opacity: 1;
  border-radius: 2px;
}

/* ---------- Home benefits — neutral icon variant ---------- */
.benefits-grid.benefits-grid--cards{ gap: 1.75rem; margin-top: 3rem; }
@media (min-width:1024px){
  .benefits-grid.benefits-grid--cards{ grid-template-columns: repeat(4, 1fr) !important; }
}
.benefits-grid--cards .benefit-card{ padding: 2rem 1.75rem 2.25rem; }
.benefits-grid--cards .benefit-icon{
  width: 44px; height: 44px; border-radius: 12px;
  background: #F4F1EC;
  border: 1px solid #E8E2D8;
  color: #5a5550;
}
.benefits-grid--cards .benefit-card:hover .benefit-icon{
  background: #FFF1E6;
  border-color: #FFE0C7;
  color: #ff6501;
}
.benefits-grid--cards .benefit-card h3{ font-size: 1.35rem; margin-top: 2rem; }
.benefits-grid--cards .benefit-card .rule{
  height: 2px; width: 40px; background: #ff6501; opacity: 1;
  border-radius: 2px; margin-top: 1.5rem;
}

/* ---------- Cursos e Eventos — 2x2 editorial grid ---------- */
@media (min-width:900px){
  .benefits-grid.benefits-grid--2x2{
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
.benefits-grid--2x2{ gap: 2rem; }
.benefits-grid--2x2 .benefit-card{ padding: 2.5rem 2.25rem; }
.benefits-grid--2x2 .benefit-card h3{ font-size: 1.5rem; }

/* ---------- Floating editorial badge (over figure) ---------- */
.about-intro .year-badge{
  right: -24px;
  bottom: -24px;
  background: #FFFDF8;
  border: 1px solid #EFE9DF;
  border-radius: 18px;
  padding: 1.1rem 1.6rem 1.25rem;
  box-shadow: 0 24px 60px -22px rgba(20,12,8,.22);
  text-align: left;
  min-width: 240px;
}
.about-intro .year-badge .eyebrow{ margin: 0 0 .35rem; }
.about-intro .year-badge .yb-title{
  font-family: var(--font-serif);
  font-size: 1.4rem;
  line-height: 1.2;
  color: #1B1B1B;
  font-weight: 500;
  letter-spacing: -0.01em;
}

/* ============================================================
   HEADER — Standardized (matches reference screenshot)
   ============================================================ */
.site-header{
  background: rgba(253,252,250,.92);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(232,226,216,.5);
}
.header-inner{ height: 6rem; gap: 2rem; }
.site-header.is-scrolled .header-inner{ height: 5rem; }

.brand img{ height: 3.25rem; }
.site-header.is-scrolled .brand img{ height: 2.75rem; }
.brand-sub{
  font-size: .72rem;
  letter-spacing: .14em;
  color: #1B1B1B;
  font-weight: 600;
}

/* Nav — generous spacing, simple links, orange hover */
.nav{ gap: .25rem; }
.nav a{
  padding: .6rem 1.05rem;
  font-size: .92rem;
  font-weight: 500;
  color: #1B1B1B;
  background: transparent !important;
  border-radius: 999px;
  transition: color .2s ease;
}
.nav a:hover,
.nav a[aria-current="page"]{
  color: #ff6501;
  background: transparent !important;
}

/* Header CTAs — larger pills matching reference */
.header-cta{ gap: .65rem; }
.header-cta .btn{
  padding: .8rem 1.35rem;
  font-size: .9rem;
  font-weight: 600;
  border-radius: 999px;
  white-space: nowrap;
}
.header-cta .btn--ghost{
  background: #fff;
  border: 1px solid #E8E2D8;
  color: #1B1B1B;
  box-shadow: 0 1px 2px rgba(0,0,0,.03);
}
.header-cta .btn--ghost:hover{
  border-color: #1B1B1B;
  transform: translateY(-1px);
}
.header-cta .btn--cert .btn-ico{
  width: 28px; height: 28px;
  border-radius: 999px;
  background: #FFF1E6;
  color: #ff6501;
  display: inline-flex; align-items: center; justify-content: center;
  margin-right: .15rem;
}
.header-cta .btn--primary{
  background: #ff6501;
  color: #fff;
  box-shadow: 0 8px 22px -8px rgba(255,101,1,.55);
}
.header-cta .btn--primary .arrow .ico{ width: 16px; height: 16px; }

@media (min-width:1280px){
  .header-inner{ gap: 2.5rem; }
  .nav{ gap: .5rem; }
  .nav a{ padding: .65rem 1.15rem; font-size: .95rem; }
}

/* =====================================================
   CONTATO — info + form, quick access, FAQ, location
   ===================================================== */
.contact-grid{
  display:grid; gap: 2.5rem; align-items:start;
}
@media (min-width: 960px){
  .contact-grid{ grid-template-columns: 5fr 7fr; gap: 4rem; }
}
.contact-info{
  background:#FFFDF8; border:1px solid #EFE9DF;
  border-radius: 22px; padding: 2.25rem 2rem;
  box-shadow: 0 24px 60px -32px rgba(20,12,8,.18);
}
.ci-list{ list-style:none; padding:0; margin: 1.75rem 0 0; display:flex; flex-direction:column; gap: 1.25rem; }
.ci-list li{ display:flex; gap: 1rem; align-items:flex-start; }
.ci-ico{
  flex:0 0 auto; width:42px; height:42px; border-radius:12px;
  background:#FFF1E6; border:1px solid #FFE0C7; color:#ff6501;
  display:inline-flex; align-items:center; justify-content:center;
}
.ci-list li > div{ display:flex; flex-direction:column; gap:.15rem; min-width:0; }
.ci-label{
  font-size: 11px; letter-spacing:.22em; text-transform:uppercase;
  color:#ff6501; font-weight:500;
}
.ci-list a{ color:#1B1B1B; text-decoration:none; }
.ci-list a:hover{ color:#ff6501; }
.ci-social{ margin-top: 1.75rem; padding-top: 1.5rem; border-top:1px solid #EFE9DF; }
.ci-social-list{ display:flex; gap:.75rem; margin-top:.65rem; }
.ci-social-list a{
  width:42px; height:42px; border-radius:999px;
  display:inline-flex; align-items:center; justify-content:center;
  background:#fff; border:1px solid #E8E2D8; color:#1B1B1B;
  transition: all .25s ease;
}
.ci-social-list a:hover{ background:#FFF1E6; border-color:#FFC79A; color:#ff6501; transform: translateY(-2px); }

.contact-form{
  background:#fff; border:1px solid #EFE9DF;
  border-radius: 22px; padding: 2.25rem 2rem;
  box-shadow: 0 30px 70px -32px rgba(20,12,8,.20);
  display:flex; flex-direction:column; gap: 1rem;
}
.cf-title{
  font-family: var(--font-serif); font-size: 1.6rem; line-height:1.2;
  font-weight:500; letter-spacing:-0.01em; margin:0 0 .5rem;
}
.cf-row{ display:grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width:600px){ .cf-row{ grid-template-columns: 1fr 1fr; } }
.cf-field{ display:flex; flex-direction:column; gap:.4rem; }
.cf-field > span{
  font-size: 11px; letter-spacing:.22em; text-transform:uppercase;
  color:#5a5550; font-weight:500;
}
.cf-field input, .cf-field textarea{
  width:100%; background:#FAF7F1; border:1px solid #E8E2D8;
  border-radius: 12px; padding: .85rem 1rem;
  font: inherit; color:#1B1B1B;
  transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.cf-field textarea{ resize: vertical; min-height: 120px; }
.cf-field input:focus, .cf-field textarea:focus{
  outline:none; background:#fff; border-color:#ff6501;
  box-shadow: 0 0 0 4px rgba(255,101,1,.12);
}
.cf-submit{ align-self:flex-start; margin-top:.5rem; }

/* Quick access */
.quick-grid{
  display:grid; gap: 1rem; margin-top: 3rem;
  grid-template-columns: 1fr;
}
@media (min-width:640px){ .quick-grid{ grid-template-columns: repeat(2, 1fr); } }
@media (min-width:1024px){ .quick-grid{ grid-template-columns: repeat(3, 1fr); } }
.quick-card{
  display:flex; align-items:center; gap: 1rem;
  background:#fff; border:1px solid #EFE9DF; border-radius: 18px;
  padding: 1.25rem 1.4rem; text-decoration:none; color:#1B1B1B;
  box-shadow: 0 1px 2px rgba(0,0,0,.03), 0 10px 28px -18px rgba(20,12,8,.10);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.quick-card:hover{
  transform: translateY(-3px); border-color:#FFC79A;
  box-shadow: 0 4px 10px rgba(0,0,0,.04), 0 22px 50px -18px rgba(20,12,8,.16);
}
.quick-ico{
  flex:0 0 auto; width:44px; height:44px; border-radius:12px;
  background:#FFF1E6; border:1px solid #FFE0C7; color:#ff6501;
  display:inline-flex; align-items:center; justify-content:center;
}
.quick-card > div{ flex:1; min-width:0; }
.quick-card h4{
  font-family: var(--font-serif); font-size: 1.15rem;
  font-weight:500; margin:0; letter-spacing:-0.005em;
}
.quick-card p{ margin:.2rem 0 0; font-size:.875rem; color:var(--muted); }
.quick-arrow{
  flex:0 0 auto; color:#1B1B1B; opacity:.35;
  transition: transform .25s ease, opacity .25s ease, color .25s ease;
}
.quick-card:hover .quick-arrow{ opacity:1; color:#ff6501; transform: translateX(4px); }

/* FAQ accordion */
.faq-list{
  margin-top: 3rem;
  background:#fff; border:1px solid #EFE9DF; border-radius: 22px;
  box-shadow: 0 24px 60px -32px rgba(20,12,8,.16);
  overflow:hidden;
}
.faq-item{ border-top:1px solid #EFE9DF; }
.faq-item:first-child{ border-top:0; }
.faq-item > summary{
  list-style:none; cursor:pointer;
  display:flex; align-items:center; justify-content:space-between; gap: 1rem;
  padding: 1.35rem 1.75rem;
  font-family: var(--font-serif); font-size: 1.2rem; font-weight:500;
  color:#1B1B1B; letter-spacing:-0.005em;
  transition: color .2s ease, background .2s ease;
}
.faq-item > summary::-webkit-details-marker{ display:none; }
.faq-item > summary:hover{ color:#ff6501; }
.faq-ico{
  flex:0 0 auto; width:28px; height:28px; border-radius:999px;
  background:#FFF1E6; border:1px solid #FFE0C7;
  position:relative; transition: transform .3s ease, background .2s ease;
}
.faq-ico::before, .faq-ico::after{
  content:""; position:absolute; left:50%; top:50%;
  background:#ff6501; border-radius:2px;
}
.faq-ico::before{ width:12px; height:2px; transform: translate(-50%,-50%); }
.faq-ico::after{ width:2px; height:12px; transform: translate(-50%,-50%); transition: transform .3s ease; }
.faq-item[open] .faq-ico::after{ transform: translate(-50%,-50%) scaleY(0); }
.faq-item[open] .faq-ico{ background:#FFE7D3; }
.faq-body{
  padding: 0 1.75rem 1.5rem;
  color: var(--muted); font-size: 1rem; line-height:1.75;
}
.faq-body p{ margin:0; max-width: 62ch; }

/* Location section */
.loc-grid{
  display:grid; gap: 2.5rem; align-items:center;
}
@media (min-width:960px){ .loc-grid{ grid-template-columns: 1fr 1fr; gap: 4rem; } }
.loc-meta{
  list-style:none; padding:0; margin: 2rem 0 0;
  display:flex; flex-direction:column; gap:.85rem;
}
.loc-meta li{
  display:grid; grid-template-columns: 110px 1fr; gap:1rem;
  padding-bottom:.85rem; border-bottom:1px solid #EFE9DF;
  color:var(--muted); font-size:.95rem;
}
.loc-meta li strong{
  font-size: 11px; letter-spacing:.22em; text-transform:uppercase;
  color:#ff6501; font-weight:500;
}
.loc-card{
  position:relative; aspect-ratio: 4/3;
  background:
    radial-gradient(120% 80% at 0% 0%, rgba(255,140,40,.18), rgba(255,101,1,0) 60%),
    radial-gradient(120% 80% at 100% 100%, rgba(255,101,1,.14), rgba(255,101,1,0) 60%),
    #120d0d;
  border-radius: 24px; overflow:hidden;
  box-shadow: 0 40px 90px -40px rgba(0,0,0,.55), inset 0 0 0 1px rgba(255,255,255,.04);
}
.loc-card-inner{
  position:absolute; inset:0;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  color:#FFFDF8; text-align:center; padding: 2rem;
}
.loc-pin{ color:#ff6501; }
.loc-state{
  font-family: var(--font-serif); font-size: 2.25rem; line-height:1;
  margin: 1rem 0 .35rem; letter-spacing:-0.01em;
}
.loc-city{
  font-size: 11px; letter-spacing:.24em; text-transform:uppercase;
  color: rgba(255,253,248,.65); margin:0;
}
.loc-rings{
  position:absolute; left:50%; top:50%; transform: translate(-50%,-50%);
  pointer-events:none;
}
.loc-rings span{
  position:absolute; left:50%; top:50%; transform: translate(-50%,-50%);
  border:1px solid rgba(255,101,1,.25); border-radius:999px;
}
.loc-rings span:nth-child(1){ width: 140px; height: 140px; }
.loc-rings span:nth-child(2){ width: 220px; height: 220px; border-color: rgba(255,101,1,.16); }
.loc-rings span:nth-child(3){ width: 320px; height: 320px; border-color: rgba(255,101,1,.10); }

/* ---------- Load more (Associadas) ---------- */
.associada-hidden{ display:none !important; }
.associada-reveal{
  display:block;
  animation: associadaFadeIn .55s ease both;
}
@keyframes associadaFadeIn{
  from{ opacity:0; transform: translateY(12px); }
  to  { opacity:1; transform: translateY(0); }
}
.load-more-wrap{
  display:flex; justify-content:center; margin-top: 3rem;
}
.btn-load-more{
  display:inline-flex; align-items:center; gap:.65rem;
  padding: .95rem 1.75rem;
  background: #FFFDF8; color:#1B1B1B;
  border:1px solid #E8E2D8; border-radius: 999px;
  font: 500 .9rem/1 var(--font-sans);
  letter-spacing:.02em; cursor: pointer;
  box-shadow: 0 1px 2px rgba(0,0,0,.03), 0 14px 32px -20px rgba(20,12,8,.15);
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, color .25s ease, background .25s ease;
}
.btn-load-more .arrow{
  display:inline-flex; width:28px; height:28px; border-radius:999px;
  background:#FFF1E6; color:#ff6501;
  align-items:center; justify-content:center;
  transition: transform .25s ease, background .25s ease;
}
.btn-load-more:hover{
  transform: translateY(-2px);
  border-color:#FFC79A; color:#ff6501;
  box-shadow: 0 4px 10px rgba(0,0,0,.04), 0 22px 50px -18px rgba(255,101,1,.28);
}
.btn-load-more:hover .arrow{ background:#FFE7D3; transform: translateY(2px); }
.btn-load-more:focus-visible{
  outline:none; box-shadow: 0 0 0 4px rgba(255,101,1,.18);
}

/* =====================================================
   SOBRE — refined sections (timeline, role card, M/V/V, stats)
   ===================================================== */

/* Year badge — editorial */
.about-intro .year-badge{
  right: auto; left: -28px; bottom: -28px;
  display:flex; align-items:center; gap:1rem;
  padding: 1.1rem 1.4rem;
  border-radius: 18px;
  border: 1px solid #EFE9DF;
  background:#fff;
  box-shadow: 0 1px 2px rgba(0,0,0,.03), 0 18px 40px -22px rgba(20,12,8,.18);
}
.about-intro .year-badge .yb-num{
  font-family: var(--font-serif); font-weight:500;
  font-size: 2.6rem; line-height:.9; color:#1B1B1B;
  letter-spacing:.01em;
}
.about-intro .year-badge .yb-meta{
  display:flex; flex-direction:column;
  font-size: 11px; letter-spacing:.22em; text-transform:uppercase;
  color:#ff6501; font-weight:500; line-height:1.4;
}

/* Timeline — connected rail */
.timeline-rail{ position:relative; margin-top: 3.5rem; }
.tl-line{
  position:absolute; left:5%; right:5%; top: 28px; height:1px;
  background: linear-gradient(90deg, transparent, #E8DFD1 12%, #E8DFD1 88%, transparent);
}
.tl-track{
  position:relative; display:grid; gap:1.25rem;
  grid-template-columns: repeat(auto-fit, minmax(220px,1fr));
}
.tl-node{
  position:relative; justify-self:center;
  width:58px; height:58px; border-radius:999px;
  background:#fff; border:1px solid #EFE9DF;
  display:inline-flex; align-items:center; justify-content:center;
  color:#ff6501;
  box-shadow: 0 1px 2px rgba(0,0,0,.03), 0 10px 24px -14px rgba(20,12,8,.10);
}
.tl-node .tl-num{
  position:absolute; top:-8px; right:-10px;
  min-width: 28px; height: 22px; padding: 0 .45rem;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:999px;
  background: linear-gradient(135deg,#ff6501,#ffb03d);
  color:#fff; font-size:11px; letter-spacing:.08em; font-weight:600;
}
.timeline-rail .timeline-grid{ margin-top: 1.5rem; }
.tl-card{ position:relative; padding: 1.6rem 1.4rem 1.4rem; }
.tl-card .ico-wrap{ display:none; }
.tl-card .tl-rule{
  display:block; width: 34px; height:1.5px; background:#E2D9C8;
  margin-top: 1rem;
}
.tl-card .step{ letter-spacing:.22em; }

/* Role card — cinematic */
.role-card{
  position:relative;
  display:grid; gap: 0; align-items:stretch;
  border-radius: 26px; overflow:hidden;
  background:#fff; border:1px solid #EFE9DF;
  box-shadow: 0 1px 2px rgba(0,0,0,.03), 0 22px 60px -28px rgba(20,12,8,.18);
}
@media (min-width:900px){
  .role-card{ grid-template-columns: 1fr 1.05fr; }
}
.role-top{
  position:absolute; left:0; right:0; top:0; height:3px;
  background: linear-gradient(90deg, #ff6501, #ffb03d 60%, transparent);
}
.role-media{ position:relative; min-height: 360px; }
.role-media img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.role-body{
  position:relative; padding: clamp(1.75rem, 3vw, 3rem);
  background:
    radial-gradient(120% 90% at 100% 0%, rgba(255,176,61,.18), transparent 55%),
    linear-gradient(180deg, #FFFDF8 0%, #FFF6EC 100%);
}
.role-ico{
  width:54px; height:54px; border-radius:16px;
  display:inline-flex; align-items:center; justify-content:center;
  background:#fff; color:#ff6501;
  border:1px solid #FFE0C7;
  box-shadow: 0 1px 2px rgba(0,0,0,.03), 0 10px 24px -14px rgba(255,101,1,.30);
  margin-bottom: 1.25rem;
}

/* Mission / Vision — two large cards */
.mv-grid{
  display:grid; gap: 1.25rem; margin-top: 2.75rem;
}
@media (min-width:900px){
  .mv-grid{ grid-template-columns: 1fr 1fr; gap: 1.5rem; }
}
.mv-card{
  position:relative; overflow:hidden;
  border-radius: 24px; padding: clamp(1.75rem, 3vw, 2.5rem);
  min-height: 220px;
  display:flex; flex-direction:column;
}
.mv-card .mv-text{
  margin-top:.85rem; max-width: 30ch;
  font-family: var(--font-serif); font-weight:500;
  font-size: clamp(1.25rem, 1.7vw, 1.6rem); line-height:1.25;
}
.mv-ico{
  width:54px; height:54px; border-radius:16px;
  display:inline-flex; align-items:center; justify-content:center;
  margin-bottom: 1.25rem;
}
.mv-ico--solid{
  background: linear-gradient(135deg,#ff6501,#ffb03d); color:#fff;
  box-shadow: 0 10px 24px -14px rgba(255,101,1,.45);
}
.mv-ico--ghost{
  background: rgba(255,255,255,.06); color:#ffb03d;
  border:1px solid rgba(255,255,255,.10);
}
.mv-card--light{
  background:
    radial-gradient(120% 90% at 100% 0%, rgba(255,176,61,.20), transparent 55%),
    #FFFDF8;
  border:1px solid #EFE9DF;
  color:#1B1B1B;
}
.mv-card--dark{
  background:
    radial-gradient(120% 90% at 100% 0%, rgba(255,140,40,.32), transparent 55%),
    linear-gradient(180deg, #1f1410 0%, #0e0907 100%);
  color:#F4ECDF;
  border:1px solid #2a1b13;
}
.mv-card--dark .eyebrow{ color:#ffb03d !important; }

/* Values — small cards */
.values-eyebrow{ margin-top: 3rem; }
.values-grid{
  display:grid; gap: 1.25rem; margin-top: 1.25rem;
  grid-template-columns: repeat(auto-fit, minmax(190px,1fr));
}
.value-card{
  background:#fff; border:1px solid #EFE9DF; border-radius: 22px;
  padding: 1.5rem 1.35rem;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.value-card:hover{
  transform: translateY(-4px);
  border-color:#FFE0C7;
  box-shadow: 0 1px 2px rgba(0,0,0,.03), 0 18px 40px -22px rgba(20,12,8,.14);
}
.value-card .ico-wrap{
  width:42px; height:42px; border-radius: 12px;
  display:inline-flex; align-items:center; justify-content:center;
  background:#FFFDF8; border:1px solid #EFE9DF; color:#1B1B1B;
  margin-bottom: 1rem;
}
.value-card h3{
  font-family: var(--font-serif); font-weight:500;
  font-size: 1.2rem; line-height:1.2;
}
.value-card p{
  margin-top:.5rem; font-size:.86rem; color:var(--muted); line-height:1.6;
}
.value-card .tl-rule{
  display:block; width: 34px; height:1.5px; background:#E2D9C8;
  margin-top: 1rem;
}

/* Community pill */
.community-pill{
  display:inline-flex; align-items:center; gap:.6rem;
  margin-top: 1.75rem; padding: .85rem 1.25rem;
  border-radius: 999px; background:#fff; border:1px solid #EFE9DF;
  font-size: 11px; letter-spacing:.22em; text-transform:uppercase;
  color:#1B1B1B; font-weight:500;
  box-shadow: 0 1px 2px rgba(0,0,0,.03), 0 12px 28px -18px rgba(20,12,8,.10);
}
.community-pill .dot{
  width:6px; height:6px; border-radius:999px; background:#ff6501;
}

/* Stats — editorial variant */
.stats-row--editorial{
  margin-top: 0;
  grid-template-columns: repeat(auto-fit, minmax(180px,1fr));
  gap: 1.25rem;
}
.stats-row--editorial .stat-card{
  padding: 1.75rem 1.6rem 1.5rem;
  border-radius: 18px;
  text-align:left;
}
.stats-row--editorial .stat-card .n{
  font-size: clamp(2.4rem, 4vw, 3.2rem);
  color:#ff6501;
}
.stats-row--editorial .stat-card .n em{
  background: none; -webkit-background-clip: initial; background-clip: initial;
  color:#ff6501; font-style: normal;
}
.stats-row--editorial .stat-card .tl-rule{
  display:block; width: 40px; height:1.5px; background:#E2D9C8;
  margin: .9rem 0 1rem;
}
.stats-row--editorial .stat-card .lbl{
  margin-top: 0; font-size: 11px; letter-spacing:.22em;
  text-transform:uppercase; color: var(--muted);
}

/* =========================================================
   PREMIUM SUBTLE ANIMATIONS (global)
   ========================================================= */
@media (prefers-reduced-motion: no-preference){
  .reveal{opacity:0; transform:translateY(14px); transition:opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1);}
  .reveal.is-visible{opacity:1; transform:none;}
  .reveal-delay-1{transition-delay:.08s}
  .reveal-delay-2{transition-delay:.16s}
  .reveal-delay-3{transition-delay:.24s}
  .reveal-delay-4{transition-delay:.32s}

  /* Buttons subtle lift + icon nudge */
  .btn, .btn-primary, .btn-secondary, .btn-load-more, button[type="submit"]{
    transition: transform .25s ease, box-shadow .3s ease, background-color .3s ease, color .3s ease, border-color .3s ease;
  }
  .btn:hover, .btn-primary:hover, .btn-secondary:hover, .btn-load-more:hover, button[type="submit"]:hover{
    transform: translateY(-2px);
  }
  .btn:hover svg, .btn-primary:hover svg, .btn-secondary:hover svg, .btn-load-more:hover svg{
    transform: translateX(3px); transition: transform .25s ease;
  }
  .btn svg, .btn-primary svg, .btn-secondary svg, .btn-load-more svg{transition: transform .25s ease;}

  /* Cards subtle lift */
  .card, .benefit-card, .initiative-card, .value-card, .mv-card, .associada-card,
  .article-card, .event-card, .contact-card, .tl-card, .role-card{
    transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .4s ease, border-color .3s ease;
  }
  .card:hover, .benefit-card:hover, .initiative-card:hover, .value-card:hover, .mv-card:hover,
  .associada-card:hover, .article-card:hover, .event-card:hover, .contact-card:hover, .tl-card:hover{
    transform: translateY(-4px);
    box-shadow: 0 18px 40px -22px rgba(20,18,15,.18);
  }

  /* Image gentle zoom inside cards */
  .card img, .associada-card img, .article-card img, .event-card img, .img-zoom{
    transition: transform .8s cubic-bezier(.2,.7,.2,1);
  }
  .card:hover img, .associada-card:hover img, .article-card:hover img, .event-card:hover img, .img-zoom:hover{
    transform: scale(1.035);
  }

  /* Icon color shift */
  .icon svg, .benefit-icon svg, .value-card svg, .contact-card svg{
    transition: color .3s ease, transform .3s ease, stroke .3s ease;
  }
  .card:hover .icon svg, .benefit-card:hover .benefit-icon svg,
  .value-card:hover svg, .contact-card:hover svg{
    color: var(--accent, #ff6501); stroke: var(--accent, #ff6501); transform: translateY(-1px);
  }

  /* Menu underline */
  .nav a, .menu a, header nav a{
    position:relative; transition: color .25s ease;
  }
  .nav a::after, .menu a::after, header nav a::after{
    content:""; position:absolute; left:0; bottom:-4px; height:1px; width:100%;
    background: currentColor; transform: scaleX(0); transform-origin: right center;
    transition: transform .35s cubic-bezier(.2,.7,.2,1);
  }
  .nav a:hover::after, .menu a:hover::after, header nav a:hover::after{
    transform: scaleX(1); transform-origin: left center;
  }

  /* Form focus glow */
  input, textarea, select{
    transition: border-color .25s ease, box-shadow .25s ease, background-color .25s ease;
  }
  input:focus, textarea:focus, select:focus{
    outline:none; border-color:#ff6501;
    box-shadow: 0 0 0 4px rgba(255,101,1,.10);
  }

  /* FAQ icon rotation */
  details > summary{cursor:pointer; list-style:none; transition: color .25s ease;}
  details > summary::-webkit-details-marker{display:none;}
  details > summary .faq-ico, details > summary svg.chev{
    transition: transform .35s cubic-bezier(.2,.7,.2,1);
  }
  details[open] > summary .faq-ico, details[open] > summary svg.chev{
    transform: rotate(180deg);
  }

  /* Footer links */
  footer a{transition: color .25s ease, opacity .25s ease;}
  footer a:hover{color:#ff6501;}

  /* Scroll-to-top */
  #to-top{
    position:fixed; right:24px; bottom:24px; width:42px; height:42px; border-radius:999px;
    display:flex; align-items:center; justify-content:center;
    background:#14120f; color:#fff; border:1px solid rgba(255,255,255,.08);
    box-shadow:0 10px 24px -12px rgba(20,18,15,.45);
    opacity:0; pointer-events:none; transform:translateY(8px);
    transition: opacity .35s ease, transform .35s ease, background-color .25s ease;
    z-index:60;
  }
  #to-top.is-visible{opacity:1; pointer-events:auto; transform:translateY(0);}
  #to-top:hover{transform:translateY(-3px); background:#ff6501;}

  /* Carousel hide scrollbar */
  .carousel, .scroll-x{scrollbar-width:none;}
  .carousel::-webkit-scrollbar, .scroll-x::-webkit-scrollbar{display:none;}

  /* Sticky header smooth */
  header.site-header, .site-header{transition: background-color .3s ease, box-shadow .3s ease, backdrop-filter .3s ease;}
}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1; transform:none;}
}

/* =========================================================
   PODCAST PLAY — cinematic pulse + ripple
   ========================================================= */
@media (prefers-reduced-motion: no-preference){
  .podcast-video .play span{
    position: relative;
    box-shadow: 0 10px 30px -10px rgba(255,101,1,.45), 0 0 0 0 rgba(255,101,1,.55);
    animation: play-breathe 3s ease-in-out infinite;
    transition: transform .35s ease, box-shadow .35s ease, background-color .3s ease;
  }
  .podcast-video .play span::before,
  .podcast-video .play span::after{
    content:""; position:absolute; inset:0; border-radius:inherit;
    border:1px solid rgba(255,101,1,.55);
    pointer-events:none;
    animation: play-ripple 2.8s cubic-bezier(.2,.7,.2,1) infinite;
  }
  .podcast-video .play span::after{ animation-delay: 1.4s; }
  .podcast-video:hover .play span{
    transform: scale(1.08);
    box-shadow: 0 14px 40px -10px rgba(255,101,1,.65), 0 0 0 8px rgba(255,101,1,.12);
    animation-play-state: paused;
  }
  @keyframes play-breathe{
    0%,100%{ transform: scale(1);     box-shadow: 0 10px 30px -10px rgba(255,101,1,.45), 0 0 0 0 rgba(255,101,1,.45); }
    50%    { transform: scale(1.035); box-shadow: 0 14px 36px -10px rgba(255,101,1,.55), 0 0 0 10px rgba(255,101,1,.08); }
  }
  @keyframes play-ripple{
    0%  { opacity:.55; transform: scale(1); }
    80% { opacity:0;   transform: scale(1.7); }
    100%{ opacity:0;   transform: scale(1.7); }
  }
}

.cf-status{margin-top:1rem;font-size:.92rem;line-height:1.5;color:#4a4a4a;padding:.75rem 1rem;border-left:2px solid #ff6501;background:rgba(255,101,1,.06);border-radius:0 8px 8px 0}
