/* =========================================================
   Pézinhos ao Fresco — design system
   Font: IBM Plex Sans (headings + body, weight-driven hierarchy)
   ========================================================= */
:root{
  --linho:#F6EEDF;
  --linho-2:#EFE4CE;
  --musgo:#3E4A2E;
  --musgo-2:#5C6B45;
  --verde:#8CA173;
  --terra:#BC7A48;
  --terra-dark:#9C623A;
  --rio:#9FC0BA;
  --tinta:#2B2A20;
  --branco:#FFFDF7;
  --max:1180px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--linho);
  color:var(--tinta);
  font-family:'IBM Plex Sans', sans-serif;
  font-weight:400;
  font-size:17px;
  line-height:1.7;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--verde); color:var(--branco);}

h1,h2,h3,.display{
  font-family:'IBM Plex Sans', sans-serif;
  font-weight:600;
  color:var(--musgo);
  line-height:1.15;
  letter-spacing:-0.01em;
}
.eyebrow{
  font-family:'IBM Plex Sans', sans-serif;
  font-weight:600;
  text-transform:lowercase;
  letter-spacing:.08em;
  font-size:.82rem;
  color:var(--terra-dark);
  display:inline-flex;
  align-items:center;
  gap:.5em;
}
.eyebrow::before{
  content:"";
  width:22px; height:1px;
  background:var(--terra-dark);
  display:inline-block;
}
a{color:inherit;}
img{max-width:100%; display:block;}

.wrap{max-width:var(--max); margin:0 auto; padding:0 6vw;}
section{position:relative; z-index:2;}

