@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@400;600;700&family=Inter:wght@300;400;500;600&display=swap');

/* ==========================================================
   OS ECOS DA CARNE — DESIGN SYSTEM
   Organização: tokens → layout → typography → components → sections → interactions
   ========================================================== */

:root{
  /* Colors */
  --color-wine-950:#160406;
  --color-wine-900:#220608;
  --color-wine-850:#2A0709;
  --color-wine-800:#3A0910;
  --color-wine-700:#56101D;
  --color-copper-500:#B8834A;
  --color-copper-400:#C69661;
  --color-copper-300:#D6AE84;
  --color-ivory-50:#F4EEDB;
  --color-ivory-100:#E9DEC6;
  --color-ivory-300:#CDBFA4;
  --color-ivory-500:#A7967D;
  --color-error:#f5b8b8;
  --color-ink:#0E0304;

  /* Aliases da paleta original para manutenção */
  --wine-950:var(--color-wine-950);
  --wine-900:var(--color-wine-900);
  --wine-850:var(--color-wine-850);
  --wine-800:var(--color-wine-800);
  --wine-700:var(--color-wine-700);
  --copper-500:var(--color-copper-500);
  --copper-400:var(--color-copper-400);
  --copper-300:var(--color-copper-300);
  --ivory-50:var(--color-ivory-50);
  --ivory-100:var(--color-ivory-100);
  --ivory-300:var(--color-ivory-300);
  --ivory-500:var(--color-ivory-500);
  --ink:var(--color-ink);

  /* Semantic colors */
  --bg-page:var(--color-wine-950);
  --text-strong:var(--color-ivory-50);
  --text-main:var(--color-ivory-100);
  --text-soft:var(--color-ivory-300);
  --text-muted:var(--color-ivory-500);
  --accent:var(--color-copper-400);
  --accent-soft:var(--color-copper-300);
  --line-soft:rgba(198,150,97,.12);
  --line-accent:rgba(198,150,97,.28);
  --surface:linear-gradient(180deg, rgba(244,238,219,.014), rgba(244,238,219,.007));
  --surface-card:linear-gradient(180deg, rgba(244,238,219,.016), rgba(244,238,219,.007));

  /* Ecos de fundo: vida nos círculos, sem clarear a página */
  --echo-red-1:rgba(86,16,29,.30);
  --echo-red-2:rgba(58,9,16,.26);
  --echo-red-3:rgba(122,18,18,.14);
  --echo-copper-1:rgba(198,150,97,.020);
  --echo-copper-2:rgba(198,150,97,.014);
  --echo-copper-3:rgba(214,174,132,.010);

  /* Width system */
  --w-xs:min(92vw, 420px);
  --w-sm:min(92vw, 640px);
  --w-md:min(92vw, 840px);
  --w-lg:min(92vw, 1140px);
  --w-prose:66ch;
  --w-prose-sm:54ch;

  /* Type scale */
  --font-display:'Oswald',sans-serif;
  --font-body:'Inter',system-ui,sans-serif;
  --fs-0:.72rem;
  --fs-1:.82rem;
  --fs-2:.94rem;
  --fs-3:1rem;
  --fs-4:clamp(1.05rem, .98rem + .28vw, 1.18rem);
  --fs-h3:clamp(1.42rem, 2vw, 1.95rem);
  --fs-h2:clamp(2rem, 3vw, 3rem);
  --fs-hero:clamp(4.1rem, 9vw, 7.6rem);

  /* Spacing scale */
  --s-1:clamp(.5rem, .45rem + .25vw, .75rem);
  --s-2:clamp(.8rem, .72rem + .4vw, 1.15rem);
  --s-3:clamp(1.3rem, 1.05rem + .8vw, 1.85rem);
  --s-4:clamp(2.1rem, 1.6rem + 1.4vw, 3rem);
  --s-5:clamp(3.4rem, 2.5rem + 2.4vw, 4.9rem);
  --s-6:clamp(5.5rem, 4.2rem + 3.4vw, 7.9rem);

  /* Radii and shadows */
  --r-sm:12px;
  --r-md:18px;
  --r-lg:28px;
  --shadow-soft:0 14px 36px rgba(0,0,0,.28);
  --shadow-deep:0 28px 80px rgba(0,0,0,.42);

  /* Motion */
  --ease:cubic-bezier(.22,.61,.36,1);
  --t-fast:200ms;
  --t-med:420ms;
  --stagger:20ms;
}

/* ==========================================================
   RESET / BASE
   ========================================================== */

*{box-sizing:border-box}
html{
  scroll-behavior:smooth;
  overflow-x:hidden;
  background:#100304;
}

body{
  margin:0;
  font-family:var(--font-body);
  color:var(--text-main);
  background:#100304;
  line-height:1.78;
  overflow-x:hidden;
  position:relative;
}

/*
   Fundo fixo estabilizado.
   Antes o body carregava vários gradientes e a .oedc-page tinha pseudo-elementos
   position:fixed; isso podia gerar blink/repaint durante rolagem rápida.
*/
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 18% 10%, rgba(86,16,29,.34), transparent 25%),
    radial-gradient(circle at 78% 16%, rgba(58,9,16,.30), transparent 28%),
    radial-gradient(circle at 50% 56%, rgba(122,18,18,.13), transparent 36%),
    radial-gradient(circle at -8% 42%, rgba(86,16,29,.22), transparent 34%),
    radial-gradient(circle at 108% 12%, rgba(122,18,18,.18), transparent 30%),
    linear-gradient(
      180deg,
      var(--color-wine-900) 0%,
      var(--color-wine-950) 46%,
      #100304 100%
    );
  transform:translateZ(0);
  will-change:transform;
}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
img{max-width:100%;display:block}
::selection{background:rgba(198,150,97,.22)}
:focus-visible{outline:2px solid rgba(214,174,132,.65);outline-offset:3px}

