/* ===========================================================
   Tipografías autoalojadas (SIL Open Font License 1.1).
   Se sirven desde este mismo dominio: ninguna petición sale
   hacia Google, así que no se transmite la IP del visitante
   a un tercero sin consentimiento (RGPD).
   Licencias completas en fuentes/LICENSE-*.txt
   =========================================================== */
@font-face{
  font-family:"Fraunces";
  font-style:normal;
  font-weight:100 900;
  font-display:swap;
  src:url("fuentes/fraunces-normal.woff2") format("woff2");
}
@font-face{
  font-family:"Fraunces";
  font-style:italic;
  font-weight:100 900;
  font-display:swap;
  src:url("fuentes/fraunces-italic.woff2") format("woff2");
}
@font-face{
  font-family:"Figtree";
  font-style:normal;
  font-weight:300 900;
  font-display:swap;
  src:url("fuentes/figtree-normal.woff2") format("woff2");
}

/* ===========================================================
   BC · Beatriz Campos, psicóloga
   Sistema visual. Paleta tomada del logotipo.
   =========================================================== */

:root{
  --crema:#FAF8F2;
  --blanco:#FFFEFA;
  --verde-panel:#E5E8D7;
  --verde-hoja:#7E8C4E;
  --verde:#5C6A34;
  --verde-hondo:#333B18;
  --terracota:#944F26;
  --terracota-suave:#C08466;
  --terracota-panel:#F1E5DC;
  --tinta:#23251A;
  --suave:#5E6350;
  --linea:#E5E2D6;

  --dis:"Fraunces",Georgia,"Times New Roman",serif;
  --txt:"Figtree","Helvetica Neue",Arial,sans-serif;
  --r:26px;
  --r-s:18px;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--crema);color:var(--tinta);
  font-family:var(--txt);font-size:16.5px;line-height:1.74;font-weight:400;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;}
::selection{background:var(--verde-hondo);color:var(--blanco);}
:focus-visible{outline:2px solid var(--terracota);outline-offset:3px;border-radius:6px;}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important;}}

.caja{max-width:1120px;margin-inline:auto;padding-inline:22px;}
.angosto{max-width:680px;}

h1,h2,h3,h4{font-family:var(--dis);font-weight:500;letter-spacing:-.016em;margin:0;text-wrap:balance;}
h1{font-size:clamp(32px,5.4vw,54px);line-height:1.08;}
h2{font-size:clamp(26px,4.2vw,40px);line-height:1.16;}
h3{font-size:clamp(20px,2.6vw,25px);line-height:1.28;font-weight:600;}
h4{font-size:19px;line-height:1.3;font-weight:600;}
p{margin:0;}
p + p{margin-top:18px;}

.rotulo{
  font-family:var(--txt);font-size:11.5px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:var(--terracota);
  display:block;
}
.sub{color:var(--suave);font-size:17.5px;}
.mini{font-size:14.5px;color:var(--suave);}

