/* ===== METADATOS DEL TEMA HIJO =====
 Theme Name: NPBC Child
 Theme URI: https://neuropathbioconsulting.com
 Description: Child theme personalizado para NPBC (Astra).
 Author: Edna Gómez
 Author URI: https://neuropathbioconsulting.com
 Version: 1.0.0
 Template: astra
 Text Domain: npbc-child
*/

/* ===== Variable global de fuente Astra (NPBC) ===== */
:root {
  --ast-global-font-family: 'Biome NPBC', system-ui, -apple-system, Arial, sans-serif;
}

/* ===== Fuente NPBC ===== */
@font-face {
  font-family: 'Biome NPBC';
  src: 
    url('/wp-content/themes/astra-child/fonts/BiomeW01WideItalic.woff2') format('woff2'),
    url('/wp-content/themes/astra-child/fonts/BiomeW01WideItalic.woff') format('woff'),
    url('/wp-content/themes/astra-child/fonts/BiomeW01WideItalic.ttf') format('truetype');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

/* ===== Títulos con Biome (itálicos) ===== */
h1, h2, h3,
.ast-single-post .entry-title,
.entry-content h1, .entry-content h2, .entry-content h3 {
  font-family: 'Biome NPBC', system-ui, -apple-system, Arial, sans-serif !important;
  font-style: italic !important;
}

/* ===== Tokens ===== */
:root{
  --np-orange:#FF6600;
  --np-deep:#CC3300;
  --np-ink:#333333;
  --np-font:'Biome NPBC', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
}

/* ===== Base Home / tipografía / layouts ===== */
section{padding:6rem 1.5rem;max-width:1200px;margin:auto}
h2{font-family:var(--np-font);font-size:clamp(24px,3vw,40px);margin-bottom:1.5rem;color:var(--np-ink)}
.grid{display:grid;gap:2rem}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}

