/* Portada: luz, cercanía y tres pasos para pedir cita. */
.home-hero { --hero-photo-width:66%; position:relative; isolation:isolate; min-height:clamp(640px,78svh,800px); display:flex; align-items:center; overflow:hidden; background:var(--cream); }
.home-hero-picture { position:absolute; inset:0 auto 0 0; width:var(--hero-photo-width); overflow:hidden; z-index:-2; }
.home-hero-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:50% 24%; }
/* La foto se funde con el fondo antes del texto y vela la zona del niño. */
.home-hero::after { content:''; position:absolute; inset:0 auto 0 0; width:var(--hero-photo-width); z-index:-1; background:linear-gradient(0deg,var(--cream),rgba(241,234,216,0) 12%),linear-gradient(90deg,rgba(241,234,216,0) 48%,rgba(241,234,216,.08) 57%,rgba(241,234,216,.7) 67%,rgba(241,234,216,.95) 77%,var(--cream) 93%); pointer-events:none; }
.home-hero-content { padding-block:clamp(3.5rem,6vw,5.5rem); }
.home-hero-copy { position:relative; left:clamp(1.25rem,2.8vw,2.5rem); width:48%; max-width:33rem; margin-left:auto; }
.home-hero h1 { margin-top:0; font-size:clamp(3.9rem,5.7vw,6.3rem); line-height:1.04; letter-spacing:-.04em; color:var(--teal); }
.home-hero h1 em { color:var(--teal); background:linear-gradient(transparent 19%,var(--gold) 19%,var(--gold) 88%,transparent 88%); border-radius:.4em .14em .35em .1em; padding:0 .09em .04em; margin-left:-.09em; box-decoration-break:clone; -webkit-box-decoration-break:clone; }
.home-hero-location { display:block; margin-top:.25em; font-size:clamp(1.9rem,2.8vw,2.6rem); line-height:1.15; letter-spacing:-.02em; }
.home-hero-message { margin-top:1.6rem; font-size:clamp(1.2rem,1.5vw,1.4rem); line-height:1.45; }
.home-hero-detail { margin-top:.85rem; max-width:40ch; color:var(--ink-soft); font-size:1rem; line-height:1.7; }
.home-hero .hero-actions { gap:1rem 1.5rem; margin-top:1.6rem; align-items:center; }
.home-text-link { font-size:.82rem; text-decoration:underline; text-underline-offset:5px; padding:.6rem 0; }
.home-hero-trust { font-size:clamp(1.4rem,2.3vw,1.9rem); line-height:1.35; margin-top:2rem; font-family:var(--font-display); font-style:italic; color:var(--teal); }
.home-hero-trust em { color:inherit; }
.home-intro { background:var(--cream-3); }
.home-intro-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(2.2rem,7vw,6rem); align-items:start; }
.home-intro h2 { margin-top:0; font-size:clamp(2.7rem,4.4vw,4.3rem); }
.home-intro-copy .lead { margin-bottom:1.2rem; }
.home-intro-copy > p+p { margin-top:1.2rem; }
.home-intro-copy .link-arrow { margin-top:1.6rem; }
.home-appointments { background:var(--cream); }
.home-appointments .home-section-heading h2 { color:var(--teal); }
.home-appointments .home-section-heading h2 em { color:inherit; }
.home-section-heading { margin-bottom:clamp(2rem,4vw,3.5rem); }
.home-section-heading h2 { margin-top:0; }
.home-appointment-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.4rem; }
.home-appointment { position:relative; display:flex; flex-direction:column; min-height:330px; padding:clamp(2rem,4.3vw,3.7rem); border-radius:18px; color:var(--teal); overflow:hidden; transition:transform .3s var(--ease),box-shadow .3s var(--ease); }
.home-appointment:hover { transform:translateY(-5px); box-shadow:var(--shadow); }
.home-appointment-presencial,.home-appointment-online { background:var(--cream-3); }
.home-appointment h3 { font-size:clamp(2.2rem,3.5vw,3.3rem); color:var(--teal); max-width:80%; }
.home-appointment p { max-width:31ch; margin-top:1rem; font-size:.95rem; }
.home-card-link { margin-top:auto; padding-top:2rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; font-size:.9rem; }
.home-card-link > span { font-size:1.6rem; font-weight:400; }
.amar-mark { display:block; width:116px; height:116px; object-fit:contain; }
.home-appointment .amar-mark { position:absolute; right:1.8rem; top:1.5rem; transition:transform .5s var(--ease); }
.home-appointment:hover .amar-mark { transform:rotate(8deg) scale(1.06); }
.home-steps { background:var(--cream-3); }
.home-step-grid { display:grid; grid-template-columns:repeat(3,1fr); list-style:none; padding:0; gap:2.5rem; }
.home-step { border-top:1px solid var(--line); padding-top:1.5rem; }
.home-step-number { font-size:1rem; display:block; margin-bottom:1.5rem; color:var(--teal); }
.home-step h3 { font-size:clamp(1.9rem,2.5vw,2.5rem); color:var(--teal); }
.home-step p { margin-top:1rem; font-size:.95rem; }
.home-last-cta { margin-top:3rem; }
/* El color destaca una idea; el resto de la portada deja respirar el contenido. */
.home-reviews-landing { background:var(--cream); }
.home-faq { background:var(--cream-3); }
.home-faq-grid { display:grid; grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr); align-items:start; gap:clamp(2rem,6vw,5rem); }
.home-faq-intro { background:var(--blue); padding:clamp(1.5rem,3vw,2.5rem); border-radius:var(--radius-sm); }
.home-faq-intro h2 { font-size:clamp(2.4rem,3.7vw,3.5rem); line-height:1.12; color:var(--teal); text-wrap:initial; }
.home-faq-intro p { margin-top:1.5rem; padding:1rem 1.2rem; background:var(--cream-3); border-radius:10px; font-size:.95rem; line-height:1.7; }
.home-faq a { text-decoration:underline; text-underline-offset:4px; }
.home-faq-list { border-top:1px solid var(--line); }
.home-faq-list details { border-bottom:1px solid var(--line); }
.home-faq-list summary { display:flex; align-items:center; justify-content:space-between; gap:1.2rem; padding:1.4rem 0; cursor:pointer; list-style:none; font-size:1.05rem; font-weight:600; line-height:1.5; }
.home-faq-list summary::-webkit-details-marker { display:none; }
.home-faq-list summary::after { content:'+'; font-size:1.5rem; font-weight:400; flex:none; }
.home-faq-list details[open] summary::after { content:'−'; }
.home-faq-answer { padding:0 1.3rem 1.6rem 0; font-size:.96rem; line-height:1.8; }
.home-faq-answer p+p { margin-top:1rem; }
.home-faq-answer > a { display:inline-block; margin-top:1rem; }
@media(prefers-reduced-motion:no-preference) {
 @keyframes home-arrive { from { opacity:0; transform:translateY(18px); } to { opacity:1; transform:translateY(0); } }
 .home-hero-copy { animation:home-arrive .85s var(--ease) both; }
 .home-hero-photo { animation:home-arrive 1.1s var(--ease) both; }
}
@media(min-width:1200px) {
 .home-hero-copy { left:clamp(2.5rem,calc(10vw - 5rem),4rem); width:calc(48% - 60px); max-width:calc(33rem - 60px); }
}
@media(max-width:880px) {
 .home-hero { --hero-photo-width:70%; min-height:650px; }
 .home-hero-copy { left:clamp(.75rem,1.25vw,1.25rem); width:53%; }
 .home-hero h1 { font-size:clamp(3.4rem,6.9vw,4.8rem); }
 .home-hero .hero-actions { align-items:flex-start; flex-direction:column; gap:.5rem; }
 .home-intro-grid { gap:2.2rem; }
 .home-appointment .amar-mark { width:80px; height:80px; right:1rem; top:1rem; }
 .home-faq-grid { grid-template-columns:1fr; }
 .home-faq-intro { max-width:36rem; }
}
@media(max-width:600px) {
 .home-hero { --hero-photo-height:clamp(340px,112vw,520px); display:block; min-height:0; }
 .home-hero-picture { position:relative; inset:auto; display:block; width:calc(100% - 2.5rem); height:var(--hero-photo-height); margin:1.25rem auto 0; }
 .home-hero-photo { height:100%; object-position:50% 0%; }
 .home-hero::after { inset:1.25rem 1.25rem auto; width:auto; height:calc(var(--hero-photo-height) + 1px); background:linear-gradient(180deg,rgba(241,234,216,0) 48%,rgba(241,234,216,.2) 63%,rgba(241,234,216,.82) 80%,var(--cream) 98%); }
 .home-hero-content { padding-block:1.2rem 3.2rem; margin-top:0; }
 .home-hero-copy { left:0; width:100%; max-width:none; }
 .home-hero h1 { font-size:clamp(3.15rem,12.7vw,4.5rem); margin-top:0; }
 .home-hero-message { margin-top:1.4rem; }
 .home-hero-detail { max-width:52ch; }
 .home-hero .hero-actions { flex-direction:row; align-items:center; gap:.6rem 1.2rem; }
 .home-hero-trust { font-size:1.65rem; margin-top:1.2rem; }
 .home-intro-grid,.home-appointment-grid,.home-step-grid { grid-template-columns:1fr; }
 .home-intro h2 { font-size:2.8rem; }
 .home-appointment { min-height:300px; display:grid; grid-template-columns:minmax(0,1fr) 72px; grid-template-rows:auto auto 1fr; column-gap:1rem; align-items:start; }
 .home-appointment .amar-mark { position:static; grid-column:2; grid-row:1; width:72px; height:72px; }
 .home-appointment h3 { grid-column:1; grid-row:1; min-width:0; max-width:none; font-size:clamp(2rem,8vw,2.8rem); overflow-wrap:normal; }
 .home-appointment p { grid-column:1/-1; grid-row:2; }
 .home-appointment .home-card-link { grid-column:1/-1; grid-row:3; justify-self:start; align-self:end; }
 .home-step-grid { gap:2rem; }
 .home-step-number { margin-bottom:.8rem; }
 .home-last-cta { margin-top:2rem; }
}
@media(prefers-reduced-motion:reduce) { .home-appointment,.amar-mark { transition:none; } .home-appointment:hover,.home-appointment:hover .amar-mark { transform:none; } }

.home-team{background:var(--cream)}
.home-team-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.home-team-photo{aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius)}
.home-team-photo img{width:100%;height:100%;object-fit:cover;object-position:center 55%}
.home-team-copy h2{font-size:clamp(2.8rem,4.4vw,4.3rem);line-height:1.12;margin:0 0 1.4rem}
.home-team-copy p{max-width:45ch;line-height:1.8}
.home-team-copy a{margin-top:1.5rem}
@media(max-width:650px){.home-team-grid{grid-template-columns:1fr}.home-team-photo{aspect-ratio:4/3}.home-team-copy h2{font-size:2.8rem}}

.home-centres { max-width: 70ch; margin: -1rem 0 2rem; }
.home-centres a { text-decoration: underline; text-underline-offset: .2em; }
