/* ebook.symgente.com.br — public site styles.
   Values mirror the original Tailwind build (breakpoints sm 640 / md 768 / lg 1024). */

/* ---------- Fonts ---------- */
@font-face {
  font-family: "Outfit";
  src: url("../fonts/outfit-latin-var.woff2") format("woff2");
  font-weight: 300 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Playfair Display";
  src: url("../fonts/playfair-latin-var.woff2") format("woff2");
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ---------- Tokens ---------- */
:root {
  --background: 350 30% 96%;
  --foreground: 350 20% 15%;
  --primary: 38 65% 50%;
  --primary-foreground: 0 0% 100%;
  --muted-foreground: 350 15% 45%;
  --border: 350 25% 88%;
  --destructive: 0 72% 45%;
  --success: 142 60% 32%;
  --rose-medium: 350 45% 85%;
  --rose-dark: 350 40% 75%;
  --gold: 38 70% 55%;
  --gold-dark: 38 75% 40%;
  --gold-ink: 32 80% 28%;        /* AA-safe gold for small text/links added in the rebuild */
  --glass-bg: 350 30% 98% / .7;
  --glass-border: 350 30% 90% / .5;

  --font-body: "Outfit", system-ui, sans-serif;
  --font-display: "Playfair Display", serif;

  --gold-gradient: linear-gradient(135deg, #dda23c, #b8732e, #dda23c);
  --gold-fill: linear-gradient(to bottom right, hsl(var(--gold)), hsl(var(--gold-dark)));
  --gold-fill-x: linear-gradient(to right, hsl(var(--gold)), hsl(var(--gold-dark)));

  --ease-reveal: cubic-bezier(.16, 1, .3, 1);
  --ease-std: cubic-bezier(.4, 0, .2, 1);

  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);
  --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);
  --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / .25);

  --radius-lg: .5rem;
  --radius-xl: .75rem;
  --radius-2xl: 1rem;
  --radius-3xl: 1.5rem;
}