/* ---------- decorative footprint trail ---------- */
#trail{
  position:absolute; top:0; left:0; width:100%; height:100%;
  pointer-events:none; z-index:1; overflow:hidden;
}
.step{
  position:absolute;
  width:26px; height:26px;
  opacity:.16;
  color:var(--musgo);
}
@media (max-width:760px){ #trail{display:none;} }

/* ---------- floating leaves ---------- */
.leaf{
  position:fixed;
  width:16px; height:16px;
  opacity:.35;
  z-index:0;
  pointer-events:none;
  animation:drift linear infinite;
}
@keyframes drift{
  0%{ transform:translateY(-5vh) rotate(0deg); }
  100%{ transform:translateY(105vh) rotate(360deg); }
}

/* ---------- reveal on scroll ---------- */
.reveal{
  opacity:0; transform:translateY(24px);
  transition:opacity .9s ease, transform .9s ease;
}
.reveal.in{opacity:1; transform:translateY(0);}

/* ================= HEADER / NAV ================= */
header{
  position:fixed; top:0; left:0; width:100%;
  z-index:50;
  display:flex; justify-content:space-between; align-items:center;
  padding:1.4rem 6vw;
  background:linear-gradient(to bottom, rgba(246,238,223,.92), rgba(246,238,223,0));
  transition:background .3s ease;
}
header.solid{background:rgba(246,238,223,.96);}
.brand{
  font-family:'IBM Plex Sans', sans-serif;
  font-style:italic;
  font-weight:600;
  font-size:1.25rem;
  color:var(--musgo);
  text-decoration:none;
}
.brand span{color:var(--terra);}
nav{display:flex; align-items:center;}
nav a{
  font-family:'IBM Plex Sans', sans-serif;
  font-weight:600;
  font-size:.82rem;
  text-transform:lowercase;
  margin-left:1.6rem;
  text-decoration:none;
  color:var(--musgo-2);
  border-bottom:1px solid transparent;
  transition:border-color .2s, color .2s;
}
nav a:hover{border-color:var(--terra);}
nav a.active{color:var(--musgo); border-color:var(--terra);}
.nav-cta{
  background:var(--musgo);
  color:var(--branco) !important;
  padding:.55rem 1.2rem;
  border-radius:100px;
}
.nav-toggle{
  display:none;
  width:34px; height:34px;
  border:none; background:none;
  color:var(--musgo);
  cursor:pointer;
  margin-left:1rem;
}
.mobile-panel, .mobile-overlay{display:none;}
@media (max-width:760px){
  nav a:not(.nav-cta):not(.nav-toggle-label){display:none;}
  .nav-toggle{display:inline-flex; align-items:center; justify-content:center;}
  nav{position:relative;}
  .mobile-panel{
    position:fixed; top:0; right:0; height:100vh; width:min(78vw, 320px);
    background:var(--branco);
    box-shadow:-20px 0 50px -20px rgba(43,42,32,.35);
    transform:translateX(100%);
    transition:transform .3s ease;
    z-index:60;
    padding:5.5rem 2rem 2rem;
    display:flex; flex-direction:column; gap:1.4rem;
  }
  .mobile-panel.open{transform:translateX(0);}
  .mobile-panel a{
    font-family:'IBM Plex Sans', sans-serif;
    font-weight:600;
    font-size:1.05rem;
    text-decoration:none;
    color:var(--musgo);
    text-transform:lowercase;
  }
  .mobile-panel .nav-cta{text-align:center;}
  .mobile-close{
    position:absolute; top:1.4rem; right:1.6rem;
    background:none; border:none; color:var(--musgo); cursor:pointer;
  }
  .mobile-overlay{
    display:block;
    position:fixed; inset:0; background:rgba(43,42,32,.35);
    opacity:0; pointer-events:none; transition:opacity .3s ease;
    z-index:55;
  }
  .mobile-overlay.open{opacity:1; pointer-events:auto;}
}

/* ================= HERO (home) ================= */
.hero{
  min-height:100vh;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center;
  padding:8rem 6vw 4rem;
  position:relative;
}
.hero-bg{
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 60% 40% at 20% 15%, rgba(140,161,115,.28), transparent 60%),
    radial-gradient(ellipse 55% 45% at 85% 20%, rgba(159,192,186,.30), transparent 60%),
    radial-gradient(ellipse 70% 50% at 50% 100%, rgba(188,122,72,.16), transparent 65%);
  z-index:0;
}
.hero > *{position:relative; z-index:2;}
.hero .eyebrow{margin-bottom:1.6rem;}
.hero h1{
  font-size:clamp(2.6rem, 7vw, 5.2rem);
  max-width:16ch;
}
.hero h1 em{
  font-style:italic;
  color:var(--terra);
}
.hero p.lede{
  max-width:44ch;
  margin:1.6rem auto 2.4rem;
  font-size:1.15rem;
  color:var(--musgo-2);
}
.cta-row{display:flex; gap:1rem; flex-wrap:wrap; justify-content:center;}
.btn{
  font-family:'IBM Plex Sans', sans-serif;
  font-weight:700;
  font-size:.95rem;
  text-decoration:none;
  padding:.95rem 2rem;
  border-radius:100px;
  display:inline-block;
  border:none;
  cursor:pointer;
  transition:transform .25s ease, box-shadow .25s ease;
}
.btn-primary{
  background:var(--terra);
  color:var(--branco);
  box-shadow:0 8px 24px -8px rgba(156,98,58,.55);
}
.btn-primary:hover{transform:translateY(-3px); box-shadow:0 12px 28px -8px rgba(156,98,58,.6);}
.btn-ghost{
  background:transparent;
  color:var(--musgo);
  border:1.5px solid var(--musgo-2);
}
.btn-ghost:hover{background:rgba(62,74,46,.06); transform:translateY(-3px);}
.btn[disabled]{opacity:.5; cursor:not-allowed; transform:none !important; box-shadow:none !important;}

.scroll-cue{
  margin-top:4.5rem;
  font-family:'IBM Plex Sans', sans-serif;
  font-size:.75rem;
  letter-spacing:.1em;
  text-transform:lowercase;
  color:var(--musgo-2);
  display:flex; flex-direction:column; align-items:center; gap:.5rem;
}
.scroll-cue svg{animation:bob 2.4s ease-in-out infinite;}
@keyframes bob{ 0%,100%{transform:translateY(0);} 50%{transform:translateY(7px);} }

