/* Grupo Mallorca · complementos del tema hijo (el diseño completo está en «CSS adicional»). */
body { margin: 0; background: #F5F3EF; }

/* Pie siempre abajo: en páginas con poco contenido (blog vacío, 404…) el contenido ocupa el alto que falta. */
body { display: flex; flex-direction: column; min-height: 100vh; min-height: 100svh; }
body.admin-bar { min-height: calc(100vh - 32px); min-height: calc(100svh - 32px); }
body > main#content { flex: 1 0 auto; }
body > .gm-site { flex: none; }
.gm-site .gm-header a.gm-logo { color: inherit; }
.gm-menu-toggle { display: none; }
.gm-footer a { text-decoration: none; }

/* Menú plegable en móvil */
@media (max-width: 760px) {
  .gm-menu-toggle { display: inline-flex; align-items: center; gap: 10px; margin-left: auto; order: 2; background: none; border: 1px solid #3A3935; color: var(--gm-on-dark, #F2EFE9); font: 600 0.8rem/1 var(--gm-sans, sans-serif); letter-spacing: 0.08em; text-transform: uppercase; padding: 10px 14px; border-radius: 0; cursor: pointer; }
  .gm-menu-icon, .gm-menu-icon::before, .gm-menu-icon::after { display: block; width: 16px; height: 1px; background: currentColor; position: relative; }
  .gm-menu-icon::before, .gm-menu-icon::after { content: ""; position: absolute; left: 0; }
  .gm-menu-icon::before { top: -5px; } .gm-menu-icon::after { top: 5px; }
  .gm-header-end { order: 1; margin-left: auto; }
  .gm-nav { display: none; }
  .gm-header.is-open .gm-nav { display: block; }
  .gm-nav ul { flex-direction: column; gap: 0; }
  .gm-nav li a { display: block; padding: 12px 0; border-bottom: 1px solid #2A2926; }
}

/* Páginas legales (copiadas de la web actual) */
.gm-site .gm-legal-page .gm-wrap { max-width: 860px; }
.gm-site .gm-legal-page h1 { font-size: clamp(2.2rem, 4.4vw, 3.4rem); margin-bottom: 2.5rem; }
.gm-site .gm-legal-page h2 { font-size: clamp(1.45rem, 2.2vw, 1.8rem); margin: 2.6rem 0 0.9rem; padding-top: 1.4rem; border-top: 1px solid var(--gm-line); }
.gm-site .gm-legal-page p, .gm-site .gm-legal-page li { color: var(--gm-muted); overflow-wrap: anywhere; }
.gm-site .gm-legal-page ul { margin: 0 0 1rem; }
.gm-site .gm-legal-page li { margin-bottom: 0.4rem; }
.gm-site .gm-legal-page a:not(.gm-btn) { color: var(--gm-accent); }
.gm-site .gm-legal-page strong { color: var(--gm-ink); }

/* Hero de la home: titular y, debajo, el subtítulo en letra más pequeña (email del cliente, noviembre de 2026). */
.gm-site .gm-hero-sub { font: 500 clamp(1.3rem, 2.3vw, 1.85rem)/1.3 var(--gm-serif); color: var(--gm-on-dark); margin: 0.9rem 0 1.6rem; max-width: 34em; text-wrap: balance; }
@media (min-width: 1080px) {
  .gm-site .gm-hero-bg .gm-hero-text { max-width: 920px; }
  .gm-site .gm-hero-bg .gm-lead, .gm-site .gm-hero-bg .gm-eyebrow { max-width: 760px; }
}

/* Botones: Hello Elementor pone «a:hover { color: #336 }», que pesa más que .gm-btn-*. Se mantiene el color del texto al pasar el ratón. */
.gm-site a.gm-btn-light:hover { color: var(--gm-ink); }
.gm-site a.gm-btn-ghost:hover,
.gm-site a.gm-btn-dark:hover { color: var(--gm-on-dark); }

/* Banner de cookies: banda oscura fija abajo; Aceptar, Rechazar y Configurar con el mismo estilo y tamaño. */
.gm-cookies-root { background: none; }
.gm-cookies { position: fixed; left: 0; right: 0; bottom: 0; z-index: 9999; background: var(--gm-ink); color: var(--gm-on-dark); border-top: 1px solid #3A3935; max-height: 100vh; overflow-y: auto; }
.gm-cookies[hidden], .gm-cookies [hidden] { display: none !important; }
.gm-cookies-box { max-width: var(--gm-max); margin: 0 auto; padding: 22px 24px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 32px; }
.gm-site .gm-cookies-text { flex: 1 1 420px; margin: 0; font-size: 0.92rem; line-height: 1.55; color: var(--gm-on-dark); }
.gm-cookies-text a { color: var(--gm-accent-dk); }
.gm-cookies-panel { flex: 1 1 100%; display: grid; gap: 12px; padding: 18px 0 4px; border-top: 1px solid #2E2D2A; }
.gm-site .gm-cookies-title { margin: 0; font: 600 1.35rem/1.2 var(--gm-serif); color: var(--gm-on-dark); }
.gm-cookies-opt { display: flex; align-items: flex-start; gap: 12px; font-size: 0.9rem; cursor: pointer; }
.gm-cookies-opt input { margin-top: 4px; width: 18px; height: 18px; accent-color: var(--gm-accent-dk); flex: none; }
.gm-cookies-opt small { display: block; color: var(--gm-on-dark-2); font-size: 0.82rem; line-height: 1.5; }
.gm-cookies-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.gm-cookies-actions .gm-btn { min-width: 140px; }
.gm-site .gm-cookies-actions .gm-btn:focus-visible, .gm-cookies-open:focus-visible { outline: 2px solid var(--gm-accent-dk); outline-offset: 2px; }
@media (max-width: 640px) {
  .gm-cookies-box { padding: 18px 16px; }
  .gm-cookies-actions { width: 100%; }
  .gm-cookies-actions .gm-btn { flex: 1 1 0; min-width: 0; padding: 0 10px; }
}
/* «Configurar cookies» del pie: un botón con aspecto de enlace, como los demás enlaces legales. */
.gm-cookies-open { background: none; border: 0; padding: 0; font: inherit; color: inherit; cursor: pointer; }
.gm-cookies-open:hover { text-decoration: underline; }

/* Blog, artículos, búsqueda y 404 (template-parts/ del tema hijo) */
.gm-site.gm-blog { flex: 1 0 auto; }
.gm-site.gm-blog h1 { font-size: clamp(2.4rem, 4.6vw, 3.6rem); margin-bottom: 1.2rem; }
.gm-blog-head { margin-bottom: 2.6rem; }
.gm-blog-head .gm-intro { margin-bottom: 0; }
.gm-site .gm-blog-cats { display: flex; flex-wrap: wrap; gap: 8px; margin: 1.6rem 0 0; padding: 0; list-style: none; }
.gm-site .gm-blog-cats li { margin: 0; padding: 0; border: 0; }
.gm-blog-cats a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border: 1px solid var(--gm-line); background: var(--gm-white); color: var(--gm-ink); text-decoration: none; font-size: 0.85rem; }
.gm-blog-cats a:hover { border-color: var(--gm-ink); }
.gm-blog-cats a[aria-current] { background: var(--gm-ink); border-color: var(--gm-ink); color: var(--gm-on-dark); }
.gm-site .gm-post-title { font-size: 1.4rem; margin: 0.2rem 0 0.2rem; }
.gm-post-title a { color: inherit; text-decoration: none; }
.gm-post-title a:hover { color: var(--gm-accent); }
.gm-site .gm-blog-list .gm-post > p:not(.gm-meta) { color: var(--gm-muted); font-size: 0.95rem; margin: 0 0 0.8rem; }
.gm-blog .navigation.pagination { margin-top: 3rem; }
.gm-blog .nav-links { display: flex; flex-wrap: wrap; gap: 8px; }
.gm-blog .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 14px; border: 1px solid var(--gm-line); color: var(--gm-ink); text-decoration: none; font-size: 0.9rem; }
.gm-blog .page-numbers.current { background: var(--gm-ink); border-color: var(--gm-ink); color: var(--gm-on-dark); }
.gm-blog a.page-numbers:hover { border-color: var(--gm-ink); }
.gm-blog .gm-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; }
.gm-blog .gm-actions .gm-btn-dark { margin-top: 0; }
.gm-site.gm-blog-vacio { background: none; max-width: 640px; }
.gm-site.gm-blog-vacio p { margin: 0 0 0.8rem; color: var(--gm-muted); }
/* Artículo */
.gm-article .gm-back { margin: 0 0 2.2rem; }
.gm-article .gm-meta { margin: 0 0 0.9rem; }
.gm-article .gm-meta a { color: inherit; }
.gm-site .gm-article h1 { font-size: clamp(2.2rem, 4.4vw, 3.4rem); margin-bottom: 2rem; }
.gm-article-img { margin: 0 0 2rem; }
.gm-article-img img, .gm-entry img { max-width: 100%; height: auto; display: block; }
.gm-site .gm-entry h2 { font-size: clamp(1.6rem, 2.6vw, 2.1rem); margin: 2.6rem 0 0.9rem; }
.gm-site .gm-entry h3 { font-size: 1.35rem; margin: 2rem 0 0.7rem; }
.gm-entry p, .gm-entry li { color: #2B2A27; }
.gm-site .gm-entry ul, .gm-site .gm-entry ol { margin: 0 0 1.2rem; padding-left: 1.3rem; }
.gm-site .gm-entry ul { list-style: disc; }
.gm-site .gm-entry ol { list-style: decimal; }
.gm-entry li::marker { color: var(--gm-accent); }
.gm-entry li { margin-bottom: 0.4rem; }
.gm-entry a:not(.gm-btn) { color: var(--gm-accent); }
.gm-entry blockquote { margin: 1.8rem 0; padding: 0.2rem 0 0.2rem 1.4rem; border-left: 2px solid var(--gm-accent); font-family: var(--gm-serif); font-size: 1.35rem; line-height: 1.4; }
.gm-site .gm-entry-lead { font-size: 1.15rem; line-height: 1.6; color: var(--gm-ink); margin-bottom: 1.6rem; }
.gm-resumen { background: var(--gm-white); border: 1px solid var(--gm-line); padding: 24px 28px 8px; margin: 2rem 0 2.4rem; }
.gm-site .gm-entry .gm-resumen-tit { margin-top: 0; font-size: 1.35rem; }
.gm-tabla { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 1.6rem 0; }
.gm-tabla table { min-width: 600px; margin: 0; }
.gm-entry th { font-weight: 600; border-bottom: 1px solid var(--gm-ink); font-size: 0.82rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--gm-muted); }
.gm-entry td { vertical-align: top; }
.gm-site .gm-entry .gm-nota { font-size: 0.82rem; color: var(--gm-muted); }
.gm-article-tools { margin: -0.8rem 0 2rem; }
.gm-btn-pdf { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border: 1px solid var(--gm-ink); color: var(--gm-ink); text-decoration: none; font-size: 0.85rem; font-weight: 600; }
.gm-btn-pdf:hover { background: var(--gm-ink); color: var(--gm-on-dark); }
.gm-site a.gm-btn-pdf:hover { color: var(--gm-on-dark); }
.gm-entry table { width: 100%; border-collapse: collapse; margin: 1.6rem 0; font-size: 0.95rem; }
.gm-entry th, .gm-entry td { padding: 10px 12px; border-bottom: 1px solid var(--gm-line); text-align: left; }

/* Blog: caja de contacto al final de cada artículo */
.gm-site.gm-post-cta { background: none; margin: 3rem 0 1rem; }
.gm-post-cta .gm-card { gap: 0.6rem; }
.gm-site.gm-post-cta h3 { color: var(--gm-on-dark); }
.gm-post-cta .gm-btn { margin-top: 0.6rem; text-decoration: none; }
.gm-site .gm-post-cta a.gm-btn-light:hover { color: var(--gm-ink); }