/* ---------- Base ---------- */
*, ::before, ::after { box-sizing: border-box; border: 0 solid hsl(var(--border)); }
html {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  font-family: var(--font-body);
  -webkit-tap-highlight-color: transparent;
  scroll-behavior: smooth;
}
body { margin: 0; background-color: hsl(var(--background)); color: hsl(var(--foreground)); }
h1, h2, h3, p, blockquote, figure, ul { margin: 0; }
h1, h2, h3 { font-size: inherit; font-weight: inherit; }
ul { list-style: none; padding: 0; }
a { color: inherit; text-decoration: inherit; }
strong { font-weight: bolder; }
img, svg { display: block; vertical-align: middle; }
img { max-width: 100%; height: auto; }
button, input { font: inherit; color: inherit; margin: 0; }
button { background: transparent; cursor: pointer; padding: 0; }
:focus-visible { outline: 2px solid hsl(var(--gold-dark)); outline-offset: 2px; }

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.skip-link { position: absolute; left: 1rem; top: -4rem; z-index: 200; background: hsl(var(--foreground)); color: #fff; padding: .5rem 1rem; border-radius: var(--radius-lg); }
.skip-link:focus { top: 1rem; }

/* ---------- Utilities ---------- */
.icon { flex-shrink: 0; }
.icon--16 { width: 1rem; height: 1rem; }
.icon--20 { width: 1.25rem; height: 1.25rem; }
.icon--24 { width: 1.5rem; height: 1.5rem; }
.icon--28 { width: 1.75rem; height: 1.75rem; }
.icon--32 { width: 2rem; height: 2rem; }
.icon--96 { width: 6rem; height: 6rem; }
.text-gold { color: hsl(var(--gold)); }
.text-gold-gradient {
  background: var(--gold-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.glass {
  background: hsla(var(--glass-bg));
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  border: 1px solid hsla(var(--glass-border));
}
.card-strong {
  position: relative;
  border-radius: var(--radius-3xl);
  background: #fbf8f9d9;
  -webkit-backdrop-filter: blur(30px);
  backdrop-filter: blur(30px);
  border: 1px solid hsla(350, 30%, 90%, .6);
}
.card-pad-lg { padding: 2rem; }

.container { width: 100%; margin-inline: auto; padding-inline: 2rem; }
.w-xl { max-width: 36rem; }
.w-4xl { max-width: 56rem; }
.w-5xl { max-width: 64rem; }
.w-6xl { max-width: 72rem; }

/* ---------- Page chrome ---------- */
.page { position: relative; min-height: 100vh; overflow-x: hidden; }
.main { position: relative; z-index: 10; }

.decor { position: fixed; inset: 0; overflow: hidden; pointer-events: none; z-index: 0; }
.decor__wash {
  position: absolute; inset: 0;
  background:
    radial-gradient(at 20% 20%, rgba(241, 218, 222, .8) 0%, transparent 50%),
    radial-gradient(at 80% 80%, rgba(240, 223, 194, .6) 0%, transparent 50%),
    radial-gradient(rgb(247, 238, 239) 0%, rgb(241, 228, 231) 100%);
}
.decor__blob { position: absolute; border-radius: 9999px; filter: blur(64px); }
.decor__blob--gold { top: 0; left: 25%; width: 24rem; height: 24rem; background: radial-gradient(circle, rgba(232, 193, 125, .15) 0%, transparent 70%); }
.decor__blob--rose { bottom: 25%; right: 25%; width: 20rem; height: 20rem; background: radial-gradient(circle, rgba(230, 179, 187, .2) 0%, transparent 70%); }

.hx { position: absolute; }
.hx svg { width: 100%; height: 100%; overflow: visible; }
.hx--1  { left: 27.57%; top: 4.37%;  width: 85.91px;  height: 85.91px;  opacity: .088; animation-delay: 1.05s; }
.hx--2  { left: 97.16%; top: 88.94%; width: 102.53px; height: 102.53px; opacity: .125; animation-delay: 3.04s; }
.hx--3  { left: 36.59%; top: 94.51%; width: 61.35px;  height: 61.35px;  opacity: .12;  animation-delay: 3.01s; }
.hx--4  { left: 52.75%; top: 2.54%;  width: 81.7px;   height: 81.7px;   opacity: .09;  animation-delay: 1.71s; }
.hx--5  { left: 48.46%; top: 74.45%; width: 47.42px;  height: 47.42px;  opacity: .17;  animation-delay: 2.98s; }
.hx--6  { left: 53.29%; top: 12.89%; width: 88.73px;  height: 88.73px;  opacity: .124; animation-delay: .89s; }
.hx--7  { left: 98.36%; top: 51.83%; width: 90.23px;  height: 90.23px;  opacity: .12;  animation-delay: 2.27s; }
.hx--8  { left: 25.45%; top: 34.91%; width: 110.41px; height: 110.41px; opacity: .18;  animation-delay: .9s; }
.hx--9  { left: 45.73%; top: 66.36%; width: 96.39px;  height: 96.39px;  opacity: .12;  animation-delay: 3.64s; }
.hx--10 { left: 56.23%; top: 10.25%; width: 44.33px;  height: 44.33px;  opacity: .087; animation-delay: 4.18s; }
.hx--11 { left: 40.15%; top: 39.74%; width: 118.73px; height: 118.73px; opacity: .193; animation-delay: 3.57s; }
.hx--12 { left: 10.21%; top: 61.48%; width: 51.16px;  height: 51.16px;  opacity: .2;   animation-delay: 4.21s; }
.hx--13 { left: 40.92%; top: 4.12%;  width: 83.12px;  height: 83.12px;  opacity: .08;  animation-delay: 4.24s; }
.hx--14 { left: 46.27%; top: 52.58%; width: 111.91px; height: 111.91px; opacity: .17;  animation-delay: 4.97s; }
.hx--15 { left: 8.66%;  top: 15.9%;  width: 41.71px;  height: 41.71px;  opacity: .05;  animation-delay: .6s; }

/* ---------- Animations ---------- */
.float-1 { animation: float1 8s ease-in-out infinite; }
.float-2 { animation: float2 10s ease-in-out infinite; }
.float-3 { animation: float3 12s ease-in-out infinite; }
@keyframes float1 { 0%, 100% { transform: translate(0) rotate(0); } 25% { transform: translate(10px, -15px) rotate(5deg); } 50% { transform: translate(-5px, -25px) rotate(-3deg); } 75% { transform: translate(-15px, -10px) rotate(3deg); } }
@keyframes float2 { 0%, 100% { transform: translate(0) rotate(0); } 33% { transform: translate(-20px, 10px) rotate(-5deg); } 66% { transform: translate(15px, -20px) rotate(5deg); } }
@keyframes float3 { 0%, 100% { transform: translate(0) rotate(0); } 20% { transform: translate(25px, -10px) rotate(8deg); } 40% { transform: translate(-10px, 15px) rotate(-4deg); } 60% { transform: translate(-25px, -5px) rotate(6deg); } 80% { transform: translate(10px, 20px) rotate(-8deg); } }
/* shimmer and glow animate only transform/opacity so they stay on the compositor
   (the original animated left and box-shadow, which repaint every frame). */
@keyframes shimmer { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }
@keyframes glowFade { 0%, 100% { opacity: 0; } 50% { opacity: 1; } }
@keyframes enterUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: none; } }
@keyframes enterScale { from { opacity: 0; transform: scale(.9); } to { opacity: 1; transform: none; } }
@keyframes bounce { 0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(.8, 0, 1, 1); } 50% { transform: none; animation-timing-function: cubic-bezier(0, 0, .2, 1); } }
@keyframes pulse { 50% { opacity: .5; } }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes hex-rotate { to { transform: rotate(360deg); } }