/* ==========================================================
   LAYOUT OBJECTS
   ========================================================== */

.oedc-page{
  position:relative;
  z-index:1;
  overflow:visible;
  overflow-x:clip;
  max-width:100%;
  isolation:isolate;
}

/* Os ecos fixos foram movidos para body::before para evitar falhas de repaint. */
.oedc-page::before,
.oedc-page::after{
  content:none;
  display:none;
}

.oedc-objects-container{width:var(--w-lg);margin:0 auto;position:relative;z-index:1}
.oedc-objects-container-sm{width:var(--w-sm)}
.oedc-objects-container-md{width:var(--w-md)}
.oedc-objects-container-lg{width:var(--w-lg)}

.oedc-objects-section{
  position:relative;
  padding:calc(var(--s-6) * .70) 0;
  border-top:0;
  overflow:hidden;
}
.oedc-objects-section-band{padding:calc(var(--s-5) * .70) 0}

.oedc-objects-section > .oedc-objects-container{position:relative;z-index:1}

.oedc-objects-stack{display:grid;gap:calc(var(--s-3) * 1.25)}
.oedc-objects-stack-sm{gap:1.25rem;margin-top:1rem}

.oedc-objects-grid{display:grid;gap:1.25rem}
.oedc-objects-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.oedc-objects-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}

/* ==========================================================
   TYPOGRAPHY
   ========================================================== */

.oedc-typo-eyebrow{
  display:inline-block;
  margin-bottom:1.1rem;
  font-size: .9rem; /* var(--fs-0); */
  font-weight:500;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--accent-soft);
}

.oedc-typo-h2{
  margin:0 0 1.15rem;
  font-family:var(--font-display);
  font-size:var(--fs-h2);
  font-weight:600;
  line-height:1.02;
  letter-spacing:-.01em;
  text-transform:uppercase;
  color:var(--text-strong);
}

.oedc-typo-h3{
  margin:0;
  font-family:var(--font-display);
  font-size:var(--fs-h3);
  font-weight:600;
  line-height:1.08;
  text-transform:uppercase;
  color:var(--text-strong);
  max-width:var(--w-prose);
}

.oedc-typo-h3-secondary{margin:2.7rem 0 1.2rem;max-width:28ch}

.oedc-typo-lead{
  margin:0;
  max-width:var(--w-prose);
  color:var(--text-main);
  font-size:var(--fs-4);
  line-height:1.85;
}

.oedc-typo-body{
  margin:0;
  color:var(--text-soft);
  font-size:var(--fs-3);
  line-height:1.82;
}

.oedc-typo-card-title{
  margin:0 0 .55rem;
  font-size:.98rem;
  font-weight:600;
  line-height:1.35;
  color:var(--text-strong);
}

.oedc-typo-side-note{
  align-self:start;
  margin:0;
  padding-top:.4rem;
  border-top:1px solid rgba(198,150,97,.34);
  max-width:25rem;
  color:var(--text-muted);
  font-size:.92rem;
  line-height:1.8;
}

.oedc-typo-number{
  display:block;
  margin-bottom:.6rem;
  font-family:var(--font-display);
  font-size:.9rem;
  font-weight:700;
  letter-spacing:.14em;
  color:var(--accent-soft);
}

.oedc-typo-prose{max-width:var(--w-prose)}
.oedc-typo-prose p{margin:0;color:var(--text-soft);font-size:var(--fs-3);line-height:1.92}
.oedc-typo-prose p + p{margin-top:1.05rem}

/* ==========================================================
   COMPONENTS
   ========================================================== */

.oedc-section-top{padding:22px 0 0;position:absolute;z-index:2}
.oedc-section-top-inner{display:flex;justify-content:space-between;align-items:center;gap:var(--s-2);min-height:54px}
.oedc-comps-brand{font-size:.76rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--text-soft)}

.oedc-comps-top-cta,
.oedc-comps-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  transition:transform var(--t-fast) var(--ease), background var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);
  letter-spacing:.08em;
  text-transform:uppercase;
  text-align:center;
}
.oedc-comps-top-cta{
  min-height:42px;
  padding:0 18px;
  border:1px solid rgba(233,222,198,.16);
  background:rgba(244,238,219,.018);
  color:var(--text-main);
  font-size:.78rem;
  font-weight:500;
}
.oedc-comps-top-cta:hover{transform:translateY(-1px);border-color:rgba(198,150,97,.42);background:rgba(244,238,219,.035)}

