/* Gabinete Estímulo · piezas propias (va la última). */

/* Formulario del tema dentro de la sección de contacto de la web anterior */
.ge-contact-form__embed .formulario,
.ge-formulario-tema .formulario { font-family: var(--fuente); }
.ge-contact-form__embed .formulario { margin: 0; padding: 0; border: 0; box-shadow: none; background: transparent; }
.ge-contact-form__embed .formulario .boton,
.ge-formulario-tema .formulario .boton { background: var(--principal); color: var(--blanco); border-color: var(--principal); }
.ge-contact-form__embed .formulario .boton:hover,
.ge-formulario-tema .formulario .boton:hover { background: var(--principal-oscuro); color: var(--blanco); }
#presupuesto, #contacto { scroll-margin-top: 110px; }

/* Artículos y servicios relacionados ([ge_relacionados]) */
.ge-rel { padding: 72px 0; background: #fff; font-family: var(--fuente); }
.ge-rel__inner { width: min(calc(100% - 40px), 1240px); margin: 0 auto; }
.ge-rel__eyebrow { margin: 0 0 8px; font-size: 13px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; color: var(--principal); }
.ge-rel__title { margin: 0 0 28px; font-size: clamp(26px, 3vw, 36px); line-height: 1.15; font-weight: 700; color: var(--carbon); }
.ge-rel__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
.ge-rel__card { display: flex; flex-direction: column; gap: 8px; padding: 0 0 22px; border: 1px solid var(--borde); border-radius: 20px; overflow: hidden; background: #fff; color: var(--texto-2); text-decoration: none; transition: transform .2s ease, box-shadow .2s ease; }
.ge-rel__card:hover { transform: translateY(-3px); box-shadow: var(--sombra); color: var(--texto-2); }
.ge-rel .ge-rel__img { display: block; width: 100%; height: 190px; object-fit: cover; margin-bottom: 8px; }
.ge-rel__tag, .ge-rel__name, .ge-rel__more { padding: 0 22px; }
.ge-rel__tag { font-size: 12px; font-weight: 700; letter-spacing: 1.2px; text-transform: uppercase; color: var(--principal); }
.ge-rel__name { font-size: 18px; line-height: 1.35; font-weight: 700; color: var(--carbon); }
.ge-rel__more { margin-top: auto; font-size: 14px; font-weight: 600; color: var(--principal); }
.ge-rel__card--servicio { background: var(--fondo-claro); border-color: #cfe7c8; }
.ge-rel__all { margin: 22px 0 0; }
.ge-rel__all a { font-weight: 600; color: var(--principal); }
@media (max-width: 900px) { .ge-rel__grid { grid-template-columns: 1fr; } .ge-rel { padding: 52px 0; } }

/* Redes y ficha de Google en el pie */
.ge-footer-social { display: flex; flex-wrap: wrap; gap: 10px; margin: 18px 0 0; padding: 0; list-style: none; }
.ge-footer-social a { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 14px; border: 1px solid rgba(255, 255, 255, .22); border-radius: 999px; color: #fff; font-size: 14px; font-weight: 500; text-decoration: none; }
.ge-footer-social a:hover { background: rgba(255, 255, 255, .1); color: #fff; }
.ge-footer-social .icono { width: 18px; height: 18px; }

/* Botones fijos de contacto (sustituyen a My Sticky Elements): lateral en escritorio, barra abajo en móvil */
.contacto-rapido { font-family: var(--fuente); }
.contacto-rapido__boton--presupuesto { background: var(--acento); color: var(--sobre-acento); }

/* Botón lateral "Llamar" en blanco para distinguirlo de WhatsApp (1.1.1). */
.contacto-rapido__boton--llamar,
.contacto-rapido__boton--llamar:hover { background: #fff; color: var(--principal); border: 1px solid #cfe3cb; border-right: 0; }
.contacto-rapido .icono { width: 24px; height: 24px; }
@media (max-width: 760px) {
	.contacto-rapido__boton--llamar, .contacto-rapido__boton--llamar:hover { border: 0; border-top: 1px solid #cfe3cb; }
	.contacto-rapido .icono { width: 22px; height: 22px; }
}

/* Preguntas frecuentes del tema (1.1.4): <details> sin JS, schema FAQPage automático */
.ge-faq { padding: 72px 0; background: var(--fondo-claro, #f5faf3); font-family: var(--fuente); }
.ge-faq__inner { width: min(calc(100% - 40px), 880px); margin: 0 auto; }
.ge-faq__eyebrow { margin: 0 0 8px; font-size: 13px; font-weight: 700; letter-spacing: 1.6px; text-transform: uppercase; color: var(--principal); text-align: center; }
.ge-faq__title { margin: 0 0 28px; font-size: clamp(24px, 3vw, 34px); line-height: 1.2; font-weight: 700; color: var(--carbon); text-align: center; }
.ge-faq__list { display: grid; gap: 10px; }
.ge-faq__item { border: 1px solid var(--borde, #dfe8dc); border-radius: 14px; background: #fff; overflow: hidden; }
.ge-faq__question { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 21px; cursor: pointer; list-style: none; font-size: 16px; line-height: 1.45; font-weight: 600; color: var(--carbon); }
.ge-faq__question::-webkit-details-marker { display: none; }
.ge-faq__question:focus-visible { outline: 2px solid var(--principal); outline-offset: -2px; }
.ge-faq__plus { position: relative; flex: 0 0 30px; width: 30px; height: 30px; border-radius: 50%; background: var(--fondo-claro, #eef6eb); }
.ge-faq__plus::before, .ge-faq__plus::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 2px; background: var(--principal); transform: translate(-50%, -50%); transition: transform .2s ease; }
.ge-faq__plus::after { transform: translate(-50%, -50%) rotate(90deg); }
.ge-faq__item[open] .ge-faq__plus::after { transform: translate(-50%, -50%) rotate(0deg); }
.ge-faq__answer { padding: 0 21px 20px; }
.ge-faq__answer p { margin: 0; font-size: 15px; line-height: 1.75; color: var(--texto-2); }
.ge-faq__answer a { color: var(--principal); font-weight: 600; }
@media (max-width: 700px) { .ge-faq { padding: 52px 0; } .ge-faq__question { padding: 16px; font-size: 15px; } .ge-faq__answer { padding: 0 16px 18px; } }
