/* ---------- FinHabit design tokens ---------- */
:root{
  --fh-bg:#ffffff;
  --fh-ink:#2C1F14;
  --fh-green:#157F3C;
  --fh-green-soft:#DFEFE5;
  --fh-green-softer:#F1F8F3;
  --fh-muted:#6B5B4C;
  --fh-border:#DCE9E0;
  --fh-radius:0.75rem;
  --fh-shadow-soft:0 2px 20px -8px rgba(44,31,20,.08);
  --fh-shadow-float:0 30px 60px -20px rgba(44,31,20,.18);
  --fh-font-sans:'Inter',system-ui,-apple-system,Segoe UI,sans-serif;
  --fh-font-display:'Fraunces',Georgia,serif;
}
body{background:var(--fh-bg);color:var(--fh-ink);font-family:var(--fh-font-sans);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6;}
html{scroll-behavior:smooth;}
*,*::before,*::after{box-sizing:border-box;}
img{max-width:100%;height:auto;}
a{color:inherit;}

.fh-display,h1,h2{font-family:var(--fh-font-display);letter-spacing:-0.02em;font-optical-sizing:auto;}
h1,h2,h3,h4{color:var(--fh-ink);line-height:1.15;margin:0 0 .5em;}
p{margin:0 0 1rem;}

/* ---------- layout ---------- */
.fh-section{padding:4rem 1rem;}
@media(min-width:768px){.fh-section{padding:6rem 1rem;}}
.fh-wrap{max-width:.72rem;margin:0 auto;}
.fh-wrap-narrow{max-width:.72rem;margin:0 auto;}
.fh-center{text-align:center;}
.fh-soft{background:var(--fh-green-softer);}
.fh-soft-green{background:var(--fh-green-soft);}
.fh-hero-bg{background:linear-gradient(160deg,#F1F8F3 0%,#ffffff 55%,#E6F2EA 100%);}

.fh-eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-size:48px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--fh-green);background:rgba(255,255,255,.75);border:1px solid rgba(21,127,60,.2);padding:.4rem .85rem;border-radius:999px;}
.fh-kicker{font-size:48px;letter-spacing:.18em;text-transform:uppercase;color:var(--fh-muted);margin-bottom:.75rem;}
.fh-lead{font-size:1.075rem;color:var(--fh-muted);max-width:34rem;}
.fh-center .fh-lead{margin-left:auto;margin-right:auto;}
.fh-muted{color:var(--fh-muted);}
.fh-small{font-size:.8rem;color:var(--fh-muted);}
.fh-medium{font-size:.925rem;color:var(--fh-muted);}

h1.fh-h1,.fh-h1{font-size:clamp(2.2rem,5.5vw,3.75rem);font-weight:700;line-height:1.05;}
.fh-h2{font-size:clamp(1.75rem,3.5vw,2.5rem);font-weight:700;}
.fh-accent{color:var(--fh-green);font-style:italic;}

/* ---------- grids ---------- */
.fh-grid{display:grid;gap:1.5rem;}
.fh-grid-2{grid-template-columns:1fr;}
.fh-grid-3{grid-template-columns:1fr;}
.fh-grid-4{grid-template-columns:1fr 1fr;}
@media(min-width:768px){.fh-grid-2{grid-template-columns:1fr 1fr;}.fh-grid-3{grid-template-columns:repeat(3,1fr);}.fh-grid-4{grid-template-columns:repeat(4,1fr);}}