.oedc-comps-btn{
  min-height:50px;
  padding:0 1.4rem;
  border:1px solid transparent;
  cursor:pointer;
  white-space:normal;
  max-width:100%;
}
.oedc-comps-btn:hover{transform:translateY(-1px)}
.oedc-comps-btn-primary{
  background:linear-gradient(180deg, var(--color-copper-400), var(--color-copper-500));
  color:var(--color-ink);
  font-size:.82rem;
  font-weight:600;
  box-shadow:0 10px 28px rgba(184,131,74,.18);
}
.oedc-comps-btn-primary:hover{box-shadow:0 14px 34px rgba(184,131,74,.24)}
.oedc-comps-btn-secondary{
  border-color:rgba(233,222,198,.18);
  background:rgba(244,238,219,.018);
  color:var(--text-main);
  font-size:.8rem;
  font-weight:500;
}
.oedc-comps-btn-secondary:hover{border-color:rgba(198,150,97,.38);background:rgba(244,238,219,.032)}
.oedc-comps-btn-link{
  color:var(--text-soft);
  font-size:.79rem;
  font-weight:500;
  text-decoration:underline;
  text-decoration-color:rgba(198,150,97,.35);
  text-underline-offset:.35em;
}
.oedc-comps-btn-gold-ghost{
  width:auto;
  min-height:42px;
  padding:0 1rem;
  align-self:flex-start;
  border-color:rgba(198,150,97,.3);
  background:rgba(244,238,219,.018);
  color:var(--accent-soft);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.16em;
}
.oedc-comps-btn-gold-ghost:hover{
  background:linear-gradient(180deg, rgba(214,174,132,.10), rgba(86,16,29,.16));
  border-color:rgba(214,174,132,.58);
  color:var(--text-strong);
  box-shadow:0 0 0 1px rgba(214,174,132,.18),0 10px 26px rgba(184,131,74,.2);
}
.oedc-comps-btn-full{width:100%}

.oedc-comps-actions{display:flex;flex-wrap:wrap;gap:.9rem 1rem;align-items:center}
.oedc-comps-actions-hero{justify-content:center}
.oedc-comps-actions-center{justify-content:center;max-width:36rem;margin:0 auto}

.oedc-comps-panel,
.oedc-comps-card,
.oedc-comps-band,
.oedc-section-final-card,
.oedc-section-work-card,
.oedc-section-author-card,
.oedc-pll-download-modal-card,
.oedc-comps-faq-item{
  position:relative;
  border:1px solid var(--line-soft);
  background:var(--surface);
  box-shadow:var(--shadow-soft);
  /* Evita recomposição pesada durante scroll rápido. */
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.oedc-comps-panel{border-radius:var(--r-lg);padding:clamp(1.5rem,2vw,2rem)}
.oedc-comps-card{border-radius:20px;padding:1.25rem 1.2rem;min-height:100%;background:var(--surface-card)}
.oedc-comps-card-support{background:linear-gradient(180deg, rgba(244,238,219,.022), rgba(244,238,219,.012));border-color:rgba(198,150,97,.10)}
.oedc-comps-card-numbered{display:flex;flex-direction:column;gap:.4rem}

.oedc-comps-section-head{display:grid;gap:min(5vw,4rem);margin-bottom:calc(var(--s-3) * 1.12)}
.oedc-comps-section-head-split{grid-template-columns:minmax(0,1fr) minmax(0,.5fr);align-items:start}
.oedc-comps-section-head-solo{grid-template-columns:1fr;gap:.85rem}

.oedc-comps-more{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  margin-top:1rem;
  padding:0 0 .28rem;
  border:0;
  background:none;
  color:var(--accent-soft);
  font-size:.77rem;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  cursor:pointer;
}
.oedc-comps-more::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(198,150,97,.85) 18%, rgba(198,150,97,.18) 82%, transparent);
  transform-origin:left center;
  transform:scaleX(.92);
  opacity:.82;
  transition:transform var(--t-fast) var(--ease), opacity var(--t-fast) var(--ease);
}
.oedc-comps-more:hover::after{
  transform:scaleX(1);
  opacity:1;
}

.oedc-comps-expand{
  display:grid;
  grid-template-rows:0fr;
  opacity:0;
  transform:translateY(8px);
  transition:grid-template-rows var(--t-fast) var(--ease), opacity var(--t-fast) var(--ease), transform var(--t-fast) var(--ease);
  margin-top:0;
}
.oedc-comps-expand > *{overflow:hidden}
.oedc-comps-expand.oedc-states-open{
  grid-template-rows:1fr;
  opacity:1;
  transform:translateY(0);
  margin-top:1rem;
}

.oedc-comps-pull{
  margin:0;
  max-width:var(--w-prose);
  padding:1.25rem 0 1.25rem 1.35rem;
  border-left:2px solid rgba(198,150,97,.72);
  font-family:var(--font-display);
  font-size:clamp(1.45rem,2vw,2rem);
  font-weight:600;
  line-height:1.18;
  color:var(--text-strong);
}

.oedc-comps-band{
  border-radius:34px;
  padding:clamp(1.8rem,2.6vw,2.7rem);
  border-color:rgba(198,150,97,.12);
  background:
    radial-gradient(circle at 50% 50%, rgba(86,16,29,.13), transparent 48%),
    linear-gradient(180deg, rgba(13,3,4,.82), rgba(26,5,7,.96));
  box-shadow:var(--shadow-deep);
  text-align:center;
}
.oedc-comps-band .oedc-typo-h2{margin-inline:auto;max-width:24ch}
.oedc-comps-band .oedc-typo-body{max-width:34rem;margin:0 auto 1.1rem}

.oedc-comps-list-card{
  display:flex;
  gap:.8rem;
  align-items:flex-start;
  padding:1rem 1rem 1rem 1.05rem;
  border-radius:18px;
  border:1px solid rgba(198,150,97,.12);
  background:rgba(244,238,219,.012);
}
.oedc-comps-list-card span{flex:0 0 auto;color:var(--accent-soft);font-size:.8rem;line-height:1.2;padding-top:.25rem}
.oedc-comps-list-card p{margin:0;color:var(--text-soft);font-size:.97rem;line-height:1.72}

/* ==========================================================
   HERO
   ========================================================== */

