/* ==========================================================================
   Consulta MGB — Landing pages de servicio (código limpio, rápido)
   Reutilizable para: osteopatía · acupuntura · medicina tradicional china
   ========================================================================== */
:root{
  --green:#91cdb4; --green-dark:#6fb89b; --green-soft:#e8f4ee;
  --ink:#464f51; --slate:#464f51; --text:#5b6a70; --muted:#8a979b;
  --soft:#fff2f1; --line:#e4e8e9; --white:#fff;
  --wa:#91cdb4;
  --font:"Lato","Open Sans",system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  --wrap:1180px; --radius:16px;
  --shadow:0 12px 34px rgba(70,79,81,.10);
  --shadow-lg:0 26px 60px rgba(70,79,81,.18);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-weight:300;font-size:17px;line-height:1.7;color:var(--text);background:var(--white);overflow-x:hidden}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}
ul{margin:0;padding:0;list-style:none}
p{margin:0 0 1rem}
h1,h2,h3{font-family:var(--font);color:var(--ink);line-height:1.12;margin:0 0 .5em;font-weight:900}
strong{font-weight:700;color:var(--slate)}
:focus-visible{outline:3px solid var(--green);outline-offset:3px}
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:22px}
.section{padding:64px 0}
/* sección con fondo verde (como "Beneficios" de la home) */
.section--green{background:var(--green)}
.section--green .section-title{color:#fff}
.section--green .eyebrow{color:#fff}
.section--green .rule{background:#fff}
.section--green .prose p,.section--green p{color:rgba(255,255,255,.92)}
.section--green .benefit{border-color:transparent;box-shadow:0 14px 34px rgba(70,79,81,.16)}
.center{text-align:center}
.eyebrow{color:var(--green-dark);font-weight:700;font-size:.95rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.5rem}
.rule{width:84px;height:4px;border-radius:4px;background:var(--green);margin:14px 0 22px}
.rule.mid{margin-inline:auto}

/* ---- Botones / CTA ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;padding:15px 26px;border-radius:999px;font-weight:800;font-size:.95rem;letter-spacing:.01em;cursor:pointer;border:2px solid transparent;transition:transform .15s,background .2s,color .2s;line-height:1.1;text-align:center}
.btn svg{width:20px;height:20px;fill:currentColor;flex:none}
.btn--call{background:var(--green);color:#fff;box-shadow:0 10px 24px rgba(145,205,180,.45)}
.btn--call:hover{background:var(--green-dark);transform:translateY(-2px)}
.btn--wa{background:var(--wa);color:#fff;box-shadow:0 10px 24px rgba(37,211,102,.4)}
.btn--wa:hover{filter:brightness(.95);transform:translateY(-2px)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--green)}
.btn--ghost:hover{background:var(--green);color:#fff}
.btn--solid{background:var(--green);color:#fff;box-shadow:0 10px 24px rgba(145,205,180,.45)}
.btn--solid:hover{background:var(--green-dark);transform:translateY(-2px)}
.cta-row{display:flex;flex-wrap:wrap;gap:14px}
.cta-row.mid{justify-content:center}

/* ---- Cabecera (estilo de la web) ---- */
.lp-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 2px 14px rgba(58,77,86,.06)}
.lp-header .wrap{display:flex;align-items:center;justify-content:space-between;min-height:84px;gap:1rem}
.lp-logo img{height:52px;width:auto}
.lp-nav{display:flex;gap:1.7rem}
.lp-nav a{color:#464f51;font-weight:700;font-size:.95rem}
.lp-nav a:hover{color:var(--green-dark)}
.lp-header__right{display:flex;align-items:center;gap:.9rem}
.lp-social{display:flex;gap:8px}
.lp-social a{width:30px;height:30px;border-radius:6px;background:var(--green);display:grid;place-items:center}
.lp-social svg{width:13px;height:13px;fill:#fff}
.lp-phone{display:inline-flex;align-items:center;gap:8px;background:var(--green);color:#fff;border-radius:999px;padding:10px 18px;font-weight:700;font-size:.9rem;white-space:nowrap}
.lp-phone svg{width:14px;height:14px;fill:#fff}

/* ---- Hero ---- */
.hero{position:relative;background:linear-gradient(180deg,var(--green-soft),#fff)}
.hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:46px;align-items:center;padding-top:54px;padding-bottom:54px}
.hero__badge{display:inline-flex;align-items:center;gap:.5rem;background:var(--white);border:1px solid var(--green);color:var(--green-dark);font-weight:700;font-size:.85rem;padding:7px 15px;border-radius:999px;margin-bottom:18px}
.hero h1{font-size:clamp(2rem,4.4vw,3.1rem);color:var(--ink)}
.hero h1 .hl{color:var(--green-dark)}
.hero__lead{font-size:1.2rem;color:var(--slate);max-width:34ch;margin-bottom:24px}
.hero__trust{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:22px;font-size:.95rem;color:var(--muted)}
.hero__trust span{display:inline-flex;align-items:center;gap:.45rem}
.hero__trust svg{width:18px;height:18px;fill:var(--green)}
.hero__media{position:relative}
.hero__media img{border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;aspect-ratio:4/5;object-fit:cover}

/* ---- Barra de confianza ---- */
.trustbar{background:var(--green)}
.trustbar .wrap{display:flex;flex-wrap:wrap;justify-content:space-around;gap:18px;padding:22px}
.trustbar div{display:flex;align-items:center;gap:.6rem;color:#fff;font-weight:700;font-size:.98rem}
.trustbar svg{width:24px;height:24px;fill:#fff}

/* ---- Secciones de contenido ---- */
.lead-head{max-width:720px;margin:0 auto 40px}
h2.section-title{font-size:clamp(1.7rem,3.4vw,2.4rem)}
.prose p{font-size:1.08rem}
.prose strong{color:var(--ink)}

.benefits{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}
.benefit{background:var(--white);border:1px solid var(--green);border-radius:20px;padding:30px 24px;text-align:center}
.benefit img{width:72px;height:72px;margin:0 auto 14px}
.benefit h3{font-size:1.12rem;font-weight:700;color:#464f51}
.benefit p{margin:0;color:var(--text);font-size:.96rem}

.split{display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:center}
.split img{border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;aspect-ratio:1/1;object-fit:cover}
.check{display:grid;gap:.7rem;margin:1.2rem 0}
.check li{display:flex;gap:.6rem;align-items:flex-start;color:var(--slate)}
.check li::before{content:"";flex:0 0 22px;height:22px;margin-top:2px;background:var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/14px no-repeat;border-radius:50%}

/* ---- Pasos ---- */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;counter-reset:s}
.step{position:relative;background:var(--green-soft);border-radius:var(--radius);padding:30px 24px 24px}
.step::before{counter-increment:s;content:counter(s);position:absolute;top:-16px;left:24px;width:42px;height:42px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.2rem;box-shadow:0 6px 14px rgba(145,205,180,.5)}
.step h3{font-size:1.1rem;font-weight:700;color:var(--ink);margin-top:8px}
.step p{margin:0;font-size:.96rem}

/* ---- Bio ---- */
.bio{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:center}
.bio img{border-radius:var(--radius);box-shadow:var(--shadow-lg);width:100%;aspect-ratio:4/5;object-fit:cover}

/* ---- Testimonios ---- */
.testis{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.testi{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow)}
.testi .stars{color:#ffbc7d;letter-spacing:2px;margin-bottom:.6rem}
.testi blockquote{margin:0 0 1rem;font-style:italic;color:var(--text)}
.testi cite{font-style:normal;font-weight:700;color:var(--ink)}

/* ---- Zona / localidades ---- */
.zona{background:var(--green-soft)}
.zona .wrap{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.towns{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.towns span{background:#fff;border:1px solid var(--green);color:var(--green-dark);font-weight:700;border-radius:999px;padding:7px 16px;font-size:.92rem}
.map{border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-lg);min-height:320px}
.map iframe{width:100%;height:100%;min-height:320px;border:0;display:block}

/* ---- CTA final + formulario ---- */
.final{background:var(--green);color:#fff}
.final .wrap{display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:center}
.final h2{color:#fff;font-size:clamp(1.8rem,3.6vw,2.5rem)}
.final p{color:rgba(255,255,255,.92);font-size:1.1rem}
.final .cta-row{margin-top:22px}
.final .btn--solid{background:#fff;color:var(--green-dark);box-shadow:0 10px 24px rgba(0,0,0,.14)}
.final .btn--solid:hover{background:var(--soft);transform:translateY(-2px)}
.final .btn--call{background:transparent;color:#fff;border-color:#fff}
.final .btn--call:hover{background:#fff;color:var(--green-dark)}
.final .btn--wa{background:transparent;color:#fff;border-color:#fff}
.final .btn--wa:hover{background:#fff;color:var(--green-dark)}
.form{background:#fff;border-radius:var(--radius);padding:30px;box-shadow:var(--shadow-lg);color:var(--text)}
.form .field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:14px}
.form label{font-weight:700;font-size:.88rem;color:var(--ink)}
.form input,.form textarea{font-family:inherit;font-size:1rem;padding:12px 14px;border:1.5px solid var(--line);border-radius:10px;background:#fafbfb;color:var(--text)}
.form input:focus,.form textarea:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px rgba(145,205,180,.25);background:#fff}
.form textarea{resize:vertical;min-height:92px}
.form .consent{display:flex;gap:.5rem;align-items:flex-start;font-size:.82rem;color:var(--muted);margin:6px 0 14px}
.form .consent a{color:var(--green-dark);text-decoration:underline}
.form .btn{width:100%}
.form small{display:block;text-align:center;color:var(--muted);margin-top:10px;font-size:.8rem}

/* ---- Pie (estilo de la web) ---- */
.lp-footer{background:var(--soft);color:#5b6a70;font-size:.95rem}
.lp-footer-main{padding:54px 0 34px}
.lp-footer-main .wrap{display:grid;grid-template-columns:1.3fr 1fr;gap:44px;align-items:start}
.lp-footer-brand img{height:58px;margin-bottom:14px}
.lp-footer-brand p{max-width:38ch}
.lp-fsocial{display:flex;gap:10px;margin-top:14px}
.lp-fsocial a{width:38px;height:38px;border-radius:50%;background:var(--green);display:grid;place-items:center}
.lp-fsocial svg{width:16px;height:16px;fill:#fff}
.lp-footer h3{color:var(--ink);font-size:1.25rem}
.lp-footer address{font-style:normal;line-height:1.55;margin-top:10px}
.lp-footer-bottom{background:var(--green);color:#fff;text-align:center;padding:15px;font-size:.9rem}
.lp-footer-bottom a{color:#fff;font-weight:700}

/* ---- Tarjetas de servicio (página /servicios/) ---- */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}
.svc-card{background:#fff;border:1px solid var(--green);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column;transition:transform .15s,box-shadow .2s}
.svc-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg)}
.svc-card img{height:190px;width:100%;object-fit:cover}
.svc-card__body{padding:26px;display:flex;flex-direction:column;flex:1}
.svc-card h3{color:#464f51;font-size:1.3rem;margin-bottom:.4rem}
.svc-card p{color:var(--text);font-size:.97rem;flex:1}
.svc-card .more{color:var(--green-dark);font-weight:800;margin-top:12px;display:inline-flex;align-items:center;gap:.4rem}
.svc-card .more svg{width:16px;height:16px;fill:currentColor}

/* ---- WhatsApp flotante ---- */
.fab-wa{position:fixed;right:20px;bottom:20px;width:58px;height:58px;border-radius:50%;background:var(--wa);border:3px solid #fff;display:grid;place-items:center;box-shadow:0 8px 22px rgba(70,79,81,.28);z-index:80}
.fab-wa svg{width:28px;height:28px;fill:#fff}

/* ---- Responsive ---- */
@media(max-width:860px){
  .hero .wrap,.split,.bio,.zona .wrap,.final .wrap,.lp-footer-main .wrap{grid-template-columns:1fr}
  .hero__media{order:-1}
  .hero__media img{aspect-ratio:16/10}
  .lp-nav,.lp-social{display:none}
  .lp-phone span{display:none}
}
@media(max-width:520px){
  body{font-size:16px}
  .section{padding:48px 0}
  .cta-row .btn{width:100%}
  .lp-header .lp-logo img{height:40px}
}