.pulse-glow { position: relative; box-shadow: 0 0 20px #dda23c66; }
.pulse-glow::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  box-shadow: 0 0 40px #dda23cb3, 0 0 60px #dda23c4d;
  opacity: 0; animation: glowFade 2s ease-in-out infinite;
}
.shine { position: absolute; inset: 0; border-radius: inherit; overflow: hidden; pointer-events: none; }
.shine::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent, hsla(38, 70%, 70%, .3), transparent);
  transform: translateX(-100%);
  animation: shimmer 2s infinite;
}

/* Above-the-fold entrance: plays from first paint, no JS needed (same motion as .reveal). */
.enter-up { animation: enterUp .8s var(--ease-reveal) backwards; }
.enter-scale { animation: enterScale .8s var(--ease-reveal) backwards; }
.enter-d1 { animation-delay: .1s; }
.enter-d2 { animation-delay: .2s; }
.enter-d3 { animation-delay: .3s; }
.spin { animation: spin 1s linear infinite; }

/* Scroll reveal: site.js adds .active when the parent section enters the viewport. */
.reveal { opacity: 0; transform: translateY(30px); transition: all .8s var(--ease-reveal); }
.reveal-left { opacity: 0; transform: translate(-50px); transition: all .8s var(--ease-reveal); }
.reveal-right { opacity: 0; transform: translate(50px); transition: all .8s var(--ease-reveal); }
.reveal-scale { opacity: 0; transform: scale(.9); transition: all .8s var(--ease-reveal); }
.reveal.active, .reveal-left.active, .reveal-right.active { opacity: 1; transform: translate(0); }
.reveal-scale.active { opacity: 1; transform: scale(1); }
.stagger-1 { transition-delay: .1s; }
.stagger-2 { transition-delay: .2s; }
.stagger-3 { transition-delay: .3s; }

/* ---------- Typography blocks ---------- */
.h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.875rem; line-height: 2.25rem;
}
.section-head { text-align: center; margin-bottom: 4rem; }
.section-head .h2 { margin-bottom: 1rem; }
.section-sub { font-size: 1.125rem; line-height: 1.75rem; color: hsl(var(--muted-foreground)); max-width: 42rem; margin-inline: auto; }
.eyebrow { color: hsl(var(--gold)); font-weight: 600; text-transform: uppercase; letter-spacing: .025em; font-size: .875rem; line-height: 1.25rem; }
.eyebrow--block { display: block; margin-bottom: .5rem; }
.eyebrow-row { display: flex; align-items: center; gap: .75rem; margin-bottom: 1.5rem; }

/* ---------- Sections ---------- */
.section { position: relative; padding: 3rem 1rem; }
.section--rose { background: linear-gradient(transparent 0%, rgba(241, 218, 222, .3) 50%, transparent 100%); }
.section--sand { background: linear-gradient(transparent 0%, rgba(245, 234, 214, .2) 50%, transparent 100%); }
.section--form { background: linear-gradient(transparent 0%, rgba(241, 218, 222, .4) 50%, transparent 100%); }