/* ---------- cards ---------- */
.fh-card{background:#fff;border:1px solid var(--fh-border);border-radius:1.25rem;padding:1.75rem;box-shadow:var(--fh-shadow-soft);}
.fh-card h3{font-size:1.075rem;font-weight:700;}
.fh-card p{font-size:.925rem;color:var(--fh-muted);margin:0;}
.fh-card-plain{background:var(--fh-green-softer);border:1px solid var(--fh-border);border-radius:1.5rem;padding:1.75rem;}
.fh-card-featured{border:2px solid rgba(21,127,60,.3);background:var(--fh-green-soft);border-radius:1.5rem;padding:1.75rem;box-shadow:var(--fh-shadow-soft);}
.fh-emoji{font-size:1.75rem;display:inline-flex;align-items:center;justify-content:center;height:3rem;width:3rem;border-radius:.9rem;background:rgba(21,127,60,.1);margin-bottom:.85rem;}
.fh-num{display:inline-flex;align-items:center;justify-content:center;height:2rem;width:2rem;border-radius:999px;background:var(--fh-green);color:#fff;font-weight:700;font-size:.85rem;margin-bottom:.75rem;}
.fh-list{list-style:none;padding:0;margin:0;}
.fh-list li{display:flex;gap:.6rem;align-items:flex-start;font-size:.925rem;color:var(--fh-muted);margin-bottom:.65rem;}
.fh-list li::before{content:"✓";color:var(--fh-green);font-weight:700;}
.fh-list-x li::before{content:"✕";color:#d94a4a;}

/* ---------- buttons ---------- */
.fh-btn,.wp-block-button__link{font-family:var(--fh-font-sans);}
.fh-btn{display:inline-flex;align-items:center;gap:.5rem;justify-content:center;border-radius:999px;padding:.85rem 1.6rem;font-weight:600;font-size:1rem;text-decoration:none;transition:.2s;border:1px solid transparent;cursor:pointer;}
.fh-btn-primary{background:var(--fh-green);color:#fff !important;box-shadow:var(--fh-shadow-float);}
.fh-btn-primary:hover{background:#116b32;}
.fh-btn-outline{background:transparent;color:var(--fh-ink);border-color:var(--fh-border);}
.fh-btn-outline:hover{border-color:var(--fh-green);color:var(--fh-green);}
.fh-btn-white{background:#fff;color:var(--fh-green);}
.fh-btns{display:flex;flex-wrap:wrap;gap:.75rem;}
.fh-center .fh-btns{justify-content:center;}

/* ---------- header / nav ---------- */
.fh-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--fh-border);}
.fh-header-inner{max-width:80%;margin:0 auto;padding:0 1rem;height:4rem;display:flex;align-items:center;justify-content:space-between;overflow:hidden;}
.fh-logo{display:flex;align-items:center;gap:.5rem;color:var(--fh-green);font-weight:700;font-size:1.25rem;text-decoration:none;}
.fh-logo img{max-height:2.25rem !important;width:auto !important;height:2.25rem !important;object-fit:contain;}
.fh-nav{display:none;align-items:center;gap:2rem;}
@media(min-width:768px){.fh-nav{display:flex;}.fh-burger{display:none;}}
.fh-nav a{font-size:.9rem;font-weight:500;color:var(--fh-muted);text-decoration:none;}
.fh-nav a:hover{color:var(--fh-green);}
.fh-burger{background:none;border:0;color:var(--fh-ink);cursor:pointer;padding:.5rem;}
.fh-mobile-nav{display:none;border-top:1px solid var(--fh-border);background:#fff;padding:.5rem 1rem 1rem;}
.fh-mobile-nav.is-open{display:block;}
.fh-mobile-nav a{display:block;padding:.6rem 0;font-size:.9rem;color:var(--fh-muted);text-decoration:none;}

/* ---------- footer ---------- */
.fh-footer{background:var(--fh-green-softer);border-top:1px solid var(--fh-border);padding:3rem 1rem;}
.fh-footer-inner{max-width:80%;margin:0 auto;display:grid;gap:2rem;grid-template-columns:1fr;}
@media(min-width:768px){.fh-footer-inner{grid-template-columns:2fr 1fr 1fr;}}
.fh-social{display:flex;gap:.75rem;margin-top:1rem;}
.fh-social a{height:2.25rem;width:2.25rem;border-radius:999px;background:#fff;border:1px solid var(--fh-border);display:inline-flex;align-items:center;justify-content:center;color:var(--fh-green);text-decoration:none;font-size:.8rem;font-weight:600;}
.fh-footer-bottom{max-width:80%;margin:2rem auto 0;border-top:1px solid var(--fh-border);padding-top:1.25rem;font-size:.8rem;color:var(--fh-muted);text-align:center;}

/* ---------- trust bar ---------- */
.fh-trust{border-top:1px solid var(--fh-border);border-bottom:1px solid var(--fh-border);background:var(--fh-green-softer);padding:1.5rem 1rem;}
.fh-trust-inner{max-width:72rem;margin:0 auto;display:flex;flex-wrap:wrap;gap:1rem 2rem;align-items:center;justify-content:center;text-align:center;}
.fh-trust strong{font-size:.9rem;font-weight:600;}

/* ---------- phone mockup ---------- */
.fh-phone{width:250px;margin:0 auto;border-radius:2.25rem;background:var(--fh-ink);padding:.6rem;box-shadow:var(--fh-shadow-float);}
.fh-phone-screen{border-radius:1.8rem;background:#fff;overflow:hidden;}
.fh-phone-top{background:var(--fh-green);color:#fff;padding:1rem;}
.fh-phone-top p{margin:0;font-size:.8rem;opacity:.85;}
.fh-phone-top strong{font-size:1.05rem;}
.fh-xp{height:.45rem;border-radius:999px;background:rgba(255,255,255,.3);margin-top:.75rem;overflow:hidden;}
.fh-xp span{display:block;height:100%;width:68%;background:#fff;border-radius:999px;}
.fh-phone-body{padding:1rem;display:grid;gap:.6rem;}
.fh-mini{border:1px solid var(--fh-border);border-radius:.75rem;padding:.65rem .75rem;font-size:48px;color:var(--fh-muted);background:#fff;}
.fh-mini strong{display:block;color:var(--fh-ink);font-size:.8rem;}
.fh-mini-green{background:var(--fh-green-soft);border-color:transparent;}
.fh-bar{height:.4rem;border-radius:999px;background:var(--fh-green-soft);margin-top:.45rem;overflow:hidden;}
.fh-bar span{display:block;height:100%;background:var(--fh-green);}
.fh-float{animation:fh-float 6s ease-in-out infinite;}
@keyframes fh-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

/* agenda page mockup */
.fh-agenda{max-width:.72rem;margin:0 auto;background:#fff;border:1px solid var(--fh-border);border-radius:1rem;box-shadow:var(--fh-shadow-float);padding:1.25rem;}
.fh-agenda .fh-line{height:.5rem;border-radius:999px;background:var(--fh-green-softer);margin-bottom:.55rem;}
.fh-agenda .fh-line.short{width:55%;}
.fh-agenda .fh-line.green{background:var(--fh-green-soft);}

/* ---------- FAQ ---------- */
.fh-faq details{border-bottom:1px solid var(--fh-border);padding:1rem 0;}
.fh-faq summary{cursor:pointer;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:1rem;}
.fh-faq summary::-webkit-details-marker{display:none;}
.fh-faq summary::after{content:"+";color:var(--fh-green);font-weight:700;}
.fh-faq details[open] summary::after{content:"–";}
.fh-faq details p{margin:.75rem 0 0;font-size:.925rem;color:var(--fh-muted);}

/* ---------- CTA band ---------- */
.fh-cta{background:var(--fh-green);border-radius:1.75rem;padding:3rem 1.5rem;text-align:center;color:#fff;}
.fh-cta h2,.fh-cta h3{color:#fff;}
.fh-cta p{color:rgba(255,255,255,.85);max-width:34rem;margin-left:auto;margin-right:auto;}

/* ---------- blog / generic content ---------- */
.fh-content{max-width:.72rem;margin:0 auto;padding:3rem 1rem;}
.fh-content h1{font-size:2.25rem;}
.fh-entry{border-bottom:1px solid var(--fh-border);padding:1.5rem 0;}
.fh-entry h2{font-size:1.5rem;}
.fh-pagination{padding:2rem 0;display:flex;gap:1rem;}

/* editor niceties */
.editor-styles-wrapper{background:#fff;}
.fh-stack>*+*{margin-top:1rem;}

/* ---------- fallback de columnas (por si faltan estilos de bloques del core) ---------- */
.wp-block-columns{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:flex-start;}
.wp-block-columns>.wp-block-column{flex:1 1 16rem;min-width:0;}
@media(max-width:.72rem!important){.wp-block-columns{flex-direction:column;}.wp-block-columns>.wp-block-column{flex-basis:.72rem!important;}}
.wp-block-group.fh-section>*+*{margin-top:2rem;}
.fh-cols{margin-top:2rem;}
.wp-block-details{border-bottom:1px solid var(--fh-border);padding:1rem 0;}
.wp-block-details summary{cursor:pointer;font-weight:600;}


/* Refuerzo: fuerza texto blanco en todos los botones "primary" de FinHabit,
   sin importar qué clases adicionales inyecte WordPress */
.fh-header .wp-block-button__link,
.fh-cta .wp-block-button__link,
a.fh-btn-primary,
.fh-btn-primary a,
.wp-block-button__link.fh-btn-primary {
  color: #ffffff !important;
}

/* Por si el bloque de botón de WordPress usa su propio color de texto */
.fh-btn-primary.has-text-color {
  color: #ffffff !important;
}