  :root{
    --black:#111111; --orange:#FF9E1B; --orange-dark:#E5850A; --orange-text:#A35C00;
    --white:#FFFFFF; --offwhite:#F7F6F3; --grey:#6B6B6B; --grey-line:#EAEAEA;
    --sage:#3D6A4F; --brick:#B4482F;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{ font-family:'Inter', sans-serif; color:var(--black); background:var(--white); line-height:1.55; }
  a{ color:inherit; }
  .contenedor{ max-width:1120px; margin:0 auto; padding:0 40px; }
  .skip{ position:absolute; left:-999px; top:0; background:var(--black); color:var(--white); padding:10px 16px; z-index:100; }
  .skip:focus{ left:0; }
  :focus-visible{ outline:3px solid var(--orange); outline-offset:2px; }

  /* ---------- Header ---------- */
  .site-header{ position:sticky; top:0; z-index:50; background:var(--white); border-bottom:1px solid var(--grey-line); }
  .header-inner{ display:flex; align-items:center; justify-content:space-between; height:68px; gap:20px; }
  .logo{ font-family:'Poppins', sans-serif; font-weight:800; font-size:1.3rem; text-decoration:none; color:var(--black); white-space:nowrap; }
  .logo span{ color:var(--orange-text); }
  .nav{ display:flex; align-items:center; gap:22px; }
  .nav a, .nav button.link{ font-size:0.9rem; font-weight:600; text-decoration:none; color:#333; background:none; border:none; cursor:pointer; font-family:inherit; padding:0; }
  .nav a:hover, .nav button.link:hover{ color:var(--orange-text); }
  .nav .sep{ width:1px; height:22px; background:var(--grey-line); }
  .btn{ display:inline-block; padding:12px 22px; border-radius:2px; font-family:'Poppins', sans-serif; font-weight:700; font-size:0.9rem; text-decoration:none; cursor:pointer; border:none; text-align:center; }
  .nav a.btn{ padding:10px 18px; }
  .btn-primario{ background:var(--orange); color:var(--black) !important; }
  .btn-primario:hover{ background:var(--orange-dark); }
  .btn-secundario{ background:var(--white); color:var(--black); border:1.5px solid var(--black); }
  .btn-secundario:hover{ background:var(--black); color:var(--white); }
  .btn-oscuro{ background:var(--black); color:var(--white); }
  .btn-oscuro:hover{ background:#000; }
  .btn-menu{ display:none; background:none; border:1.5px solid var(--grey-line); border-radius:2px; padding:8px 12px; font-family:'Poppins', sans-serif; font-weight:700; font-size:0.85rem; cursor:pointer; }
  .buscador{ display:none; background:var(--offwhite); border-bottom:1px solid var(--grey-line); padding:14px 0; }
  .buscador.abierto{ display:block; }
  .buscador form{ display:flex; gap:10px; }
  .buscador input{ flex:1; padding:12px 14px; border:1.5px solid var(--grey-line); border-radius:2px; font-family:inherit; font-size:1rem; }
  .buscador input:focus{ border-color:var(--black); outline:none; }

  /* ---------- Hero ---------- */
  .hero{ background:var(--offwhite); padding:68px 0 76px; }
  .hero-grid{ display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px; align-items:center; }
  .hero-badge{ display:inline-flex; align-items:center; gap:10px; font-size:0.82rem; font-weight:600; color:#333; margin-bottom:22px; text-decoration:none; }
  .hero-badge b{ background:var(--black); color:var(--orange); font-family:'Poppins', sans-serif; padding:4px 10px; border-radius:20px; font-size:0.78rem; }
  .hero-badge:hover span{ text-decoration:underline; }
  .eyebrow-bar{ width:46px; height:6px; background:var(--orange); margin-bottom:18px; }
  h1{ font-family:'Poppins', sans-serif; font-weight:800; font-size:clamp(2rem, 4.6vw, 3.3rem); line-height:1.12; margin:0 0 14px 0; letter-spacing:-0.01em; }
  h1 em{ font-style:normal; background:linear-gradient(transparent 62%, var(--orange) 62%, var(--orange) 92%, transparent 92%); }
  .hero-tema{ font-family:'Poppins', sans-serif; font-weight:600; font-size:1.1rem; margin:0 0 12px 0; }
  .hero-sub{ font-size:1.02rem; color:#444; max-width:34em; margin:0 0 26px 0; }

  .news-form{ display:flex; gap:10px; max-width:480px; }
  .news-form input{ flex:1; min-width:0; padding:13px 14px; border:1.5px solid #cfcfcf; border-radius:2px; font-family:inherit; font-size:1rem; background:var(--white); }
  .news-form input:focus{ border-color:var(--black); outline:none; }
  .news-nota{ font-size:0.8rem; color:var(--grey); margin:10px 0 0 0; }
  .hero-links{ margin-top:18px; font-size:0.92rem; }
  .hero-links a{ font-weight:700; text-decoration:none; border-bottom:2px solid var(--orange); padding-bottom:2px; }

  .preview{ position:relative; display:grid; gap:14px; }
  .pv-etiqueta{ font-size:0.74rem; font-weight:600; color:var(--grey); text-align:right; }
  .pv-card{ background:var(--white); border:1px solid var(--grey-line); border-radius:4px; padding:18px 20px; }
  .pv-patrimonio{ background:var(--black); color:var(--white); border:none; }
  .pv-patrimonio span{ display:block; font-size:0.78rem; color:rgba(255,255,255,0.75); margin-bottom:4px; }
  .pv-patrimonio strong{ font-family:'Poppins', sans-serif; font-weight:800; font-size:2rem; color:var(--orange); }
  .pv-row{ display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px solid var(--grey-line); font-size:0.9rem; }
  .pv-row:last-child{ border-bottom:none; }
  .pv-row b.pos{ color:var(--sage); } .pv-row b.neg{ color:var(--brick); }
  .pv-presu-top{ display:flex; justify-content:space-between; font-size:0.85rem; margin-bottom:10px; }
  .pv-barra{ height:9px; background:var(--offwhite); border-radius:20px; overflow:hidden; }
  .pv-barra i{ display:block; height:100%; width:72%; background:var(--sage); border-radius:20px; }

  /* ---------- Secciones ---------- */
  section{ padding:76px 0; }
  .seccion-cabecera{ max-width:640px; margin-bottom:36px; }
  .seccion-fila{ display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; margin-bottom:36px; }
  .seccion-fila .seccion-cabecera{ margin-bottom:0; }
  h2{ font-family:'Poppins', sans-serif; font-weight:700; font-size:clamp(1.5rem, 3vw, 2.1rem); line-height:1.2; margin:0 0 10px 0; }
  .seccion-cabecera p{ color:#555; margin:0; font-size:1.02rem; }
  .link-flecha{ font-weight:700; font-size:0.92rem; text-decoration:none; border-bottom:2px solid var(--orange); padding-bottom:2px; white-space:nowrap; }
  .link-flecha:hover{ color:var(--orange-text); }
  .grid-3{ display:grid; grid-template-columns:repeat(3, 1fr); gap:22px; }
  .grid-3.dos{ grid-template-columns:1fr 1fr; }
  .grid-2{ display:grid; grid-template-columns:repeat(2, 1fr); gap:22px; }
  .bg-claro{ background:var(--offwhite); }

  /* Categorías */
  .cat-card{ display:block; text-decoration:none; background:var(--white); border:1px solid var(--grey-line); border-top:6px solid var(--orange); border-radius:4px; padding:24px 24px 26px; }
  .cat-card:hover{ border-color:var(--black); border-top-color:var(--orange); }
  .cat-card h3{ font-family:'Poppins', sans-serif; font-size:1.15rem; margin:0 0 8px 0; }
  .cat-card p{ color:#555; font-size:0.93rem; margin:0 0 16px 0; }
  .cat-card span{ font-size:0.85rem; font-weight:700; }

  /* Artículos */
  .post-card{ background:var(--white); border:1px solid var(--grey-line); border-radius:4px; overflow:hidden; display:flex; flex-direction:column; text-decoration:none; }
  .post-card:hover{ border-color:var(--black); }
  .post-portada{ height:150px; display:flex; align-items:flex-end; padding:14px; background:var(--black); }
  .post-portada.alt{ background:var(--orange); }
  .post-portada.alt2{ background:#2A2A2A; }
  .post-cat{ font-size:0.7rem; font-weight:700; letter-spacing:0.03em; text-transform:uppercase; background:var(--white); color:var(--black); padding:4px 10px; border-radius:20px; }
  .post-body{ padding:20px 22px 24px; display:flex; flex-direction:column; flex-grow:1; }
  .post-body h3{ font-family:'Poppins', sans-serif; font-size:1.05rem; line-height:1.35; margin:0 0 10px 0; }
  .post-body p{ color:#555; font-size:0.9rem; margin:0 0 16px 0; flex-grow:1; }
  .post-meta{ font-size:0.78rem; color:var(--grey); }

  /* Herramientas */
  .tool-card{ background:var(--white); border:1px solid var(--grey-line); border-radius:4px; padding:28px 26px; display:flex; flex-direction:column; }
  .tool-icon{ width:46px; height:46px; border-radius:6px; background:var(--black); color:var(--orange); display:flex; align-items:center; justify-content:center; font-family:'Poppins', sans-serif; font-weight:800; margin-bottom:18px; }
  .tool-tag{ display:inline-block; width:fit-content; font-size:0.72rem; font-weight:700; padding:3px 10px; border-radius:20px; background:#E3EFE8; color:var(--sage); margin-bottom:12px; }
  .tool-card h3{ font-family:'Poppins', sans-serif; font-size:1.15rem; margin:0 0 8px 0; }
  .tool-card p{ color:#555; font-size:0.93rem; margin:0 0 20px 0; flex-grow:1; }
  .tool-link{ font-weight:700; font-size:0.9rem; text-decoration:none; border-bottom:2px solid var(--orange); width:fit-content; padding-bottom:2px; }
  .tool-link:hover{ color:var(--orange-text); }

  .calc-strip{ margin-top:22px; background:var(--white); border:1px solid var(--grey-line); border-left:6px solid var(--orange); border-radius:4px; padding:22px 26px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
  .calc-strip h3{ font-family:'Poppins', sans-serif; font-size:1.05rem; margin:0 0 4px 0; }
  .calc-strip p{ margin:0; color:#555; font-size:0.9rem; }
  .calc-links{ display:flex; gap:10px; flex-wrap:wrap; }
  .calc-links a{ font-size:0.85rem; font-weight:600; text-decoration:none; padding:8px 14px; border:1.5px solid var(--grey-line); border-radius:20px; }
  .calc-links a:hover{ border-color:var(--black); }

  /* Sobre nosotros */
  .about-grid{ display:grid; grid-template-columns:auto 1fr; gap:34px; align-items:center; max-width:860px; }
  .about-foto{ width:132px; height:132px; border-radius:50%; background:var(--black); color:var(--orange); display:flex; align-items:center; justify-content:center; font-family:'Poppins', sans-serif; font-weight:800; font-size:2.4rem; }
  .about p{ color:#444; margin:0 0 18px 0; max-width:40em; }
  .about-botones{ display:flex; gap:12px; flex-wrap:wrap; }

  /* Llamado final */
  .cta{ background:var(--orange); padding:60px 0; }
  .cta-inner{ display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap; }
  .cta h2{ margin:0 0 6px 0; }
  .cta p{ margin:0; color:#222; font-size:1.02rem; }

  /* ---------- Footer ---------- */
  .site-footer{ background:var(--white); border-top:1px solid var(--grey-line); padding:56px 0 28px; }
  .footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr 1fr; gap:32px; margin-bottom:34px; }
  .footer-grid h4{ font-family:'Poppins', sans-serif; font-size:0.85rem; margin:0 0 14px 0; }
  .footer-grid ul{ list-style:none; margin:0; padding:0; }
  .footer-grid li{ margin-bottom:9px; }
  .footer-grid a{ font-size:0.9rem; color:#444; text-decoration:none; }
  .footer-grid a:hover{ color:var(--black); text-decoration:underline; }
  .footer-marca p{ font-size:0.9rem; color:#555; margin:10px 0 0 0; max-width:22em; }
  .footer-aviso{ font-size:0.8rem; color:var(--grey); max-width:60em; margin:0 0 18px 0; }
  .footer-copy{ border-top:1px solid var(--grey-line); padding-top:20px; font-size:0.8rem; color:var(--grey); }

  /* ---------- Responsivo ---------- */
  @media (max-width: 1000px){
    .nav{ gap:16px; }
    .nav a, .nav button.link{ font-size:0.84rem; }
  }
  @media (max-width: 900px){
    .hero-grid{ grid-template-columns:1fr; gap:40px; }
    .grid-3{ grid-template-columns:1fr 1fr; }
    .footer-grid{ grid-template-columns:1fr 1fr 1fr; }
    .footer-marca{ grid-column:1 / -1; }
  }
  @media (max-width: 1100px){
    .btn-menu{ display:block; }
    .nav{ display:none; position:absolute; top:68px; left:0; right:0; background:var(--white); border-bottom:1px solid var(--grey-line); flex-direction:column; align-items:stretch; gap:0; padding:8px 20px 20px; }
    .nav.abierto{ display:flex; }
    .nav a, .nav button.link{ padding:14px 0; border-bottom:1px solid var(--grey-line); font-size:0.95rem; text-align:left; }
    .nav .sep{ display:none; }
    .nav a.btn{ margin-top:14px; border-bottom:none; padding:12px 18px; }
  }
  @media (max-width: 760px){
    .contenedor{ padding:0 20px; }
    .hero{ padding:44px 0 52px; }
    section{ padding:52px 0; }
    .grid-2{ grid-template-columns:1fr; }
    .about-grid{ grid-template-columns:1fr; gap:18px; }
  }
  @media (max-width: 560px){
    .grid-3, .grid-3.dos, .footer-grid{ grid-template-columns:1fr; }
    .news-form{ flex-direction:column; }
    .news-form .btn{ width:100%; }
    .cta .btn{ width:100%; }
    .calc-links a{ flex:1 1 auto; text-align:center; }
  }

  /* ===== v3 ===== */
  .hero{ padding:60px 0 64px; }
  .eyebrow{ display:flex; align-items:center; gap:12px; font-family:'Poppins', sans-serif; font-weight:700; font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:18px; }
  .eyebrow::before{ content:""; width:46px; height:6px; background:var(--orange); display:block; flex:none; }
  .hero-botones{ display:flex; gap:14px; align-items:center; flex-wrap:wrap; margin-bottom:26px; }
  .hero-social{ font-size:0.85rem; color:#444; margin:0; }
  .hero-social a{ font-weight:700; text-decoration:none; border-bottom:2px solid var(--orange); }
  .hero-social b{ background:var(--black); color:var(--orange); font-family:'Poppins', sans-serif; padding:3px 9px; border-radius:20px; font-size:0.75rem; margin-right:6px; }

  .thumb{ position:relative; display:flex; align-items:flex-end; padding:14px; background:var(--black); color:var(--white); }
  .thumb.c2{ background:var(--orange); } .thumb.c3{ background:var(--sage); }
  .thumb.c4{ background:#2A2A2A; } .thumb.c5{ background:var(--brick); } .thumb.c6{ background:var(--orange-dark); }
  .thumb .prov{ position:absolute; top:10px; right:12px; font-size:0.66rem; font-weight:600; opacity:0.75; letter-spacing:0.02em; }
  .thumb.c2 .prov, .thumb.c6 .prov{ color:var(--black); }

  .pilar{ display:block; text-decoration:none; background:var(--white); border:1px solid var(--grey-line); border-radius:4px; overflow:hidden; }
  .pilar:hover{ border-color:var(--black); }
  .pilar .thumb{ height:210px; }
  .pilar-tag{ font-size:0.7rem; font-weight:700; letter-spacing:0.04em; text-transform:uppercase; background:var(--orange); color:var(--black); padding:4px 10px; border-radius:20px; }
  .pilar-body{ padding:22px 24px 26px; }
  .pilar-body h2{ font-size:1.3rem; margin:0 0 8px 0; }
  .pilar-body p{ margin:0 0 14px 0; color:#555; font-size:0.93rem; }
  .pilar-body span{ font-weight:700; font-size:0.9rem; border-bottom:2px solid var(--orange); padding-bottom:2px; }

  .temas{ border-bottom:1px solid var(--grey-line); padding:18px 0; }
  .temas .contenedor{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
  .temas strong{ font-family:'Poppins', sans-serif; font-size:0.85rem; margin-right:4px; }
  .chip{ font-size:0.88rem; font-weight:600; text-decoration:none; padding:8px 16px; border:1.5px solid var(--grey-line); border-radius:20px; }
  .chip:hover{ border-color:var(--black); }

  .grid-3 .post-card .thumb{ height:130px; }
  .post-card .thumb .post-cat{ position:relative; }

  .dolor{ background:var(--white); border:1px solid var(--grey-line); border-radius:4px; padding:26px 24px; display:flex; flex-direction:column; text-decoration:none; }
  .dolor:hover{ border-color:var(--black); }
  .dolor q{ quotes:none; font-family:'Poppins', sans-serif; font-weight:700; font-size:1.1rem; line-height:1.35; margin-bottom:12px; display:block; }
  .dolor p{ color:#555; font-size:0.92rem; margin:0 0 16px 0; flex-grow:1; }
  .dolor span{ font-weight:700; font-size:0.88rem; color:var(--orange-text); }
  .dolor:hover span{ text-decoration:underline; }

  .paso{ background:var(--white); border:1px solid var(--grey-line); border-radius:4px; padding:28px 26px; }
  .paso-num{ width:40px; height:40px; border-radius:50%; background:var(--black); color:var(--orange); font-family:'Poppins', sans-serif; font-weight:800; display:flex; align-items:center; justify-content:center; margin-bottom:16px; }
  .paso h3{ font-family:'Poppins', sans-serif; font-size:1.15rem; margin:0 0 8px 0; }
  .paso p{ color:#555; font-size:0.93rem; margin:0 0 16px 0; }
  .paso ul{ list-style:none; padding:0; margin:0; }
  .paso li{ margin-bottom:10px; }
  .paso a{ font-weight:700; font-size:0.9rem; text-decoration:none; border-bottom:2px solid var(--orange); padding-bottom:2px; }
  .paso a:hover{ color:var(--orange-text); }
  .paso small{ display:block; color:var(--grey); font-size:0.8rem; margin-top:6px; font-weight:400; }

  .news{ background:var(--orange); padding:64px 0; }
  .news-grid{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:44px; align-items:center; }
  .news h2{ margin:0 0 10px 0; }
  .news p{ margin:0; color:#222; font-size:1.02rem; }
  .news-lista{ list-style:none; padding:0; margin:16px 0 0 0; font-size:0.95rem; }
  .news-lista li{ margin-bottom:6px; padding-left:22px; position:relative; }
  .news-lista li::before{ content:"✓"; position:absolute; left:0; font-weight:800; }
  .news-caja{ background:var(--white); padding:26px; border-radius:4px; }
  .news-caja .news-form{ flex-direction:column; max-width:none; }
  .news-caja .btn{ width:100%; }
  .news-caja .news-nota{ margin-top:12px; }

  @media (max-width: 900px){
    .news-grid{ grid-template-columns:1fr; gap:28px; }
  }
  @media (max-width: 560px){
    .grid-3 .post-card{ flex-direction:row; }
    .grid-3 .post-card .thumb{ width:104px; height:auto; min-height:120px; flex:none; padding:8px; }
    .grid-3 .post-card .thumb .prov{ display:none; }
    .grid-3 .post-card .post-cat{ font-size:0.6rem; padding:3px 7px; }
    .grid-3 .post-card .post-body{ padding:14px 16px; }
    .grid-3 .post-card .post-body p{ display:none; }
    .hero-botones .btn{ width:100%; }
    .pilar .thumb{ height:150px; }
  }

  /* ===== v4: hero de marca ===== */
  h1{ font-size:clamp(1.9rem, 4vw, 2.9rem); line-height:1.15; }
  .hero-grid{ align-items:start; }
  .id-card{ background:var(--white); border:1px solid var(--grey-line); border-top:6px solid var(--orange); border-radius:4px; padding:28px 28px 30px; }
  .id-num{ font-family:'Poppins', sans-serif; font-weight:800; font-size:3rem; line-height:1; margin-bottom:8px; }
  .id-txt{ margin:0 0 18px 0; color:#444; font-size:0.98rem; }
  .id-lema{ font-family:'Poppins', sans-serif; font-weight:700; font-size:1.15rem; margin:0 0 20px 0; padding-top:18px; border-top:1px solid var(--grey-line); }
  .id-card .btn{ width:100%; }
  .hero-story{ display:grid; grid-template-columns:repeat(3, 1fr); gap:30px; margin-top:44px; padding-top:32px; border-top:1px solid #dcdad4; }
  .hero-story h3{ font-family:'Poppins', sans-serif; font-size:1rem; margin:0 0 8px 0; }
  .hero-story h3::before{ content:""; display:block; width:30px; height:4px; background:var(--orange); margin-bottom:12px; }
  .hero-story p{ margin:0; color:#444; font-size:0.93rem; }

  .pilar-ancho{ display:grid; grid-template-columns:0.9fr 1.1fr; text-decoration:none; background:var(--white); border:1px solid var(--grey-line); border-radius:4px; overflow:hidden; margin-bottom:22px; }
  .pilar-ancho:hover{ border-color:var(--black); }
  .pilar-ancho .thumb{ min-height:220px; }
  .pilar-ancho .pilar-body{ display:flex; flex-direction:column; justify-content:center; }
  .pilar-ancho .pilar-body h3{ font-family:'Poppins', sans-serif; font-size:1.3rem; line-height:1.3; margin:0 0 10px 0; }
  .pilar-ancho .pilar-body p{ margin:0 0 14px 0; color:#555; font-size:0.95rem; }
  .pilar-ancho .pilar-body span{ width:fit-content; }

  @media (max-width: 900px){
    .hero-story{ grid-template-columns:1fr; gap:22px; }
    .pilar-ancho{ grid-template-columns:1fr; }
    .pilar-ancho .thumb{ min-height:150px; }
  }

  /* ===== v5: botón de comunidad ===== */
  .panel-unete{ background:var(--offwhite); border-bottom:1px solid var(--grey-line); padding:28px 0; }
  .panel-unete[hidden]{ display:none; }
  .panel-grid{ display:grid; grid-template-columns:1.2fr 0.8fr; gap:40px; align-items:center; }
  .panel-unete h2{ font-size:1.35rem; margin:0 0 8px 0; }
  .panel-unete p{ margin:0; color:#444; font-size:0.95rem; }
  .panel-unete .news-lista{ margin-top:12px; font-size:0.9rem; }
  .panel-unete .news-form{ flex-direction:column; max-width:none; }
  .panel-unete .news-form .btn{ width:100%; }
  .panel-unete .news-nota{ margin:2px 0 0 0; font-size:0.8rem; }
  @media (max-width: 860px){
    .panel-grid{ grid-template-columns:1fr; gap:20px; }
    .nav .btn-primario{ width:100%; margin-top:14px; border-bottom:none; padding:12px 18px; }
  }

  .nav a, .nav button.link, .nav .btn{ white-space:nowrap; }
  .nav{ gap:14px; }
  .nav a, .nav button.link{ font-size:0.86rem; }
  .header-inner{ gap:14px; }
  .nav a.btn, .nav .btn-primario{ padding:10px 18px; }
  @media (max-width: 1100px){ .nav .btn-primario{ width:100%; margin-top:14px; } }
  #comunidad{ scroll-margin-top:68px; }

  /* ===== v7: menú con jerarquía ===== */
  .nav{ gap:6px; }
  .nav .item{ position:relative; display:flex; align-items:center; padding:0 8px; }
  .nav .item > a{ font-size:0.92rem; }
  .nav .caret{ background:none; border:none; cursor:pointer; font-size:0.72rem; padding:8px 4px; color:#333; line-height:1; }
  .nav .caret:hover{ color:var(--orange-text); }
  .nav .item.abierto .caret{ transform:rotate(180deg); }
  .nav .login{ padding:0 8px; }
  .nav .sep{ margin:0 8px; }
  .sub{ position:absolute; top:100%; left:-16px; padding-top:20px; z-index:60; min-width:320px; }
  .sub[hidden]{ display:none; }
  .sub-box{ background:var(--white); border:1px solid var(--grey-line); border-top:4px solid var(--orange); border-radius:4px; box-shadow:0 14px 30px rgba(0,0,0,0.08); padding:8px; }
  .sub-box a{ display:block; padding:12px 14px; border-radius:3px; text-decoration:none; }
  .sub-box a:hover{ background:var(--offwhite); }
  .sub-box a strong{ display:block; font-family:'Poppins', sans-serif; font-size:0.9rem; color:var(--black); margin-bottom:2px; }
  .sub-box a span{ display:block; font-size:0.8rem; font-weight:400; color:#555; line-height:1.4; }
  .sub-box a.sub-todos{ font-weight:700; font-size:0.85rem; color:var(--orange-text); border-top:1px solid var(--grey-line); border-radius:0; margin-top:6px; padding-top:14px; }
  @media (max-width: 1100px){
    .nav .item{ padding:0; border-bottom:1px solid var(--grey-line); flex-wrap:wrap; justify-content:space-between; }
    .nav .item > a{ flex:1; border-bottom:none !important; font-size:0.95rem; }
    .nav .caret{ padding:14px 10px; font-size:0.85rem; }
    .sub{ position:static; flex-basis:100%; padding:0 0 10px 12px; min-width:0; }
    .sub-box{ border:none; border-left:3px solid var(--orange); box-shadow:none; border-radius:0; padding:0 0 0 6px; }
    .sub-box a{ padding:10px 10px; border-bottom:none !important; }
    .nav .login{ padding:14px 0; }
    .nav .sep{ display:none; }
  }

  .nav a.btn-primario{ background:var(--orange); color:var(--black) !important; }
  .nav a.btn-primario:hover{ background:var(--orange-dark); }
  @media (max-width: 1100px){ .nav a.btn-primario{ display:block; text-align:center; } }

  .nav a.btn-sec{ border:1.5px solid var(--black); background:var(--white); color:var(--black) !important; padding:8px 16px; }
  .nav a.btn-sec:hover{ background:var(--black); color:var(--white) !important; }
  .nav .sep{ display:none; }
  .nav a.btn{ margin-left:2px; }
  @media (max-width: 1100px){
    .nav a.btn-sec{ display:block; text-align:center; margin:14px 0 0 0; padding:11px 18px; }
    .nav a.btn-primario{ margin:10px 0 0 0; }
  }

/* ===== Piezas dinámicas del sitio PHP ===== */
.thumb{ overflow:hidden; }
.thumb img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.thumb .post-cat, .thumb .pilar-tag{ position:relative; z-index:1; }
.hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.form-msg{ padding:12px 14px; border-radius:3px; font-size:0.92rem; margin:0 0 14px 0; }
.form-msg.ok{ background:#E3EFE8; color:#2F5640; }
.form-msg.err{ background:#F6E3DE; color:#8A3320; }
.vacio{ background:var(--white); border:1px dashed #cfcfcf; border-radius:4px; padding:34px 28px; text-align:center; }
.vacio h3{ font-family:'Poppins', sans-serif; font-size:1.15rem; margin:0 0 8px 0; }
.vacio p{ margin:0 0 18px 0; color:#555; }
.pagina-simple{ padding:80px 0; background:var(--offwhite); }
.pagina-simple .caja{ max-width:560px; margin:0 auto; background:var(--white); border:1px solid var(--grey-line); border-top:6px solid var(--orange); border-radius:4px; padding:36px 32px; }
.pagina-simple h1{ font-size:1.6rem; margin:0 0 12px 0; }
.pagina-simple p{ color:#444; margin:0 0 18px 0; }
.pagina-simple .acciones{ display:flex; gap:12px; flex-wrap:wrap; }
@media (max-width: 560px){ .pagina-simple{ padding:44px 0; } .pagina-simple .caja{ padding:26px 20px; } .pagina-simple .acciones .btn{ width:100%; } }

.news .form-msg{ margin:0 0 14px 0; }

/* ===== Blog: listados ===== */
.lista-cab{ background:var(--offwhite); padding:36px 0 34px; border-bottom:1px solid var(--grey-line); }
.lista-cab h1{ font-size:clamp(1.8rem, 3.6vw, 2.6rem); margin:14px 0 10px 0; }
.lista-intro{ max-width:44em; color:#444; font-size:1.05rem; margin:0 0 20px 0; }
.chips{ display:flex; gap:10px; flex-wrap:wrap; }
.chip.activo{ background:var(--black); color:var(--white); border-color:var(--black); }
.lista-cuerpo{ padding:56px 0 70px; }
.migas ol{ list-style:none; display:flex; flex-wrap:wrap; gap:6px; margin:0; padding:0; font-size:0.84rem; color:var(--grey); }
.migas li + li::before{ content:"›"; margin-right:6px; color:#a0a0a0; }
.migas a{ color:#444; text-decoration:none; }
.migas a:hover{ text-decoration:underline; }
.migas [aria-current]{ color:var(--black); font-weight:600; }
.paginacion{ display:flex; gap:8px; flex-wrap:wrap; justify-content:center; margin-top:44px; }
.paginacion a, .paginacion .actual{ min-width:42px; padding:10px 14px; text-align:center; border:1.5px solid var(--grey-line); border-radius:3px; text-decoration:none; font-weight:600; font-size:0.9rem; }
.paginacion a:hover{ border-color:var(--black); }
.paginacion .actual{ background:var(--black); color:var(--white); border-color:var(--black); }

/* ===== Blog: artículo ===== */
.contenedor-estrecho{ max-width:760px; margin:0 auto; padding:0 24px; }
.art-cab{ background:var(--offwhite); padding:34px 0 40px; border-bottom:1px solid var(--grey-line); }
.art-cat{ display:inline-block; margin:18px 0 12px 0; font-size:0.72rem; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; text-decoration:none; background:var(--orange); color:var(--black); padding:5px 12px; border-radius:20px; }
.art-cab h1{ font-size:clamp(1.8rem, 4vw, 2.7rem); line-height:1.15; margin:0 0 14px 0; }
.art-lead{ font-size:1.12rem; color:#333; margin:0 0 16px 0; }
.art-meta{ font-size:0.86rem; color:var(--grey); margin:0; }
.art-cuerpo{ padding-top:36px; padding-bottom:60px; }
.art-imagen{ width:100%; height:auto; border-radius:4px; margin:0 0 32px 0; display:block; }
.toc{ background:var(--offwhite); border:1px solid var(--grey-line); border-left:6px solid var(--orange); border-radius:4px; padding:20px 24px; margin:0 0 34px 0; }
.toc strong{ font-family:'Poppins', sans-serif; font-size:0.95rem; display:block; margin-bottom:10px; }
.toc ol{ margin:0; padding-left:20px; }
.toc li{ margin-bottom:6px; font-size:0.95rem; }
.toc a{ color:#222; text-decoration:none; }
.toc a:hover{ color:var(--orange-text); text-decoration:underline; }

.contenido{ font-size:1.07rem; line-height:1.8; color:#222; }
.contenido h2{ font-family:'Poppins', sans-serif; font-size:1.55rem; line-height:1.25; margin:2.1em 0 0.6em 0; scroll-margin-top:90px; }
.contenido h3{ font-family:'Poppins', sans-serif; font-size:1.2rem; margin:1.8em 0 0.5em 0; scroll-margin-top:90px; }
.contenido p{ margin:0 0 1.15em 0; }
.contenido ul, .contenido ol{ margin:0 0 1.2em 0; padding-left:1.4em; }
.contenido li{ margin-bottom:0.45em; }
.contenido a{ color:var(--orange-text); text-decoration:underline; text-underline-offset:2px; }
.contenido a:hover{ color:var(--black); }
.contenido img{ max-width:100%; height:auto; border-radius:4px; }
.contenido blockquote{ margin:1.6em 0; padding:14px 22px; border-left:6px solid var(--orange); background:var(--offwhite); font-size:1.05rem; }
.contenido blockquote p:last-child{ margin-bottom:0; }
.contenido table{ display:block; overflow-x:auto; border-collapse:collapse; margin:0 0 1.4em 0; font-size:0.95rem; }
.contenido th, .contenido td{ border:1px solid var(--grey-line); padding:10px 14px; text-align:left; }
.contenido th{ background:var(--offwhite); font-family:'Poppins', sans-serif; font-size:0.85rem; }
.contenido code{ background:var(--offwhite); padding:2px 6px; border-radius:3px; font-size:0.92em; }

.compartir{ display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin:38px 0 0 0; padding-top:22px; border-top:1px solid var(--grey-line); font-size:0.9rem; }
.compartir a{ text-decoration:none; font-weight:600; padding:7px 14px; border:1.5px solid var(--grey-line); border-radius:20px; }
.compartir a:hover{ border-color:var(--black); }
.art-herramienta{ margin-top:40px; background:var(--white); border:1px solid var(--grey-line); border-top:6px solid var(--orange); border-radius:4px; padding:26px 28px; }
.art-herramienta .etiqueta{ font-size:0.72rem; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; color:var(--orange-text); }
.art-herramienta h2{ font-size:1.3rem; margin:6px 0 8px 0; }
.art-herramienta p{ margin:0 0 18px 0; color:#444; }
.relacionados{ padding:60px 0; }
@media (max-width: 760px){
  .contenedor-estrecho{ padding:0 20px; }
  .contenido{ font-size:1.03rem; }
  .art-herramienta{ padding:22px 20px; }
  .art-herramienta .btn{ width:100%; }
  .lista-cuerpo{ padding:40px 0 52px; }
}

/* ===== Páginas informativas (contacto, legales, sobre nosotros) ===== */
.nota-link a, .news-nota a{ color:inherit; text-decoration:underline; }
.legal-cuerpo{ padding:44px 0 70px; }
.legal-cuerpo .contenido h2{ font-size:1.3rem; margin:1.9em 0 0.5em 0; }
.legal-cuerpo .contenido ul{ padding-left:1.3em; }
.legal-cuerpo .contenido li{ margin-bottom:0.4em; }
.legal-cuerpo .contenido a{ color:var(--orange-text); font-weight:600; }
.legal-fecha{ font-size:0.88rem; color:var(--grey); margin:0 0 6px 0; }
.legal-aviso{ background:var(--offwhite); border:1px solid var(--grey-line); border-left:6px solid var(--orange); border-radius:4px; padding:16px 20px; font-size:0.95rem; margin:0 0 8px 0; }

.contacto-grid{ display:grid; grid-template-columns:1.15fr 0.85fr; gap:44px; align-items:start; }
.form-contacto{ background:var(--white); border:1px solid var(--grey-line); border-top:6px solid var(--orange); border-radius:4px; padding:28px; }
.form-contacto .campo{ margin-bottom:18px; }
.form-contacto label{ display:block; font-family:'Poppins', sans-serif; font-weight:600; font-size:0.85rem; margin-bottom:6px; }
.form-contacto input[type=text], .form-contacto input[type=email], .form-contacto select, .form-contacto textarea{ width:100%; padding:12px 14px; border:1.5px solid #cfcfcf; border-radius:2px; font-family:inherit; font-size:1rem; background:var(--white); }
.form-contacto textarea{ min-height:150px; resize:vertical; }
.form-contacto input:focus, .form-contacto select:focus, .form-contacto textarea:focus{ border-color:var(--black); outline:none; }
.form-contacto .btn{ width:100%; }
.form-contacto .ayuda{ font-size:0.8rem; color:var(--grey); margin:12px 0 0 0; }
.contacto-lado h2{ font-size:1.15rem; margin:0 0 8px 0; }
.contacto-lado p{ color:#444; margin:0 0 22px 0; font-size:0.95rem; }
.contacto-lado a{ color:var(--orange-text); font-weight:600; }
.contacto-lado .mini{ background:var(--offwhite); border:1px solid var(--grey-line); border-radius:4px; padding:18px 20px; margin-bottom:18px; }
.contacto-lado .mini h2{ font-size:1rem; }
.contacto-lado .mini p{ margin:0; }

.sobre-hero{ background:var(--offwhite); padding:56px 0 60px; border-bottom:1px solid var(--grey-line); }
.sobre-hero h1{ margin:0 0 16px 0; max-width:18em; }
.sobre-hero .lead{ font-size:1.15rem; color:#333; max-width:40em; margin:0; }
.sobre-seccion{ padding:60px 0; }
.sobre-seccion h2{ font-size:1.6rem; margin:0 0 16px 0; }
.sobre-texto{ max-width:44em; font-size:1.05rem; line-height:1.75; color:#222; }
.sobre-texto p{ margin:0 0 1.1em 0; }
.principios{ display:grid; grid-template-columns:repeat(3, 1fr); gap:20px; margin-top:26px; }
.principio{ background:var(--white); border:1px solid var(--grey-line); border-top:6px solid var(--orange); border-radius:4px; padding:24px; }
.principio h3{ font-family:'Poppins', sans-serif; font-size:1.05rem; margin:0 0 8px 0; }
.principio p{ margin:0; color:#444; font-size:0.93rem; }
.sobre-numeros{ display:flex; gap:40px; flex-wrap:wrap; margin-top:26px; }
.sobre-numeros strong{ display:block; font-family:'Poppins', sans-serif; font-weight:800; font-size:2.4rem; line-height:1; }
.sobre-numeros span{ font-size:0.9rem; color:#444; }
@media (max-width: 900px){
  .contacto-grid{ grid-template-columns:1fr; gap:30px; }
  .principios{ grid-template-columns:1fr; }
}

/* Texto introductorio al pie de cada categoría */
.cat-texto{ padding:10px 0 60px; }
.cat-texto h2{ font-family:'Poppins', sans-serif; font-size:1.35rem; margin:0 0 14px 0; }
.cat-texto p{ color:#333; font-size:1.02rem; line-height:1.75; margin:0 0 1em 0; }

/* ============================================================
   Herramientas y calculadoras
   ============================================================ */
.calc-seccion{ padding:44px 0 56px; }
.calc-grid{ display:grid; grid-template-columns:1.05fr 1fr; gap:26px; align-items:start; }
.calc-form{ background:var(--white); border:1px solid var(--grey-line); border-top:6px solid var(--orange); border-radius:4px; padding:26px 26px 22px; }
.calc-form h2{ font-size:1.2rem; margin:0 0 16px 0; }
.calc-campo{ margin-bottom:16px; }
.calc-campo label{ display:block; font-family:'Poppins', sans-serif; font-weight:600; font-size:0.85rem; margin-bottom:6px; }
.calc-campo .calc-ayuda{ display:block; font-weight:400; font-family:'Inter', sans-serif; font-size:0.78rem; color:var(--grey); margin-top:2px; }
.calc-input{ display:flex; align-items:center; border:1.5px solid #cfcfcf; border-radius:2px; background:var(--white); }
.calc-input:focus-within{ border-color:var(--black); }
.calc-input span{ padding:0 0 0 12px; color:var(--grey); font-weight:600; }
.calc-input span.sufijo{ padding:0 12px 0 0; }
.calc-input input, .calc-campo select{ width:100%; border:none; background:transparent; padding:12px 12px; font-family:inherit; font-size:1rem; outline:none; }
.calc-campo select{ border:1.5px solid #cfcfcf; border-radius:2px; background:var(--white); }
.calc-campo select:focus{ border-color:var(--black); }
.calc-opcional{ border-top:1px dashed var(--grey-line); padding-top:16px; margin-top:6px; }
.calc-opcional .tit{ font-size:0.72rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color:var(--grey); margin:0 0 12px 0; }
.calc-acciones{ margin-top:6px; }
.btn-texto{ background:none; border:none; padding:0; font:inherit; font-weight:700; font-size:0.88rem; cursor:pointer; border-bottom:2px solid var(--orange); }
.btn-texto:hover{ color:var(--orange-text); }
.calc-tabs{ display:flex; gap:0; margin-bottom:18px; border:1.5px solid var(--black); border-radius:2px; overflow:hidden; }
.calc-tabs button{ flex:1; padding:11px 10px; font-family:'Poppins', sans-serif; font-weight:700; font-size:0.85rem; background:var(--white); border:none; cursor:pointer; }
.calc-tabs button[aria-selected="true"]{ background:var(--black); color:var(--white); }
.calc-res{ background:var(--black); color:var(--white); border-radius:4px; padding:26px 26px 22px; position:sticky; top:90px; }
.calc-res h2{ font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--orange); margin:0 0 14px 0; font-family:'Poppins', sans-serif; }
.calc-aviso{ margin:0; color:#d9d9d9; font-size:0.95rem; }
.res-fila{ padding:12px 0; border-bottom:1px solid #2c2c2c; }
.res-fila:last-of-type{ border-bottom:none; }
.res-fila .et{ display:block; font-size:0.78rem; color:#bdbdbd; margin-bottom:2px; }
.res-fila .val{ display:block; font-family:'Poppins', sans-serif; font-weight:800; font-size:1.55rem; line-height:1.2; }
.res-fila .val.grande{ font-size:2rem; color:var(--orange); }
.res-fila .val.med{ font-size:1.15rem; }
.res-sub{ margin:14px 0 0 0; padding-top:14px; border-top:1px dashed #444; }
.res-sub .tit{ font-size:0.8rem; font-weight:700; color:var(--orange); margin:0 0 4px 0; }
.res-nota{ margin:14px 0 0 0; font-size:0.9rem; color:#e6e6e6; line-height:1.5; }
.calc-privado{ font-size:0.78rem; color:var(--grey); margin:14px 0 0 0; }
.calc-texto{ padding:10px 0 50px; }
.calc-texto .contenedor-estrecho{ padding:0 24px; }
.calc-formula{ background:var(--offwhite); border-left:6px solid var(--orange); padding:14px 20px; margin:0 0 1.2em 0; font-weight:600; }
.calc-texto details{ border:1px solid var(--grey-line); border-radius:4px; padding:14px 18px; margin-bottom:10px; background:var(--white); }
.calc-texto summary{ font-family:'Poppins', sans-serif; font-weight:600; cursor:pointer; }
.calc-texto details p{ margin:10px 0 0 0; }
.calc-fuentes{ font-size:0.9rem; color:#444; }
.herr-hero-cta{ display:flex; gap:12px; flex-wrap:wrap; margin-top:22px; }
.herr-lista{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(2, 1fr); gap:16px; }
.herr-lista li{ background:var(--white); border:1px solid var(--grey-line); border-left:6px solid var(--orange); border-radius:4px; padding:18px 20px; }
.herr-lista strong{ display:block; font-family:'Poppins', sans-serif; font-size:1rem; margin-bottom:4px; }
.herr-lista span{ font-size:0.92rem; color:#444; }
.herr-pasos{ counter-reset:paso; list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3, 1fr); gap:18px; }
.herr-pasos li{ counter-increment:paso; background:var(--white); border:1px solid var(--grey-line); border-top:6px solid var(--black); border-radius:4px; padding:22px 20px; }
.herr-pasos li::before{ content:counter(paso); display:block; font-family:'Poppins', sans-serif; font-weight:800; font-size:1.8rem; color:var(--orange); line-height:1; margin-bottom:8px; }
.herr-pasos strong{ display:block; font-family:'Poppins', sans-serif; margin-bottom:4px; }
.herr-pasos span{ font-size:0.92rem; color:#444; }
.herr-banda{ background:var(--black); color:var(--white); padding:48px 0; }
.herr-banda h2{ margin:0 0 10px 0; font-size:1.6rem; }
.herr-banda p{ margin:0 0 22px 0; color:#d6d6d6; max-width:40em; }
.herr-nota{ background:var(--offwhite); border:1px solid var(--grey-line); border-radius:4px; padding:16px 20px; font-size:0.92rem; color:#333; max-width:44em; }
@media (max-width: 900px){
  .calc-grid{ grid-template-columns:1fr; }
  .calc-res{ position:static; }
  .herr-lista{ grid-template-columns:1fr; }
  .herr-pasos{ grid-template-columns:1fr; }
}
@media (max-width: 560px){
  .calc-seccion{ padding:28px 0 40px; }
  .calc-form, .calc-res{ padding:20px 18px; }
  .res-fila .val.grande{ font-size:1.7rem; }
  .herr-hero-cta .btn{ width:100%; }
}

/* Autor del artículo */
.art-meta a{ color:inherit; font-weight:600; }
.art-autor{ display:grid; grid-template-columns:auto 1fr; gap:22px; align-items:start; margin-top:40px; padding:26px 28px; background:var(--offwhite); border:1px solid var(--grey-line); border-radius:4px; }
.art-autor-foto{ width:72px; height:72px; border-radius:50%; background:var(--black); color:var(--orange); display:flex; align-items:center; justify-content:center; font-family:'Poppins', sans-serif; font-weight:800; font-size:1.8rem; }
.art-autor .etiqueta{ font-size:0.72rem; font-weight:700; letter-spacing:0.05em; text-transform:uppercase; color:var(--orange-text); }
.art-autor h2{ font-size:1.25rem; margin:4px 0 8px 0; }
.art-autor p{ margin:0 0 10px 0; color:#333; font-size:0.95rem; }
.art-autor .art-autor-nota{ font-size:0.84rem; color:var(--grey); }
.art-autor .art-autor-nota a{ color:inherit; }
@media (max-width: 560px){ .art-autor{ grid-template-columns:1fr; padding:22px 20px; } }