.oedc-section-hero{padding:calc(var(--s-4) * .70) 0 calc(var(--s-6) * .665)}
.oedc-section-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,.62fr);gap:min(5vw,4.8rem);align-items:center}
.oedc-section-hero-copy{max-width:40rem;text-align:center;display:grid;justify-items:center}
.oedc-section-hero-identity{display:grid;justify-items:center}
.oedc-section-hero-author{margin-bottom:var(--s-2)}
.oedc-section-hero-title{
  margin:0 0 .9rem;
  font-family:var(--font-display);
  font-size:var(--fs-hero);
  font-weight:700;
  line-height:.9;
  text-transform:uppercase;
  letter-spacing:-.02em;
  color:var(--text-strong);
  text-shadow:0 4px 18px rgba(0,0,0,.22);
}
.oedc-section-hero-subtitle{
  margin:0 0 var(--s-3);
  max-width:fit-content;
  color:var(--text-main);
  font-size:clamp(1.1rem,1rem + .5vw,1.45rem);
  line-height:1.28;
  margin-top: 1rem;
}
.oedc-section-hero-divider{
  width:min(22rem,55vw);
  height:1px;
  margin:0 auto var(--s-3);
  background:linear-gradient(90deg, transparent, rgba(198,150,97,.85) 18%, rgba(198,150,97,.18) 82%, transparent);
}

.oedc-comps-slider{
  width:100%;
  padding:0 clamp(1rem,3vw,2rem);
  max-width:34rem;
  min-height:clamp(188px,18vw,230px);
  min-width:0;
  margin:0 0 var(--s-4);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.oedc-comps-slider-viewport{position:relative;min-height:clamp(155px,14vw,190px);overflow:hidden;min-width:0}
.oedc-comps-slider-slide{
  position:absolute;
  inset:0;
  opacity:0;
  transform:translateX(28px);
  transition:opacity .48s var(--ease), transform .48s var(--ease);
  pointer-events:none;
}
.oedc-comps-slider-slide.oedc-states-active{opacity:1;transform:translateX(0);pointer-events:auto}
.oedc-comps-slider-slide.oedc-states-leaving{opacity:0;transform:translateX(-28px)}
.oedc-comps-slider-title{margin:0 0 .55rem;color:var(--text-strong);font-size:1.02rem;font-weight:500;line-height:1.55}
.oedc-comps-slider-copy{margin:0;color:var(--text-soft);font-size:var(--fs-3);font-weight:300;line-height:1.95}
.oedc-comps-slider-dots{display:flex;justify-content:center;gap:.55rem;margin-top:1rem}
.oedc-comps-slider-dot{width:10px;height:10px;border-radius:50%;border:1px solid rgba(198,150,97,.5);background:transparent;padding:0;min-height:0;cursor:pointer}
.oedc-comps-slider-dot.oedc-states-active{background:var(--accent-soft)}

.oedc-section-hero-visual{position:relative;display:grid;place-items:center;min-height:clamp(26rem,48vw,39rem)}
.oedc-section-hero-visual::before,.oedc-section-hero-visual::after{content:"";position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none}
.oedc-section-hero-visual::before{width:min(31rem,68vw);height:min(31rem,68vw);border:1px solid rgba(86,16,29,.12);box-shadow:0 0 0 22px rgba(86,16,29,.090),0 0 0 62px rgba(122,18,18,.052),0 0 0 112px rgba(58,9,16,.030)}
.oedc-section-hero-visual::after{width:min(24rem,50vw);height:min(24rem,50vw);border:1px solid rgba(122,18,18,.075)}
.oedc-comps-book-card{
  position:relative;
  width:min(100%,360px);
  aspect-ratio:.68;
  border-radius:12px;
  overflow:hidden;
  background-color:#2A0709;
  background-image:url('../images/livro-os-ecos-da-carne.png');
  background-repeat:no-repeat;
  background-position:center center;
  background-size:cover;
  border:1px solid rgba(214,174,132,.12);
  box-shadow:var(--shadow-deep);
}
.oedc-comps-book-card::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg, rgba(0,0,0,.28) 0%, rgba(0,0,0,.10) 6%, rgba(255,255,255,.03) 10%, rgba(0,0,0,0) 18%, rgba(0,0,0,0) 100%);pointer-events:none}
.oedc-comps-book-card::after{content:"";position:absolute;top:0;right:0;width:14%;height:100%;background:linear-gradient(90deg, rgba(42,7,9,0) 0%, rgba(42,7,9,.18) 35%, rgba(42,7,9,.42) 100%);pointer-events:none}
.oedc-comps-book-card-spine{position:absolute;left:0;top:0;bottom:0;width:4.2%;background:linear-gradient(180deg, rgba(10,2,3,.55), rgba(25,5,7,.72));box-shadow:inset -1px 0 0 rgba(255,255,255,.05), inset -6px 0 10px rgba(0,0,0,.22)}

/* ==========================================================
   DA OBRA / WORK CARDS
   ========================================================== */

