/* Estilos compartidos con la portada (copia del bloque <style> de index.html) + páginas de especialidad */

    :root {
      --c-bg: #ecf5f3;
      --c-bg-2: #0d0520;
      --c-surface: #0d2a2a;
      --c-surface-2: #160835;
      --c-green-deep: #1a4a48;
      --c-green-mid: #2a6a66;
      --c-green-accent: #56a7a4;
      --c-green-glow: #9cc4b9;
      --c-terra: #dd8dc2;
      --c-terra-light: #9B6B9E;
      --c-gold: #ae8dbf;
      --c-text: #2d3436;
      --c-text-dim: #8a7a95;
      --c-white: #2d3436;
      --c-cream: #2d3436;
      --c-cream-dim: #5a6a6a;
      --c-glass: rgba(86, 167, 164, 0.10);
      --c-glass-border: rgba(156, 196, 185, 0.20);
    }

    .areas{padding:clamp(1rem,2.5vw,1.75rem) 5vw;max-width:1100px;margin:0 auto;text-align:center}
    .areas .lead{max-width:62ch;margin:0 auto 1.5rem;color:#2d3436}
    .areas-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem;margin:1.2rem 0;text-align:left}@media(max-width:1000px){.areas-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.areas-grid{grid-template-columns:1fr}}
    .area-card{display:block;padding:1rem 1.1rem;background:rgba(255,255,255,.6);border:1px solid rgba(156,196,185,.45);border-radius:20px;text-decoration:none;color:#2d3436}
    a.area-card:hover{background:rgba(174,141,191,.2)}
    .area-card strong{display:block;color:#7D5A7A;margin-bottom:.4rem}
    .area-card span{font-size:.95rem;line-height:1.6;display:block}
    .areas-trust{font-size:.85rem;color:#2d3436;margin-top:1rem}
    .cta-row{display:flex;gap:.8rem;justify-content:center;flex-wrap:wrap}
    .services-scroll-container{overflow:visible !important;scroll-snap-type:none !important;padding:0 5vw !important;-webkit-mask-image:none !important;mask-image:none !important}
    .services-track{display:grid !important;grid-template-columns:repeat(3,1fr) !important;gap:1.4rem !important;width:auto !important;max-width:1320px;margin:0 auto !important;transform:none !important;padding:0 !important}
    .services-track .service-card{min-width:0 !important;width:auto !important;max-width:none !important;flex:none !important;margin:0 !important}
    .services-track .service-card{padding:1.6rem 1.6rem !important;min-height:0 !important;height:auto !important}
    .services-track .service-icon{font-size:1.8rem !important;margin-bottom:.7rem !important}
    .services-track .service-name{font-size:1.15rem !important;margin-bottom:.5rem !important}
    .services-track .service-desc{font-size:.95rem !important;line-height:1.7 !important;margin:0 !important}
    .services-scroll-hint{display:none !important}
    @media(max-width:1000px){.services-track{grid-template-columns:repeat(2,1fr) !important}}
    @media(max-width:560px){.services-track{grid-template-columns:1fr !important}}
    /* Servicios agrupados por temas */
    .services-groups{box-sizing:content-box;width:min(calc(100% - 2*clamp(1.25rem,5vw,4rem)),1280px);margin:2.5rem auto 0;display:flex;flex-direction:column;gap:1.3rem}
    .svc-group{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:1.2rem 2.5rem;padding:1.8rem 2rem;background:rgba(255,255,255,.45);border:1px solid rgba(156,196,185,.45);border-radius:24px;align-items:start}
    .svc-emoji{display:block;font-size:1.8rem;margin-bottom:.4rem}
    .svc-group-head h3{font-size:1.35rem;line-height:1.25;color:#7D5A7A;margin:0 0 .5rem}
    .svc-group-head p{font-size:.95rem;line-height:1.6;color:#5a6a6a;margin:0;text-align:left}
    .svc-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem}
    .svc-item{background:#fff;border:1px solid rgba(156,196,185,.45);border-left:4px solid #9cc4b9;border-radius:16px;padding:1.1rem 1.3rem}
    .svc-item h4{font-size:1.05rem;color:#2d3436;margin:0 0 .35rem}
    .svc-item p{font-size:.95rem;line-height:1.65;margin:0;text-align:left}
    .svc-entities{display:flex;align-items:center;justify-content:space-between;gap:1.5rem 2rem;flex-wrap:wrap;padding:1.8rem 2rem;background:rgba(174,141,191,.2);border:1px solid rgba(125,90,122,.35);border-radius:24px}
    .svc-entities-text{flex:1 1 420px}
    .svc-entities-tag{display:block;font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#7D5A7A;margin-bottom:.3rem}
    .svc-entities h3{font-size:1.35rem;color:#7D5A7A;margin:0 0 .5rem}
    .svc-entities p{font-size:.97rem;line-height:1.65;margin:0;text-align:left}
    @media(max-width:860px){.svc-group{grid-template-columns:1fr;padding:1.5rem 1.3rem}.svc-entities{padding:1.5rem 1.3rem}}
    .credential-chips .chip{background:rgba(174,141,191,.2) !important;color:#7D5A7A !important;border:1px solid rgba(125,90,122,.35) !important;border-radius:999px;font-weight:600}
    /* Texto de cuerpo: mismo tamaño en toda la web y justificado */
    .about-bio, .cred-item span, .service-desc, .step-desc, .section-subtitle, .faq-answer, .faq-answer p,
    .form-subtitle, .pricing-text, .price-note, .formacion-text, .areas .lead, .area-card span,
    .contact-detail-text span, .avail-row span {
      font-size: 0.95rem !important;
      line-height: 1.65 !important;
      text-align: justify !important;
      hyphens: none !important;
      -webkit-hyphens: none !important;
      overflow-wrap: normal;
      word-break: normal;
      text-justify: inter-word;
    }

    .ft-grid .footer-tagline, .review-text {
      text-align: justify;
      hyphens: none;
      -webkit-hyphens: none;
    }

    .resources[hidden], .blog[hidden], .reviews[hidden] { display: none !important; }

    @media (min-width: 900px) { .about-grid { grid-template-columns: minmax(260px, 0.8fr) 1.4fr !important; } }
    .about-bio { max-width: none !important; }

    /* Preguntas frecuentes: más aire arriba y abajo y sin recortes */
    .faq { height: auto !important; max-height: none !important; overflow: visible !important;
      padding-top: clamp(2.5rem, 6vw, 4.5rem) !important; padding-bottom: clamp(2.5rem, 6vw, 4.5rem) !important; }
    .faq .section-inner, .faq-grid, .faq-list { max-height: none !important; overflow: visible !important; }

    /* Logo de texto */
    .nav-logo-text { font-size: 1.35rem; letter-spacing: .01em; color: #9B6B9E; text-decoration: none; white-space: nowrap; }
    .nav-logo-text span { color: #56a7a4; }

    section.faq { padding-top: clamp(3.5rem, 7vw, 5.5rem) !important; padding-bottom: clamp(3.5rem, 7vw, 5.5rem) !important; min-height: 0 !important; }
    .faq-list .faq-item { margin-bottom: .35rem; }

    /* Formulario más compacto en Contacto */
    .booking-iframe-wrap iframe { min-height: 0 !important; height: 620px !important; }

    /* Blog y Recursos: título en una línea y subtítulo justo debajo */
    .blog-header, .resources-header { display: block !important; }
    .blog-header .section-title, .resources-header .section-title { max-width: none !important; margin-bottom: .5rem !important; }
    .blog-header .section-subtitle, .resources-header .section-subtitle { max-width: none !important; margin: 0 0 1.5rem !important; }
    @media (min-width: 700px) { .blog-header .section-title, .resources-header .section-title { white-space: nowrap; } }

    /* Tarifas: frase final en una sola línea */
    @media (min-width: 900px) { .pricing-text { max-width: none !important; white-space: nowrap; } }

    /* Logo, pie, secciones más juntas, negritas y títulos */
    .nav-logo-text.section-title { font-size: 1.5rem !important; line-height: 1.1 !important; margin: 0 !important; padding: 0 !important; display: inline-block; color: #9B6B9E !important; }
    .nav-logo-text.section-title span { color: #56a7a4 !important; }
    .footer-logo-img { display: block; width: 150px; max-width: 60%; height: auto; margin: 0 0 0.9rem; }
    .footer-logo { color: #9B6B9E !important; }
    .footer-logo span { color: #56a7a4 !important; }
    .about-bio strong { color: #2d3436; font-weight: 700; }
    section.areas { padding-bottom: .25rem !important; }
    section.about { padding-top: .5rem !important; }
    @media (min-width: 900px) { .section-title { white-space: nowrap; } .about .section-title { white-space: normal; } }

    /* Menú desplegable */
    .nav-links li { position: relative; }
    .nav-links .dd { display: none; position: absolute; top: 100%; left: 0; min-width: 210px; margin: 0; padding: .4rem 0; list-style: none; background: #fff; border: 1px solid rgba(86,167,164,.25); border-radius: 12px; box-shadow: 0 8px 24px rgba(0,0,0,.08); z-index: 60; }
    .nav-links .dd li { display: block; }
    .nav-links .dd a { display: block; padding: .6rem 1.1rem; white-space: nowrap; color: #2d3436 !important; text-transform: none; letter-spacing: 0; }
    .nav-links .dd a:hover { background: rgba(174,141,191,.15); }
    .has-dd:hover > .dd, .has-dd:focus-within > .dd, .has-dd.open > .dd { display: block; }
    .nav-links .chev { font-size: .7em; }

    /* Pie de página */
    .ft-grid { display: grid !important; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 2rem; align-items: start; }
    .ft-grid .footer-tagline { margin: .4rem 0 0; font-size: .95rem; line-height: 1.6; }
    .ft-grid .footer-links li { margin-bottom: .6rem; }
    @media (max-width: 900px) { .ft-grid { grid-template-columns: 1fr 1fr; } }
    @media (max-width: 520px) { .ft-grid { grid-template-columns: 1fr; } }

    /* Pie: botón Contacto y texto justificado */
    .footer-links .btn-primary { background: #9B6B9E !important; color: #fff !important; }
    .ft-grid .footer-tagline { text-align: justify; }
    .nav-links .chev { font-size: 1.15em !important; margin-left: .2rem; display: inline-block; transition: transform .2s; }
    .has-dd:hover > a .chev, .has-dd.open > a .chev { transform: rotate(180deg); }

    /* Preguntas frecuentes: título arriba y preguntas en tarjetas, en dos columnas */
    .faq-grid { display: block !important; }
    .faq-grid > div:first-child { margin-bottom: 2rem; max-width: 640px; }
    .faq-list { display: grid !important; grid-template-columns: repeat(2, 1fr); gap: .9rem 1.4rem; align-items: start; }
    .faq-list .faq-item { background: rgba(255,255,255,.65); border: 1px solid rgba(156,196,185,.5); border-radius: 16px; overflow: hidden; margin: 0 !important; }
    .faq-list .faq-question { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.1rem 1.3rem; text-align: left; cursor: pointer; background: none; border: 0; font: inherit; font-weight: 600; color: #2d3436; }
    .faq-list .faq-question:hover, .faq-list .faq-question[aria-expanded="true"] { background: rgba(174,141,191,.15); }
    .faq-list .faq-toggle { flex: none; width: 28px; height: 28px; border-radius: 50%; background: #9B6B9E; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; line-height: 1; }
    .faq-list .faq-answer p { padding: 0 1.3rem 1.1rem; margin: 0; }
    @media (max-width: 800px) { .faq-list { grid-template-columns: 1fr; } }

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

    .section-title {
      color: #9cc4b9 !important;
    }

    .section-title em {
      color: #9B6B9E !important;
    }

    .about-quote {
      color: #7D5A7A !important;
    }

    /* ===== Portada (lo primero que se ve): texto + logo ===== */
    .hero {
      grid-template-columns: 1fr !important;
      padding: 0 !important;
      min-height: 0 !important;
      height: auto !important;
      background-image:
        linear-gradient(90deg, rgba(236, 245, 243, 0.96) 0%, rgba(236, 245, 243, 0.86) 42%, rgba(236, 245, 243, 0.45) 100%),
        url("assets/flores.jpeg") !important;
      background-size: cover !important;
      background-position: center !important;
      background-repeat: no-repeat !important;
    }

    .hero-image-wrap {
      display: none !important;
    }

    .hero-content.hero-v2 {
      display: grid !important;
      grid-template-columns: minmax(0, 1fr);
      min-height: clamp(460px, 74vh, 720px);
      align-items: center;
      gap: clamp(1.5rem, 4vw, 4rem);
      box-sizing: content-box !important;
      width: min(calc(100% - 2 * clamp(1.25rem, 5vw, 4rem)), 1280px) !important;
      max-width: none !important;
      margin: 0 auto !important;
      padding: clamp(6rem, 12vh, 8rem) 0 clamp(4.5rem, 9vh, 6.5rem) !important;
      text-align: left !important;
      opacity: 1 !important;
      transform: none !important;
      animation: none !important;
    }

    .hero-v2-copy {
      max-width: 640px;
    }

    .hero-v2-pill {
      display: inline-flex;
      align-items: center;
      padding: 0.45rem 1rem;
      margin-bottom: 1.4rem;
      border-radius: 999px;
      background: rgba(174, 141, 191, 0.18);
      border: 1px solid rgba(125, 90, 122, 0.25);
      color: #7D5A7A;
      font-size: 0.85rem;
      font-weight: 600;
    }

    .hero-v2 .hero-v2-title {
      margin: 0 0 1.25rem !important;
      font-size: clamp(2.3rem, 4.6vw, 4rem) !important;
      line-height: 1.1 !important;
      color: #2d3436 !important;
      text-align: left !important;
      white-space: normal !important;
    }

    .hero-v2 .hero-v2-title em {
      color: #9B6B9E !important;
    }

    .hero-v2-lead {
      max-width: 54ch;
      margin: 0 0 1.8rem;
      font-size: 1.05rem;
      line-height: 1.7;
      color: #2d3436;
      text-align: left !important;
    }

    .hero-v2-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 0.9rem;
    }

    .hero-v2-actions .btn-primary {
      display: inline-flex;
      align-items: center;
      gap: 0.5rem;
    }

    .btn-primary.hero-btn-ghost {
      background: #fff !important;
      color: #2d3436 !important;
      border: 1px solid rgba(156, 196, 185, 0.8) !important;
    }

    .hero-v2-lead strong {
      font-weight: 700;
    }

    .hero-v2-trust {
      margin: 1.4rem 0 0;
      font-size: 0.85rem;
      color: #2d3436;
    }

    @media (max-width: 899px) {
      .hero-content.hero-v2 { padding-top: 5.5rem !important; }
      .hero {
        background-image:
          linear-gradient(180deg, rgba(236, 245, 243, 0.92) 0%, rgba(236, 245, 243, 0.8) 100%),
          url("assets/flores.jpeg") !important;
      }
      .hero-v2 .hero-v2-title { font-size: clamp(1.85rem, 7.2vw, 3rem) !important; }
    }

    /* Foto de «Sobre mí»: alineada arriba, a la altura del título */
    .about-grid {
      align-items: center !important;
    }

    .about-image-wrap {
      align-self: center !important;
      margin-top: 0 !important;
      position: relative !important;
      top: 0 !important;
    }

    /* Menos espacio en blanco entre secciones */
    .about, .services, .methodology, .pricing, .reviews, .resources, .blog, .faq, .contact {
      padding-top: clamp(1rem, 2.5vw, 1.75rem) !important;
      padding-bottom: clamp(1rem, 2.5vw, 1.75rem) !important;
      min-height: 0 !important;
    }

    .about .section-inner, .services .section-inner, .methodology .section-inner, .pricing .section-inner,
    .reviews .section-inner, .resources .section-inner, .blog .section-inner, .faq .section-inner, .contact .section-inner {
      padding-top: 0 !important;
      padding-bottom: 0 !important;
      margin-top: 0 !important;
      margin-bottom: 0 !important;
    }

    /* Formulario de Google dentro de la sección de contacto */
    .booking-iframe-wrap {
      height: auto !important;
      overflow: visible !important;
    }

    .booking-iframe-wrap iframe {
      display: block;
      width: 100%;
      min-height: 1400px;
      border: 0;
    }

    /* Sección Tarifas */
    .pricing {
      padding-left: 0;
      padding-right: 0;
    }

    .pricing .section-inner {
      box-sizing: border-box;
      padding-left: 5vw;
      padding-right: 5vw;
    }

    .pricing-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
      gap: 1.25rem;
      margin: 2rem 0 1.5rem;
    }

    .price-card {
      display: flex;
      flex-direction: column;
      gap: 0.4rem;
      padding: 1.6rem 1.5rem;
      background: rgba(255, 255, 255, 0.6);
      border: 1px solid rgba(156, 196, 185, 0.45);
      border-radius: 20px;
    }

    .price-card.is-highlight {
      background: rgba(174, 141, 191, 0.2);
      border-color: rgba(174, 141, 191, 0.35);
    }

    .price-label {
      font-size: 0.78rem;
      font-weight: 600;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: #2d3436;
    }

    .price-amount {
      font-size: clamp(2rem, 3.4vw, 2.8rem);
      font-weight: 700;
      line-height: 1.1;
      color: #1a4a48;
    }

    .price-amount small {
      font-size: 1rem;
      font-weight: 500;
      color: #2d3436;
    }

    .price-note {
      margin: 0;
      font-size: 0.9rem;
      line-height: 1.5;
      color: #2d3436;
    }

    .price-note a {
      color: #56a7a4;
    }

    .pricing-text {
      max-width: 62ch;
      margin: 0 0 1.25rem;
      font-size: 0.95rem;
      color: #2d3436;
    }

    /* Mismo color para todo el texto de cuerpo */
    .about-bio, .cred-item span, .service-desc, .step-desc, .section-subtitle, .faq-answer, .faq-answer p,
    .form-subtitle, .contact-detail-text span, .avail-row span, .pricing-text, .price-label, .price-note,
    .price-amount small {
      color: #2d3436 !important;
    }

    /* Sección Formación: a todo el ancho, en dos columnas compactas */
    .formacion {
      margin-top: clamp(2rem, 4vw, 3rem);
      padding-top: 0;
      border-top: 0 !important;
    }

    .formacion-title {
      margin: 0 0 1.25rem;
    }

    .formacion-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
      gap: 1.25rem;
      align-items: stretch;
    }

    .formacion-col {
      padding: 1.4rem 1.5rem;
      background: rgba(255, 255, 255, 0.6);
      border: 1px solid rgba(156, 196, 185, 0.45);
      border-radius: 20px;
    }

    .formacion-subtitle {
      margin: 0 0 1rem;
      font-size: 0.78rem;
      font-weight: 600;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      color: #7D5A7A;
    }

    .formacion-list {
      list-style: none;
      margin: 0;
      padding: 0;
      display: flex;
      flex-direction: column;
      gap: 0.9rem;
    }

    .formacion-item {
      display: flex;
      align-items: flex-start;
      gap: 0.75rem;
    }

    .formacion-icon {
      flex: 0 0 auto;
      font-size: 1.15rem;
      line-height: 1.4;
    }

    .formacion-text {
      display: flex;
      flex-direction: column;
      gap: 0.1rem;
      min-width: 0;
    }

    .formacion-text strong {
      font-size: 0.95rem;
      font-weight: 600;
      line-height: 1.4;
      color: #2d3436;
    }

    .formacion-text span {
      font-size: 0.88rem;
      line-height: 1.4;
      color: #2d3436;
    }
    /* Sección Reseñas */
    .reviews-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
      gap: 1.25rem;
      margin: 2rem 0 1.5rem;
    }

    .review-card {
      display: flex;
      flex-direction: column;
      gap: 0.75rem;
      padding: 1.4rem 1.5rem;
      background: rgba(255, 255, 255, 0.6);
      border: 1px solid rgba(156, 196, 185, 0.45);
      border-radius: 20px;
    }

    .review-stars {
      display: flex;
      gap: 0.2rem;
      color: #d9a62e;
    }

    .review-text {
      margin: 0;
      font-size: 0.95rem;
      line-height: 1.65;
      color: #2d3436;
    }

    .review-author {
      display: flex;
      align-items: center;
      gap: 0.6rem;
      margin-top: auto;
      font-size: 0.9rem;
      font-weight: 600;
      color: #7D5A7A;
    }

    .review-avatar {
      flex: 0 0 auto;
      display: flex;
      align-items: center;
      justify-content: center;
      width: 36px;
      height: 36px;
      border-radius: 50%;
      background: rgba(174, 141, 191, 0.25);
      color: #7D5A7A;
    }
    /* Todas las secciones: mismo ancho y mismo margen izquierdo */
    section.areas, section.services, section.about, section.methodology, section.pricing, section.reviews,
    section.resources, section.blog, section.faq, section.contact {
      padding-left: 0 !important;
      padding-right: 0 !important;
    }

    section.areas,
    section.services > .section-inner, section.services > .services-scroll-container,
    section.about > .section-inner, section.methodology > .section-inner, section.pricing > .section-inner,
    section.reviews > .section-inner, section.resources > .section-inner, section.blog > .section-inner,
    section.faq > .section-inner, section.contact > .section-inner, footer .footer-inner {
      box-sizing: content-box !important;
      width: min(calc(100% - 2 * clamp(1.25rem, 5vw, 4rem)), 1280px) !important;
      max-width: none !important;
      margin-left: auto !important;
      margin-right: auto !important;
      padding-left: 0 !important;
      padding-right: 0 !important;
    }

    /* Bloque «Terapia psicológica con rigor clínico y calidez»: centrado */
    section.areas { text-align: center !important; }
    .areas .section-label { justify-content: center; text-align: center; }
    .areas .section-title { text-align: center !important; }
    .areas .lead { margin-left: auto !important; margin-right: auto !important; text-align: center !important; }
    .areas .cta-row { justify-content: center; }

    /* Ninguna palabra se corta con guion al final de línea (p. ej. «Fun-cional») */
    html, body, body * { hyphens: none !important; -webkit-hyphens: none !important; }
    /* En tarjetas y columnas estrechas, texto alineado a la izquierda (justificado sin guiones deja huecos feos) */
    .service-desc, .area-card span, .review-text, .price-note, .formacion-text, .faq-answer, .faq-answer p,
    .contact-detail-text span, .avail-row span, .ft-grid .footer-tagline { text-align: left !important; }
    @media (max-width: 700px) {
      .about-bio, .step-desc, .section-subtitle, .pricing-text, .form-subtitle { text-align: left !important; }
    }

    /* «Cómo trabajo»: la foto de flores mantiene sus proporciones (antes salía aplastada) */
    .method-visual-img {
      display: block;
      width: 100% !important;
      height: auto !important;
      max-height: none !important;
      aspect-ratio: auto !important;
      object-fit: cover !important;
    }
  
    /* ===== Reservar fácil: WhatsApp, valoración, formulario propio ===== */
    .hero-v2 .hero-v2-title { font-size: clamp(1.7rem, 3.3vw, 2.9rem) !important; line-height: 1.18 !important; }
    @media (max-width: 899px) { .hero-v2 .hero-v2-title { font-size: clamp(1.55rem, 6.2vw, 2.3rem) !important; } }
    .hero-v2-actions { align-items: center; gap: .9rem 1.2rem; }
    .hero-cta-primary { display: flex; flex-wrap: wrap; align-items: center; gap: .7rem 1rem; }
    .hero-rating { display: inline-flex; align-items: center; gap: .45rem; font-size: .9rem; color: #2d3436; text-decoration: none; }
    .hero-rating .stars { color: #e0a82e; letter-spacing: .08em; font-size: 1rem; }
    .hero-rating:hover strong { text-decoration: underline; }
    .btn-primary.btn-wa { background: #25D366 !important; color: #fff !important; border: 0 !important; display: inline-flex; align-items: center; gap: .5rem; }
    .btn-primary.btn-wa:hover { filter: brightness(.95); }
    .hero-v2-trust a { color: #56a7a4; text-decoration: none; font-weight: 600; }
    .wa-float { display: none; position: fixed; right: 1rem; bottom: calc(1rem + env(safe-area-inset-bottom, 0px)); z-index: 90; width: 58px; height: 58px; border-radius: 50%; background: #25D366; color: #fff; align-items: center; justify-content: center; box-shadow: 0 6px 18px rgba(0,0,0,.25); }
    .wa-float svg { width: 30px; height: 30px; }
    @media (max-width: 899px) { .wa-float { display: flex; } }

    .rf { display: flex; flex-direction: column; gap: 1.2rem; margin-top: 1.2rem; text-align: left; }
    .rf-field { border: 0; padding: 0; margin: 0; min-width: 0; }
    .rf-label, .rf-field > legend { display: block; font-weight: 600; font-size: .95rem; color: #2d3436; margin-bottom: .45rem; padding: 0; }
    .rf-req { color: #9B6B9E; }
    .rf input[type=text], .rf input[type=email], .rf input[type=tel], .rf input[type=date], .rf textarea {
      width: 100%; font: inherit; font-size: 1rem; color: #2d3436; background: #fff; border: 1px solid rgba(86,167,164,.45);
      border-radius: 14px; padding: .75rem 1rem; }
    .rf textarea { min-height: 110px; resize: vertical; }
    .rf input:focus, .rf textarea:focus { outline: 2px solid #56a7a4; outline-offset: 1px; }
    .rf-options { display: flex; flex-direction: column; gap: .5rem; }
    .rf-option { display: flex; align-items: center; gap: .6rem; font-size: .97rem; cursor: pointer; }
    .rf-option input[type=radio], .rf-option input[type=checkbox] { accent-color: #56a7a4; width: 18px; height: 18px; flex: none; }
    .rf-other { display: flex; align-items: center; gap: .6rem; }
    .rf-other input[type=text] { flex: 1; padding: .45rem .8rem; }
    .rf-note { font-size: .92rem; line-height: 1.6; color: #2d3436; text-align: left; margin: 0 0 .6rem; }
    .rf details { background: rgba(255,255,255,.6); border: 1px solid rgba(156,196,185,.45); border-radius: 14px; padding: .7rem 1rem; margin-bottom: .7rem; }
    .rf summary { cursor: pointer; font-size: .9rem; font-weight: 600; color: #7D5A7A; }
    .rf details p { font-size: .85rem; line-height: 1.6; margin: .6rem 0 0; text-align: left; }
    .rf-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
    .rf-submit { display: flex; align-items: center; justify-content: center; gap: .5rem; width: 100%; border: 0; cursor: pointer; font: inherit; font-weight: 700; font-size: 1.05rem; color: #fff; background: #56a7a4; border-radius: 999px; padding: .95rem 1.6rem; }
    .rf-submit:hover { background: #3f8f8c; }
    .rf-submit[disabled] { opacity: .6; cursor: wait; }
    .rf-msg { padding: .9rem 1.1rem; border-radius: 14px; font-size: .95rem; line-height: 1.55; display: none; }
    .rf-msg.ok { display: block; background: rgba(86,167,164,.18); border: 1px solid #56a7a4; color: #1a4a48; }
    .rf-msg.err { display: block; background: rgba(221,141,194,.2); border: 1px solid #9B6B9E; color: #5c3a5a; }
    .rf-msg a { color: inherit; font-weight: 700; }
  
    /* Casillas y opciones del formulario: siempre visibles y clicables, aunque otros estilos de la web intenten cambiarlas */
    .contact-form-wrap .rf { position: relative; z-index: 5; }
    .rf .rf-options, .rf .rf-other, .rf .rf-field, .rf fieldset { pointer-events: auto !important; }
    .rf .rf-option { position: relative; z-index: 1; pointer-events: auto !important; cursor: pointer; user-select: none; -webkit-user-select: none; }
    .rf .rf-option input[type=radio], .rf .rf-option input[type=checkbox] {
      -webkit-appearance: auto !important; appearance: auto !important;
      display: inline-block !important; position: static !important; float: none !important;
      opacity: 1 !important; visibility: visible !important; pointer-events: auto !important;
      width: 20px !important; height: 20px !important; min-width: 20px !important; max-width: 20px !important;
      margin: 0 !important; padding: 0 !important; clip: auto !important; transform: none !important;
      cursor: pointer; flex: none; accent-color: #56a7a4;
    }
    .rf .rf-option input[type=radio]::before, .rf .rf-option input[type=radio]::after,
    .rf .rf-option input[type=checkbox]::before, .rf .rf-option input[type=checkbox]::after { content: none !important; display: none !important; }
      .inline-link { color: #56a7a4 !important; font-weight: 600; text-decoration: underline; }
  
/* ===== Páginas de especialidad (duelo animal, terapia online, terapias contextuales) ===== */
.sp-sec { padding: clamp(1.5rem, 3vw, 2.5rem) 0; }
.sp-text { max-width: 70ch; font-size: 1.02rem; line-height: 1.85; color: #2d3436; margin: 0 0 1rem; }
.sp-text strong { color: #7D5A7A; }
.sp-voices { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin: 2rem 0 1.5rem; }
.sp-voice { position: relative; background: rgba(255,255,255,.65); border: 1px solid rgba(156,196,185,.45); border-radius: 20px; padding: 1.2rem 1.4rem 1.2rem 2.6rem; font-size: 1.02rem; line-height: 1.6; font-style: italic; color: #2d3436; }
.sp-voice::before { content: "\201C"; position: absolute; left: .8rem; top: .35rem; font-size: 2.4rem; line-height: 1; color: #ae8dbf; font-style: normal; }
.sp-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; margin: 1.6rem 0; }
.sp-card { background: rgba(255,255,255,.65); border: 1px solid rgba(156,196,185,.45); border-left: 4px solid #9cc4b9; border-radius: 18px; padding: 1.2rem 1.4rem; }
.sp-card h3 { font-size: 1.1rem; color: #7D5A7A; margin: 0 0 .4rem; }
.sp-card p { font-size: .97rem; line-height: 1.65; margin: 0; text-align: left; }
.sp-chips { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.2rem 0 0; padding: 0; list-style: none; }
.sp-chips li { background: rgba(174,141,191,.2); border: 1px solid rgba(125,90,122,.3); color: #5c3a5a; border-radius: 999px; padding: .4rem 1rem; font-size: .93rem; margin: 0; }
.sp-band { position: relative; overflow: hidden; padding: clamp(3rem, 7vw, 5.5rem) 5vw; text-align: center; color: #fff; background-size: cover; background-position: center; }
.sp-band::before { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(125,90,122,.62), rgba(26,74,72,.68)); }
.sp-band > * { position: relative; }
.sp-band-quote { font-size: clamp(1.35rem, 2.8vw, 2.1rem); line-height: 1.35; max-width: 28ch; margin: 0 auto; color: #fff !important; text-shadow: 0 2px 14px rgba(0,0,0,.25); }
.sp-band-sub { margin-top: .8rem; font-size: 1rem; color: rgba(255,255,255,.92); }
.sp-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; margin: 1.6rem 0; }
.sp-fact { text-align: center; background: rgba(255,255,255,.65); border: 1px solid rgba(156,196,185,.45); border-radius: 20px; padding: 1.3rem 1rem; }
.sp-fact .ico { font-size: 1.7rem; display: block; margin-bottom: .3rem; }
.sp-fact strong { display: block; color: #7D5A7A; margin-bottom: .2rem; }
.sp-fact span.t { font-size: .95rem; line-height: 1.55; display: block; }
.sp-note { font-size: .92rem; color: #5a6a6a; background: rgba(255,255,255,.55); border: 1px dashed rgba(125,90,122,.35); border-radius: 14px; padding: .9rem 1.1rem; margin: 1.2rem 0; max-width: 70ch; }
.sp-cta-row { display: flex; flex-wrap: wrap; gap: .8rem 1rem; align-items: center; margin: 1.6rem 0 0; }
.sp-closing { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem 2rem; flex-wrap: wrap; padding: 2rem; background: rgba(174,141,191,.2); border: 1px solid rgba(125,90,122,.35); border-radius: 24px; }
.sp-closing-text { flex: 1 1 420px; }
.sp-closing h2 { margin-bottom: .6rem; }
.sp-closing p { margin: 0; font-size: 1rem; line-height: 1.7; text-align: left; }
.sp-related { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: .9rem; margin-top: 1.4rem; }
.sp-related .area-card { text-align: left; }
.sp-social { margin-top: 1rem; font-size: .95rem; }
.sp-social a { color: #56a7a4; font-weight: 600; }
@media (max-width: 700px) { .sp-voices { grid-template-columns: 1fr; } .sp-closing { padding: 1.5rem 1.3rem; } }

/* =====================================================================
   AJUSTES v2 — portada compacta, alineación común y banners de foto
   ===================================================================== */

/* 1) Portada de las páginas de servicios: el texto empieza justo bajo el menú.
      (La clase «hero-sub» coincidía con una regla antigua de main.css que estrechaba y ocultaba la portada) */
.hero.hero-sub {
  max-width: none !important;
  margin: 0 !important;
  opacity: 1 !important;
  animation: none !important;
}
.hero.hero-sub .hero-content.hero-v2 {
  min-height: 0 !important;
  align-items: start !important;
  padding-top: 6rem !important;
  padding-bottom: clamp(1.5rem, 3vw, 2.5rem) !important;
}
@media (max-width: 899px) {
  .hero.hero-sub .hero-content.hero-v2 { padding-top: 5.25rem !important; }
}

/* 2) Todas las secciones de las páginas de servicios arrancan en el mismo punto a la izquierda */
section.sp-sec > .section-inner {
  box-sizing: content-box !important;
  width: min(calc(100% - 2 * clamp(1.25rem, 5vw, 4rem)), 1280px) !important;
  max-width: none !important;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* 3) Banners de foto: texto alineado a la izquierda, en la misma línea que el resto de secciones */
.sp-band { text-align: left; padding: clamp(2.5rem, 6vw, 4.5rem) 0; }
.sp-band-inner {
  position: relative;
  box-sizing: content-box;
  width: min(calc(100% - 2 * clamp(1.25rem, 5vw, 4rem)), 1280px);
  margin: 0 auto;
}
.sp-band-quote { margin: 0; max-width: 30ch; white-space: normal !important; text-align: left !important; }
.sp-band-sub { text-align: left; }

/* Banner con la foto del perro: la foto se ve entera y el texto va sobre la zona de flores */
.sp-band.sp-band-dog {
  display: flex;
  align-items: center;
  min-height: clamp(340px, 36vw, 520px);
  background-position: 62% 40%;
}
.sp-band.sp-band-dog::before {
  background: linear-gradient(90deg, rgba(110, 76, 108, .92) 0%, rgba(110, 80, 115, .78) 26%, rgba(70, 80, 105, .42) 40%, rgba(26, 74, 72, 0) 58%);
}
@media (max-width: 760px) {
  .sp-band.sp-band-dog { align-items: flex-end; min-height: 440px; background-position: 66% 30%; }
  .sp-band.sp-band-dog::before { background: linear-gradient(180deg, rgba(26, 74, 72, 0) 38%, rgba(70, 55, 85, .88) 100%); }
}