/* Hero */
.hero {
  position: relative; min-height: 100vh;
  display: flex; align-items: center; justify-content: center;
  padding: 4rem 1rem; overflow: hidden;
}
.hero__bg { position: absolute; inset: 0; z-index: 0; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: top; opacity: .2; }
.hero__veil {
  position: absolute; inset: 0;
  background: linear-gradient(to bottom, hsl(var(--background) / .8), hsl(var(--background) / .6), hsl(var(--background)));
}
.hero__inner { position: relative; z-index: 10; }
.hero__content { display: flex; flex-direction: column; align-items: center; text-align: center; }
.hero__title {
  font-family: var(--font-display); font-weight: 700;
  font-size: 1.875rem; line-height: 1.25;
  margin-bottom: 1.5rem;
}
.hero__book { position: relative; margin-bottom: 2rem; }
.hero__glow { position: absolute; inset: 0; filter: blur(64px); opacity: .4; background: radial-gradient(circle, rgba(224, 172, 82, .4) 0%, transparent 70%); }
.hero__book img { position: relative; width: 10rem; height: auto; border-radius: var(--radius-lg); box-shadow: var(--shadow-2xl); }
.hero__lead { font-size: 1rem; line-height: 1.5rem; color: hsl(var(--muted-foreground)); margin-bottom: 2rem; max-width: 42rem; }
.hero__list { width: 100%; max-width: 36rem; margin: 0 auto 2.5rem; display: grid; gap: .75rem; }
.hero__list li { display: flex; align-items: flex-start; gap: .75rem; text-align: left; }
.hero__list .icon { margin-top: .125rem; }
.hero__list span { font-size: .875rem; line-height: 1.25rem; }
.btn-hero {
  position: relative; display: inline-flex; align-items: center; gap: .5rem;
  background: hsl(var(--primary)); color: hsl(var(--primary-foreground));
  padding: .75rem 1.5rem; border-radius: 9999px;
  font-weight: 600; font-size: 1rem; line-height: 1.5rem;
  /* Original inherited the .reveal transition (.8s, .3s stagger delay) for its hover scale. */
  transition: transform .8s var(--ease-reveal) .3s;
}
.btn-hero > span:not(.shine) { position: relative; z-index: 10; }
.btn-hero:hover { transform: scale(1.05); }
.hero__arrow { position: absolute; bottom: 2rem; left: 50%; color: hsl(var(--gold)); opacity: .6; animation: bounce 1s infinite; }

/* Why */
.why { overflow: hidden; }
.why__deco { position: absolute; top: 0; right: 0; width: 10rem; height: 10rem; opacity: .1; }
.why__body { position: relative; z-index: 10; }
.why__title { margin-bottom: 2rem; }
.why__text { display: grid; gap: 1.5rem; font-size: 1.125rem; line-height: 1.75rem; color: hsl(var(--muted-foreground)); }
.why__text strong { color: hsl(var(--foreground)); }

/* Grids */
.grid { display: grid; gap: 1.5rem; }
.grid--audience { margin-bottom: 4rem; }
.grid--bonus { gap: 1rem; }

/* Techniques */
.tech { display: flex; align-items: flex-start; gap: 1rem; border-radius: var(--radius-2xl); padding: 1.5rem; }
.tech:hover { transform: scale(1.05); box-shadow: var(--shadow-xl); }
.tech__icon {
  flex-shrink: 0; width: 3.5rem; height: 3.5rem; border-radius: var(--radius-xl);
  background: var(--gold-fill); color: hsl(var(--primary-foreground));
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--shadow-lg); transition: transform .3s var(--ease-std);
}
.tech:hover .tech__icon { transform: scale(1.1); }
.tech__title { font-family: var(--font-display); font-size: 1.25rem; line-height: 1.75rem; font-weight: 700; margin-bottom: .25rem; transition: color .15s var(--ease-std); }
.tech:hover .tech__title { color: hsl(var(--gold)); }
.tech__text { font-size: .875rem; line-height: 1.25rem; color: hsl(var(--muted-foreground)); }
.techniques__deco { display: none; position: absolute; bottom: -2.5rem; right: -2.5rem; width: 10rem; height: 10rem; opacity: .1; animation: hex-rotate 20s linear infinite; }

