/* Feira Galega — estilos públicos. Tokens --fg-* definidos por Brand::css_variables(). */

@font-face { font-family: 'Inter'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(../fonts/inter-var-latin.woff2) format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 500; font-display: swap; src: url(../fonts/poppins-500-latin.woff2) format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 600; font-display: swap; src: url(../fonts/poppins-600-latin.woff2) format('woff2'); }
@font-face { font-family: 'Poppins'; font-style: normal; font-weight: 700; font-display: swap; src: url(../fonts/poppins-700-latin.woff2) format('woff2'); }

body { font-family: var(--fg-font-texto); color: var(--fg-texto); overflow-x: clip; }
.fg-main, .fg-main * { box-sizing: border-box; }
.fg-main { background: #fff; }
.fg-contenedor { width: 100%; max-width: 1200px; margin-inline: auto; padding-inline: 16px; }
@media (min-width: 768px) { .fg-contenedor { padding-inline: 24px; } }

/* Tipografía */
.fg-h1, .fg-h2, .fg-h3, .fg-h4 { font-family: var(--fg-font-titulos); color: var(--fg-marino); line-height: 1.2; margin: 0 0 .5em; letter-spacing: -.01em; }
.fg-h1 { font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.6rem); font-weight: 700; }
.fg-h2 { font-size: clamp(1.4rem, 1.1rem + 1.2vw, 1.9rem); font-weight: 700; }
.fg-h3 { font-size: 1.25rem; font-weight: 600; }
.fg-h4 { font-size: 1.05rem; font-weight: 600; }
.fg-prosa { font-size: 1.0625rem; line-height: 1.7; max-width: 70ch; }
.fg-nota { color: var(--fg-texto-suave); font-size: .9rem; }
.fg-main a:not(.fg-btn):not(.fg-chip):not(.fg-provincia) { color: var(--fg-azul-oscuro); text-underline-offset: 3px; }
.fg-main a:not(.fg-btn):not(.fg-chip):not(.fg-provincia):hover { color: var(--fg-marino); }
.screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }

/* Foco visible (WCAG 2.4.7 / 2.4.11) */
.fg-main :focus-visible, .fg-nav :focus-visible, .fg-idioma :focus-visible { outline: 3px solid var(--fg-azul-oscuro); outline-offset: 2px; border-radius: 4px; }
.fg-pie :focus-visible, .fg-lateral-bloque--cta :focus-visible, .fg-provincia:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }

/* Botones */
.fg-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5em; min-height: 44px; padding: .65em 1.25em; border-radius: 999px; border: 2px solid transparent; font: 600 1rem/1.2 var(--fg-font-titulos); text-decoration: none !important; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s, transform .15s; }
.fg-btn--primario { background: var(--fg-azul-oscuro); color: #fff !important; }
.fg-btn--primario:hover { background: var(--fg-marino); }
.fg-btn--secundario { background: #fff; color: var(--fg-marino) !important; border-color: var(--fg-borde); }
.fg-btn--secundario:hover { border-color: var(--fg-azul); background: #f0f7fe; }
.fg-btn--naranja { background: var(--fg-naranja); color: var(--fg-marino) !important; }
.fg-btn--naranja:hover { background: #ffa53d; }
.fg-btn--s { min-height: 40px; padding: .45em 1em; font-size: .92rem; }
.fg-btn--grande { padding: .9em 2em; font-size: 1.1rem; }
.fg-btn--bloque { display: flex; width: 100%; }
.fg-ico { width: 1.5em; height: 1.5em; flex: none; }
.fg-ico--s { width: 1.15em; height: 1.15em; }
@media (prefers-reduced-motion: no-preference) { .fg-btn:hover { transform: translateY(-1px); } }

/* Navegación ([fg_nav]): ver layout.css. */

/* Selector de idioma */
.fg-idioma { display: inline-flex; border: 2px solid var(--fg-borde); border-radius: 999px; overflow: hidden; }
.fg-idioma a { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 40px; font: 600 .9rem var(--fg-font-titulos); color: var(--fg-marino); text-decoration: none; }
.fg-idioma a[aria-current="true"] { background: var(--fg-marino); color: #fff; }

/* Cabecera de sección (directorio, búsqueda, ficha) */
.fg-cabecera-seccion { background: linear-gradient(180deg, #f2f8ff 0%, #fff 100%); padding: 24px 0 28px; border-bottom: 1px solid var(--fg-gris); position: relative; overflow: hidden; }
.fg-cabecera-seccion::after { content: ''; position: absolute; inset: auto 0 0 0; height: 6px; background: linear-gradient(90deg, var(--fg-marino), var(--fg-azul), var(--fg-celeste), var(--fg-lima), var(--fg-naranja)); }
.fg-cabecera-seccion__sub { color: var(--fg-texto-suave); font-size: 1.05rem; margin: 0 0 18px; }

/* Migas */
.fg-migas ol { list-style: none; display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 12px; padding: 0; font-size: .9rem; }
.fg-migas li:not(:last-child)::after { content: '›'; margin-left: 6px; color: var(--fg-texto-suave); }
.fg-migas [aria-current] { color: var(--fg-texto-suave); }

/* Buscador */
.fg-buscador { display: grid; gap: 10px; background: #fff; border-radius: 18px; padding: 12px; box-shadow: var(--fg-sombra); border: 1px solid var(--fg-gris); }
.fg-buscador__campo { display: flex; flex-direction: column; gap: 4px; }
.fg-buscador__campo label { font: 600 .85rem var(--fg-font-titulos); color: var(--fg-marino); padding-left: 4px; }
.fg-buscador input { width: 100%; min-height: 48px; border: 2px solid var(--fg-borde); border-radius: 12px; padding: 0 14px; font: 1rem var(--fg-font-texto); color: var(--fg-texto); background: #fff; }
.fg-buscador input:focus { border-color: var(--fg-azul); outline: none; box-shadow: 0 0 0 3px rgba(59,143,230,.25); }
.fg-buscador .fg-btn { min-height: 48px; }
@media (min-width: 768px) { .fg-buscador { grid-template-columns: 1.3fr 1fr auto; align-items: end; } }
.fg-buscador--hero { padding: 16px; }
.fg-buscador--compacto { max-width: 900px; }

/* Directorio */
.fg-directorio__cuerpo, .fg-ficha__cuerpo { display: grid; gap: 28px; padding-top: 28px; padding-bottom: 48px; }
@media (min-width: 1025px) { .fg-directorio__cuerpo, .fg-ficha__cuerpo { grid-template-columns: minmax(0, 1fr) 320px; } }
.fg-lista-empresas { display: grid; gap: 14px; }
.fg-lista-empresas--rejilla { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.fg-empresa-card { display: grid; grid-template-columns: 56px 1fr; gap: 14px; padding: 18px; border: 1px solid var(--fg-gris); border-radius: var(--fg-radio); background: #fff; transition: box-shadow .2s, border-color .2s; }
.fg-empresa-card:hover { border-color: #c9dcf3; box-shadow: var(--fg-sombra); }
.fg-empresa-card__titulo { font: 600 1.15rem/1.3 var(--fg-font-titulos); margin: 0 0 4px; }
.fg-empresa-card__titulo a { color: var(--fg-marino) !important; text-decoration: none; }
.fg-empresa-card__titulo a:hover { text-decoration: underline; }
.fg-empresa-card__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0 0 6px; color: var(--fg-texto-suave); font-size: .92rem; }
.fg-empresa-card__meta span { display: inline-flex; align-items: center; gap: 4px; }
.fg-empresa-card__desc { margin: 0; color: var(--fg-texto); font-size: .95rem; }
.fg-empresa-card__acciones { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.fg-tarjeta__logo, .fg-tarjeta__inicial { width: 56px; height: 56px; border-radius: 12px; object-fit: contain; background: #fff; border: 1px solid var(--fg-gris); }
.fg-tarjeta__inicial { display: inline-flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--fg-marino), var(--fg-azul)); color: #fff; font: 700 1.4rem var(--fg-font-titulos); border: 0; }
.fg-vacio { text-align: center; padding: 40px 20px; border: 2px dashed var(--fg-borde); border-radius: 18px; background: var(--fg-fondo); }
.fg-vacio__titulo { font: 600 1.2rem var(--fg-font-titulos); color: var(--fg-marino); margin: 0 0 6px; }
.fg-vacio__subir { margin-top: 18px; }
.fg-lateral-bloque { border: 1px solid var(--fg-gris); border-radius: var(--fg-radio); padding: 18px; margin-bottom: 16px; background: #fff; }
.fg-lateral-bloque--cta { background: var(--fg-marino) var(--fg-patron, none) center/cover; color: #fff; position: relative; isolation: isolate; border: 0; }
.fg-lateral-bloque--cta::before { content: ''; position: absolute; inset: 0; background: rgba(11,47,107,.9); border-radius: inherit; z-index: -1; }
.fg-lateral-bloque--cta .fg-h4 { color: #fff; }
.fg-lista-enlaces { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.fg-lista-enlaces li { display: flex; justify-content: space-between; gap: 8px; padding: 6px 0; border-bottom: 1px solid #f1f3f6; }
.fg-num { display: inline-block; min-width: 1.8em; padding: 0 .5em; border-radius: 999px; background: #eef5fd; color: var(--fg-marino); font: 600 .8rem/1.7 var(--fg-font-titulos); text-align: center; }
.fg-paginacion ul { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 24px 0 0; }
.fg-paginacion a, .fg-paginacion span { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; padding: 0 12px; border-radius: 10px; border: 1px solid var(--fg-borde); text-decoration: none; }
.fg-paginacion [aria-current] { background: var(--fg-marino); color: #fff; border-color: var(--fg-marino); }

/* Grupos de categorías */
.fg-grupos { display: grid; gap: 18px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.fg-grupo { border: 1px solid var(--fg-gris); border-radius: var(--fg-radio); padding: 18px; background: #fff; }
.fg-grupo__titulo { display: flex; align-items: center; gap: 10px; font: 600 1.05rem var(--fg-font-titulos); color: var(--fg-marino); margin: 0 0 10px; }
.fg-grupo__titulo .fg-ico { color: var(--fg-azul-oscuro); background: #eef5fd; border-radius: 10px; padding: 6px; width: 36px; height: 36px; }
.fg-grupo__lista { list-style: none; margin: 0; padding: 0; columns: 1; }
.fg-grupo__lista li { padding: 4px 0; break-inside: avoid; }

/* Provincias */
.fg-provincias { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.fg-provincia { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 22px; min-height: 120px; border-radius: 18px; background: var(--fg-marino); color: #fff; text-decoration: none; overflow: hidden; isolation: isolate; }
.fg-provincia::before { content: ''; position: absolute; inset: auto -20% -40% -20%; height: 70%; background: radial-gradient(ellipse at 30% 0%, var(--fg-azul) 0%, transparent 60%), radial-gradient(ellipse at 80% 20%, var(--fg-lima) 0%, transparent 55%); opacity: .55; z-index: -1; }
.fg-provincia:nth-child(2)::before { background: radial-gradient(ellipse at 30% 0%, var(--fg-lima) 0%, transparent 60%), radial-gradient(ellipse at 80% 20%, var(--fg-celeste) 0%, transparent 55%); }
.fg-provincia:nth-child(3)::before { background: radial-gradient(ellipse at 30% 0%, var(--fg-naranja) 0%, transparent 60%), radial-gradient(ellipse at 80% 20%, var(--fg-azul) 0%, transparent 55%); }
.fg-provincia:nth-child(4)::before { background: radial-gradient(ellipse at 30% 0%, var(--fg-celeste) 0%, transparent 60%), radial-gradient(ellipse at 80% 20%, var(--fg-naranja) 0%, transparent 55%); }
.fg-provincia__nombre { font: 700 1.4rem var(--fg-font-titulos); }
.fg-provincia__dato { font-size: .95rem; opacity: .92; }
.fg-provincia__flecha { position: absolute; right: 18px; bottom: 18px; }
.fg-provincia:hover { box-shadow: 0 12px 30px rgba(11,47,107,.3); }

/* Cifras */
.fg-cifras { list-style: none; display: flex; flex-wrap: wrap; gap: 12px 32px; padding: 0; margin: 0; }
.fg-cifras strong { display: block; font: 700 2rem var(--fg-font-titulos); color: var(--fg-marino); }
.fg-cifras span { color: var(--fg-texto-suave); }

/* Ficha */
.fg-ficha__cab { display: flex; gap: 18px; align-items: center; }
.fg-ficha__logo { width: 88px; height: 88px; border-radius: 18px; object-fit: contain; background: #fff; border: 1px solid var(--fg-gris); flex: none; font-size: 2rem; }
.fg-ficha__etiquetas { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.fg-ficha__bloque { padding-bottom: 24px; margin-bottom: 24px; border-bottom: 1px solid var(--fg-gris); }
.fg-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0; }
.fg-chip { display: inline-flex; align-items: center; min-height: 32px; padding: 4px 12px; border-radius: 999px; background: #eef5fd; color: var(--fg-marino) !important; font-size: .92rem; text-decoration: none; border: 1px solid #d4e6fa; }
a.fg-chip:hover { background: #dcecfd; }
.fg-badge { display: inline-flex; align-items: center; gap: 4px; padding: 2px 10px; border-radius: 999px; font: 600 .78rem/1.8 var(--fg-font-titulos); background: var(--fg-gris); color: var(--fg-texto); }
.fg-badge--ok, .fg-badge--publish { background: #e8f5d9; color: var(--fg-lima-oscuro); }
.fg-badge--pending { background: #fff1de; color: var(--fg-naranja-osc); }
.fg-sedes { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.fg-sedes li { display: flex; gap: 10px; align-items: flex-start; }
.fg-sedes .fg-ico { color: var(--fg-azul-oscuro); }
.fg-sedes address { font-style: normal; }
.fg-horario-lista { display: grid; gap: 4px; margin: 0; max-width: 420px; }
.fg-horario-lista div { display: flex; justify-content: space-between; border-bottom: 1px dashed var(--fg-gris); padding: 4px 0; }
.fg-horario-lista dt { font-weight: 600; } .fg-horario-lista dd { margin: 0; }
.fg-tarjeta { border: 1px solid var(--fg-gris); border-radius: var(--fg-radio); padding: 18px; background: #fff; }
.fg-contacto-rapido { display: grid; gap: 10px; position: sticky; top: 16px; }
.fg-redes { list-style: none; display: flex; gap: 12px; padding: 0; margin: 4px 0 0; justify-content: center; }

/* Formularios */
.fg-form { display: grid; gap: 14px; }
.fg-form fieldset { border: 1px solid var(--fg-gris); border-radius: var(--fg-radio); padding: 16px; margin: 0; display: grid; gap: 14px; min-width: 0; }
.fg-form legend { font: 600 1rem var(--fg-font-titulos); color: var(--fg-marino); padding: 0 6px; }
.fg-campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.fg-campo label { font-weight: 600; font-size: .95rem; }
.fg-req { color: var(--fg-error); }
.fg-form input[type=text], .fg-form input[type=email], .fg-form input[type=tel], .fg-form input[type=url], .fg-form input[type=password], .fg-form select, .fg-form textarea, .fg-cuenta input[type=text], .fg-cuenta input[type=password] { width: 100%; min-height: 46px; border: 2px solid var(--fg-borde); border-radius: 10px; padding: 8px 12px; font: 1rem var(--fg-font-texto); color: var(--fg-texto); background: #fff; }
.fg-form textarea { min-height: 120px; resize: vertical; }
.fg-form :is(input, select, textarea):focus { border-color: var(--fg-azul); outline: none; box-shadow: 0 0 0 3px rgba(59,143,230,.25); }
.fg-campo--error :is(input, select, textarea) { border-color: var(--fg-error); }
.fg-error { color: var(--fg-error); font-size: .9rem; margin: 0; }
.fg-fila2 { display: grid; gap: 14px; }
@media (min-width: 640px) { .fg-fila2 { grid-template-columns: 1fr 1fr; } }
.fg-check { display: flex; gap: 10px; align-items: flex-start; }
.fg-check input { width: 22px; height: 22px; margin-top: 2px; flex: none; accent-color: var(--fg-azul-oscuro); }
.fg-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.fg-chips-check { display: flex; flex-wrap: wrap; gap: 8px; }
.fg-chip-check { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border: 2px solid var(--fg-borde); border-radius: 999px; cursor: pointer; font-weight: 500 !important; }
.fg-chip-check:has(input:checked) { border-color: var(--fg-azul-oscuro); background: #eef5fd; }
.fg-aviso { padding: 12px 16px; border-radius: 12px; border-left: 5px solid; margin: 0 0 14px; }
.fg-aviso--ok { background: #ecfdf3; border-color: var(--fg-ok); color: #054f31; }
.fg-aviso--error { background: #fef3f2; border-color: var(--fg-error); color: #7a271a; }
.fg-aviso--info { background: #eef5fd; border-color: var(--fg-azul); color: var(--fg-marino); }
.fg-reclamar { margin-top: 16px; border: 1px solid var(--fg-gris); border-radius: var(--fg-radio); padding: 12px 16px; background: var(--fg-fondo); }
.fg-reclamar summary { cursor: pointer; font-weight: 600; color: var(--fg-marino); min-height: 32px; display: flex; align-items: center; }
.fg-reclamar[open] summary { margin-bottom: 10px; }

/* Cuenta */
.fg-cuenta { display: grid; gap: 18px; }
.fg-cuenta--login { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); align-items: start; }
.fg-cuenta--login form p { display: flex; flex-direction: column; gap: 6px; }
.fg-cuenta--login .login-remember { flex-direction: row !important; align-items: center; }
.fg-cuenta--login input[type=submit] { background: var(--fg-azul-oscuro); color: #fff; border: 0; border-radius: 999px; min-height: 46px; padding: 0 24px; font: 600 1rem var(--fg-font-titulos); cursor: pointer; }
.fg-tarjeta--cta { background: var(--fg-fondo); }
.fg-cuenta__cab { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; }
.fg-lista-cuenta { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.fg-lista-cuenta li { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; }
.fg-acciones { display: flex; flex-wrap: wrap; gap: 8px; }
.fg-tabla-scroll { overflow-x: auto; }
.fg-tabla { width: 100%; border-collapse: collapse; font-size: .95rem; }
.fg-tabla th, .fg-tabla td { text-align: left; padding: 10px; border-bottom: 1px solid var(--fg-gris); vertical-align: top; }
.fg-horario { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }

/* Cabecera y pie propios (Layout) */
.fg-skip:focus { clip: auto !important; clip-path: none; width: auto; height: auto; z-index: 100000; top: 8px; left: 8px; padding: 10px 16px; background: #fff; color: var(--fg-marino); border-radius: 8px; box-shadow: var(--fg-sombra); }
.fg-cab { background: #fff; border-bottom: 1px solid var(--fg-gris); position: sticky; top: 0; z-index: 999; }
.admin-bar .fg-cab { top: 32px; }
@media (max-width: 782px) { .admin-bar .fg-cab { top: 46px; } }
@media (max-width: 600px) { .admin-bar .fg-cab { top: 0; } }
.fg-cab__in { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 72px; }
.fg-cab__logo img { display: block; height: 44px; width: auto; }
@media (max-width: 480px) { .fg-cab__logo img { height: 36px; } }
.fg-cab, .fg-pie-sitio { font-family: var(--fg-font-texto); }
.fg-cab *, .fg-pie-sitio * { box-sizing: border-box; }
.fg-pie-sitio { background: var(--fg-marino); color: #fff; padding: 48px 0 28px; position: relative; }
.fg-pie-sitio::before { content: ''; position: absolute; inset: 0 0 auto 0; height: 6px; background: linear-gradient(90deg, var(--fg-azul), var(--fg-celeste), var(--fg-lima), var(--fg-naranja)); }
.fg-pie-sitio .fg-contenedor { display: grid; gap: 32px; }
@media (min-width: 900px) { .fg-pie-sitio .fg-contenedor { grid-template-columns: 1fr 2fr; } }
.fg-pie-sitio__marca img { height: 48px; width: auto; }
.fg-pie-sitio__marca p { color: #dbe8f7; max-width: 36ch; }
.fg-pie-sitio .fg-pie__legal { grid-column: 1 / -1; }
.fg-pie-sitio :focus-visible { outline: 3px solid #fff; outline-offset: 2px; }

/* Portada y páginas construidas con Elementor (clases en contenedores) */
.fg-home-hero { position: relative; isolation: isolate; overflow: hidden; background: linear-gradient(160deg, #0B2F6B 0%, #123f86 55%, #1F6FC5 100%); color: #fff; }
.fg-home-hero::before { content: ''; position: absolute; inset: 0; background: var(--fg-patron, none) center/700px auto repeat; opacity: .07; z-index: -1; }
.fg-home-hero::after { content: ''; position: absolute; left: -10%; right: -10%; bottom: -1px; height: 90px; background: radial-gradient(120% 90px at 30% 100%, #fff 60%, transparent 61%), radial-gradient(90% 70px at 85% 100%, var(--fg-lima) 50%, transparent 51%); opacity: 1; z-index: -1; }
.fg-home-hero .elementor-heading-title { color: #fff !important; }
.fg-home-hero .fg-home-hero__sub, .fg-home-hero .fg-home-hero__sub p { color: #e3eefb !important; font-size: clamp(1.05rem, .95rem + .5vw, 1.3rem); }
.fg-home-hero .fg-cifras strong { color: #fff; } .fg-home-hero .fg-cifras span { color: #d6e6f8; }
.fg-home-hero .fg-buscador { color: var(--fg-texto); }
.fg-etiqueta-sup .elementor-heading-title { font: 600 .85rem var(--fg-font-titulos) !important; letter-spacing: .12em; text-transform: uppercase; color: var(--fg-azul-oscuro) !important; }
.fg-home-hero .fg-etiqueta-sup .elementor-heading-title { color: var(--fg-lima) !important; }
.fg-pasos { counter-reset: paso; }
.fg-paso { background: #fff; border: 1px solid var(--fg-gris); border-radius: 18px; position: relative; }
.fg-paso::before { counter-increment: paso; content: counter(paso); position: absolute; top: -16px; left: 20px; width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: var(--fg-naranja); color: var(--fg-marino); font: 700 1rem var(--fg-font-titulos); }
.fg-banda-cta { background: var(--fg-fondo); border-top: 1px solid var(--fg-gris); border-bottom: 1px solid var(--fg-gris); }
.fg-banda-cta .fg-caja-cta { background: var(--fg-marino); color: #fff; border-radius: 24px; position: relative; overflow: hidden; isolation: isolate; }
.fg-banda-cta .fg-caja-cta::after { content: ''; position: absolute; right: -60px; bottom: -60px; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, var(--fg-azul) 0%, transparent 70%); opacity: .6; z-index: -1; }
.fg-banda-cta .fg-caja-cta .elementor-heading-title { color: #fff !important; }
.fg-banda-cta .fg-caja-cta p { color: #dbe8f7; }
.fg-texto-legal { max-width: 820px; }
.fg-texto-legal h2 { font: 600 1.3rem var(--fg-font-titulos); color: var(--fg-marino); margin-top: 1.6em; }
.fg-pendiente { background: #fff7ec; border-left: 5px solid var(--fg-naranja); padding: 12px 16px; border-radius: 10px; }
.elementor-widget-button .elementor-button { font-family: var(--fg-font-titulos); font-weight: 600; }

/* Blindaje frente al reset de Hello Elementor y al color de enlaces del kit */
body h1, body h2, body h3, body h4, body h5, body .elementor-heading-title { font-family: var(--fg-font-titulos); }
body .elementor-widget-heading h2.elementor-heading-title, body .elementor-widget-heading h3.elementor-heading-title { color: var(--fg-marino); font-weight: 700; }
body .elementor-widget-heading h3.elementor-heading-title { font-weight: 600; font-size: 1.35rem; }
button.fg-btn, button.fg-btn:hover, button.fg-btn:focus { border: 2px solid transparent; font: 600 1rem/1.2 var(--fg-font-titulos); border-radius: 999px; }
button.fg-btn--primario, button.fg-btn--primario:focus { background: var(--fg-azul-oscuro); color: #fff; }
button.fg-btn--primario:hover { background: var(--fg-marino); color: #fff; }
button.fg-btn--secundario, button.fg-btn--secundario:focus { background: #fff; color: var(--fg-marino); border-color: var(--fg-borde); }
button.fg-btn--secundario:hover { background: #f0f7fe; color: var(--fg-marino); border-color: var(--fg-azul); }
.fg-nav button.fg-nav__toggle { display: none; background: #fff; border: 2px solid var(--fg-borde); color: var(--fg-marino); border-radius: 10px; width: 48px; height: 48px; padding: 0; }
@media (max-width: 1024px) { .fg-nav button.fg-nav__toggle { display: inline-block; } }
a.fg-provincia, a.fg-provincia:hover, a.fg-provincia:visited { color: #fff !important; text-decoration: none; }
.fg-provincia::before { inset: 0 !important; height: auto !important; opacity: .45 !important; background-position: 100% 100% !important; }
.fg-provincia::before { background: radial-gradient(circle at 100% 110%, var(--fg-azul) 0%, transparent 55%), radial-gradient(circle at 70% 140%, var(--fg-lima) 0%, transparent 45%) !important; }
.fg-provincia:nth-child(2)::before { background: radial-gradient(circle at 100% 110%, var(--fg-lima) 0%, transparent 55%), radial-gradient(circle at 70% 140%, var(--fg-celeste) 0%, transparent 45%) !important; }
.fg-provincia:nth-child(3)::before { background: radial-gradient(circle at 100% 110%, var(--fg-naranja) 0%, transparent 55%), radial-gradient(circle at 70% 140%, var(--fg-azul) 0%, transparent 45%) !important; }
.fg-provincia:nth-child(4)::before { background: radial-gradient(circle at 100% 110%, var(--fg-celeste) 0%, transparent 55%), radial-gradient(circle at 70% 140%, var(--fg-naranja) 0%, transparent 45%) !important; }
.fg-ficha__logo.fg-tarjeta__inicial { display: inline-flex; background: linear-gradient(135deg, var(--fg-marino), var(--fg-azul)); color: #fff; border: 0; font: 700 2.2rem var(--fg-font-titulos); }
.fg-pie-sitio a, .fg-pie-sitio a:visited { color: #dbe8f7 !important; }
.fg-pie-sitio a:hover { color: #fff !important; }
.fg-nav__lista > li > a:not(.fg-btn), .fg-nav__lista > li > a:not(.fg-btn):visited { color: var(--fg-marino) !important; }
a.fg-btn--naranja, a.fg-btn--naranja:visited { color: var(--fg-marino) !important; }
.elementor-widget-button .elementor-button { border-radius: 999px !important; padding: 14px 28px; }
.fg-reclamar summary { list-style: revert; }

/* Plantillas del Theme Builder (Elementor Pro) */
.fg-pie-sitio--tb::before { z-index: 1; }
.fg-pie-sitio--tb .fg-tb-logo--izq, .fg-pie-sitio--tb .fg-tb-logo--izq img { text-align: left; margin: 0; }
.fg-pie-sitio--tb .fg-tb-logo img { height: 48px; width: auto; }
.fg-pie-sitio--tb .fg-tb-lema { color: #dbe8f7; max-width: 36ch; margin: 0; }
.fg-cab--tb .fg-tb-logo img { height: 44px; width: auto; display: block; }
/* Cabecera del Theme Builder: el sticky va en la ubicación de Elementor (sus contenedores fuerzan
   position: relative, y un top:32px de la barra de admin la desplazaba bajo el hero). */
.elementor-location-header { position: sticky; top: 0; z-index: 999; background: #fff; }
.admin-bar .elementor-location-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .elementor-location-header { top: 46px; } }
@media (max-width: 600px) { .admin-bar .elementor-location-header { top: 0; } }
.elementor-location-header .fg-cab, .admin-bar .elementor-location-header .fg-cab { position: relative; top: 0; }
.fg-ficha .fg-ficha__lateral .fg-contacto-rapido { position: sticky; top: 90px; }

/* ===== Mejoras de usabilidad (v0.2) ===== */
/* Tarjetas de empresa */
.fg-empresa-card { grid-template-columns: 64px 1fr; align-items: start; }
.fg-tarjeta__logo, .fg-tarjeta__inicial { width: 64px; height: 64px; }
.fg-empresa-card__titulo a::after { content: ''; position: absolute; inset: 0; } /* Tarjeta entera pulsable… */
.fg-empresa-card { position: relative; }
.fg-empresa-card__acciones a { position: relative; z-index: 2; } /* …sin tapar los botones. */
.fg-mini-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; margin: 10px 0 0; padding: 0; }
.fg-mini-chips li { font-size: .8rem; padding: 2px 10px; border-radius: 999px; background: var(--fg-fondo); border: 1px solid var(--fg-gris); color: var(--fg-texto-suave); }
.fg-badge--demo { background: #FFF1DE; color: var(--fg-naranja-osc); }
@media (min-width: 768px) { .fg-empresa-card__acciones { grid-column: 2; justify-content: flex-start; } }
@media (min-width: 1100px) { .fg-empresa-card { grid-template-columns: 72px 1fr auto; } .fg-tarjeta__logo, .fg-tarjeta__inicial { width: 72px; height: 72px; } .fg-empresa-card__acciones { grid-column: 3; grid-row: 1; flex-direction: column; align-items: stretch; } }

/* Rejilla (portada, relacionadas): tarjeta compacta vertical */
.fg-lista-empresas--rejilla { grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 16px; }
.fg-lista-empresas--rejilla .fg-empresa-card { grid-template-columns: 56px 1fr; }
.fg-lista-empresas--rejilla .fg-tarjeta__logo, .fg-lista-empresas--rejilla .fg-tarjeta__inicial { width: 56px; height: 56px; }
.fg-lista-empresas--rejilla .fg-empresa-card__acciones { grid-column: 1 / -1; grid-row: auto; flex-direction: row; justify-content: flex-start; align-items: center; }
.fg-lista-empresas--rejilla .fg-empresa-card__desc { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.fg-badge { white-space: nowrap; }

/* Filtros en chips (móvil/tablet) */
.fg-filtros-movil { display: grid; gap: 10px; margin-bottom: 18px; }
.fg-filtros-chips { display: flex; align-items: center; gap: 8px; min-width: 0; }
.fg-filtros-chips__t { font: 600 .85rem var(--fg-font-titulos); color: var(--fg-marino); flex: none; }
.fg-filtros-chips ul { list-style: none; display: flex; gap: 8px; margin: 0; padding: 2px 2px 6px; overflow-x: auto; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.fg-filtros-chips a { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; min-height: 40px; padding: 0 14px; border-radius: 999px; border: 2px solid var(--fg-borde); background: #fff; color: var(--fg-marino) !important; text-decoration: none !important; font-size: .92rem; }
.fg-filtros-chips a span { font-size: .78rem; color: var(--fg-texto-suave); }
.fg-filtros-chips a:hover { border-color: var(--fg-azul); background: #eef5fd; }
@media (min-width: 1025px) { .fg-filtros-movil { display: none; } }
@media (max-width: 1024px) { .fg-lateral-bloque--facetas { display: none; } .fg-directorio__lateral { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); } }

/* Vacío */
.fg-vacio__ico { width: 48px; height: 48px; color: var(--fg-azul); margin-bottom: 8px; }

/* Atajos bajo el buscador */
.fg-atajos { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; font-size: .92rem; }
.fg-atajos > span { opacity: .85; }
.fg-atajos ul { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; }
.fg-atajos a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border-radius: 999px; background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.35); color: #fff !important; text-decoration: none !important; }
.fg-atajos a:hover { background: rgba(255,255,255,.26); }
.fg-home-hero .fg-atajos > span { color: #e3eefb; }
@media (max-width: 600px) { .fg-atajos ul { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; } .fg-atajos a { white-space: nowrap; } }

/* Grupos de actividad plegables */
.fg-grupo summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.fg-grupo summary::-webkit-details-marker { display: none; }
.fg-grupo summary h3 { display: flex; align-items: center; gap: 10px; margin: 0; font: 600 1.05rem var(--fg-font-titulos); color: var(--fg-marino); }
.fg-grupo__n { font-size: .8rem; color: var(--fg-texto-suave); background: var(--fg-fondo); border-radius: 999px; padding: 2px 10px; }
.fg-grupo[open] summary { margin-bottom: 10px; }
@media (max-width: 767px) {
	.fg-grupo summary::after { content: ''; width: 10px; height: 10px; border-right: 2px solid var(--fg-marino); border-bottom: 2px solid var(--fg-marino); transform: rotate(45deg); transition: transform .2s; flex: none; margin-left: auto; }
	.fg-grupo[open] summary::after { transform: rotate(-135deg); }
	.fg-grupo { padding: 14px 16px; }
	.fg-grupo__lista { columns: 2; column-gap: 16px; }
}
@media (min-width: 768px) { .fg-grupo summary { cursor: default; pointer-events: none; } .fg-grupo__n { display: none; } }

/* Ficha: barra fija en móvil + relacionadas */
.fg-barra-movil { display: none; }
@media (max-width: 1024px) {
	.fg-barra-movil { display: flex; gap: 10px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 990; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.96); backdrop-filter: blur(6px); box-shadow: 0 -6px 20px rgba(11,47,107,.12); }
	.fg-barra-movil .fg-btn { flex: 1; }
	.fg-ficha, .single-fg_empresa .elementor-location-footer { padding-bottom: 76px; }
	.fg-contacto-rapido { position: static !important; }
}
.fg-relacionadas { padding-top: 8px; padding-bottom: 48px; }
.fg-relacionadas__cab { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }

/* Tablet: aprovechar el ancho */
@media (min-width: 768px) and (max-width: 1024px) {
	.fg-ficha__cuerpo { grid-template-columns: 1fr; }
	.fg-ficha__lateral { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
	.fg-provincias { grid-template-columns: repeat(2, 1fr); }
	.fg-grupos { grid-template-columns: repeat(2, 1fr); }
}

/* Pie del Theme Builder: franja de color */
.fg-pie-sitio--tb { position: relative; }

/* Secciones genéricas */
.fg-seccion { padding-block: 40px; }

/* Pie ([fg_pie]) */
.fg-pie { display: grid; gap: 24px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.fg-pie__titulo { font: 600 1rem var(--fg-font-titulos); color: #fff; margin: 0 0 10px; }
.fg-pie ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.fg-pie a { color: #dbe8f7; text-decoration: none; }
.fg-pie a:hover { color: #fff; text-decoration: underline; }
.fg-pie__legal { color: #c3d3e8; font-size: .85rem; margin: 24px 0 0; }

@media (prefers-reduced-motion: reduce) { .fg-main *, .fg-nav * { transition: none !important; animation: none !important; } }
@media print { .fg-nav, .fg-buscador, .fg-directorio__lateral, .fg-ficha__bloque--form, .fg-reclamar { display: none !important; } }