/* Hero */
.hero{position:relative;min-height:100vh;display:grid;place-items:center;text-align:center;overflow:hidden;background:#fff}
#neuroCanvas{position:absolute;inset:0;width:100%;height:100%}
.hero-copy{position:relative;z-index:2;max-width:900px;margin:auto;padding:0 16px;color:var(--np-ink)}
.hero-copy h1{font-family:var(--np-font);font-size:clamp(36px,6vw,72px);margin:0}
.hero-copy p{font-size:clamp(18px,2.4vw,26px);margin-top:1rem;opacity:.85}

/* CTA */
.cta{display:inline-block;margin-top:2rem;background:var(--np-orange);color:#fff;padding:.9rem 1.6rem;border-radius:14px;font-weight:600;text-decoration:none;transition:.3s}
.cta:hover{background:var(--np-deep);transform:translateY(-2px)}

/* Cards generales */
.card{
  background:#fafafa;border-radius:12px;padding:2rem;
  box-shadow:0 4px 12px rgba(0,0,0,.06);
  transform:translateZ(0);
  transition:transform .25s, box-shadow .25s;
}
.card:hover{
  transform:translateY(-6px) rotateX(1deg) rotateY(-1deg);
  box-shadow:0 14px 38px rgba(0,0,0,.10), 0 0 0 1px rgba(255,102,0,.10) inset;
}

/* ===== Footer NPBC (fondo blanco elegante) ===== */
.npbc-footer {
  display:block; width:100%; clear:both;
  background:#ffffff; color:#333333; font-size:14px; text-align:center;
}
.npbc-footer__inner { max-width:1100px; margin:0 auto; padding:2rem 1rem; }

/* Línea cuántica difuminada */
.npbc-footer__pulse {
  height:4px; border-radius:50%;
  background: radial-gradient(circle at 50% 50%,
              rgba(255,102,0,0.6) 0%,
              rgba(204,51,0,0.4) 40%,
              rgba(255,102,0,0.2) 70%,
              transparent 100%);
  background-size:200% 100%;
  animation: npbc-quantum-pulse 6s ease-in-out infinite;
  filter: blur(3px);
}
@keyframes npbc-quantum-pulse {
  0%   { background-position: 0% 50%; opacity:.85 }
  50%  { background-position:100% 50%; opacity:1   }
  100% { background-position: 0% 50%; opacity:.85 }
}

/* ===== Texto footer ===== */
.npbc-footer__name{
  font-family:'Biome NPBC', system-ui, sans-serif;
  font-size:18px;
  font-weight:700;
}

.npbc-footer__tagline{
  font-family:'Biome NPBC', system-ui, sans-serif;
  font-size:15px;
  margin:.3rem 0 1rem;
  opacity:.95;
}

.npbc-footer__tagline .tm{
  font-style:normal;
  font-size:80%;
  opacity:.8;
}

.npbc-footer__info ul{
  list-style:none;
  padding:0;
  margin:1rem 0;
  line-height:1.6;
}

.npbc-footer__info li{margin:.2rem 0}

.npbc-footer__info a{
  color:var(--np-orange);
  text-decoration:none;
  border-bottom:1px solid rgba(255,102,0,.2);
  transition:.25s;
}

.npbc-footer__info a:hover{
  color:var(--np-deep);
  border-bottom-color:var(--np-deep);
}

.npbc-footer__legal{
  border-top:1px solid rgba(0,0,0,.08);
  margin-top:1rem;
  padding-top:1rem;
  font-size:12.5px;
  color:#666;
}

/* ===== Ajuste de tipografía: sección informativa y legal del footer ===== */
.npbc-footer__info,
.npbc-footer__info *,
.npbc-footer__legal,
.npbc-footer__legal * {
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif !important;
  font-style: normal !important;
}

/* Si por error quedara dentro de grillas/columnas, ocupar todo */
.wp-block-columns .npbc-footer,
.ast-builder-grid-row .npbc-footer{
  grid-column:1 / -1;
}

/* ===== Refuerzo tipográfico del footer (herencia Safari/Chrome) ===== */
.npbc-footer,
.npbc-footer * {
  font-family:'Biome NPBC', system-ui, -apple-system, Segoe UI, Roboto, sans-serif !important;
  font-style:italic;
}

/* ===== Toques “wow” ===== */
/* Borde luminoso del hero */
.hero::after{
  content:""; position:absolute; inset:-1px; pointer-events:none; border-radius:24px;
  box-shadow:0 0 0 1px rgba(255,102,0,.08), 0 30px 120px rgba(255,102,0,.10) inset;
}
/* Separador cuántico */
.section-divider{
  height:56px; display:block;
  background:
    radial-gradient(600px 40px at 50% 50%, rgba(255,102,0,.15), transparent 60%),
    linear-gradient(90deg, rgba(255,102,0,.10), rgba(204,51,0,.10), rgba(255,102,0,.10));
  -webkit-mask: linear-gradient(black, transparent);
          mask: linear-gradient(black, transparent);
  margin:-28px 0 28px;
}
/* Resaltado del H1 */
.hero-copy h1{
  position:relative; isolation:isolate;
  background:linear-gradient(180deg, rgba(255,102,0,.12), transparent 60%) no-repeat;
  background-size:100% 60%;
  background-position:50% 70%;
}

/* ===== Services as Steps (fix) ===== */
.services .steps{
  display:grid; gap:2rem;
  grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));
}
.step{
  position:relative; overflow:hidden;
  background:#fafafa; border-radius:16px;
  padding:2.25rem 2rem 2rem; /* espacio para la insignia */
  box-shadow:0 6px 18px rgba(0,0,0,.06);
  transition:transform .35s, box-shadow .35s; transform:translateZ(0);
}
.step::before{
  content:attr(data-badge);
  position:absolute; top:12px; right:12px;
  background:var(--np-orange); color:#fff; font-size:12px;
  padding:.35rem .7rem; border-radius:999px; letter-spacing:.3px;
  line-height:1; z-index:1; transition: transform .25s ease, box-shadow .25s ease, opacity .25s ease;
  box-shadow: 0 2px 6px rgba(0,0,0,.15);
}
.step h3{ font-family:var(--np-font); margin:0 0 .5rem; color:var(--np-ink); }