/* Audience */
.aud { display: flex; align-items: center; gap: 1rem; border-radius: var(--radius-2xl); padding: 1.5rem; }
.aud:hover { transform: scale(1.05); }
.aud__icon {
  flex-shrink: 0; width: 3rem; height: 3rem; border-radius: 9999px;
  background: linear-gradient(to bottom right, hsl(var(--rose-medium)), hsl(var(--rose-dark)));
  display: flex; align-items: center; justify-content: center;
}
.aud__text { font-weight: 500; font-size: 1.125rem; line-height: 1.75rem; }
.quote { padding: 2rem; overflow: hidden; }
.quote__mark { position: absolute; top: 1rem; left: 1rem; width: 4rem; height: 4rem; color: hsl(var(--gold) / .1); }
.quote__text { position: relative; z-index: 10; text-align: center; }
.quote__text p { font-family: var(--font-display); font-weight: 700; font-size: 1.5rem; line-height: 2rem; margin-bottom: 1rem; }
.quote__cite { position: relative; z-index: 10; text-align: center; color: hsl(var(--muted-foreground)); font-style: normal; }

/* Outcomes */
.out { display: flex; align-items: center; gap: 1rem; border-radius: var(--radius-xl); padding: 1.25rem; }
.out:hover { transform: scale(1.05); box-shadow: var(--shadow-lg); }
.out__icon {
  flex-shrink: 0; width: 2.5rem; height: 2.5rem; border-radius: 9999px;
  background: var(--gold-fill); color: hsl(var(--primary-foreground));
  display: flex; align-items: center; justify-content: center;
  box-shadow: var(--shadow-md); transition: transform .15s var(--ease-std);
}
.out:hover .out__icon { transform: scale(1.1); }
.out__text { font-weight: 500; }

/* Author */
.author { display: grid; gap: 2rem; align-items: center; }
.author__photo { display: flex; justify-content: center; }
.author__frame { position: relative; }
.author__ring { position: absolute; inset: 0; border-radius: 9999px; border: 4px solid hsl(var(--gold) / .3); animation: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite; }
.author__frame img {
  width: 12rem; height: 12rem; border-radius: 9999px; object-fit: cover;
  border: 4px solid hsl(var(--gold)); box-shadow: var(--shadow-xl);
}
.author__info { text-align: center; }
.author__name { font-family: var(--font-display); font-weight: 700; font-size: 1.875rem; line-height: 2.25rem; margin-bottom: 1.5rem; }
.author__bio { font-size: 1.125rem; line-height: 1.625; color: hsl(var(--muted-foreground)); margin-bottom: 2rem; }
.author__links { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }
.pill { display: inline-flex; align-items: center; gap: .5rem; border-radius: 9999px; padding: .625rem 1.25rem; transition: color .15s var(--ease-std); }
.pill span { font-weight: 500; }
.pill:hover { color: hsl(var(--gold)); }
.pill__ext { opacity: 0; transition: opacity .15s var(--ease-std); }
.pill:hover .pill__ext, .pill:focus-visible .pill__ext { opacity: 1; }

/* Bonus */
.bonus { overflow: hidden; }
.bonus__deco { position: absolute; top: 1rem; right: 1rem; opacity: .2; color: hsl(var(--gold)); }
.bonus__body { position: relative; z-index: 10; }
.bonus__head { text-align: center; margin-bottom: 3rem; }
.bonus__sub { margin-top: 1rem; }
.badge {
  display: inline-flex; align-items: center; gap: .5rem;
  background: hsl(var(--gold) / .1); color: hsl(var(--gold));
  border-radius: 9999px; padding: .5rem 1rem; margin-bottom: 1rem;
}
.badge span { font-weight: 600; text-transform: uppercase; letter-spacing: .025em; font-size: .875rem; line-height: 1.25rem; }
.bon {
  display: flex; align-items: center; gap: .75rem;
  background: hsl(var(--background) / .5); border-radius: var(--radius-xl); padding: 1rem;
  border: 1px solid hsl(var(--gold) / .2);
}
.bon:hover { border-color: hsl(var(--gold) / .5); box-shadow: var(--shadow-md); }
.bon span { font-weight: 500; }