.oedc-section-work-stack{display:grid;gap:1.25rem}
.oedc-section-work-tier{display:grid;gap:1.25rem}
.oedc-section-work-tier-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.oedc-section-work-tier-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.oedc-section-work-card{
  border-radius:20px;
  padding:1.25rem 1.2rem;
  display:flex;
  flex-direction:column;
  gap:.85rem;
  background:var(--surface-card);
}
.oedc-section-work-card-head{display:grid;gap:.65rem;justify-items:start}
.oedc-section-work-card-label{
  display:inline-flex;
  padding:.32rem .7rem;
  border-radius:999px;
  border:1px solid rgba(198,150,97,.28);
  background:rgba(198,150,97,.08);
  color:var(--accent-soft);
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.oedc-section-work-card-origin{
  display:block;
  font-size:.68rem;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--accent-soft);
  opacity:.92;
}
.oedc-section-work-card-quote{
  margin:0;
  color:var(--text-strong);
  font-weight:300;
  font-style:italic;
  line-height:1.78;
  max-width:32ch;
}
.oedc-section-work-card-body{
  margin:0;
  color:var(--text-soft);
  font-size:.94rem;
  line-height:1.76;
  max-width:44ch;
}
.oedc-section-work-card-hero{
  padding:1.65rem 1.45rem;
  border-color:rgba(198,150,97,.36);
  background:
    radial-gradient(circle at 80% 12%, rgba(86,16,29,.12), transparent 22%),
    linear-gradient(180deg, rgba(244,238,219,.04), rgba(244,238,219,.015));
  box-shadow:0 18px 42px rgba(0,0,0,.22);
}
.oedc-section-work-card-hero .oedc-section-work-card-quote{font-size:clamp(1.18rem,1.35vw,1.36rem);max-width:36ch}
.oedc-section-work-card-hero .oedc-section-work-card-body{font-size:.98rem;max-width:56ch}
.oedc-section-work-card-mid .oedc-section-work-card-quote{font-size:1.06rem}
.oedc-section-work-card-small .oedc-section-work-card-quote{font-size:1rem;max-width:28ch}
.oedc-section-work-card-small .oedc-section-work-card-body{font-size:.92rem}

/* ==========================================================
   AUTHOR
   ========================================================== */

.oedc-section-author-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:1.25rem;align-items:start}
.oedc-section-author-card{
  padding:1.35rem 1.25rem;
  border-radius:20px;
  border:1px solid var(--line-soft);
  background:var(--surface-card);
}
.oedc-section-author-card-head{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}
.oedc-section-author-card-photo{width:112px;height:112px;border-radius:50%;object-fit:cover;border:1px solid rgba(198,150,97,.22);box-shadow:var(--shadow-soft);flex:0 0 112px}
.oedc-section-author-card-name{margin:0;font-family:var(--font-display);font-size:2rem;font-weight:600;color:var(--text-strong);text-transform:uppercase;line-height:1}
.oedc-section-author-aside{display:grid;gap:1.25rem}

/* ==========================================================
   FORM / COUNTRY PICKER
   ========================================================== */

.oedc-section-form-panel{padding-block:clamp(2rem,2.6vw,3rem)}
.oedc-section-form-head{max-width:38rem;text-align:center;margin:0 auto 1.7rem}
.oedc-pll-form{width:min(100%,560px);max-width:100%;margin:0 auto;display:grid;gap:.9rem;min-width:0}
.oedc-pll-field{display:grid;gap:.35rem;min-width:0}
.oedc-pll-field-label{font-size:.75rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted)}
.oedc-pll-field-input,.oedc-pll-country-picker-button,.oedc-pll-phone{
  width:100%;
  max-width:100%;
  min-width:0;
  min-height:54px;
  border-radius:16px;
  border:1px solid rgba(233,222,198,.14);
  background:rgba(244,238,219,.026);
  color:var(--text-strong);
}
.oedc-pll-field-input{padding:0 1rem}
.oedc-pll-field-input::placeholder,.oedc-pll-phone input::placeholder{color:rgba(205,191,164,.48)}
.oedc-pll-field-input:focus,.oedc-pll-phone:focus-within,.oedc-pll-country-picker-button:focus{outline:none;border-color:rgba(198,150,97,.48);box-shadow:0 0 0 1px rgba(198,150,97,.18)}
.oedc-pll-field-error{display:block;min-height:1.5em;color:var(--color-error);font-size:.83rem;line-height:1.5;opacity:0}
.oedc-pll-field-error.oedc-pll-states-error{opacity:1}
.oedc-pll-field.oedc-pll-states-error .oedc-pll-field-input,
.oedc-pll-field.oedc-pll-states-error .oedc-pll-country-picker-button,
.oedc-pll-field.oedc-pll-states-error .oedc-pll-phone{
  border-color:rgba(206,92,92,.62);
  box-shadow:0 0 0 1px rgba(206,92,92,.18);
}
.oedc-pll-consent.oedc-pll-states-error{
  color:var(--color-error);
}
.oedc-pll-phone-grid{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1fr);gap:.75rem;align-items:start;min-width:0}

.oedc-pll-country-picker{position:relative;min-width:0;max-width:100%}
.oedc-pll-country-picker-button{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto auto;
  align-items:center;
  gap:.55rem;
  padding:0 .95rem;
  cursor:pointer;
  text-align:left;
}
.oedc-pll-country-picker-flag{font-size:1.2rem;line-height:1}
.oedc-pll-country-picker-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.oedc-pll-country-picker-code{color:var(--accent-soft);font-weight:600}
.oedc-pll-country-picker-chev{color:var(--text-muted)}
.oedc-pll-country-picker-menu{
  position:absolute;
  z-index:30;
  top:calc(100% + .45rem);
  left:0;
  right:0;
  display:none;
  max-height:280px;
  overflow:auto;
  padding:.4rem;
  border-radius:16px;
  border:1px solid rgba(198,150,97,.28);
  background:linear-gradient(180deg, var(--color-wine-800), var(--color-wine-950));
  box-shadow:var(--shadow-deep);
}
.oedc-pll-country-picker.oedc-pll-states-open .oedc-pll-country-picker-menu{display:grid;gap:.25rem}
.oedc-pll-country-picker-option{
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:.75rem;
  padding:.7rem .75rem;
  border:0;
  border-radius:12px;
  background:transparent;
  color:var(--text-main);
  cursor:pointer;
  text-align:left;
}
.oedc-pll-country-picker-option:hover,
.oedc-pll-country-picker-option.oedc-pll-states-selected{
  background:rgba(86,16,29,.28);
  color:var(--text-strong);
}
.oedc-pll-country-picker-menu span{color:var(--accent-soft);font-weight:600}

