/* Ajustes de la web nueva dentro de WordPress */

/* Con la barra negra de administrador (solo la ves tú, con la sesión iniciada) el menú baja con ella */
.admin-bar .nav { top: 32px; }
@media (max-width: 782px) { .admin-bar .nav { top: 46px; } html #wpadminbar { position: fixed; } }

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

/* Carrito mientras se actualiza */
.cart-loading { color: var(--muted); padding: 40px 0; }
.cart.is-busy { opacity: .55; pointer-events: none; transition: opacity .15s ease; }
.qty button:disabled { opacity: .35; cursor: default; }
.qty button:disabled:hover { background: transparent; }
.btn:disabled { opacity: .55; cursor: default; }

/* Texto de la descripción larga de WooCommerce dentro de los apartados */
.pdp__html { padding: 0 0 18px; color: var(--steel); max-width: 60ch; }
.pdp__html p { margin: 0 0 10px; }
.pdp__html p:last-child { margin-bottom: 0; }
.pdp__html ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.pdp__html li { display: grid; grid-template-columns: 12px 1fr; gap: 12px; }
.pdp__html li::before { content: ""; width: 8px; height: 8px; margin-top: .55em; background: var(--cyan); clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%); }
.pdp__intro p { margin: 0; }
.pdp__html a, .pdp__intro a { color: var(--cyan); }

/* Página de reservar: el pie no se mete debajo del botón del móvil */
.booking-body .foot { position: relative; z-index: 1; }

/* Aviso de cookies y otros añadidos de WordPress por encima del menú fijo */
#wpadminbar { z-index: 100000; }