/* ---------- botones ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  background:var(--verde-hondo);color:var(--blanco);text-decoration:none;
  font-family:var(--txt);font-size:14.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  padding:14px 26px;border:1px solid var(--verde-hondo);border-radius:999px;cursor:pointer;
  transition:background .2s ease,color .2s ease,transform .2s ease;
}
.btn:hover{background:#242B10;transform:translateY(-1px);}
.btn-claro{background:var(--blanco);color:var(--verde-hondo);border-color:var(--blanco);}
.btn-claro:hover{background:#fff;}
.btn-linea{background:transparent;color:var(--verde-hondo);border-color:var(--verde-hondo);}
.btn-linea:hover{background:var(--verde-hondo);color:var(--blanco);}
.enlace{
  display:inline-flex;align-items:center;gap:7px;text-decoration:none;
  font-size:13.5px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;
  color:var(--terracota);border-bottom:1px solid var(--terracota-suave);
  padding-bottom:3px;transition:gap .2s ease;
}
.enlace:hover{gap:11px;border-bottom-color:var(--terracota);}

/* ---------- cabecera ---------- */
.top{
  position:sticky;top:env(safe-area-inset-top,0px);z-index:50;
  background:color-mix(in srgb,var(--crema) 92%,transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--linea);
}
.top-in{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-block:12px;}
.logo{display:block;flex:none;}
.logo img{width:clamp(162px,17vw,208px);}
.nav{display:flex;align-items:center;gap:14px;}
.nav a{
  text-decoration:none;color:var(--suave);font-size:13px;
  padding-block:5px;border-bottom:1px solid transparent;white-space:nowrap;
}
.nav a:hover{color:var(--tinta);border-bottom-color:var(--terracota-suave);}
.nav a[aria-current="page"]{color:var(--tinta);border-bottom-color:var(--terracota);}
.nav a.btn{color:var(--blanco);border-bottom:1px solid var(--verde-hondo);padding:11px 18px;font-size:12.5px;}
.nav a.btn:hover{color:var(--blanco);}
.menu-btn{
  display:none;background:none;border:1px solid var(--linea);border-radius:999px;
  padding:9px 16px;font-family:var(--txt);font-size:13.5px;font-weight:600;
  letter-spacing:.09em;text-transform:uppercase;color:var(--verde-hondo);cursor:pointer;
}
@media (max-width:1140px){
  .menu-btn{display:block;}
  .nav{
    display:none;position:absolute;left:0;right:0;top:100%;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--crema);border-bottom:1px solid var(--linea);
    padding:10px 22px 22px;
  }
  .nav.abierto{display:flex;}
  .nav a{padding-block:13px;border-bottom:1px solid var(--linea);font-size:16px;}
  .nav a.btn{margin-top:16px;justify-content:center;}
}

/* ---------- portada ---------- */
.hero{padding-block:clamp(26px,5vw,54px) clamp(34px,5vw,62px);}
.hero-panel{
  background:var(--blanco);border-radius:var(--r);
  padding:clamp(28px,4.8vw,64px);
  display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:clamp(26px,4vw,54px);align-items:center;
}
.hero .antetitulo{
  font-family:var(--dis);font-weight:400;font-style:italic;
  font-size:clamp(18px,2.4vw,23px);color:var(--suave);
  margin-block:16px 6px;
}
.hero h1{margin-block:0 22px;}
.hero h1 em{font-style:italic;color:var(--verde);}
.hero .acciones{display:flex;flex-wrap:wrap;gap:14px 20px;align-items:center;margin-top:28px;}
.hero-extra{
  margin-top:28px;padding-top:24px;border-top:1px solid var(--linea);
  display:flex;flex-wrap:wrap;gap:6px 16px;align-items:baseline;
}
.hero-extra b{font-family:var(--dis);font-weight:500;font-size:clamp(19px,2.3vw,22px);}
.hero-extra .mini{font-size:17px;color:var(--terracota);font-weight:500;}
.hero-marca{display:grid;place-items:center;}
.hero-marca img{width:100%;max-width:296px;}
.hero-foto{
  width:100%;max-width:400px;aspect-ratio:3/4;object-fit:cover;
  border-radius:var(--r);display:block;margin-inline:auto;
}
@media (max-width:860px){
  .hero-panel{grid-template-columns:1fr;}
  .hero-marca{order:-1;}
  .hero-marca img{max-width:188px;}
}

.donde{
  display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:18px;
  font-size:17px;color:var(--suave);
}
.donde span{display:inline-flex;align-items:center;gap:8px;}
.donde svg{color:var(--terracota);flex:none;width:18px;height:18px;}

/* ---------- secciones ---------- */
section{padding-block:clamp(40px,6vw,74px);}
.cabecera-seccion{max-width:620px;}
.cabecera-seccion h2{margin-block:14px 16px;}

/* pasos */
.pasos{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:36px;}
.paso{background:var(--blanco);border-radius:var(--r-s);padding:28px 26px;display:flex;flex-direction:column;gap:9px;}
.paso .n{
  font-family:var(--dis);font-size:13px;font-weight:600;letter-spacing:.14em;
  color:var(--terracota);
}
.paso p{color:var(--suave);font-size:15.5px;}