.oedc-pll-phone{display:flex;align-items:center;gap:.55rem;padding:0 .9rem}
.oedc-pll-phone-prefix{color:var(--accent-soft);font-weight:600;white-space:nowrap}
.oedc-pll-phone input{flex:1 1 auto;width:100%;border:0;outline:0;background:transparent;color:var(--text-strong);min-width:0}
.oedc-pll-phone-custom-code{display:none;width:76px;max-width:76px;flex:0 0 76px;border-right:1px solid rgba(233,222,198,.12)!important;padding-right:.55rem}
.oedc-pll-phone.oedc-pll-states-custom .oedc-pll-phone-custom-code{display:block}
.oedc-pll-message{
  display:block;
  min-height:0;
  margin:0;
  padding:.9rem 1rem;
  border-radius:16px;
  background:rgba(244,238,219,.04);
  color:var(--text-soft);
  font-size:.9rem;
  line-height:1.65;
}
.oedc-pll-message:empty{display:none}
.oedc-pll-message.oedc-pll-states-error{
  background:rgba(122,25,34,.34);
  color:#f5c2c7;
  border:1px solid rgba(206,92,92,.22);
}
.oedc-pll-message.oedc-pll-states-success{
  background:rgba(34,94,68,.24);
  color:#cfe8dc;
  border:1px solid rgba(101,183,144,.2);
}
.oedc-pll-submit[disabled]{
  opacity:.78;
  cursor:wait;
  transform:none;
  box-shadow:0 10px 28px rgba(184,131,74,.12);
}
.oedc-pll-form-note{margin:.2rem auto 0;max-width:28rem;text-align:center;font-size:.82rem;color:var(--text-muted);line-height:1.72}

/* ==========================================================
   FAQ / FINAL / MODAL
   ========================================================== */

.oedc-comps-faq{display:grid;gap:.875rem}
.oedc-comps-faq-item{overflow:hidden;border-radius:18px;background:rgba(244,238,219,.012);transition:border-color var(--t-fast) var(--ease), background var(--t-fast) var(--ease)}
.oedc-comps-faq-item.oedc-states-open{border-color:rgba(198,150,97,.18);background:rgba(244,238,219,.028)}
.oedc-comps-faq-question{
  width:100%;
  padding:1rem 1.05rem;
  background:none;
  border:0;
  color:var(--text-strong);
  font-size:.96rem;
  font-weight:500;
  text-align:left;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:1rem;
  cursor:pointer;
}
.oedc-comps-faq-icon{color:var(--accent-soft);font-size:1.05rem;transition:transform var(--t-fast) var(--ease)}
.oedc-comps-faq-answer{
  max-height:0;
  overflow:hidden;
  padding:0 1.05rem;
  color:var(--text-soft);
  font-size:.93rem;
  line-height:1.82;
  transition:max-height var(--t-fast) var(--ease), padding var(--t-fast) var(--ease);
}
.oedc-comps-faq-item.oedc-states-open .oedc-comps-faq-answer{max-height:520px;padding:0 1.05rem 1.05rem}
.oedc-comps-faq-item.oedc-states-open .oedc-comps-faq-icon{transform:rotate(45deg)}

.oedc-section-final-card{
  padding:clamp(2.4rem,4vw,4rem);
  border-radius:36px;
  border-color:rgba(198,150,97,.12);
  background:
    radial-gradient(circle at 50% 50%, rgba(86,16,29,.15), transparent 38%),
    linear-gradient(180deg, rgba(15,3,4,.88), rgba(21,5,7,.98));
  text-align:center;
  box-shadow:var(--shadow-deep);
}
.oedc-section-final-eye{display:block;margin-bottom:1rem;font-size:.75rem;font-weight:500;letter-spacing:.25em;text-transform:uppercase;color:var(--accent-soft)}
.oedc-section-final-title{margin:0 0 1rem;font-family:var(--font-display);font-size:clamp(2.5rem,6vw,4.25rem);line-height:.95;color:var(--text-strong);text-transform:uppercase}
.oedc-section-final-copy{max-width:32rem;margin:0 auto 1.8rem;font-size:1rem;font-weight:300;line-height:1.9;font-style:italic;color:var(--text-soft)}

.oedc-section-footer{padding:1.4rem 0 3.15rem;border-top:1px solid rgba(198,150,97,.16)}
.oedc-section-footer-inner{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;color:var(--text-muted)}