/* Descripción principal */
.step p{ margin:0; font-size:16px; line-height:1.6; opacity:.92; }
/* Microcopy/beneficio (tercer renglón) */
.step .step-note{
  display:none; margin-top:.65rem; font-size:12.5px; line-height:1.45; color:#4f4f51; opacity:.78;
}
.step .step-note::before{
  content:""; display:block; height:1px; margin:.75rem 0 .55rem;
  background:linear-gradient(90deg, rgba(255,102,0,.25), rgba(204,51,0,.18), rgba(255,102,0,.25));
  opacity:.45; border-radius:2px;
}
/* Hover: tilt + halo (sin tooltip duplicado) */
.step:hover{
  transform:translateY(-6px) scale(1.02);
  box-shadow:0 14px 38px rgba(0,0,0,.10), 0 0 0 1px rgba(255,102,0,.10) inset;
}
.step:hover::after{ content:none; }
/* Hover desktop: muestra microcopy */
@media (hover:hover){ .step:hover .step-note{ display:block; } }
/* En móvil, mostrar microcopy siempre */
@media (max-width:640px){ .step .step-note{ display:block; font-size:12.25px } }
/* Reveal suave */
.step[data-io="in"]{ animation:stepIn .6s cubic-bezier(.2,.65,.25,1) both; }
@keyframes stepIn{ from{opacity:0; transform:translateY(14px) scale(.98)} to{opacity:1; transform:translateY(0) scale(1)} }

/* ===== Accesibilidad: menos movimiento ===== */
@media (prefers-reduced-motion: reduce){
  .cta, .card, .step{transition:none}
  .npbc-footer__pulse{animation:none}
}

/* ===== Header sticky minimal (Astra) ===== */
.site-header {
  position: sticky; top: 0; z-index: 999;
  backdrop-filter: saturate(120%) blur(8px);
  -webkit-backdrop-filter: saturate(120%) blur(8px);
  background: rgba(255,255,255, .76);
  transition: background .25s ease, box-shadow .25s ease, padding .25s ease, transform .25s ease;
}
body.is-scrolled .site-header {
  background: rgba(255,255,255, .92);
  box-shadow: 0 6px 22px rgba(0,0,0,.08);
}
.site-header .site-branding img,
.ast-header-break-point .site-branding img{ transition: transform .25s ease, filter .25s ease; }
body.is-scrolled .site-header .site-branding img{ transform: scale(.94); filter: saturate(110%); }

/* Menú */
.main-header-menu > .menu-item > a{ padding:.9rem .9rem; transition: color .2s ease, opacity .2s ease; }
.main-header-menu > .menu-item > a:hover{ color:var(--np-deep); opacity:.9; }

/* Polylang – siglas ES | EN */
.menu-item-language a{ text-transform:uppercase; letter-spacing:.3px; font-variant:small-caps; }
.menu-item-language + .menu-item-language a::before{ content:"|"; margin:0 .5rem; opacity:.55; }

/* Switcher ES | EN (si usas un item único) */
#menu-item-pll_switcher a{
  font-family:var(--np-font); font-size:14px; font-weight:600; letter-spacing:.5px;
  color:var(--np-ink); padding:0 .5rem; transition: color .25s;
}
#menu-item-pll_switcher a:hover{ color:var(--np-orange); }
#menu-item-pll_switcher li:not(:last-child)::after{ content:"·"; margin:0 .4rem; color:rgba(0,0,0,.4) }

/* ===== About – figuras y marco “quantum” ===== */
.about-figure, .about-photo{
  display:block; border-radius:18px; overflow:hidden;
  box-shadow:0 10px 30px rgba(0,0,0,.10); transform:translateZ(0);
}
.about-photo{ width:100%; height:auto; aspect-ratio:4 / 5; object-fit:cover; border-radius:18px; }
.about-figure figcaption{ text-align:center; font-size:13px; opacity:.8; margin-top:.5rem }