/* Form */
.form-card { padding: 2rem; box-shadow: var(--shadow-2xl); }
.form-card__head { text-align: center; margin-bottom: 2rem; }
.form-card__title { font-family: var(--font-display); font-weight: 700; font-size: 1.5rem; line-height: 2rem; margin-bottom: .5rem; }
.form-card__sub { color: hsl(var(--muted-foreground)); }
.lead-form { display: grid; gap: 1.25rem; position: relative; }
.turnstile.is-idle { position: absolute; left: 0; right: 0; bottom: 0; pointer-events: none; }
.field__control { position: relative; }
.field__icon { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: hsl(var(--muted-foreground)); pointer-events: none; }
.field__control input {
  width: 100%; padding: 1rem 1rem 1rem 3rem; border-radius: var(--radius-xl);
  background: hsl(var(--background)); border: 1px solid hsl(var(--border));
  transition: all .15s var(--ease-std);
  line-height: 1.5rem;
}
.field__control input::placeholder { color: hsl(var(--muted-foreground)); opacity: 1; }
.field__control input:focus { outline: none; border-color: transparent; box-shadow: 0 0 0 2px hsl(var(--gold)); }
.field__control input[aria-invalid="true"] { border-color: hsl(var(--destructive)); }
.field__control input[aria-invalid="true"]:focus { box-shadow: 0 0 0 2px hsl(var(--destructive)); }
.field__error { margin-top: .375rem; font-size: .8125rem; line-height: 1.25rem; color: hsl(var(--destructive)); padding-left: .25rem; }