.oedc-pll-download-modal{position:fixed;inset:0;background:rgba(8,2,3,.68);display:none;align-items:center;justify-content:center;padding:1rem;z-index:40}
.oedc-pll-download-modal.oedc-pll-states-open{display:flex}
.oedc-pll-download-modal-card{width:min(92vw,380px);padding:1.8rem 1.4rem;text-align:center;border-radius:var(--r-lg)}
.oedc-pll-download-loader{width:54px;height:54px;border-radius:50%;margin:0 auto 1rem;border:3px solid rgba(214,174,132,.18);border-top-color:var(--accent-soft);animation:spin .9s linear infinite}
.oedc-pll-download-title{margin:0 0 .5rem;font-family:var(--font-display);font-size:1.85rem;line-height:1;text-transform:uppercase;color:var(--text-strong)}
.oedc-pll-download-copy{margin:0;color:var(--text-soft);font-size:.95rem;line-height:1.75}
@keyframes spin{to{transform:rotate(360deg)}}

/* ==========================================================
   INTERACTIONS / REVEAL
   Conteúdo visível por padrão: nenhum card fica preso em opacity 0.
   O JS só aplica movimento leve quando estiver ativo.
   ========================================================== */

.oedc-hooks-reveal,
.oedc-hooks-reveal-block,
.oedc-hooks-reveal-block > *{
  opacity:1;
  transform:none;
}

.oedc-js-enabled .oedc-page .oedc-hooks-reveal,
.oedc-js-enabled .oedc-page .oedc-hooks-reveal-block{
  opacity:1;
  transform:translateY(12px);
  transition:transform var(--t-fast) var(--ease);
  will-change:transform;
}

.oedc-js-enabled .oedc-page .oedc-hooks-reveal.oedc-states-visible,
.oedc-js-enabled .oedc-page .oedc-hooks-reveal-block.oedc-states-visible{
  opacity:1;
  transform:translateY(0);
}

.oedc-js-enabled .oedc-page .oedc-hooks-reveal-block > *{
  opacity:1;
  transform:none;
  transition:none;
}

/* ==========================================================
   CANONICAL BEHAVIOR / ONE PAGE INTEGRATIONS
   Mantém a Frente 1 isolada e compatível com o futuro plugin oedc-pll.
   ========================================================== */

.oedc-page .oedc-objects-section{border-top:0;overflow:visible}
.oedc-page .oedc-objects-section::before,
.oedc-page .oedc-objects-section::after{content:none;display:none}

.oedc-page .oedc-section-work-card-hero{text-align:center;align-items:center;padding-block:clamp(1.8rem,3vw,2.8rem)}
.oedc-page .oedc-section-work-card-hero .oedc-section-work-card-head{justify-items:center}
.oedc-page .oedc-section-work-card-hero .oedc-section-work-card-quote{margin-inline:auto;max-width:40ch}
.oedc-page .oedc-section-work-card-hero .oedc-section-work-card-body{margin-inline:auto;max-width:58ch}
.oedc-page .oedc-section-work-card-hero .oedc-comps-btn{align-self:center}

.oedc-page .oedc-pll-form-one-page{width:100%;max-width:100%;min-width:0}
.oedc-page .oedc-pll-hooks-form{position:relative;max-width:100%;min-width:0}
.oedc-page .oedc-pll-form *{box-sizing:border-box}
.oedc-page .oedc-pll-field-error.oedc-pll-states-error{opacity:1}
.oedc-page .oedc-pll-consent{display:flex;gap:.7rem;align-items:flex-start;margin:.35rem 0 0;color:var(--text-soft);font-size:.86rem;line-height:1.65;max-width:100%;min-width:0}
.oedc-page .oedc-pll-consent-input{margin-top:.28rem;accent-color:var(--color-copper-400);flex:0 0 auto}
.oedc-page .oedc-pll-submit{display:inline-flex;align-items:center;justify-content:center;width:100%;max-width:100%;min-height:50px;border:0;border-radius:999px;background:linear-gradient(180deg,var(--color-copper-400),var(--color-copper-500));color:var(--color-ink);font-size:.82rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;text-align:center;cursor:pointer;box-shadow:0 10px 28px rgba(184,131,74,.18);transition:transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}
.oedc-page .oedc-pll-submit:hover{transform:translateY(-1px);box-shadow:0 14px 34px rgba(184,131,74,.24)}

.oedc-utils-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.oedc-page .oedc-pll-download-modal.oedc-pll-states-open{display:flex}
.oedc-page .oedc-pll-download-fallback{display:inline-flex;margin-top:1rem;color:var(--accent-soft);text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;font-weight:600}

.oedc-comps-back-top{position:fixed;right:1rem;bottom:1rem;z-index:45;min-height:42px;padding:0 1rem;border-radius:999px;border:1px solid rgba(198,150,97,.3);background:rgba(22,4,6,.82);color:var(--accent-soft);opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease);cursor:pointer}
.oedc-comps-back-top.oedc-states-visible{opacity:1;pointer-events:auto;transform:translateY(0)}