/* ================= PAGE HEADER (inner pages) ================= */
.page-header{
  padding:9.5rem 6vw 4rem;
  text-align:center;
  position:relative;
}
.page-header .eyebrow{margin-bottom:1.2rem;}
.page-header h1{font-size:clamp(2.2rem, 5.5vw, 3.4rem); max-width:22ch; margin:0 auto;}
.page-header p.lede{
  max-width:52ch; margin:1.2rem auto 0;
  color:var(--musgo-2); font-size:1.05rem;
}

/* ================= MANIFESTO ================= */
.manifesto{padding:7rem 6vw; }
.manifesto .inner{
  max-width:820px; margin:0 auto; text-align:center; position:relative;
}
.quote-mark{
  font-family:'IBM Plex Sans', sans-serif;
  font-weight:600;
  font-size:5rem;
  color:var(--rio);
  line-height:0;
  display:block;
  margin-bottom:1rem;
}
.manifesto p{
  font-family:'IBM Plex Sans', sans-serif;
  font-weight:400;
  font-style:italic;
  font-size:clamp(1.3rem, 2.6vw, 1.9rem);
  color:var(--musgo);
  line-height:1.5;
}
.manifesto .small{
  font-family:'IBM Plex Sans', sans-serif;
  font-style:normal;
  font-size:1.05rem;
  color:var(--tinta);
  margin-top:1.8rem;
  max-width:60ch;
  margin-left:auto; margin-right:auto;
}

/* ================= VALUES ================= */
.values{padding:2rem 6vw 6rem;}
.values-grid{
  max-width:var(--max); margin:0 auto;
  display:grid; grid-template-columns:repeat(4,1fr); gap:2.2rem;
}
@media (max-width:900px){ .values-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:520px){ .values-grid{grid-template-columns:1fr;} }
.value{
  text-align:left;
}
.value .vicon{
  width:46px; height:46px;
  color:var(--terra);
  margin-bottom:1rem;
}
.value h3{font-size:1.15rem; margin-bottom:.4rem;}
.value p{font-size:.95rem; color:var(--musgo-2);}

/* ================= FOUNDERS ================= */
.founders{padding:5rem 6vw 7rem;}
.founders.tinted{background:var(--linho-2);}
.section-head{max-width:640px; margin:0 auto 4rem; text-align:center;}
.section-head h2{font-size:clamp(2rem,4.4vw,2.8rem);}
.section-head p{color:var(--musgo-2); margin-top:.9rem; font-size:1.05rem;}