/* Marco “quantum” reutilizable */
.qframe{ position:relative; display:block; border-radius:18px; overflow:hidden; box-shadow:0 10px 28px rgba(0,0,0,.12) }
.qframe::before{
  content:""; position:absolute; inset:-2px; border-radius:20px; z-index:0;
  background:linear-gradient(90deg,#FF6600,#CC3300,#FF6600);
  background-size:200% 100%; animation:npbc-pulse 6s ease-in-out infinite;
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  padding:2px;
}
.qframe img{ position:relative; z-index:1; border-radius:18px }
@keyframes npbc-pulse{ 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }
/* Fallback sin masks */
@supports not (mask-composite: exclude){
  .qframe::before{ -webkit-mask:none; mask:none; padding:0; border:2px solid #FF6600; border-radius:20px; background:none; }
}

/* ===== About – estructura general ===== */
.about-hero{ text-align:center; padding:4.5rem 1.25rem 2rem }
.about-hero h1{ font-family:var(--np-font); margin:0 }
.about-hero .lead{ max-width:900px; margin:.75rem auto 0; opacity:.9 }
.mv, .approach, .founders, .why, .legal-note, .about-cta{ padding:4.5rem 1.25rem; max-width:1200px; margin:0 auto; }
.grid-2{ display:grid; gap:2rem; grid-template-columns:repeat(2,minmax(0,1fr)) }
@media (max-width:900px){ .grid-2{ grid-template-columns:1fr } }

/* ===== Misión / Visión – borde quantum en tarjetas ===== */
.mv .card{
  position:relative; border-radius:16px; background:#fafafa;
  box-shadow:0 8px 22px rgba(0,0,0,.08);
}
.mv .card::before{
  content:""; position:absolute; inset:-2px; border-radius:18px; z-index:0;
  background:linear-gradient(90deg,#FF6600,#CC3300,#FF6600);
  background-size:200% 100%; animation:npbc-pulse 7s ease-in-out infinite;
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude; padding:2px;
}
.mv .card > *{ position:relative; z-index:1 }

/* Founders */
.founder-grid{ display:grid; gap:2rem; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start }
@media (max-width:960px){ .founder-grid{ grid-template-columns:1fr } }
.founder-card{ display:grid; gap:1.25rem; grid-template-columns:1fr 1.2fr; align-items:center }
@media (max-width:960px){ .founder-card{ grid-template-columns:1fr } }
.founder-copy h3{ font-family:var(--np-font); margin:.25rem 0 }
.founder-copy .role{ font-weight:600; opacity:.9; margin:.15rem 0 .5rem }
.founder-copy blockquote{
  margin:.75rem 0 0; padding:.75rem 1rem; border-left:3px solid var(--np-orange);
  background:linear-gradient(180deg, rgba(255,102,0,.06), transparent);
  border-radius:10px;
}

/* Approach & Why */
.pillars, .why-list{ list-style:none; padding:0; margin:0; display:grid; gap:1rem }
.pillars{ grid-template-columns:repeat(3,minmax(0,1fr)) }
@media (max-width:900px){ .pillars{ grid-template-columns:1fr } }
.why-list{ grid-template-columns:repeat(2,minmax(0,1fr)) }
@media (max-width:800px){ .why-list{ grid-template-columns:1fr } }

/* CTA About */
.about-cta{ text-align:center; padding-bottom:6rem }

/* ===== Our Team (subpágina) ===== */
.our-team{ text-align:center; padding:4rem 1.5rem }
.our-team .lead{ max-width:700px; margin:0 auto 2rem; opacity:.85 }
.team-grid{ display:grid; gap:2rem; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); margin-top:2rem }
.team-card{
  background:#fafafa; border-radius:16px; padding:2rem; text-align:center;
  box-shadow:0 4px 14px rgba(0,0,0,.08); transition:transform .3s, box-shadow .3s;
}
.team-card:hover{ transform:translateY(-6px); box-shadow:0 14px 38px rgba(0,0,0,.12), 0 0 0 1px rgba(255,102,0,.08) inset }
.team-card h3{ margin:.5rem 0; font-family:var(--np-font); color:var(--np-ink) }
.team-card .role{ font-size:14.5px; color:#555; margin-bottom:1rem }
.team-card blockquote{ font-style:italic; font-size:14.5px; color:#444; opacity:.9; margin:0 0 1rem }
.team-card .bio{ font-size:14.5px; line-height:1.55; opacity:.9 }

/* Foto circular con borde NPBC */
.team-photo{
  width:180px; height:180px; object-fit:cover; border-radius:50%;
  border:4px solid var(--np-orange); margin:0 auto 1rem; display:block;
  box-shadow:0 6px 16px rgba(0,0,0,.12); transition: transform .35s, box-shadow .35s;
}
.team-photo:hover{ transform:scale(1.05); box-shadow:0 12px 28px rgba(0,0,0,.18) }

/* CTA final Team */
.team-cta{ margin-top:3rem }

/* ===== Utilidades ===== */
.sr-only{
  position:absolute !important; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,1px,1px); white-space:nowrap; border:0;
}

/* ===== Connect Page (NPBC) ===== */
.connect-page .connect-hero{
  position:relative;
  text-align:center;
  padding:4.5rem 1.25rem 2.25rem;
  max-width:900px; margin:0 auto;
}
.connect-page .connect-hero h1{
  font-family:var(--np-font); margin:0;
}
.connect-page .connect-hero .lead{
  margin:.7rem auto 0; opacity:.9; font-size:1.05rem;
}
.connect-page .connect-hero .sub{
  margin:.4rem auto 0; opacity:.85; max-width:780px;
}

/* Cerebro hero: glow cuántico elegante */
.connect-page .brain-mark{
  width:86px; height:auto; margin:0 auto 10px; display:block; opacity:.95;
  filter: drop-shadow(0 6px 18px rgba(255,102,0,.25));
  animation: brainPulse 3.6s ease-in-out infinite;
}
@keyframes brainPulse{
  0%,100%{ transform:scale(1);   filter:drop-shadow(0 6px 18px rgba(255,102,0,.22)); }
  50%   { transform:scale(1.04); filter:drop-shadow(0 10px 26px rgba(255,102,0,.35)); }
}

/* Grid de tarjetas */
.connect-page .connect-grid{
  max-width:1100px; margin:0 auto; padding:2rem 1.25rem 0;
  display:grid; gap:1.5rem;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
}
.connect-page .c-card{
  background:#fafafa; border-radius:14px; padding:1.25rem 1.1rem;
  box-shadow:0 4px 12px rgba(0,0,0,.06);
  transition:transform .25s, box-shadow .25s;
  text-align:center;
}
.connect-page .c-card:hover{
  transform:translateY(-4px);
  box-shadow:0 14px 28px rgba(0,0,0,.10), 0 0 0 1px rgba(255,102,0,.10) inset;
}
.connect-page .c-card h3{ margin:.4rem 0 .2rem; font-size:1rem; }
.connect-page .c-card .muted{ font-size:.9rem; opacity:.8; }

.connect-page .c-icon img{
  width:28px; height:28px; object-fit:contain;
  border-radius:50%;
  border:2px solid var(--np-orange);
  padding:2px; background:#fff;
}

/* Links de contacto */
.connect-page .c-link{
  color:var(--np-orange); text-decoration:none;
  border-bottom:1px solid rgba(255,102,0,.25); transition:.25s;
}
.connect-page .c-link:hover{
  color:var(--np-deep); border-bottom-color:var(--np-deep);
}

/* CTA inferior */
.connect-page .connect-cta{
  text-align:center; padding:2.5rem 1.25rem 4.5rem;
  max-width:980px; margin:0 auto;
}
.connect-page .connect-cta .muted{ opacity:.85; margin-bottom:1rem; }

.connect-page .cta-row{ display:flex; gap:.75rem; justify-content:center; flex-wrap:wrap; }
.connect-page .btn{
  display:inline-block; padding:.85rem 1.25rem; border-radius:14px;
  background:var(--np-orange); color:#fff; text-decoration:none; font-weight:600;
  transition:.25s;
}
.connect-page .btn:hover{ background:var(--np-deep); transform:translateY(-2px); }
.connect-page .btn.ghost{
  background:#fff; color:var(--np-orange); border:1px solid rgba(255,102,0,.35);
}
.connect-page .btn.ghost:hover{
  color:#fff; background:var(--np-orange); border-color:var(--np-orange);
}

/* Sección colaboración */
.connect-page .connect-collab{
  max-width:1000px; margin:0 auto 4rem; padding:0 1.25rem 2rem; text-align:center;
}
.connect-page .connect-collab h2{
  font-family:var(--np-font); margin:0 0 .5rem;
}

.sa-link {
  display: block;
  color: inherit;
  text-decoration: none;
  transition: transform .25s, box-shadow .25s;
}
.sa-link:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(0,0,0,.12);
}
.sa-link:focus-visible {
  outline: 2px solid var(--np-orange);
  outline-offset: 4px;
  border-radius: 12px;
}

.sa-link{display:block;color:inherit;text-decoration:none;transition:transform .25s,box-shadow .25s}
.sa-link:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(0,0,0,.12)}
.sa-link:focus-visible{outline:2px solid var(--np-orange);outline-offset:4px;border-radius:12px}

html{ scroll-behavior:smooth }
.fade-in{ animation:npbcFade .25s ease both }
@keyframes npbcFade{ from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:none} }

.site-branding img{ transition:transform .25s ease, filter .25s ease }
.site-branding a:hover img{ transform:translateY(-1px); filter:saturate(110%) }

/* Oculta header y footer SOLO en MetaHome */
.page-template-npbc-metahome .site-header,
.page-template-npbc-metahome .site-footer { display: none !important; }
.page-template-npbc-metahome #content { margin: 0 !important; }