/* Layout: columna central de 1080px con márgenes laterales amplios; títulos a la izquierda y texto al costado; líneas finas; una sola marca de color (azul institucional). Diseño de un solo tema, deliberado. */
:root{
  --navy:#003366;
  --navy-deep:#00264d;
  --ink:#1f2a37;
  --muted:#5f6b78;
  --soft:#f3f6f9;
  --paper:#ffffff;
  --line:#e6eaef;
  --line-strong:#d5dce4;
  --font-display:"Manrope","Segoe UI",system-ui,sans-serif;
  --font-body:"Figtree","Segoe UI",system-ui,sans-serif;
  --wrap:1080px;
  --gutter:clamp(20px,5.5vw,72px);
  --radius:12px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16.5px;line-height:1.7;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--paper)}
a{color:inherit}
:focus-visible{outline:2px solid var(--navy);outline-offset:3px;border-radius:6px}
.band{padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px))}
.wrap{max-width:var(--wrap);margin:0 auto}
h1,h2,h3{font-family:var(--font-display);margin:0;text-wrap:balance;letter-spacing:-.022em;color:var(--ink)}
h1{font-size:clamp(2.4rem,5.2vw,3.7rem);line-height:1.06;font-weight:800}
h2{font-size:clamp(1.85rem,3.4vw,2.55rem);line-height:1.12;font-weight:800}
h3{font-size:1.14rem;line-height:1.3;font-weight:700;letter-spacing:-.01em}
p{margin:0}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--navy)}
.eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}