/* servicios */
.servicios{display:grid;grid-template-columns:repeat(auto-fit,minmax(285px,1fr));gap:16px;margin-top:36px;}
.serv{
  background:var(--blanco);border-radius:var(--r);padding:clamp(26px,3vw,34px);
  display:flex;flex-direction:column;gap:12px;
  border:1px solid transparent;transition:border-color .2s ease,transform .2s ease;
}
.serv:hover{border-color:var(--verde-hoja);transform:translateY(-2px);}
.serv .ico{
  width:86px;height:86px;border-radius:18px;object-fit:cover;
  background:#F3E9DD;margin-bottom:4px;
}
.serv p{color:var(--suave);font-size:15.5px;flex:1;}
.serv .enlace{align-self:flex-start;margin-top:4px;}

/* sobre mi */
.sobre{
  background:var(--verde-panel);border-radius:var(--r);
  padding:clamp(28px,4.4vw,58px);
  display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);
  gap:clamp(24px,4vw,56px);align-items:center;
}
.sobre.sola{grid-template-columns:1fr;max-width:760px;}
.sobre-foto{display:block;border-radius:var(--r-s);overflow:hidden;transition:transform .2s ease;}
.sobre-foto:hover{transform:translateY(-2px);}
.sobre-foto img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block;}
.sello{
  margin-top:38px;padding-top:28px;border-top:1px solid var(--linea);
}
.sello img{width:100%;max-width:440px;height:auto;}
.sobre .retrato{
  background:var(--blanco);border-radius:var(--r-s);aspect-ratio:4/5;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:16px;text-align:center;padding:24px;border:1px dashed #C9CFB2;
}
.sobre .retrato img{width:96px;opacity:.42;}
.sobre .retrato span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#8D9375;line-height:1.6;}
.sobre p{color:#414733;}
.sobre .rotulo{color:var(--terracota);}
.sobre h2{margin-block:14px 18px;}
.sobre .enlace{margin-top:24px;}
@media (max-width:800px){
  .sobre{grid-template-columns:1fr;}
  .sobre .retrato{aspect-ratio:3/2;max-width:320px;}
}

/* recursos */
.recursos{display:grid;grid-template-columns:repeat(auto-fit,minmax(265px,1fr));gap:16px;margin-top:36px;}
.recurso{
  background:var(--blanco);border-radius:var(--r-s);padding:28px 26px;
  display:flex;flex-direction:column;gap:14px;text-decoration:none;color:inherit;
  border-top:3px solid var(--terracota-suave);transition:transform .2s ease;
}
.recurso:hover{transform:translateY(-2px);}
.recurso h3{font-size:20px;font-weight:500;}
.recurso .enlace{margin-top:auto;align-self:flex-start;}

/* cierre / contacto */
.cierre{
  background:var(--verde-hondo);color:var(--blanco);border-radius:var(--r);
  padding:clamp(30px,5vw,64px);
}
.cierre h2{color:var(--blanco);}
.cierre .rotulo{color:var(--terracota-suave);}
.cierre p{color:#DDE2C9;font-size:17.5px;max-width:52ch;margin-top:18px;}
.cierre .acciones{display:flex;flex-wrap:wrap;gap:14px 20px;align-items:center;margin-top:30px;}
.cierre .mini{color:#B9C296;}

/* ---------- páginas interiores ---------- */
.pag-hero{padding-block:clamp(30px,5vw,58px) clamp(18px,3vw,34px);}
.pag-hero .rotulo{margin-bottom:16px;}
.pag-hero h1{max-width:16ch;}
.pag-hero .sub{margin-top:20px;max-width:56ch;font-size:19px;}
.migas{font-size:13.5px;color:var(--suave);margin-bottom:22px;}
.migas a{text-decoration:none;border-bottom:1px solid var(--linea);}
.migas a:hover{border-bottom-color:var(--terracota);}

.cuerpo{max-width:680px;}
.cuerpo > p{color:var(--suave);font-size:17.5px;}
.cuerpo h2{margin-block:44px 18px;}
.cuerpo h2:first-child{margin-top:0;}
.cuerpo .destaque{
  font-family:var(--dis);font-size:clamp(20px,2.8vw,26px);line-height:1.42;
  color:var(--tinta);font-weight:400;
  padding-left:22px;border-left:2px solid var(--terracota-suave);
  margin-block:34px;
}
.bloque-blanco{background:var(--blanco);border-radius:var(--r);padding:clamp(26px,4vw,50px);}

/* artículos */
.articulo .cuerpo > p{font-size:18px;color:var(--suave);}
.articulo .cuerpo h2{font-size:clamp(23px,3.2vw,30px);}

/* ---------- pie ---------- */
.retrato-bea{
  width:100%;max-width:340px;aspect-ratio:3/4;object-fit:cover;
  border-radius:var(--r);display:block;
}
.bloque-bea{
  display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);
  gap:clamp(24px,4vw,52px);align-items:start;
}
@media (max-width:800px){ .bloque-bea{grid-template-columns:1fr;} }

.pie{border-top:1px solid var(--linea);margin-top:clamp(30px,5vw,60px);}
.pie-in{
  display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));
  gap:32px;padding-block:clamp(34px,5vw,54px);
}
@media (max-width:900px){ .pie-in{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 26px;} }
@media (max-width:520px){ .pie-in{grid-template-columns:1fr;gap:28px;} }
.pie-marca{grid-column:1 / -1;}
.pie-marca img{width:180px;margin-bottom:14px;}
.pie-marca p{font-size:14.5px;color:var(--suave);max-width:34ch;}
.pie h4{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--terracota);font-family:var(--txt);font-weight:600;margin-bottom:12px;}
.pie ul{list-style:none;margin:0;padding:0;display:grid;gap:9px;}
.pie a{text-decoration:none;font-size:14.5px;color:var(--suave);}
.pie a:hover{color:var(--tinta);}
.pie-legal{
  border-top:1px solid var(--linea);padding-block:20px;
  display:flex;flex-wrap:wrap;gap:8px 26px;justify-content:space-between;
  font-size:13px;color:var(--suave);
}