/* Aviso de cookies (CookieYes) con los colores de la web. Sus colores vienen escritos en la etiqueta: hace falta !important */
.jbs-web .cky-consent-bar,
.jbs-web .cky-preference-center { background-color: var(--surface) !important; border-color: var(--line) !important; color: var(--ink) !important; border-radius: 0 !important; box-shadow: 0 24px 48px -24px rgba(0, 0, 0, .8) !important; font-family: var(--text) !important; }
.jbs-web .cky-title, .jbs-web .cky-preference-title { color: var(--ink) !important; font-family: var(--display) !important; font-weight: 400 !important; font-size: 1.25rem !important; }
.jbs-web .cky-notice-des, .jbs-web .cky-notice-des *, .jbs-web .cky-preference-content-wrapper, .jbs-web .cky-preference-content-wrapper *,
.jbs-web .cky-accordion-header-des, .jbs-web .cky-accordion-header-des *, .jbs-web .cky-accordion-btn, .jbs-web .cky-always-active { color: var(--steel) !important; }
.jbs-web .cky-accordion-btn { color: var(--ink) !important; }
.jbs-web .cky-btn { border-radius: 0 !important; font-family: var(--text) !important; font-weight: 600 !important; min-height: 44px; }
.jbs-web .cky-btn-accept { background-color: var(--cyan) !important; border-color: var(--cyan) !important; color: var(--cyan-ink) !important; }
.jbs-web .cky-btn-reject, .jbs-web .cky-btn-customize, .jbs-web .cky-btn-preferences { background-color: transparent !important; border-color: var(--steel) !important; color: var(--ink) !important; }
.jbs-web .cky-btn:hover { opacity: .9; }
.jbs-web .cky-accordion-item, .jbs-web .cky-preference-header, .jbs-web .cky-footer-wrapper, .jbs-web .cky-prefrence-btn-wrapper { border-color: var(--line) !important; background: transparent !important; }
.jbs-web .cky-footer-shadow { background: linear-gradient(180deg, rgba(23, 25, 28, 0) 0%, var(--surface) 100%) !important; }
.jbs-web .cky-btn-close img, .jbs-web .cky-accordion-chevron { filter: invert(1); }
.jbs-web .cky-switch input[type=checkbox] { background: #3a3f46 !important; }
.jbs-web .cky-switch input[type=checkbox]:checked { background: var(--cyan) !important; }
/* El botón flotante de cookies tapaba el de reservar: se cambia por el enlace "Configurar cookies" del pie */
.jbs-web .cky-btn-revisit-wrapper { display: none !important; }
.foot__cookies { background: none; border: 0; padding: 0; font: inherit; color: inherit; text-decoration: underline; text-underline-offset: .25em; cursor: pointer; }
.foot__cookies:hover { color: var(--ink); }

/* Galería a pantalla completa de la ficha antigua de WooCommerce: otros plugins la añaden al pie y no se usa */
.jbs-web .pswp { display: none !important; }

/* Páginas de texto legal (Condiciones de venta) */
.shop--legal { max-width: 860px; }
.legal-text { color: var(--steel); font-size: 1.0625rem; line-height: 1.65; }
.legal-text h2 { font-family: var(--display); font-weight: 400; font-size: 1.6rem; color: var(--ink); margin: 40px 0 12px; }
.legal-text p, .legal-text ul, .legal-text ol { margin: 0 0 14px; }
.legal-text ul, .legal-text ol { padding-left: 1.3em; }
.legal-text li { margin-bottom: 6px; }
.legal-text li::marker { color: var(--cyan); }
.legal-text strong { color: var(--ink); }
.legal-text a { color: var(--cyan); }
.legal-text blockquote { margin: 16px 0 0; padding: 18px 20px; background: var(--surface); border-left: 3px solid var(--cyan); }
.legal-text blockquote p:last-child { margin-bottom: 0; }

/* Textos legales hechos con Elementor: se quitan sus formatos (cursivas, sangrías, anchos fijos) para que se lean bien */
.legal-text h1 { display: none; } /* el título ya sale arriba */
.legal-text, .legal-text * { max-width: 100%; box-sizing: border-box; }
.legal-text [style] { text-indent: 0 !important; padding-left: 0 !important; margin-left: 0 !important; width: auto !important; white-space: normal !important; font-family: inherit !important; font-size: inherit !important; line-height: inherit !important; color: inherit !important; background: none !important; }
.legal-text em, .legal-text i { font-style: normal; }
.legal-text p, .legal-text li, .legal-text td { overflow-wrap: anywhere; }
.legal-text h3, .legal-text h4 { font-family: var(--text); font-weight: 600; font-size: 1.125rem; color: var(--ink); margin: 28px 0 10px; }
.legal-text ol > li > strong:first-child, .legal-text ol > li > b:first-child { display: block; margin-top: 24px; }
.legal-text table { display: block; overflow-x: auto; border-collapse: collapse; margin: 16px 0; font-size: .9375rem; }
.legal-text td, .legal-text th { border: 1px solid var(--line); padding: 8px 10px; vertical-align: top; min-width: 120px; }
.legal-text .elementor-widget-container > *:first-child { margin-top: 0; }
/* Una tabla ancha no estira la columna (en una rejilla, los hijos no encogen por debajo de su contenido sin esto) */
.shop > *, .legal-text, .legal-text .elementor, .legal-text .e-con, .legal-text .e-con-inner, .legal-text .elementor-widget-container { min-width: 0; }

/* Portada: al bajar del todo, los enlaces del pie quedan por encima del botón fijo de Reservar cita (también en iPhone, con su barra de abajo) */
.home-page .foot { padding-bottom: calc(132px + env(safe-area-inset-bottom)); }
@media (min-width: 701px) { .home-page .foot { padding-bottom: 120px; } }

/* La cinta inclinada de la portada no ensancha la página en el móvil (clip no rompe lo fijo al hacer scroll) */
main { overflow-x: clip; }
.nw { white-space: nowrap; }

/* Pie: enlaces a las páginas de la web (para los clientes y para que Google las encuentre) */
.foot > .foot__nav { margin-top: calc(28px - 14vh); display: flex; flex-wrap: wrap; gap: 10px 28px; font-size: .9375rem; }
.foot__nav a { color: var(--steel); text-decoration: none; transition: color .2s ease; }
.foot__nav a:hover { color: var(--cyan-hi); }
@media (max-width: 700px) { .foot > .foot__nav { margin-top: calc(20px - 8vh); gap: 10px 22px; } }
/* Etiqueta pequeña en azul dentro de los titulares (dice a Google de qué va cada sección) */
.kicker { display: block; font: 600 .8125rem/1.3 var(--text); letter-spacing: .24em; text-transform: uppercase; color: var(--cyan); margin-bottom: 18px; text-wrap: pretty; }
h1 .kicker { margin-bottom: 22px; }
.split .kicker .w { padding-bottom: .2em; margin-bottom: -.2em; }
.back-row { justify-self: start; }