/* Botones y enlaces */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--font-display);font-weight:700;font-size:.95rem;text-decoration:none;padding:15px 26px;border-radius:999px;border:1.5px solid transparent;transition:background .2s,color .2s,border-color .2s}
.btn svg{width:18px;height:18px;flex:none}
.btn-primary{background:var(--navy);color:#fff}
.btn-primary:hover{background:var(--navy-deep)}
.btn-white{background:#fff;color:var(--navy)}
.btn-white:hover{background:#e9f0f7}
.btn-outline-white{border-color:rgba(255,255,255,.6);color:#fff}
.btn-outline-white:hover{background:rgba(255,255,255,.12);border-color:#fff}
.text-link{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-display);font-weight:700;font-size:.92rem;color:var(--navy);text-decoration:none}
.text-link .arrow{width:30px;height:30px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:.9rem;transition:transform .2s}
.text-link:hover .arrow{transform:translateX(3px)}

/* Encabezado */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:16px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:0}
.brand-mark{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--navy);display:grid;place-items:center;color:var(--navy);font-family:"Times New Roman",Georgia,serif;font-size:1.35rem;line-height:1;flex:none;background:#fff}
.brand-name{font-family:var(--font-display);font-weight:800;font-size:1rem;line-height:1.2;color:var(--ink)}
.brand-name small{display:block;font-weight:600;font-size:.68rem;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;margin-top:2px}
.nav{display:flex;align-items:center;gap:32px}
.nav a{text-decoration:none;font-weight:500;font-size:.94rem;color:var(--ink);transition:color .2s}
.nav a:hover,.nav a[aria-current="page"]{color:var(--navy)}
.nav a[aria-current="page"]{font-weight:600}
.nav .btn{padding:11px 20px;font-size:.88rem;color:#fff}
.menu-mobile{display:none}
@media (max-width:900px){
  .nav{display:none}
  .menu-mobile{display:block;position:relative}
  .menu-mobile summary{list-style:none;cursor:pointer;font-family:var(--font-display);font-weight:700;font-size:.88rem;padding:10px 18px;border:1.5px solid var(--navy);border-radius:999px;color:var(--navy)}
  .menu-mobile summary::-webkit-details-marker{display:none}
  .menu-mobile nav{position:absolute;right:0;top:calc(100% + 12px);background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 20px 50px rgba(0,38,77,.12);padding:10px;display:grid;min-width:250px}
  .menu-mobile nav a{text-decoration:none;padding:12px 14px;border-radius:8px;font-weight:500}
  .menu-mobile nav a:hover{background:var(--soft)}
  .menu-mobile nav a.wa{background:var(--navy);color:#fff;font-weight:600;margin-top:6px;text-align:center}
}

/* Portada */
.hero{position:relative;overflow:hidden;background:var(--navy-deep);color:#fff}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 50%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,38,77,.94) 0%,rgba(0,38,77,.84) 42%,rgba(0,38,77,.25) 100%)}
.hero .wrap{position:relative;z-index:1;padding-block:clamp(96px,12vw,160px)}
.hero-copy{max-width:600px;display:grid;gap:24px}
.hero .eyebrow{color:#b9cde2}
.hero h1{color:#fff}
.hero-lead{font-size:1.1rem;color:#d8e3ee;max-width:54ch}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
@media (max-width:760px){.hero::after{background:rgba(0,38,77,.86)}}

/* Franja de contacto */
.strip .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 48px;padding-block:30px;border-bottom:1px solid var(--line)}
.strip-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--ink);min-width:0}
.strip-items{display:flex;flex-wrap:wrap;gap:16px 40px}
.strip-item{display:grid;gap:2px;font-size:.92rem;min-width:0}
.strip-item span{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:600}
.strip-item a{font-weight:600;color:var(--navy);text-decoration:none;border-bottom:1px solid var(--line-strong)}

/* Secciones */
.section{padding-block:clamp(80px,9vw,120px)}
.soft{background:var(--soft)}
.head{display:grid;grid-template-columns:1fr 1fr;gap:24px 72px;align-items:end;margin-bottom:64px}
.head-main{display:grid;gap:18px;min-width:0}
.head-aside{display:grid;gap:22px;color:var(--muted);min-width:0;max-width:46ch}
@media (max-width:820px){.head{grid-template-columns:1fr;margin-bottom:48px}}

/* Enfoque */
.enfoque{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.enfoque-photo{margin:0;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/5;max-width:100%}
.enfoque-photo img{width:100%;height:100%;object-fit:cover;display:block}
.pillars{display:grid;margin:0;padding:0;list-style:none;min-width:0}
.pillars li{display:grid;gap:10px;padding-block:30px;border-top:1px solid var(--line)}
.pillars li:last-child{border-bottom:1px solid var(--line)}
.pillars p{color:var(--muted)}
@media (max-width:820px){.enfoque{grid-template-columns:1fr;gap:48px}.enfoque-photo{aspect-ratio:4/3}}

/* Equipo */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:64px 40px}
.member{display:grid;gap:14px;align-content:start;min-width:0}
.member-photo{display:block;border-radius:var(--radius);overflow:hidden;aspect-ratio:1/1;max-width:100%;background:var(--line)}
.member-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.member-photo:hover img{transform:scale(1.03)}
.member h3{margin-top:10px;font-size:1.22rem}
.member h3 a{text-decoration:none}
.member-role{font-family:var(--font-display);font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--navy)}
.member-bio{font-size:.94rem;color:var(--muted);line-height:1.7}
.member .text-link{margin-top:6px}
@media (max-width:980px){.team{grid-template-columns:repeat(2,1fr)}}
@media (max-width:580px){.team{grid-template-columns:1fr}}

/* Zonas */
.zones{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}
.zones-body{display:grid;gap:22px;min-width:0}
.zones-body > p{color:var(--muted)}
.zone-list{margin:12px 0 0;display:grid}
.zone-row{display:grid;grid-template-columns:190px 1fr;gap:4px 24px;padding-block:18px;border-top:1px solid var(--line-strong)}
.zone-row:last-child{border-bottom:1px solid var(--line-strong)}
.zone-row dt{font-family:var(--font-display);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.zone-row dd{margin:0;font-family:var(--font-display);font-weight:700;color:var(--ink)}
.zones-photo{margin:0;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/5;max-width:100%}
.zones-photo img{width:100%;height:100%;object-fit:cover;display:block;object-position:35% 50%}
@media (max-width:820px){.zones{grid-template-columns:1fr;gap:48px}.zones-photo{aspect-ratio:16/10}}
@media (max-width:480px){.zone-row{grid-template-columns:1fr}}

/* Preguntas */
.faq{display:grid;grid-template-columns:.9fr 1.1fr;gap:72px;align-items:start}
.faq-head{display:grid;gap:20px;min-width:0}
.faq-head p{color:var(--muted)}
.faq-list{min-width:0}
.faq-list details{border-top:1px solid var(--line)}
.faq-list details:last-child{border-bottom:1px solid var(--line)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:24px;padding-block:24px;font-family:var(--font-display);font-weight:700;font-size:1.04rem;color:var(--ink)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary::after{content:"+";flex:none;width:30px;height:30px;border-radius:50%;border:1px solid var(--line-strong);display:grid;place-items:center;font-weight:500;color:var(--navy);transition:transform .2s}
.faq-list details[open] summary::after{transform:rotate(45deg)}
.faq-list details p{padding-bottom:26px;color:var(--muted);max-width:60ch}
@media (max-width:820px){.faq{grid-template-columns:1fr;gap:40px}}

/* Cierre */
.cta{background:var(--navy);color:#fff}
.cta .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:32px 64px;padding-block:clamp(72px,8vw,104px)}
.cta-copy{flex:1 1 440px;display:grid;gap:14px;min-width:0}
.cta h2{color:#fff}
.cta p{color:#c6d5e4;max-width:54ch}

/* Pie */
.site-footer{background:var(--soft);color:var(--muted);font-size:.92rem}
.site-footer .wrap{padding-block:88px 36px}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.2fr;gap:48px 56px}
.footer-col{display:grid;gap:16px;align-content:start;min-width:0}
.footer-col > p{line-height:1.75;max-width:32ch}
.footer-title{font-family:var(--font-display);font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}
.footer-links{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.site-footer a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line-strong);transition:color .2s,border-color .2s;overflow-wrap:anywhere}
.site-footer a:hover{color:var(--navy);border-color:var(--navy)}
.site-footer .brand{border:0}
.footer-bottom{margin-top:72px;padding-top:28px;border-top:1px solid var(--line-strong);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 32px;font-size:.84rem}
@media (max-width:980px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.footer-grid{grid-template-columns:1fr;gap:40px}}

/* Encabezado de página interior */
.page-hero{background:var(--soft)}
.page-hero .wrap{padding-block:clamp(72px,9vw,112px) clamp(56px,7vw,88px);display:grid;grid-template-columns:1.1fr .9fr;gap:32px 72px;align-items:end}
.page-hero-main{display:grid;gap:20px;min-width:0}
.page-hero-aside{display:grid;gap:16px;color:var(--muted);min-width:0;max-width:50ch}
@media (max-width:820px){.page-hero .wrap{grid-template-columns:1fr}}

/* Accesos rápidos al equipo */
.quick{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;padding:0;list-style:none}
.quick a{display:inline-flex;align-items:center;gap:10px;padding:6px 16px 6px 6px;border:1px solid var(--line-strong);border-radius:999px;background:#fff;text-decoration:none;font-weight:600;font-size:.88rem;color:var(--ink);transition:border-color .2s,color .2s}
.quick a:hover{border-color:var(--navy);color:var(--navy)}
.quick img{width:32px;height:32px;border-radius:50%;object-fit:cover;display:block}

/* Criterios */
.criteria{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
.criteria li{display:grid;gap:10px;align-content:start;padding-top:24px;border-top:1px solid var(--line-strong);min-width:0}
.criteria p{color:var(--muted);font-size:.95rem}
.criteria ul{list-style:none;margin:0;padding:0}
@media (max-width:980px){.criteria{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.criteria{grid-template-columns:1fr}}

/* Perfiles */
.profiles{display:grid}
.profile{display:grid;grid-template-columns:300px 1fr;gap:40px 64px;padding-block:72px;border-top:1px solid var(--line);scroll-margin-top:90px}
.profile:first-child{border-top:0;padding-top:0}
.profile-photo{margin:0;border-radius:var(--radius);overflow:hidden;aspect-ratio:1/1;max-width:100%;align-self:start}
.profile-photo img{width:100%;height:100%;object-fit:cover;display:block}
.profile-body{display:grid;gap:18px;min-width:0}
.profile-body h2{font-size:clamp(1.6rem,2.6vw,2.05rem)}
.profile-lead{color:var(--muted);max-width:62ch}
.profile-details{display:grid;grid-template-columns:1.6fr 1fr;gap:32px 48px;margin-top:10px}
.profile-details h3{font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);margin-bottom:6px}
.formation{list-style:none;margin:0;padding:0}
.formation li{padding-block:11px;border-top:1px solid var(--line);font-size:.93rem;line-height:1.55}
.formation li:last-child{border-bottom:1px solid var(--line)}
.attention{display:grid;gap:6px;align-content:start;font-size:.93rem;min-width:0}
.attention p{color:var(--muted)}
.profile-body .btn{justify-self:start;margin-top:8px}
@media (max-width:860px){.profile{grid-template-columns:1fr;padding-block:56px}.profile-photo{max-width:280px}.profile-details{grid-template-columns:1fr}}

/* Qué es la hipnoterapia */
.intro{display:grid;grid-template-columns:1.15fr .85fr;gap:72px;align-items:start}
.prose{display:grid;gap:22px;min-width:0;max-width:64ch}
.prose p{color:var(--ink)}
.prose p:first-child{font-size:1.16rem;line-height:1.65}
.intro-photo{margin:0;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/5;max-width:100%;position:sticky;top:110px}
.intro-photo img{width:100%;height:100%;object-fit:cover;display:block}
@media (max-width:860px){.intro{grid-template-columns:1fr;gap:48px}.intro-photo{position:static;aspect-ratio:4/3}}
.video{display:grid;grid-template-columns:1fr auto;gap:56px 80px;align-items:center}
.video-copy{display:grid;gap:20px;min-width:0;max-width:52ch}
.video-copy p{color:var(--muted)}
.video-frame{width:min(340px,100%);aspect-ratio:9/16;max-width:100%;border-radius:16px;overflow:hidden;background:var(--navy-deep);box-shadow:0 24px 60px rgba(0,38,77,.16)}
.video-frame iframe{width:100%;height:100%;border:0;display:block}
@media (max-width:760px){.video{grid-template-columns:1fr}.video-frame{justify-self:center}}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;list-style:none;margin:0;padding:0}
.steps li{display:grid;gap:12px;align-content:start;padding-top:24px;border-top:1px solid var(--line-strong);min-width:0}
.steps p{color:var(--muted)}
@media (max-width:860px){.steps{grid-template-columns:1fr;gap:32px}}

/* Galería de videos */
.vgallery{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;list-style:none;margin:0;padding:0}
.vcard{display:grid;gap:14px;align-content:start;min-width:0}
.vplay,.vframe{position:relative;display:block;width:100%;aspect-ratio:9/16;max-width:100%;border-radius:16px;overflow:hidden;background:var(--navy-deep);border:0;padding:0;cursor:pointer}
.vplay img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s}
.vplay:hover img{transform:scale(1.03)}
.vplay::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,38,77,0) 55%,rgba(0,38,77,.55) 100%)}
.vicon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:1;width:64px;height:64px;border-radius:50%;background:rgba(255,255,255,.95);color:var(--navy);display:grid;place-items:center;box-shadow:0 10px 30px rgba(0,0,0,.2);transition:transform .2s}
.vicon svg{width:26px;height:26px;margin-left:3px}
.vplay:hover .vicon{transform:translate(-50%,-50%) scale(1.06)}
.vframe iframe{width:100%;height:100%;border:0;display:block}
.vcard h3{font-size:1.05rem;margin-top:4px}
.vlink{font-size:.86rem;color:var(--muted);text-decoration:none;border-bottom:1px solid var(--line-strong);justify-self:start}
.vlink:hover{color:var(--navy);border-color:var(--navy)}
@media (max-width:760px){
  .vgallery{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:12px;margin-inline:calc(-1 * max(clamp(20px,5.5vw,72px),env(safe-area-inset-left,0px)));padding-inline:max(clamp(20px,5.5vw,72px),env(safe-area-inset-left,0px));scroll-padding-inline:max(clamp(20px,5.5vw,72px),env(safe-area-inset-left,0px))}
  .vcard{flex:0 0 68%;scroll-snap-align:start}
}
.vmore{margin-top:48px;display:flex;justify-content:center}
.btn-outline-navy{border-color:var(--navy);color:var(--navy)}
.btn-outline-navy:hover{background:var(--navy);color:#fff}

/* Accesibilidad */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:max(16px,env(safe-area-inset-left,0px));top:calc(env(safe-area-inset-top,0px) - 80px);z-index:50;background:var(--navy);color:#fff;font-family:var(--font-display);font-weight:700;padding:12px 18px;border-radius:8px;text-decoration:none;transition:top .2s}
.skip-link:focus{top:calc(env(safe-area-inset-top,0px) + 12px)}

/* Contacto */
.contact{display:grid;grid-template-columns:1.1fr .9fr;gap:56px 80px;align-items:start}
.contact-main{display:grid;gap:24px;min-width:0;max-width:56ch}
.contact-main .btn{justify-self:start}
.contact-human{display:flex;gap:14px;align-items:flex-start;padding:20px 22px;border:1px solid var(--line-strong);border-radius:var(--radius);background:#fff}
.contact-human svg{width:24px;height:24px;flex:none;color:var(--navy);margin-top:2px}
.contact-human p{font-size:.95rem}
.contact-data{margin:0;display:grid}
.contact-row{display:grid;grid-template-columns:170px 1fr;gap:4px 24px;padding-block:18px;border-top:1px solid var(--line-strong);min-width:0}
.contact-row:last-child{border-bottom:1px solid var(--line-strong)}
.contact-row dt{font-family:var(--font-display);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.contact-row dd{margin:0;font-weight:500;color:var(--ink);overflow-wrap:anywhere}
.contact-row dd a{color:var(--navy);font-weight:600;text-decoration:none;border-bottom:1px solid var(--line-strong)}
.contact-row dd small{display:block;color:var(--muted);font-size:.86rem;font-weight:400;margin-top:2px}
@media (max-width:860px){.contact{grid-template-columns:1fr}}
@media (max-width:480px){.contact-row{grid-template-columns:1fr}}
.footer-links li{overflow-wrap:anywhere}
.contact-row{grid-template-columns:150px 1fr}
.contact-row dd{overflow-wrap:break-word}
@media (max-width:480px){.contact-row{grid-template-columns:1fr}}

/* Aviso de cookies */
.cookie-banner{position:fixed;z-index:40;left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));bottom:calc(16px + env(safe-area-inset-bottom,0px));max-width:560px;margin-left:auto;background:#fff;border:1px solid var(--line-strong);border-radius:var(--radius);box-shadow:0 20px 50px rgba(0,38,77,.16);padding:20px 22px;display:grid;gap:14px;font-size:.92rem;color:var(--ink)}
.cookie-actions{display:flex;flex-wrap:wrap;gap:10px}
.cookie-actions .btn{padding:10px 20px;font-size:.88rem;cursor:pointer}
.contact{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
.contact-row{grid-template-columns:150px minmax(0,1fr)}
.contact-row dd{min-width:0;overflow-wrap:anywhere}
.contact-data{min-width:0}
@media (max-width:860px){.contact{grid-template-columns:1fr}}
@media (max-width:480px){.contact-row{grid-template-columns:1fr}}