.check { display: flex; align-items: flex-start; gap: .75rem; cursor: pointer; font-size: .875rem; line-height: 1.375rem; color: hsl(var(--muted-foreground)); }
.check input { position: absolute; opacity: 0; width: 1.25rem; height: 1.25rem; margin: 0; }
.check__box {
  flex-shrink: 0; width: 1.25rem; height: 1.25rem; margin-top: .0625rem;
  border-radius: .375rem; border: 1.5px solid hsl(var(--rose-dark)); background: hsl(var(--background));
  display: flex; align-items: center; justify-content: center; color: transparent;
  transition: all .15s var(--ease-std);
}
.check input:checked + .check__box { background: var(--gold-fill); border-color: transparent; color: #fff; }
.check input:focus-visible + .check__box { box-shadow: 0 0 0 2px hsl(var(--background)), 0 0 0 4px hsl(var(--gold-dark)); }
.check input[aria-invalid="true"] + .check__box { border-color: hsl(var(--destructive)); }
.check__label a { color: hsl(var(--gold-ink)); text-decoration: underline; text-underline-offset: 2px; font-weight: 500; }

.hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.turnstile:empty { display: none; }
.turnstile { display: flex; justify-content: center; }

.form-alert { border-radius: var(--radius-xl); padding: .75rem 1rem; font-size: .875rem; line-height: 1.25rem; background: hsl(0 80% 96%); color: hsl(var(--destructive)); border: 1px solid hsl(0 70% 88%); }

.btn-submit {
  width: 100%; display: flex; align-items: center; justify-content: center; gap: .5rem;
  background: var(--gold-fill-x); color: hsl(var(--primary-foreground));
  padding: 1rem 0; border-radius: var(--radius-xl);
  font-weight: 600; font-size: 1.125rem; line-height: 1.75rem;
  transition: all .3s var(--ease-std);
}
.btn-submit:hover { transform: scale(1.02); }
.btn-submit:disabled { opacity: .7; cursor: not-allowed; transform: none; }
.btn-submit__busy { display: none; align-items: center; gap: .5rem; }
.btn-submit[aria-busy="true"] .btn-submit__idle { display: none; }
.btn-submit[aria-busy="true"] .btn-submit__busy { display: inline-flex; }
.secure-note { display: flex; align-items: center; justify-content: center; gap: .5rem; margin-top: 1.5rem; font-size: .875rem; line-height: 1.25rem; color: hsl(var(--muted-foreground)); }

/* Final CTA */
.final { text-align: center; }
.final__title { margin-bottom: 1.5rem; }
.final__text { font-size: 1.125rem; line-height: 1.75rem; color: hsl(var(--muted-foreground)); margin: 0 auto 2.5rem; max-width: 42rem; }
.btn-final {
  position: relative; display: inline-flex; align-items: center; gap: .75rem;
  background: var(--gold-fill-x); color: hsl(var(--primary-foreground));
  padding: 1.25rem 2.5rem; border-radius: 9999px;
  font-weight: 700; font-size: 1.25rem; line-height: 1.75rem;
  box-shadow: var(--shadow-xl);
}
.btn-final:hover { transform: scale(1.05); }

/* Footer */
.footer { position: relative; padding: 3rem 1rem; border-top: 1px solid hsl(var(--border) / .5); }
.footer__row { display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 2rem; }
.footer__brand { display: flex; align-items: center; gap: 1rem; }
.footer__logo { width: 4rem; height: 4rem; border-radius: 9999px; object-fit: cover; border: 2px solid hsl(var(--gold) / .3); }
.footer__name { font-family: var(--font-display); font-size: 1.125rem; line-height: 1.75rem; font-weight: 700; }
.footer__tag { font-size: .875rem; line-height: 1.25rem; color: hsl(var(--muted-foreground)); }
.footer__social { display: flex; align-items: center; gap: 1rem; }
.footer__link { display: flex; align-items: center; gap: .5rem; color: hsl(var(--muted-foreground)); font-size: .875rem; line-height: 1.25rem; transition: color .15s var(--ease-std); }
.footer__link:hover { color: hsl(var(--gold)); }
.footer__sep { color: hsl(var(--border)); }
.footer__bottom { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid hsl(var(--border) / .3); text-align: center; font-size: .875rem; line-height: 1.25rem; color: hsl(var(--muted-foreground)); }
.footer__legal { display: flex; flex-wrap: wrap; justify-content: center; gap: .5rem; margin-bottom: .5rem; }
.footer__legal a, .linklike { color: hsl(var(--muted-foreground)); text-decoration: underline; text-underline-offset: 2px; font-size: inherit; line-height: inherit; }
.footer__legal a:hover, .linklike:hover { color: hsl(var(--gold-ink)); }

/* ---------- Cookie banner ---------- */
.cookie { position: fixed; z-index: 100; left: 1rem; right: 1rem; bottom: 1rem; display: flex; justify-content: flex-start; pointer-events: none; }
.cookie[hidden] { display: none; }
.cookie__card {
  pointer-events: auto; width: 100%; max-width: 30rem;
  background: #fbf8f9f2; -webkit-backdrop-filter: blur(30px); backdrop-filter: blur(30px);
  border: 1px solid hsla(350, 30%, 88%, .9); border-radius: var(--radius-2xl);
  box-shadow: var(--shadow-2xl); padding: 1.25rem;
}
.cookie__head { display: flex; align-items: center; gap: .5rem; margin-bottom: .5rem; }
.cookie__icon { color: hsl(var(--gold-dark)); }
.cookie__title { font-family: var(--font-display); font-weight: 700; font-size: 1.125rem; line-height: 1.5rem; }
.cookie__text { font-size: .875rem; line-height: 1.375rem; color: hsl(var(--muted-foreground)); }
.cookie__text a { color: hsl(var(--gold-ink)); text-decoration: underline; text-underline-offset: 2px; }
.cookie__prefs fieldset { border: 0; padding: 0; margin: 1rem 0 0; display: grid; gap: .75rem; }
.cookie__opt { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem; border-radius: var(--radius-xl); background: hsl(var(--background) / .7); border: 1px solid hsl(var(--border)); cursor: pointer; }
.cookie__opt-text { display: grid; gap: .125rem; font-size: .8125rem; line-height: 1.25rem; color: hsl(var(--muted-foreground)); }
.cookie__opt-text strong { color: hsl(var(--foreground)); font-size: .875rem; }
.switch { appearance: none; -webkit-appearance: none; flex-shrink: 0; width: 2.5rem; height: 1.5rem; border-radius: 9999px; background: hsl(var(--rose-dark)); position: relative; cursor: pointer; transition: background .2s var(--ease-std); }
.switch::after { content: ""; position: absolute; top: .1875rem; left: .1875rem; width: 1.125rem; height: 1.125rem; border-radius: 9999px; background: #fff; box-shadow: var(--shadow-md); transition: transform .2s var(--ease-std); }
.switch:checked { background: hsl(var(--gold-dark)); }
.switch:checked::after { transform: translateX(1rem); }
.switch:disabled { opacity: .6; cursor: not-allowed; }
.switch:focus-visible { outline: 2px solid hsl(var(--gold-dark)); outline-offset: 2px; }
.cookie__actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; justify-content: flex-end; }
.cbtn { border-radius: 9999px; padding: .5rem 1rem; font-size: .875rem; line-height: 1.25rem; font-weight: 600; transition: all .15s var(--ease-std); }
.cbtn--ghost { color: hsl(var(--foreground)); text-decoration: underline; text-underline-offset: 2px; margin-right: auto; padding-inline: .25rem; }
.cbtn--outline { border: 1px solid hsl(var(--gold-dark) / .6); color: hsl(var(--gold-ink)); background: hsl(var(--background) / .6); }
.cbtn--outline:hover { background: hsl(var(--gold) / .1); }
.cbtn--gold { background: var(--gold-fill-x); color: #fff; }
.cbtn--gold:hover { filter: brightness(1.05); }
.cbtn[hidden] { display: none; }

/* ---------- Breakpoints ---------- */
@media (min-width: 640px) {
  .hero__title { font-size: 2.25rem; line-height: 2.5rem; }
  .hero__book img { width: 12rem; }
  .hero__lead { font-size: 1.125rem; line-height: 1.75rem; }
  .hero__list span { font-size: 1rem; line-height: 1.5rem; }
  .btn-hero { padding: 1rem 2rem; font-size: 1.125rem; line-height: 1.75rem; }
  .grid--audience, .grid--outcomes, .grid--bonus { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 768px) {
  .hero__title { font-size: 3rem; line-height: 1; }
  .hero__book img { width: 14rem; }
  .hero__lead { font-size: 1.25rem; line-height: 1.75rem; }
  .h2 { font-size: 2.25rem; line-height: 2.5rem; }
  .card-pad-lg { padding: 3rem; }
  .grid--techniques { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quote { padding: 3rem; }
  .quote__text p { font-size: 1.875rem; line-height: 2.25rem; }
  .author { grid-template-columns: auto 1fr; gap: 3rem; }
  .author__frame img { width: 14rem; height: 14rem; }
  .author__info { text-align: left; }
  .author__name { font-size: 2.25rem; line-height: 2.5rem; }
  .author__links { justify-content: flex-start; }
  .form-card { padding: 3rem; }
  .form-card__title { font-size: 1.875rem; line-height: 2.25rem; }
  .final__text { font-size: 1.25rem; line-height: 1.75rem; }
  .footer__row { flex-direction: row; }
}
@media (min-width: 1024px) {
  .section { padding-block: 4rem; }
  .hero { padding-block: 6rem; }
  .hero__title { font-size: 3.75rem; line-height: 1; }
  .h2 { font-size: 3rem; line-height: 1; }
  .card-pad-lg { padding: 4rem; }
  .grid--techniques, .grid--outcomes, .grid--bonus { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .techniques__deco { display: block; }
  .quote__text p { font-size: 2.25rem; line-height: 2.5rem; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, ::before, ::after { animation: none !important; transition: none !important; }
  .reveal, .reveal-left, .reveal-right, .reveal-scale { opacity: 1; transform: none; }
}

/* ---------- Thank-you page ---------- */
.thanks { min-height: 80vh; display: flex; align-items: center; }
.thanks__card { text-align: center; }
.thanks__icon {
  width: 5rem; height: 5rem; border-radius: 9999px; margin: 0 auto 1.5rem;
  display: flex; align-items: center; justify-content: center;
  background: var(--gold-fill); color: #fff; box-shadow: var(--shadow-lg);
}
.thanks__text { color: hsl(var(--muted-foreground)); margin: .5rem 0 2rem; font-size: 1.125rem; line-height: 1.75rem; }
.thanks__btn { text-decoration: none; }
.thanks__back { margin-top: 1rem; font-size: .875rem; }
.thanks__back a { color: hsl(var(--gold-ink)); text-decoration: underline; text-underline-offset: 2px; }
