/* ============================================================
   GUÍA GRATIS — DESIGN SYSTEM
   Font: Outfit · Skill: design-taste-frontend
   DESIGN_VARIANCE: 8 (Asymmetric)
   MOTION_INTENSITY: 6 (Fluid CSS)
   VISUAL_DENSITY: 4 (Art Gallery / Daily App)
   Brand accent: #69daff (Blue — matches main site)
   ============================================================ */

/* ===== TOKENS ===== */
:root {
  --canvas:    #09090b;     /* zinc-950 — off-black, never pure #000 */
  --s1:        #111113;
  --s2:        #18181b;
  --s3:        #27272a;
  --text:      #f4f4f5;
  --text2:     #71717a;
  --text3:     #3f3f46;
  --accent:    #69daff;     /* brand blue */
  --accent-dim: rgba(105,218,255,.1);
  --accent-glow: rgba(105,218,255,.18);
  --border:    rgba(255,255,255,.07);
  --border2:   rgba(255,255,255,.13);
  --font:      'Outfit', system-ui, sans-serif;
  --ease:      cubic-bezier(.16,1,.3,1);
  --r:         .875rem;
  --r-md:      1.125rem;
  --r-lg:      1.5rem;
  --r-xl:      2rem;
  --r-full:    9999px;
}

/* ===== RESET ===== */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
html { background: var(--canvas); -webkit-font-smoothing: antialiased; }
body {
  font-family: var(--font);
  color: var(--text2);
  background: var(--canvas);
  line-height: 1.65;
  overflow-x: hidden;
}
h1, h2, h3 { font-family: var(--font); color: var(--text); line-height: 1.05; letter-spacing: -.03em; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; display: block; }
button { font-family: var(--font); cursor: pointer; }

/* ===== CONTAINER ===== */
.container {
  width: 100%;
  max-width: 1080px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

/* ===== HEADER ===== */
.brand-header {
  padding: 1.75rem 0;
  border-bottom: 1px solid var(--border);
}

.brand-name {
  display: inline-block;
  font-size: .8125rem;
  font-weight: 900;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text);
  transition: color .2s;
}
.brand-name:hover { color: var(--accent); }

/* ===== HERO SECTION ===== */
.hero-section {
  padding: 5rem 0 0;
}

/* Asymmetric split-screen grid (DESIGN_VARIANCE: 8) */
.hero-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3.5rem;
  align-items: start;
}

@media (min-width: 860px) {
  .hero-grid {
    grid-template-columns: 1fr 440px;
    gap: 5rem;
    align-items: center;
  }
}

/* ===== HERO COPY ===== */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: .3rem .875rem;
  background: var(--accent-dim);
  border: 1px solid rgba(105,218,255,.2);
  border-radius: var(--r-full);
  font-size: .7rem;
  font-weight: 700;
  color: var(--accent);
  letter-spacing: .1em;
  text-transform: uppercase;
  margin-bottom: 2rem;
  /* Staggered entrance */
  opacity: 0;
  transform: translateY(12px);
  animation: fadeUp .7s var(--ease) .1s forwards;
}

.hero-title {
  font-size: clamp(2.25rem, 5vw, 3.75rem);
  font-weight: 900;
  letter-spacing: -.045em;
  line-height: 1.0;
  margin-bottom: 1rem;
  color: var(--text);
  /* Entrance animation */
  opacity: 0;
  transform: translateY(16px);
  animation: fadeUp .8s var(--ease) .2s forwards;
}

.highlight {
  color: var(--accent);
}

.hero-subtitle-accent {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--text2);
  letter-spacing: -.015em;
  margin-bottom: 1.5rem;
  opacity: 0;
  animation: fadeUp .8s var(--ease) .3s forwards;
}

.hero-subtitle {
  font-size: .9375rem;
  color: var(--text2);
  line-height: 1.75;
  max-width: 48ch;
  opacity: 0;
  animation: fadeUp .8s var(--ease) .4s forwards;
}

/* ===== FORM COLUMN ===== */
.hero-form-col {
  opacity: 0;
  animation: fadeUp .8s var(--ease) .35s forwards;
}

/* ===== FORM WRAPPER ===== */
.form-wrapper {
  background: var(--s2);
  border: 1px solid var(--border2);
  border-radius: var(--r-xl);
  padding: 2.5rem 2rem;
  /* Liquid-glass inner refraction (Anti-slop) */
  box-shadow:
    0 32px 64px -16px rgba(0,0,0,.6),
    inset 0 1px 0 rgba(255,255,255,.06);
}

.form-header {
  margin-bottom: 1.75rem;
}

.form-tag {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .65rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--accent);
  background: var(--accent-dim);
  padding: .3rem .75rem;
  border-radius: var(--r-full);
  margin-bottom: .875rem;
}

.form-tagline {
  font-size: .875rem;
  color: var(--text2);
  line-height: 1.5;
}

/* ===== SQUEEZE FORM ===== */
.squeeze-form {
  display: flex;
  flex-direction: column;
  gap: 1.125rem;
}