.founder{
  max-width:var(--max); margin:0 auto 4.5rem;
  display:flex; align-items:center; gap:3rem;
}
.founder .blob{flex:0 0 200px;}
.founder > div{flex:1 1 auto; min-width:0;}
.founder:nth-child(even){flex-direction:row-reverse;}
@media (max-width:680px){
  .founder, .founder:nth-child(even){flex-direction:column; text-align:center;}
}
.blob{
  width:200px; height:200px;
  border-radius:42% 58% 63% 37% / 41% 42% 58% 59%;
  display:flex; align-items:center; justify-content:center;
  font-family:'IBM Plex Sans', sans-serif; font-style:italic; font-weight:600; font-size:2.4rem;
  color:var(--branco);
  flex-shrink:0;
  box-shadow:0 18px 40px -14px rgba(62,74,46,.35);
}
.blob.b1{background:linear-gradient(150deg, var(--musgo), var(--verde));}
.blob.b2{background:linear-gradient(150deg, var(--terra-dark), var(--terra));}
.blob.b3{background:linear-gradient(150deg, #6E8FA0, var(--rio));}
.founder h3{font-size:1.4rem; margin-bottom:.15rem;}
.founder .role{
  font-family:'IBM Plex Sans', sans-serif; font-weight:600; font-size:.82rem;
  color:var(--terra-dark); text-transform:lowercase; letter-spacing:.05em;
  margin-bottom:.8rem; display:block;
}
.founder p{font-size:.98rem; color:var(--tinta);}

/* ================= PLACE / MAP ================= */
.place{padding:7rem 6vw;}
.place-inner{
  max-width:var(--max); margin:0 auto;
  display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center;
}
@media (max-width:860px){ .place-inner{grid-template-columns:1fr;} }
.map-card{
  background:var(--branco);
  border-radius:28px;
  padding:2.4rem;
  box-shadow:0 30px 60px -30px rgba(62,74,46,.35);
  position:relative;
}
.map-card svg{width:100%; height:auto;}
.place h2{font-size:clamp(2rem,4.4vw,2.8rem); margin-bottom:1.2rem;}
.place p{margin-bottom:1.1rem; color:var(--tinta);}
.place .towns{
  display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.6rem;
}
.town-pill{
  font-family:'IBM Plex Sans', sans-serif; font-weight:600; font-size:.82rem;
  background:var(--linho-2);
  border:1px solid rgba(62,74,46,.18);
  color:var(--musgo);
  padding:.4rem .9rem; border-radius:100px;
}

/* ================= EVENTS ================= */
.events{padding:2rem 6vw 6rem;}
.events-group{max-width:var(--max); margin:0 auto 4rem;}
.events-group h2{font-size:1.4rem; margin-bottom:1.8rem;}
.events-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem;}
@media (max-width:940px){ .events-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:620px){ .events-grid{grid-template-columns:1fr;} }
.event-card{
  background:var(--branco);
  border-radius:22px;
  padding:1.8rem;
  box-shadow:0 20px 44px -26px rgba(62,74,46,.35);
  text-decoration:none;
  display:flex; flex-direction:column;
  transition:transform .25s ease, box-shadow .25s ease;
}
.event-card:hover{transform:translateY(-4px); box-shadow:0 26px 52px -26px rgba(62,74,46,.4);}
.event-card .edate{
  font-family:'IBM Plex Sans', sans-serif; font-weight:700; font-size:.78rem;
  letter-spacing:.06em; text-transform:uppercase;
  color:var(--terra-dark); margin-bottom:.8rem;
}
.event-card h3{font-size:1.2rem; margin-bottom:.5rem;}
.event-card p{font-size:.92rem; color:var(--musgo-2); flex-grow:1;}
.event-card .eloc{
  font-size:.85rem; color:var(--musgo); margin-top:1rem;
  display:flex; align-items:center; gap:.4rem;
}
.event-card .estatus{
  display:inline-block; align-self:flex-start;
  font-size:.72rem; font-weight:700; letter-spacing:.04em; text-transform:lowercase;
  padding:.25rem .7rem; border-radius:100px; margin-bottom:1rem;
}
.estatus.upcoming{background:rgba(140,161,115,.22); color:var(--musgo);}
.estatus.past{background:rgba(62,74,46,.08); color:var(--musgo-2);}
.empty-state{
  text-align:center; padding:3rem 1.5rem; color:var(--musgo-2);
  background:var(--branco); border-radius:22px; max-width:var(--max); margin:0 auto;
}

/* ================= EVENT DETAIL ================= */
.event-detail{padding:2rem 6vw 6rem;}
.event-detail .inner{max-width:760px; margin:0 auto;}
.event-detail .estatus{margin-bottom:1.2rem;}
.event-detail h1{font-size:clamp(2rem,4.6vw,2.9rem); margin-bottom:1rem;}
.event-meta{
  display:flex; flex-wrap:wrap; gap:1.6rem; margin:1.6rem 0 2.2rem;
  padding:1.4rem 1.6rem; background:var(--branco); border-radius:18px;
  box-shadow:0 16px 34px -24px rgba(62,74,46,.3);
}
.event-meta div{font-size:.92rem;}
.event-meta strong{display:block; color:var(--musgo); font-size:.78rem; text-transform:lowercase; letter-spacing:.05em; margin-bottom:.2rem;}
.event-detail .body p{margin-bottom:1.1rem;}
.event-detail .back-link{
  display:inline-block; margin-bottom:2rem; font-size:.9rem; font-weight:600; color:var(--musgo-2); text-decoration:none;
}
.event-detail .back-link:hover{color:var(--terra-dark);}

/* ================= FORM / INSCRIÇÃO ================= */
.form-section{padding:2rem 6vw 6rem;}
.form-card{
  max-width:700px; margin:0 auto;
  background:var(--branco);
  border-radius:28px;
  padding:2.6rem;
  box-shadow:0 30px 60px -30px rgba(62,74,46,.35);
  text-align:center;
}
.form-card h2{font-size:1.6rem; margin-bottom:.8rem;}
.form-card p{color:var(--musgo-2); margin-bottom:1.8rem;}
.form-card iframe{width:100%; min-height:640px; border:none; border-radius:16px;}
.form-note{
  font-size:.85rem; color:var(--musgo-2); margin-top:1.4rem;
  background:var(--linho-2); padding:.9rem 1.1rem; border-radius:12px; text-align:left;
}

/* ---- one-question-at-a-time registration wizard ---- */
.wiz-card{
  text-align:left; max-width:760px;
  min-height:min(78vh, 640px);
  display:flex; flex-direction:column;
  padding:0; overflow:hidden;
  position:relative;
  scroll-margin-top:6rem;
}
.wiz-progressbar{height:4px; background:rgba(62,74,46,.12); flex-shrink:0;}
.wiz-progressbar-fill{
  height:100%; width:0%; background:var(--terra);
  transition:width .35s ease;
}
.wiz-slides{flex:1; display:flex; position:relative;}
.wiz-slide{
  display:none; flex-direction:column; justify-content:center;
  width:100%; padding:3rem 3.2rem;
}
.wiz-slide.wiz-anim-in{animation:wizSlideIn .4s cubic-bezier(.2,.7,.3,1);}
@keyframes wizSlideIn{
  from{opacity:0; transform:translateY(22px);}
  to{opacity:1; transform:translateY(0);}
}
.wiz-eyebrow{margin-bottom:1.1rem;}
.wiz-heading{
  font-size:clamp(1.35rem, 3vw, 1.85rem); line-height:1.3; margin-bottom:.6rem;
}
.wiz-subtitle{color:var(--musgo-2); font-size:.98rem; margin-bottom:1.2rem;}
.wiz-help{font-size:.9rem; color:var(--musgo-2); margin-bottom:1.2rem;}
.wiz-statement-help{
  color:var(--tinta); font-size:1.02rem; line-height:1.7; margin-top:.6rem; white-space:pre-line;
}
.wiz-declaration-lg{
  font-size:1.15rem; color:var(--tinta); line-height:1.55; margin-bottom:1.4rem;
}
.wiz-input-wrap{margin-top:.4rem;}
.wiz-input{
  width:100%; font-family:'IBM Plex Sans', sans-serif; font-size:1.2rem;
  padding:.6rem .2rem; border-radius:0;
  border:none; border-bottom:2px solid rgba(62,74,46,.25); background:transparent;
  color:var(--tinta);
}
.wiz-input:focus{outline:none; border-color:var(--terra);}
textarea.wiz-input{
  border:1.5px solid rgba(62,74,46,.25); border-radius:12px; padding:.8rem 1rem;
  resize:vertical; font-size:1.05rem;
}
.wiz-options{display:flex; flex-direction:column; gap:.7rem;}
.wiz-option{
  display:flex; align-items:center; gap:.9rem;
  padding:.85rem 1.1rem; border-radius:14px;
  border:1.5px solid rgba(62,74,46,.2); background:var(--linho);
  cursor:pointer; font-size:1rem;
  transition:border-color .15s ease, background .15s ease, transform .15s ease;
}
.wiz-option:hover{border-color:var(--terra); transform:translateX(2px);}
.wiz-option:has(input:checked){
  border-color:var(--terra); background:rgba(188,122,72,.12);
}
.wiz-option input{position:absolute; opacity:0; width:0; height:0;}
.wiz-option-badge{
  flex-shrink:0; width:26px; height:26px; border-radius:8px;
  background:rgba(62,74,46,.12); color:var(--musgo);
  display:flex; align-items:center; justify-content:center;
  font-size:.78rem; font-weight:700;
}
.wiz-option:has(input:checked) .wiz-option-badge{background:var(--terra); color:var(--branco);}
.wiz-option-agree{display:inline-flex;}
.wiz-option-agree input{
  position:static; opacity:1; width:18px; height:18px; accent-color:var(--terra); flex-shrink:0;
}
.wiz-agreeall{display:flex; flex-direction:column; gap:.9rem; margin-top:.4rem;}
.wiz-agreeall-item{
  display:flex; align-items:flex-start; gap:.7rem;
  font-size:.95rem; line-height:1.5; color:var(--tinta);
  padding:.7rem .9rem; border-radius:12px;
  border:1.5px solid rgba(62,74,46,.18); background:var(--linho);
}
.wiz-agreeall-item input{margin-top:.15rem;}
.wiz-agreeall-item:has(input:checked){border-color:var(--terra); background:rgba(188,122,72,.1);}
.wiz-slide-invalid .wiz-input,
.wiz-slide-invalid .wiz-option{border-color:var(--terra-dark);}
.wiz-nav{display:flex; align-items:center; gap:1.2rem; margin-top:2rem; flex-wrap:wrap;}
.wiz-hint{font-size:.82rem; color:var(--musgo-2);}
.wiz-submit-error{color:var(--terra-dark); font-size:.85rem; flex-basis:100%; margin:0;}
@media (max-width:640px){
  .wiz-slide{padding:2.2rem 1.6rem;}
}

/* ================= CTA ================= */
.cta-final{
  padding:7rem 6vw;
  text-align:center;
  background:var(--musgo);
  color:var(--linho);
  position:relative;
  overflow:hidden;
}
.cta-final::before{
  content:"";
  position:absolute; inset:0;
  background:radial-gradient(ellipse 60% 60% at 50% 0%, rgba(255,255,255,.08), transparent 70%);
}
.cta-final > *{position:relative; z-index:2;}
.cta-final h2{
  color:var(--branco);
  font-size:clamp(2.1rem, 5vw, 3.2rem);
  max-width:18ch; margin:0 auto 1.2rem;
}
.cta-final p{
  color:#DCE5C9; max-width:48ch; margin:0 auto 2.2rem; font-size:1.08rem;
}
.cta-final .btn-primary{background:var(--terra);}
.cta-final .btn-ghost{border-color:rgba(255,255,255,.5); color:var(--branco);}
.cta-final .btn-ghost:hover{background:rgba(255,255,255,.08);}

/* ================= FOOTER ================= */
footer{
  padding:3.5rem 6vw 2.2rem;
  background:var(--musgo);
  color:#B9C6A2;
  font-family:'IBM Plex Sans', sans-serif;
  font-size:.85rem;
}
.footer-inner{
  max-width:var(--max); margin:0 auto;
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:2rem;
  padding-bottom:2rem; margin-bottom:1.6rem;
  border-bottom:1px solid rgba(185,198,162,.2);
}
.footer-inner .handle{color:var(--branco); font-weight:600;}
.footer-links{display:flex; gap:1.4rem; flex-wrap:wrap;}
.footer-links a{text-decoration:none; color:#B9C6A2; transition:color .2s;}
.footer-links a:hover{color:var(--branco);}
.footer-bottom{max-width:var(--max); margin:0 auto; display:flex; justify-content:space-between; flex-wrap:wrap; gap:.6rem; opacity:.75;}