/* ---------- burbuja ---------- */
.burbuja{
  position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:60;
  width:54px;height:54px;border-radius:50%;background:var(--verde-hondo);color:var(--blanco);
  display:grid;place-items:center;text-decoration:none;
  box-shadow:0 6px 22px rgba(35,45,10,.22);transition:transform .2s ease;
}
.burbuja:hover{transform:scale(1.06);}


/* ---------- páginas legales ---------- */
.legal{max-width:720px;}
.legal h2{
  font-size:clamp(20px,2.6vw,25px);margin-block:40px 14px;
  padding-bottom:9px;border-bottom:1px solid var(--linea);
}
.legal h2:first-child{margin-top:0;}
.legal h3{font-size:16.5px;margin-block:24px 8px;font-family:var(--txt);font-weight:600;}
.legal p,.legal li{font-size:15.5px;line-height:1.72;color:var(--suave);}
.legal p + p{margin-top:13px;}
.legal ul{margin:12px 0 0;padding-left:20px;display:grid;gap:8px;}
.legal strong{color:var(--tinta);font-weight:600;}
.legal .datos-legales{
  list-style:none;margin:14px 0 0;padding:0;display:grid;gap:0;
  border-top:1px solid var(--linea);
}
.legal .datos-legales li{
  display:grid;grid-template-columns:minmax(0,190px) minmax(0,1fr);gap:6px 20px;
  padding-block:11px;border-bottom:1px solid var(--linea);
}
.legal .datos-legales .k{
  font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--terracota);font-weight:600;padding-top:3px;
}
.legal .datos-legales .v{color:var(--tinta);font-size:15.5px;}
@media (max-width:560px){ .legal .datos-legales li{grid-template-columns:1fr;gap:2px;} }
.legal .pendiente{
  display:inline-block;background:var(--terracota-panel);color:var(--terracota);
  font-size:13px;font-weight:600;padding:1px 9px;border-radius:99px;
}
.legal .caja{
  background:var(--verde-panel);border-radius:var(--r-s);
  padding:20px 22px;margin-top:18px;
}
.legal .caja p{color:#41472F;}
.legal .fecha{margin-top:40px;padding-top:18px;border-top:1px solid var(--linea);font-size:13.5px;}