/* Rule 6: Label MUST sit above input */
.input-group {
  display: flex;
  flex-direction: column;
  gap: .4rem;
}

.input-group label {
  font-size: .75rem;
  font-weight: 600;
  color: var(--text2);
  letter-spacing: .04em;
}

.input-group input {
  width: 100%;
  padding: .9375rem 1.125rem;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--border2);
  border-radius: var(--r-md);
  color: var(--text);
  font-family: var(--font);
  font-size: .9375rem;
  transition: border-color .25s var(--ease), background .25s var(--ease), box-shadow .25s var(--ease);
}

.input-group input::placeholder { color: var(--text3); }

.input-group input:focus {
  outline: none;
  border-color: var(--accent);
  background: rgba(105,218,255,.03);
  box-shadow: 0 0 0 3px var(--accent-dim);
}

/* ===== CTA BUTTON — Tactile Feedback (Rule 5) ===== */
.cta-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .625rem;
  width: 100%;
  padding: 1rem 1.5rem;
  background: var(--accent);
  color: #09090b;
  font-weight: 800;
  font-size: .9375rem;
  letter-spacing: -.01em;
  border: none;
  border-radius: var(--r-md);
  margin-top: .25rem;
  transition: opacity .2s, transform .2s var(--ease), box-shadow .2s;
  will-change: transform;
}

.cta-button:hover {
  opacity: .9;
  transform: translateY(-2px);
  box-shadow: 0 12px 28px -8px var(--accent-glow);
}

/* Tactile push on :active */
.cta-button:active {
  transform: translateY(0) scale(.98);
  box-shadow: none;
}

.cta-button:disabled {
  opacity: .5;
  cursor: not-allowed;
  transform: none;
}

.btn-arrow {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  transition: transform .2s var(--ease);
}

.cta-button:hover .btn-arrow {
  transform: translateX(3px);
}

/* ===== FORM DISCLAIMER ===== */
.form-disclaimer {
  font-size: .725rem;
  color: var(--text3);
  text-align: center;
  line-height: 1.5;
  padding: 0 .25rem;
}

/* ===== SUCCESS STATE ===== */
.hidden { display: none; }

.success-state {
  background: var(--s2);
  border: 1px solid rgba(105,218,255,.22);
  border-radius: var(--r-xl);
  padding: 3rem 2rem;
  text-align: center;
  box-shadow:
    0 32px 64px -16px rgba(0,0,0,.5),
    inset 0 1px 0 rgba(255,255,255,.06);
  animation: slideIn .55s var(--ease) forwards;
}

@keyframes slideIn {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

.success-icon {
  width: 52px;
  height: 52px;
  border-radius: var(--r-full);
  background: var(--accent-dim);
  border: 1.5px solid rgba(105,218,255,.3);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.5rem;
  color: var(--accent);
}

.success-icon svg {
  width: 26px;
  height: 26px;
}

.success-state h2 {
  font-size: 1.625rem;
  font-weight: 800;
  margin-bottom: .5rem;
  letter-spacing: -.035em;
}

.success-state p {
  color: var(--text2);
  font-size: .9rem;
  margin-bottom: 2rem;
}

.download-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .625rem;
  background: var(--accent);
  color: #09090b;
  padding: .9375rem 1.75rem;
  border-radius: var(--r-md);
  font-weight: 700;
  font-size: .9rem;
  transition: opacity .2s, transform .2s var(--ease);
}

.download-button svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.download-button:hover {
  opacity: .88;
  transform: translateY(-2px);
}

/* ===== BENEFITS SECTION ===== */
.benefits-section {
  padding: 5rem 0 6rem;
  margin-top: 5rem;
  border-top: 1px solid var(--border);
}

.benefits-label {
  font-size: .7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .14em;
  color: var(--accent);
  margin-bottom: 2.5rem;
}

/* 2-column zig-zag style (BANS the generic 3-equal-cards layout per Rule 7) */
.benefits-list {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}

@media (min-width: 640px) {
  .benefits-list {
    grid-template-columns: 1fr 1fr;
    gap: 1.5rem 3rem;
  }
  .benefits-list li:last-child {
    grid-column: 1 / -1;
    max-width: 420px;
  }
}

@media (min-width: 860px) {
  .benefits-list {
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
  }
  .benefits-list li:last-child {
    grid-column: auto;
    max-width: none;
  }
}

.benefit-item {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
  padding: 1.75rem 0;
  border-bottom: 1px solid var(--border);
  transition: border-color .25s;
}

.benefit-item:last-child {
  border-bottom: none;
}

@media (min-width: 860px) {
  .benefit-item {
    flex-direction: column;
    gap: 1rem;
    padding: 0 2.5rem 0 0;
    border-bottom: none;
    border-right: 1px solid var(--border);
  }
  .benefit-item:last-child {
    border-right: none;
    padding-right: 0;
  }
}

.benefit-icon {
  width: 40px;
  height: 40px;
  border-radius: var(--r);
  background: var(--accent-dim);
  border: 1px solid rgba(105,218,255,.15);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--accent);
  transition: background .25s, transform .25s var(--ease);
}