.oedc-comps-scroll-progress{position:fixed;top:0;left:0;width:100%;height:4px;z-index:999999;pointer-events:none;background:rgba(14,3,4,.92);box-shadow:0 1px 0 rgba(122,18,18,.34),0 8px 22px rgba(0,0,0,.26);opacity:.98}
.oedc-comps-scroll-progress::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 0% 50%, rgba(122,18,18,.30), transparent 30%),linear-gradient(90deg, rgba(86,16,29,.18), rgba(244,238,219,0));opacity:.78}
.oedc-comps-scroll-progress-fill{position:relative;display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left center;background:linear-gradient(90deg,var(--color-wine-700) 0%,#7A1212 36%,var(--color-wine-700) 72%,var(--color-copper-500) 100%);box-shadow:0 0 7px rgba(122,18,18,.58),0 0 14px rgba(86,16,29,.46),0 0 18px rgba(198,150,97,.10);border-radius:0 999px 999px 0;transition:transform 80ms linear}
.oedc-comps-scroll-progress-fill::after{content:"";position:absolute;top:50%;right:0;width:9px;height:9px;border-radius:50%;transform:translate(45%, -50%);background:#7A1212;box-shadow:0 0 9px rgba(122,18,18,.85),0 0 16px rgba(198,150,97,.22);opacity:.92}

.skip-link.screen-reader-text,
.catchProgressbar{display:none}

.oedc-page .oedc-hooks-reveal,
.oedc-page .oedc-hooks-reveal-block,
.oedc-page .oedc-hooks-reveal-block > *{opacity:1!important}

/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media (max-width:980px){
  .oedc-section-hero-grid,
  .oedc-comps-section-head-split,
  .oedc-section-author-layout,
  .oedc-objects-grid-2,
  .oedc-objects-grid-3,
  .oedc-section-work-tier-2,
  .oedc-section-work-tier-3,
  .oedc-pll-phone-grid{grid-template-columns:1fr}

  .oedc-section-hero-copy{max-width:none}
  .oedc-section-hero-visual{order:-1;min-height:26rem;margin-bottom:.6rem}
  .oedc-typo-side-note{max-width:none}

  .oedc-pll-form,
  .oedc-page .oedc-pll-form{width:min(100%,560px);max-width:100%;min-width:0}
}

@media (max-width:640px){
  :root{--fs-hero:clamp(3.55rem,16vw,4.8rem)}

  .oedc-section-top{padding-top:14px}
  .oedc-section-hero{padding-top:.7rem;padding-bottom:4.1rem}
  .oedc-section-hero-title{font-size:var(--fs-hero)}
  .oedc-section-hero-subtitle{max-width:20ch}
  .oedc-section-hero-author{font-size:.78rem}

  .oedc-comps-slider{width:100%;max-width:100%;min-height:clamp(220px,60vw,270px);padding-inline:clamp(.75rem,4vw,1.1rem);margin-bottom:var(--s-4)}
  .oedc-comps-slider-viewport{min-height:clamp(178px,50vw,220px)}
  .oedc-comps-slider-title{font-size:clamp(.98rem,4.1vw,1.04rem);line-height:1.5}
  .oedc-comps-slider-copy{font-size:clamp(.94rem,3.8vw,1rem);line-height:1.82;overflow-wrap:normal}
  .oedc-comps-slider-dots{margin-top:.85rem}

  .oedc-section-hero-visual{min-height:22rem}
  .oedc-comps-book-card{width:min(78vw,330px)}

  .oedc-comps-actions{display:grid;grid-template-columns:1fr;max-width:320px;width:100%;min-width:0}
  .oedc-comps-btn{width:100%;padding-inline:1.05rem}
  .oedc-comps-btn-link{justify-content:flex-start;padding-left:0;min-height:auto}

  .oedc-section-author-card-photo{width:88px;height:88px;flex-basis:88px}
  .oedc-section-author-card-name{font-size:1.72rem}

  .oedc-section-form-panel{padding-inline:clamp(1rem,4vw,1.25rem)}
  .oedc-pll-form,
  .oedc-page .oedc-pll-form{width:100%;max-width:100%;min-width:0;overflow:visible}
  .oedc-pll-field,
  .oedc-pll-phone-grid,
  .oedc-pll-country-picker,
  .oedc-pll-phone,
  .oedc-pll-field-input,
  .oedc-pll-country-picker-button,
  .oedc-page .oedc-pll-submit{width:100%;max-width:100%;min-width:0}
  .oedc-pll-country-picker-button{grid-template-columns:auto minmax(0,1fr) auto auto;gap:.45rem;padding-inline:.78rem}
  .oedc-pll-country-picker-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .oedc-pll-country-picker-code{font-size:.88rem;white-space:nowrap}
  .oedc-pll-country-picker-chev{font-size:.86rem}
  .oedc-pll-phone{padding-inline:.78rem;gap:.45rem}
  .oedc-pll-phone-prefix{font-size:.92rem}
  .oedc-pll-phone input{width:100%;min-width:0}
  .oedc-pll-phone-custom-code{width:68px;max-width:68px;flex-basis:68px}
  .oedc-pll-consent{font-size:.82rem}

  .oedc-section-footer{padding-bottom:6rem}
  .oedc-comps-scroll-progress{height:3px}
  .oedc-comps-scroll-progress-fill::after{width:7px;height:7px}
}

@media (max-width:420px) and (orientation:portrait){
  .oedc-section-form-panel{padding-inline:clamp(.9rem,4vw,1rem)}
  .oedc-pll-country-picker-button{padding-inline:.68rem;gap:.38rem}
  .oedc-pll-country-picker-code{font-size:.84rem}
  .oedc-pll-phone{padding-inline:.68rem}
  .oedc-pll-phone-custom-code{width:62px;max-width:62px;flex-basis:62px}
  .oedc-comps-slider{min-height:clamp(230px,68vw,286px)}
  .oedc-comps-slider-viewport{min-height:clamp(192px,58vw,236px)}
}

@media (max-width:900px) and (orientation:landscape){
  .oedc-comps-slider{min-height:clamp(170px,26vw,220px)}
  .oedc-comps-slider-viewport{min-height:clamp(145px,20vw,180px)}
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
  .oedc-hooks-reveal,
  .oedc-hooks-reveal-block > *,
  .oedc-comps-slider-slide{opacity:1!important;transform:none!important}
  .oedc-comps-scroll-progress-fill{transition:none!important}
}