.benefit-icon svg { width: 18px; height: 18px; }

.benefit-item:hover .benefit-icon {
  background: rgba(105,218,255,.18);
  transform: translateY(-2px);
}

.benefit-text { display: flex; flex-direction: column; gap: .4rem; }

.benefit-item h3 {
  font-size: .9375rem;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -.025em;
}

.benefit-item p {
  font-size: .825rem;
  color: var(--text2);
  line-height: 1.65;
}

/* ===== FOOTER ===== */
.simple-footer {
  border-top: 1px solid var(--border);
  padding: 2rem 0;
}

.simple-footer .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .75rem;
}

.footer-logo {
  font-size: .75rem;
  font-weight: 900;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--text);
}

.simple-footer p {
  font-size: .6875rem;
  color: var(--text3);
}

/* ===== ENTRANCE ANIMATIONS (MOTION_INTENSITY: 6) ===== */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}



/* ===== MOBILE: full collapse (DESIGN_VARIANCE 8 MOBILE OVERRIDE) ===== */
@media (max-width: 480px) {
  .hero-section { padding: 3rem 0 0; }
  .hero-title { font-size: 2.1rem; }
  .form-wrapper { padding: 1.75rem 1.25rem; }
}

/* =================================================================
   MAILERLITE EMBED OVERRIDES
   Force the embedded form to match the page dark design system.
   MailerLite injects its own stylesheet, so !important is required
   for the most stubborn properties.
   ================================================================= */

/* Strip MailerLite's outer wrapper background + border */
.ml-embedded .ml-form-embedContainer,
.ml-embedded .ml-form-embedWrapper,
.ml-embedded .ml-form-formContent {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Body text inside embed */
.ml-embedded,
.ml-embedded p,
.ml-embedded label,
.ml-embedded .ml-form-fieldLabel {
  font-family: 'Outfit', system-ui, sans-serif !important;
  color: #71717a !important;
  font-size: .825rem !important;
}

/* Input fields */
.ml-embedded .ml-form-fieldRow input[type="text"],
.ml-embedded .ml-form-fieldRow input[type="email"] {
  width: 100% !important;
  padding: .9375rem 1.125rem !important;
  background: rgba(255,255,255,.03) !important;
  border: 1px solid rgba(255,255,255,.13) !important;
  border-radius: 1.125rem !important;
  color: #f4f4f5 !important;
  font-family: 'Outfit', system-ui, sans-serif !important;
  font-size: .9375rem !important;
  line-height: 1.5 !important;
  transition: border-color .25s, box-shadow .25s !important;
}

.ml-embedded .ml-form-fieldRow input[type="text"]:focus,
.ml-embedded .ml-form-fieldRow input[type="email"]:focus {
  outline: none !important;
  border-color: #69daff !important;
  background: rgba(105,218,255,.04) !important;
  box-shadow: 0 0 0 3px rgba(105,218,255,.1) !important;
}

.ml-embedded .ml-form-fieldRow input::placeholder {
  color: #3f3f46 !important;
}

/* Submit button — match brand blue */
.ml-embedded .ml-form-embedSubmit button,
.ml-embedded button[type="submit"] {
  width: 100% !important;
  padding: 1rem 1.5rem !important;
  background: #69daff !important;
  color: #09090b !important;
  font-family: 'Outfit', system-ui, sans-serif !important;
  font-weight: 800 !important;
  font-size: .9375rem !important;
  letter-spacing: -.01em !important;
  border: none !important;
  border-radius: 1.125rem !important;
  cursor: pointer !important;
  transition: opacity .2s, transform .2s !important;
  will-change: transform !important;
}

.ml-embedded .ml-form-embedSubmit button:hover,
.ml-embedded button[type="submit"]:hover {
  opacity: .88 !important;
  transform: translateY(-2px) !important;
}

.ml-embedded .ml-form-embedSubmit button:active,
.ml-embedded button[type="submit"]:active {
  transform: scale(.98) !important;
}

/* Success / confirmation message inside MailerLite embed */
.ml-embedded .ml-subscribe-form-success-message,
.ml-embedded .ml-form-successBody {
  background: transparent !important;
  color: #f4f4f5 !important;
  font-family: 'Outfit', system-ui, sans-serif !important;
  padding: 1rem 0 !important;
  text-align: center !important;
}

.ml-embedded .ml-subscribe-form-success-message h4,
.ml-embedded .ml-form-successBody h4 {
  color: #69daff !important;
  font-size: 1.25rem !important;
  font-weight: 800 !important;
  letter-spacing: -.03em !important;
  margin-bottom: .5rem !important;
}

/* Error messages */
.ml-embedded .ml-error,
.ml-embedded .ml-form-checkboxRow .label-description .error {
  color: #f87171 !important;
  font-size: .75rem !important;
  margin-top: .25rem !important;
}

/* Field spacing */
.ml-embedded .ml-form-fieldRow {
  margin-bottom: 1.125rem !important;
}

/* Hide any MailerLite branding/header text inside the widget if present */
.ml-embedded .ml-form-embedHeader {
  display: none !important;
}