/*
Theme Name: Floreneta
Theme URI: https://floreneta.es
Author: Aritz
Description: Tema a medida para Floreneta (cuadros con flores prensadas), fiel a la maqueta «Portada Editorial». Tema de bloques con tienda WooCommerce. Al activarlo crea las páginas con su contenido.
Version: 0.3.1
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: floreneta
*/

/* ============ base ============ */
:root {
	--fl-x: clamp(20px, 3.9vw, 56px);         /* margen lateral: 20 móvil · 32 tableta · 56 escritorio */
	--fl-sec: clamp(64px, 8.4vw, 120px);      /* aire entre secciones */
	--fl-c: var(--wp--preset--color--amarillo); /* color de acento de cada pieza (se cambia con las clases is-c-*) */
	--fl-tinta: #33302A;
}
html { font-synthesis: none; -webkit-font-smoothing: antialiased; }
body { color: var(--wp--preset--color--tinta); }
.is-c-amarillo { --fl-c: var(--wp--preset--color--amarillo); }
.is-c-rosa { --fl-c: var(--wp--preset--color--rosa); }
.is-c-menta { --fl-c: var(--wp--preset--color--menta); }
.is-c-salvia { --fl-c: var(--wp--preset--color--salvia); }
.is-c-tinta { --fl-c: var(--wp--preset--color--tinta); }
.is-c-borde { --fl-c: var(--wp--preset--color--borde); }

/* sección con el aire de la maqueta */
.fl-sec { padding-top: var(--fl-sec) !important; padding-bottom: var(--fl-sec) !important; }
.fl-sec.is-corta-arriba { padding-top: calc(var(--fl-sec) * .55) !important; }
.fl-sec.is-sin-abajo { padding-bottom: 0 !important; }

/* texto secundario */
.fl-gris, .fl-gris p { color: var(--wp--preset--color--gris); }
.fl-lead { font-size: 1.09rem; line-height: 1.8; }
.fl-cuerpo { font-size: .97rem; line-height: 1.75; }

/* ============ ondas y filetes dibujados a mano ============ */
.fl-onda-arriba, .fl-onda-abajo { background-repeat: repeat-x; background-size: 460px 10px; }
.fl-onda-arriba { background-position: top left; }
.fl-onda-abajo { background-position: bottom left; }
/* la onda toma el color de --fl-c; el grosor, de la clase */
.fl-onda-arriba, .fl-onda-abajo {
	--fl-onda: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 10' preserveAspectRatio='none'%3E%3Cpath d='M0,5 C34,3.4 58,6.3 92,5.5 C126,4.7 148,2.8 186,3.9 C222,5 244,7.1 282,6.3 C318,5.5 344,3.2 372,4.3 C384,4.8 392,5 400,5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
	background-image: none;
	position: relative;
}
.fl-onda-arriba::before, .fl-onda-abajo::after {
	content: ""; position: absolute; left: 0; right: 0; height: 10px; pointer-events: none;
	background: var(--fl-c);
	-webkit-mask: var(--fl-onda) repeat-x left center / 460px 10px; mask: var(--fl-onda) repeat-x left center / 460px 10px;
}
.fl-onda-arriba::before { top: 0; }
.fl-onda-abajo::after { bottom: 0; }
.fl-onda-gruesa { --fl-onda: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 10' preserveAspectRatio='none'%3E%3Cpath d='M0,5 C34,3.4 58,6.3 92,5.5 C126,4.7 148,2.8 186,3.9 C222,5 244,7.1 282,6.3 C318,5.5 344,3.2 372,4.3 C384,4.8 392,5 400,5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E"); }
.fl-onda-muy-gruesa { --fl-onda: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 10' preserveAspectRatio='none'%3E%3Cpath d='M0,5 C34,3.4 58,6.3 92,5.5 C126,4.7 148,2.8 186,3.9 C222,5 244,7.1 282,6.3 C318,5.5 344,3.2 372,4.3 C384,4.8 392,5 400,5' fill='none' stroke='black' stroke-width='4' stroke-linecap='round'/%3E%3C/svg%3E"); }

/* filete horizontal grande, como un trazo a mano */
.fl-filete { height: 20px; background: var(--fl-c);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 20' preserveAspectRatio='none'%3E%3Cpath d='M1,13.5 C46,3 94,16.3 148,6.5 C198,14.9 244,3 296,14.2 C342,17 376,5.1 399,8.6' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat center / 100% 20px;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 20' preserveAspectRatio='none'%3E%3Cpath d='M1,13.5 C46,3 94,16.3 148,6.5 C198,14.9 244,3 296,14.2 C342,17 376,5.1 399,8.6' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat center / 100% 20px;
	margin: 0 !important; }
.fl-filete.is-fino { opacity: .9;
	-webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 20' preserveAspectRatio='none'%3E%3Cpath d='M1,12.5 C46,5 94,14.5 148,7.5 C198,13.5 244,5 296,13 C342,15 376,6.5 399,9' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 20' preserveAspectRatio='none'%3E%3Cpath d='M1,12.5 C46,5 94,14.5 148,7.5 C198,13.5 244,5 296,13 C342,15 376,6.5 399,9' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E"); }
.fl-filete.is-corto { max-width: 300px; }

/* ============ etiquetas y rótulos ============ */
.fl-tag { display: inline-flex !important; align-items: center; gap: 8px; margin: 0;
	font-size: 11px; letter-spacing: .24em; text-transform: uppercase; font-weight: 700; color: var(--wp--preset--color--tinta); }
.fl-tag::before { content: ""; width: 9px; height: 9px; background: var(--fl-c); flex-shrink: 0; }
.fl-tag.is-claro { color: var(--wp--preset--color--fondo); }
.fl-chapa { display: inline-block !important; width: auto !important; margin: 0; padding: 7px 14px; background: var(--fl-c);
	font-size: 11px; letter-spacing: .24em; text-transform: uppercase; font-weight: 700; color: var(--wp--preset--color--tinta); }
.fl-rotulo { font-size: 11px; letter-spacing: .2em; text-transform: uppercase; font-weight: 700; color: var(--wp--preset--color--gris); margin: 0; }
.fl-rotulo.is-tinta { color: var(--wp--preset--color--tinta); }

/* ============ botones planos y enlaces con onda ============ */
.wp-block-button__link { border-radius: 0 !important; }
.wp-block-button.is-style-fl-contorno .wp-block-button__link { background: transparent !important; color: var(--wp--preset--color--tinta) !important; border: 1.5px solid var(--wp--preset--color--tinta) !important; }
.wp-block-button.is-style-fl-contorno .wp-block-button__link:hover { background: var(--wp--preset--color--tinta) !important; color: var(--wp--preset--color--fondo) !important; }
.wp-block-button.is-style-fl-color .wp-block-button__link { background: var(--fl-c) !important; color: var(--wp--preset--color--tinta) !important; border-color: var(--fl-c) !important; }
.wp-block-button.is-style-fl-color .wp-block-button__link:hover { background: var(--wp--preset--color--tinta) !important; color: var(--wp--preset--color--fondo) !important; border-color: var(--wp--preset--color--tinta) !important; }
.fl-enlace { margin: 0; }
.fl-enlace a { display: inline-block; font-size: 10.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; padding-bottom: 9px; position: relative; text-decoration: none; }
.fl-enlace a::after { content: " →"; }
.fl-enlace a::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 10px; background: var(--fl-c, var(--fl-tinta));
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 10' preserveAspectRatio='none'%3E%3Cpath d='M0,5 C34,3.4 58,6.3 92,5.5 C126,4.7 148,2.8 186,3.9 C222,5 244,7.1 282,6.3 C318,5.5 344,3.2 372,4.3 C384,4.8 392,5 400,5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") repeat-x left center / 460px 10px;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 10' preserveAspectRatio='none'%3E%3Cpath d='M0,5 C34,3.4 58,6.3 92,5.5 C126,4.7 148,2.8 186,3.9 C222,5 244,7.1 282,6.3 C318,5.5 344,3.2 372,4.3 C384,4.8 392,5 400,5' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") repeat-x left center / 460px 10px; }
.fl-enlace.is-tinta a::before { background: var(--fl-tinta); }

/* ============ fotos con paspartú de color ============ */
.fl-mate { background: var(--fl-c); padding: 7%; margin: 0 !important; position: relative; overflow: hidden; }
.fl-mate.is-fino { padding: 4%; }
.fl-mate.is-sin { padding: 0; }
.fl-mate img { display: block; width: 100% !important; height: 100% !important; object-fit: cover; }
.fl-r-45 img { aspect-ratio: 4 / 4.6; } .fl-r-45 { }
.fl-r-4-5 img { aspect-ratio: 4 / 5; }
.fl-r-16-7 img { aspect-ratio: 16 / 7; }
.fl-r-3-4 img { aspect-ratio: 3 / 4; }
@media (max-width: 1099px) { .fl-r-45 img, .fl-r-16-7 img { aspect-ratio: 4 / 3; } }

/* hueco de foto pendiente: color plano con el patrón de golondrinas */
.fl-hueco { position: relative; overflow: hidden; background: var(--fl-c); min-height: 220px; }
.fl-hueco::before { content: ""; position: absolute; inset: 0; background: url("assets/img/patron3.svg") center / 230px auto repeat; opacity: .13; pointer-events: none; }
.fl-hueco.is-liso::before { display: none; }
.fl-hueco .fl-hueco-et { position: absolute; bottom: 10px; right: 12px; margin: 0; font-size: 9px; letter-spacing: .18em; text-transform: uppercase; color: rgba(38,43,12,.4); font-weight: 700; }
.fl-hueco.is-4-5 { aspect-ratio: 4 / 5; min-height: 0; }
.fl-hueco.is-3-4 { aspect-ratio: 3 / 4; min-height: 0; }

/* ============ cabecera ============ */
.fl-cabecera { position: sticky; top: 0; z-index: 50; background: var(--wp--preset--color--fondo); padding-bottom: 10px; }
.admin-bar .fl-cabecera { top: 32px; }
@media (max-width: 1099px) { .fl-cabecera { position: relative; } }
.fl-sin-cabecera-fija .fl-cabecera { position: relative; }
.fl-cabecera .fl-logo img { width: 100px; height: auto; }
@media (max-width: 759px) { .fl-cabecera .fl-logo img { width: 78px; } }
.fl-cabecera .wp-block-navigation a { text-decoration: none; }
.fl-cabecera .wp-block-navigation .current-menu-item > a { opacity: .45; }
.fl-cabecera .wp-block-navigation__responsive-container.is-menu-open { padding: 24px var(--fl-x); }

/* ============ promesas (cuatro titulillos con filetes verticales) ============ */
.fl-promesas { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 0 !important; }
.fl-promesas > * { position: relative; padding: 26px 26px 28px 28px; margin: 0 !important; }
.fl-promesas > *:first-child { padding-left: 0; }
.fl-promesas > *:not(:first-child)::before { content: ""; position: absolute; left: -10px; top: 10%; height: 80%; width: 20px; background: var(--fl-c);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 400' preserveAspectRatio='none'%3E%3Cpath d='M10,1 C2,54 18,106 5,160 C-3,214 17,268 7,322 C2,356 12,382 9,399' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat center / 20px 100%;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 400' preserveAspectRatio='none'%3E%3Cpath d='M10,1 C2,54 18,106 5,160 C-3,214 17,268 7,322 C2,356 12,382 9,399' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat center / 20px 100%; }
.fl-promesas .fl-num { display: inline-block; font-size: 11px; letter-spacing: .2em; font-weight: 700; margin: 0 0 10px; background: var(--fl-c); padding: 4px 9px; }
.fl-promesas .fl-promesa { font-family: var(--wp--preset--font-family--titulares); font-weight: 700; font-size: 1.16rem; line-height: 1.25; margin: 0; }
@media (max-width: 1099px) {
	.fl-promesas { grid-template-columns: repeat(2, 1fr); }
	.fl-promesas > *:nth-child(odd) { padding-left: 0; }
	.fl-promesas > *:nth-child(odd)::before { display: none; }
}
@media (max-width: 759px) { .fl-promesas > * { padding: 20px 14px 22px 18px; } }

/* ============ columnas con onda superior (bloques, pasos, servicios) ============ */
.fl-item { padding-top: 22px !important; }
.fl-item h3 { margin: 0 0 10px; }
.fl-item p { margin: 0; }
.fl-paso-num { font-family: var(--wp--preset--font-family--titulares); font-size: 2.45rem; line-height: 1; margin: 0; }

/* ============ mosaico de creaciones ============ */
.fl-mosaico { display: grid !important; grid-template-columns: repeat(12, 1fr); grid-auto-rows: 110px; gap: 16px !important; }
.fl-mosaico > * { margin: 0 !important; min-height: 0; }
.fl-mosaico .fl-m-7x5 { grid-column: span 7; grid-row: span 5; }
.fl-mosaico .fl-m-5x3 { grid-column: span 5; grid-row: span 3; }
.fl-mosaico .fl-m-5x2 { grid-column: span 5; grid-row: span 2; }
.fl-mosaico .fl-m-4x4 { grid-column: span 4; grid-row: span 4; }
.fl-mosaico .fl-mate, .fl-mosaico .fl-hueco { height: 100%; min-height: 0; }
.fl-mosaico .fl-mate img { height: 100% !important; }
.fl-mosaico .fl-pie-pieza { position: absolute; bottom: 24px; left: 24px; background: var(--fl-c); padding: 12px 18px; margin: 0; }
@media (max-width: 1099px) {
	.fl-mosaico { grid-template-columns: repeat(2, 1fr); grid-auto-rows: auto; }
	.fl-mosaico > * { grid-column: auto !important; grid-row: auto !important; }
	.fl-mosaico .fl-mate, .fl-mosaico .fl-hueco { aspect-ratio: 4 / 3; height: auto; }
	.fl-mosaico .fl-mate img { aspect-ratio: auto; }
}
@media (max-width: 759px) { .fl-mosaico { grid-template-columns: 1fr; } }

/* ============ tarjetas ============ */
.fl-tarjeta { background: var(--wp--preset--color--fondo); border: 1px solid var(--wp--preset--color--borde); display: flex; flex-direction: column; }
.fl-tarjeta > .fl-franja { height: 10px; background: var(--fl-c); margin: 0 !important; }
.fl-tarjeta > .fl-tarjeta-cuerpo { padding: 30px 28px 32px !important; flex: 1; display: flex; flex-direction: column; }
.fl-tarjeta-cuerpo > .fl-empuja { flex: 1; }
.fl-oscura { background: var(--wp--preset--color--tinta); color: var(--wp--preset--color--fondo); padding: 34px 30px !important; display: flex !important; flex-direction: column; justify-content: space-between; }
.fl-oscura h3, .fl-oscura p { color: var(--wp--preset--color--fondo); }
.fl-oscura .fl-tag { color: var(--wp--preset--color--fondo); }
.fl-cabeza-color { background: var(--fl-c); padding: 20px 24px !important; display: flex; justify-content: space-between; align-items: baseline; margin: 0 !important; }

/* ============ preguntas frecuentes ============ */
.fl-faq > * { padding: 30px 0 22px !important; margin: 0 !important; }
.fl-faq .fl-faq-p { display: flex; gap: 12px; align-items: flex-start; margin: 0; font-family: var(--wp--preset--font-family--titulares); font-weight: 700; font-size: 1.35rem; line-height: 1.2; }
.fl-faq .fl-faq-p::before { content: ""; width: 9px; height: 9px; background: var(--fl-c); margin-top: 9px; flex-shrink: 0; }
.fl-faq .fl-faq-p.is-sin-marca::before { display: none; }

/* ============ golondrina de marca y patrón ============ */
.fl-golondrina img { width: 96px; height: auto; }
.fl-con-patron { position: relative; isolation: isolate; overflow: hidden; }
.fl-con-patron::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .09; background: url("assets/img/patron3.svg") center / 420px auto repeat; pointer-events: none; }
.fl-marca-agua { position: absolute; top: 24px; right: 28px; width: 150px; opacity: .2; pointer-events: none; margin: 0 !important; }

/* ============ pie ============ */
.fl-pie { background: var(--wp--preset--color--tinta); color: rgba(255,253,244,.9); }
.fl-pie a { color: inherit; text-decoration: none; }
.fl-pie a:hover { color: #fff; }
.fl-pie .fl-redes a { display: inline-block; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; font-weight: 700; padding: 9px 14px; background: var(--fl-c); color: var(--wp--preset--color--tinta); }
.fl-pie .fl-col-tit { font-size: 11px; letter-spacing: .22em; text-transform: uppercase; color: var(--wp--preset--color--fondo); font-weight: 700; display: flex; align-items: center; gap: 8px; margin: 0 0 22px; }
.fl-pie .fl-col-tit::before { content: ""; width: 9px; height: 9px; background: var(--fl-c); }
.fl-pie .fl-onda-abajo { --fl-c: rgba(255,253,244,.35); }
.fl-pie ul { list-style: none; padding: 0; margin: 0; }
.fl-pie li { margin-bottom: 12px; font-size: .97rem; }

/* ============ texto pendiente de confirmar: visible a propósito ============ */
.fl-pendiente {
	background: repeating-linear-gradient(-45deg, rgba(196, 86, 60, .08) 0 6px, transparent 6px 12px);
	outline: 1.5px dashed #C4563C; outline-offset: 3px; color: #8F3B27;
}
.fl-oscura .fl-pendiente, .fl-pie .fl-pendiente { color: #F2B6A6; outline-color: #E7957F; }

/* ============ formulario de encargo ============ */
.fl-form { display: grid; gap: 1.4rem; }
.fl-form fieldset { border: 0; margin: 0; padding: 0; display: grid; gap: .6rem; }
.fl-form legend, .fl-form label.fl-et { font-weight: 700; font-size: .75rem; letter-spacing: .16em; text-transform: uppercase; margin-bottom: .2rem; }
.fl-form .fl-op { display: flex; gap: .6rem; align-items: flex-start; font-size: 1rem; cursor: pointer; }
.fl-form .fl-op input { margin-top: .35em; accent-color: var(--wp--preset--color--verde); width: 1.05rem; height: 1.05rem; }
.fl-form input[type=text], .fl-form input[type=email], .fl-form input[type=tel], .fl-form input[type=date], .fl-form textarea {
	width: 100%; font: inherit; color: inherit; background: var(--wp--preset--color--blanco);
	border: 1px solid var(--wp--preset--color--borde); border-bottom: 1.5px solid var(--wp--preset--color--tinta); padding: .8rem .9rem; border-radius: 0; }
.fl-form input:focus, .fl-form textarea:focus { outline: 2px solid var(--wp--preset--color--verde); outline-offset: 1px; }
.fl-form .fl-ayuda { font-size: .875rem; color: var(--wp--preset--color--gris); margin: 0; }
.fl-form .fl-error { color: #8F3B27; font-size: .875rem; margin: 0; }
.fl-form .fl-aviso { background: var(--wp--preset--color--arena); padding: 1.1rem 1.25rem; font-size: .9375rem; }
.fl-form .fl-trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.fl-form button { justify-self: start; cursor: pointer; border: 1.5px solid var(--wp--preset--color--tinta); background: var(--wp--preset--color--tinta); color: var(--wp--preset--color--fondo);
	font: 700 .656rem/1 var(--wp--preset--font-family--textos); letter-spacing: .2em; text-transform: uppercase; padding: 1.05rem 1.9rem; }
.fl-form button:hover { background: var(--wp--preset--color--verde); border-color: var(--wp--preset--color--verde); }
.fl-form button[disabled] { opacity: .6; cursor: wait; }
.fl-gracias { display: none; }
.fl-form.is-enviado { display: none; }
.fl-form.is-enviado + .fl-gracias { display: block; }

/* ============ tienda (WooCommerce) ============ */
.wp-block-post-title a { text-decoration: none; }
.wc-block-components-product-badge, .wc-block-components-product-sale-badge { border-radius: 0; background: var(--wp--preset--color--rosa); border: 0; color: var(--wp--preset--color--tinta); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; font-size: .6875rem; }
.wc-block-components-button:not(.is-link), .wp-block-woocommerce-product-button .wp-block-button__link { border-radius: 0 !important; }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input { border-radius: 0 !important; }
.wc-block-components-product-image img { background: var(--wp--preset--color--arena); }
.wp-block-woocommerce-product-image-gallery, .wp-block-woocommerce-product-image-gallery .woocommerce-product-gallery { width: 100% !important; max-width: none !important; float: none !important; }
.woocommerce-product-gallery__image img { width: 100%; height: auto; }
.woocommerce-product-gallery__trigger { background: var(--wp--preset--color--fondo) !important; border-radius: 0 !important; }
.wp-block-woocommerce-product-details .wc-tabs { border-bottom: 1px solid var(--wp--preset--color--borde); }
.wp-block-woocommerce-product-details .wc-tabs li a { font-weight: 700; font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; text-decoration: none; }
.wc-block-product-template .wp-block-post-title { font-family: var(--wp--preset--font-family--titulares); font-weight: 700; font-size: 1.3rem; }


/* ============ piezas de la maqueta (v0.2) ============ */
/* las secciones van pegadas unas a otras, sin la separación por defecto de los bloques */
.wp-block-post-content > .fl-sec, .wp-block-post-content > .fl-sec + *, main > .fl-sec, .fl-sec + .fl-sec { margin-block-start: 0 !important; margin-block-end: 0 !important; }
.wp-block-post-content > .wp-block-group:has(.fl-form) { margin-block-start: 0 !important; }
.fl-sec > * + * { margin-block-start: clamp(40px, 5vw, 72px); }
.fl-centro { display: flex !important; justify-content: center; }
.fl-suave { color: rgba(252,251,246,.72) !important; }
.fl-suave-oscuro { color: rgba(51,48,42,.8); }
.fl-frase { margin: 0 0 18px; }
.fl-precio { font-family: var(--wp--preset--font-family--titulares); font-size: 1.5rem; margin: 6px 0 16px; }
.fl-precio.is-peque { font-size: 1.1rem; margin: 0; }

/* cabecera */
.fl-cabecera-fila { padding-top: 18px; padding-bottom: 14px; align-items: center !important; }
.fl-cabecera .fl-logo { margin: 0; }
.fl-cabecera .wp-block-navigation { font-size: 11px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; }
.fl-cabecera .wc-block-mini-cart__button { padding: 6px; }

/* portada */
.fl-hero-cols { gap: clamp(32px, 5vw, 80px) !important; }
.fl-hero-col > * + * { margin-block-start: 26px; }
.fl-hero { line-height: .98 !important; letter-spacing: -.01em; margin: 26px 0 8px !important; }
.fl-hero-texto { max-width: 460px; }
.fl-promesas-bloque { margin-top: clamp(56px, 7vw, 96px) !important; }
.fl-promesas-bloque > * { margin: 0 !important; }

/* introducción de sección: título a la izquierda, texto a la derecha */
.fl-intro { gap: clamp(28px, 4vw, 64px) !important; }
.fl-intro h2 { margin-top: 18px; line-height: 1.02; }
.fl-intro .fl-lead { max-width: 640px; margin: 0; }

/* dos líneas */
.fl-linea { margin-top: clamp(48px, 6vw, 88px) !important; }
.fl-linea-top { padding-top: 34px !important; }
.fl-linea-cab { gap: clamp(28px, 4vw, 64px) !important; }
.fl-linea-nombre { margin: 0 0 10px !important; font-weight: 400 !important; font-family: var(--wp--preset--font-family--titulares); }
.fl-linea-cab .fl-lead { margin: 0 0 22px; }
.fl-linea-items { margin-top: 36px !important; gap: 28px !important; }
.fl-linea-items .fl-item { height: 100%; }

/* selección */
.fl-sel-cab { gap: 24px; }
.fl-sel-tit h2, .fl-sel-cab h2 { margin: 16px 0 0; }
.fl-mosaico .fl-mate { display: block; }
.fl-mosaico .fl-mate figure { margin: 0; height: 100%; }
.fl-mosaico .fl-oscura h3 { margin: 18px 0 14px; font-weight: 400; font-family: var(--wp--preset--font-family--titulares); }
.fl-nombre-pieza { font-family: var(--wp--preset--font-family--titulares); font-size: 1.3rem; }

/* ramos */
.fl-ramos-cab > * + * { margin-block-start: 18px; }
.fl-golondrina { margin-bottom: 8px !important; }
.fl-golondrina img { width: 82px; }
.fl-ramos-cab h2 { line-height: 1.04; }
.fl-antes-despues { gap: 24px !important; }
.fl-antes-despues .fl-rotulo { margin-top: 16px; }
.fl-flecha { font-family: var(--wp--preset--font-family--titulares); font-size: 2.4rem; margin: 0; color: var(--wp--preset--color--gris); }
.fl-pasos { gap: 28px !important; }
.fl-paso-tit { margin: 14px 0 10px !important; font-family: var(--wp--preset--font-family--titulares) !important; font-weight: 700 !important; text-transform: none !important; letter-spacing: 0 !important; }
.fl-pasos-cab > * + * { margin-block-start: 16px; }

/* precios */
.fl-precios, .fl-talleres, .fl-opiniones { gap: 24px !important; }
.fl-precios > .wp-block-column, .fl-talleres > .wp-block-column, .fl-opiniones > .wp-block-column, .fl-precios-extra > .wp-block-column { display: flex; flex-direction: column; }
.fl-precios .fl-tarjeta, .fl-talleres .fl-tarjeta, .fl-opiniones .fl-tarjeta, .fl-precios-extra .fl-tarjeta, .fl-precios-extra .fl-oscura { flex: 1; }
.fl-tarjeta h3 { margin: 0 0 6px; }
.fl-precios-extra { gap: 24px !important; }
.fl-precios-extra .fl-tarjeta { border-top: 10px solid var(--fl-c); }
.fl-anadido { padding: 18px 0 !important; }
.fl-anadido:first-of-type { margin-top: 18px; }
.fl-anadido p { margin: 0; }
.fl-anadido .wp-block-columns { margin: 0; gap: 18px; }
.fl-oscura > * + * { margin-block-start: 26px; }
.fl-oscura h3 { font-weight: 400 !important; font-family: var(--wp--preset--font-family--titulares); margin: 16px 0 14px; }

/* preguntas */
.fl-faq-sec h2 { margin-top: 18px; line-height: 1.02; }
.fl-faq .wp-block-columns { margin: 0; gap: 24px; }

/* talleres */
.fl-talleres-texto { max-width: 420px; margin: 0; }
.fl-cabeza-color p { margin: 0; }

/* sobre mí */
.fl-hueco .fl-golondrina-hueco { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); margin: 0; width: 120px; opacity: .55; }
.fl-hueco .fl-golondrina-hueco img { width: 120px; }
.fl-sobre h2 { line-height: 1.02; margin: 18px 0 22px; }
.fl-sobre .wp-block-column > * + * { margin-block-start: 20px; }

/* opiniones */
.fl-opi-cab h2 { margin-top: 16px; }
.fl-cita { margin: 0 0 26px; }
.fl-opi-pie { padding-top: 18px !important; align-items: baseline; }
.fl-opi-pie p { margin: 0; }

/* llamada final */
.fl-llamada-cols { gap: 24px !important; }
.fl-llamada-cols > .wp-block-column { display: flex; flex-direction: column; }
.fl-llamada, .fl-insta { flex: 1; padding: clamp(32px, 4.5vw, 64px) !important; position: relative; overflow: hidden; }
.fl-llamada > * + *, .fl-insta > * + * { margin-block-start: 22px; }
.fl-llamada h2 { max-width: 520px; line-height: 1.02; }
.fl-llamada .fl-lead { max-width: 480px; }
.fl-insta { border: 1px solid var(--wp--preset--color--borde); }
.fl-insta h3 { font-weight: 400 !important; font-family: var(--wp--preset--font-family--titulares); line-height: 1.08; }

/* páginas interiores */
.fl-pag-cab { gap: clamp(28px, 4vw, 64px) !important; }
.fl-pag-cab h1 { margin: 22px 0 0; line-height: .98; }
.fl-pag-cab .wp-block-column > * + * { margin-block-start: 22px; }
.fl-pag-cab .fl-lead { margin: 0; }
.fl-pag-cuerpo { padding-top: 0 !important; }
.fl-pag-bloques { gap: 28px !important; }
.fl-pag-bloques .fl-item h3 { margin: 10px 0; }
.fl-pag-faq > * + * { margin-block-start: 40px; }

/* pie */
.fl-pie { padding-top: clamp(56px, 7vw, 96px) !important; }
.fl-pie-arriba { padding-bottom: 48px !important; }
.fl-pie-cols { gap: clamp(28px, 4vw, 64px) !important; }
.fl-pie-logo { margin: 0 0 22px !important; }
.fl-pie-logo img { width: 240px !important; max-width: 100%; height: auto; }
.fl-pie-texto { max-width: 360px; font-size: .97rem; line-height: 1.7; color: rgba(252,251,246,.7); }
.fl-pie-abajo { padding-top: 22px !important; padding-bottom: 28px !important; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: rgba(252,251,246,.55); }
.fl-pie-abajo p { margin: 0; }

/* tienda: cabecera Nido y fichas */
.fl-ante { font-size: 11px; letter-spacing: .24em; text-transform: uppercase; font-weight: 700; display: inline-flex; gap: 8px; align-items: center; }
.fl-ante::before { content: ""; width: 9px; height: 9px; background: var(--wp--preset--color--amarillo); }
.fl-garantias { padding-top: 20px !important; font-size: .94rem; }
.fl-garantias p { margin: 0 0 8px; }

@media (max-width: 781px) {
	.fl-flecha { transform: rotate(90deg); }
	.fl-linea-items > .wp-block-column:first-child { max-width: 420px; }
	.fl-marca-agua { width: 96px; }
}


/* ============ v0.3 ============ */
/* cabecera: idiomas */
.fl-idiomas { display: flex; gap: 6px; font-size: 11px; font-weight: 700; letter-spacing: .18em; }
.fl-idiomas a { text-decoration: none; opacity: .5; }
.fl-idiomas a.is-actual, .fl-idiomas a:hover { opacity: 1; }
.fl-idiomas span { opacity: .35; }
.fl-cabecera-der > .wp-block-shortcode:empty { display: none; }
@media (max-width: 1260px) and (min-width: 782px) { .fl-cabecera .wp-block-navigation { --fl-gap: 20px; } .fl-cabecera .wp-block-navigation__container { gap: 20px !important; } }

/* proceso en tres fotos */
.fl-tira-proceso { gap: 24px !important; }
.fl-tira-proceso .fl-rotulo { margin-top: 16px; }
.fl-nota { font-size: .8rem; color: var(--wp--preset--color--gris); margin-top: 14px !important; }

/* galerías */
.fl-gal-cab > * + * { margin-block-start: 14px; }
.fl-galeria.wp-block-gallery { gap: 16px !important; }
.fl-galeria.wp-block-gallery.has-nested-images figure.wp-block-image { aspect-ratio: 4 / 5; }
.fl-galeria.wp-block-gallery.has-nested-images figure.wp-block-image img { height: 100%; object-fit: cover; }
@media (max-width: 599px) { .fl-galeria.wp-block-gallery.has-nested-images figure.wp-block-image { width: 100% !important; } }

/* tienda */
.fl-productos .wc-block-product-template { gap: 24px !important; }
.fl-productos .wp-block-post-title { font-family: var(--wp--preset--font-family--titulares); font-weight: 700; font-size: 1.3rem; margin: 14px 0 4px; }
.fl-productos .wp-block-post-title a { text-decoration: none; }
.fl-colecciones ul { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 24px; list-style: none; padding: 0; margin: 0; }
.fl-colecciones li { margin: 0; }
.fl-colecciones a { text-decoration: none; font-family: var(--wp--preset--font-family--titulares); font-size: 1.4rem; }
.fl-colecciones img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; margin-bottom: 12px; background: var(--wp--preset--color--arena); }
.fl-banner { gap: clamp(28px, 4vw, 64px) !important; }
.fl-banner-texto > * + * { margin-block-start: 22px; }
.fl-tienda-ago .fl-llamada { max-width: none; }
.fl-tienda-cab { padding-bottom: 24px !important; }
.woocommerce-account .woocommerce, .woocommerce-account main { font-size: .97rem; }
.woocommerce-MyAccount-navigation ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; border-bottom: 1px solid var(--wp--preset--color--borde); padding-bottom: 14px; }
.woocommerce-MyAccount-navigation a { text-decoration: none; font-size: 11px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.woocommerce-MyAccount-navigation .is-active a { color: var(--wp--preset--color--gris); }

/* llamada sin la tarjeta de Instagram */
.fl-llamada-cols > .wp-block-column:only-child { flex-basis: 100% !important; }

.fl-pie .fl-redes a:nth-child(1) { --fl-c: var(--wp--preset--color--amarillo); }
.fl-pie .fl-redes a:nth-child(2) { --fl-c: var(--wp--preset--color--rosa); }
.fl-pie .fl-redes a:nth-child(3) { --fl-c: var(--wp--preset--color--menta); }
.fl-pie .fl-redes a { margin: 0 6px 6px 0; }
.fl-foco-arriba img { object-position: 50% 18%; }

/* WhatsApp flotante */
.fl-wa-flotante { position: fixed; right: 20px; bottom: 20px; z-index: 60; width: 54px; height: 54px; display: grid; place-items: center; background: var(--wp--preset--color--tinta); color: var(--wp--preset--color--fondo); border-radius: 50%; box-shadow: 0 6px 18px rgba(51,48,42,.25); }
.fl-wa-flotante:hover { background: var(--wp--preset--color--verde); }


/* ============ v0.3.1 ============ */
.fl-sec.is-sin-arriba { padding-top: 0 !important; }
.fl-centrado { text-align: center; }
.fl-centrado .fl-tag { justify-content: center; }

/* numeración romana automática (solo en la portada): cuenta las secciones visibles */
.wp-block-post-content { counter-reset: fl-seccion; }
.home .fl-tag.is-num { counter-increment: fl-seccion; }
.home .fl-tag.is-num::after { content: counter(fl-seccion, upper-roman) "."; order: -1; margin-right: -2px; }
.home .fl-tag.is-num::before { order: -2; }

/* formas orgánicas para fotos */
.fl-arco img { border-radius: 999px 999px 0 0; aspect-ratio: 3 / 4; object-fit: cover; width: 100%; }
.fl-arco.is-invertido img { border-radius: 0 0 999px 999px; }
.fl-redondo img { border-radius: 50%; aspect-ratio: 1; object-fit: cover; width: 100%; }
.fl-redondeado img { border-radius: 28px; aspect-ratio: 4 / 5; object-fit: cover; width: 100%; }
.fl-arco, .fl-redondo, .fl-redondeado { margin: 0 !important; }

/* PORTADA B: foto ancha con caja */
.fl-portada-foto { position: relative; }
.fl-portada-img { margin: 0 !important; }
.fl-portada-img img { width: 100%; height: min(86vh, 820px); object-fit: cover; display: block; }
.fl-portada-caja { position: absolute; left: clamp(16px, 4vw, 56px); bottom: clamp(16px, 4vw, 56px); max-width: 560px; background: var(--wp--preset--color--fondo); padding: clamp(24px, 3.5vw, 48px) !important; border-top: 10px solid var(--fl-c); }
.fl-portada-caja > * + * { margin-block-start: 18px; }
@media (max-width: 781px) { .fl-portada-caja { position: relative; left: auto; bottom: auto; margin: -60px 12px 0 !important; } .fl-portada-img img { height: 62vh; } }

/* PORTADA C: arco + titular */
.fl-exp-portada { display: grid !important; grid-template-columns: 1.1fr .9fr; grid-template-rows: auto auto; gap: 0 clamp(24px, 4vw, 64px); align-items: end; position: relative; }
.fl-exp-portada > * { margin: 0 !important; }
.fl-exp-portada-texto { grid-column: 1; grid-row: 1; z-index: 2; }
.fl-exp-portada-texto > * + * { margin-block-start: 22px; }
.fl-exp-titular em { font-style: italic; color: var(--wp--preset--color--verde); }
.fl-exp-portada-arco { grid-column: 2; grid-row: 1 / span 2; }
.fl-exp-portada-arco img { aspect-ratio: 3 / 4.2; }
.fl-exp-portada-circulo { position: absolute !important; width: clamp(120px, 15vw, 220px); left: 52%; top: 8%; z-index: 3; }
.fl-exp-portada-circulo img { border: 8px solid var(--wp--preset--color--fondo); }
.fl-exp-portada-pie { grid-column: 1; grid-row: 2; max-width: 520px; padding-top: 28px !important; }
.fl-exp-portada-pie > * + * { margin-block-start: 22px; }
@media (max-width: 899px) { .fl-exp-portada { grid-template-columns: 1fr; } .fl-exp-portada-arco { grid-column: 1; grid-row: 2; margin-top: 32px !important; } .fl-exp-portada-pie { grid-row: 3; } .fl-exp-portada-circulo { left: auto; right: 6%; top: auto; bottom: 34%; } }

/* VENTAJAS B y C */
.fl-ventajas-b { padding-top: 26px !important; padding-bottom: 26px !important; }
.fl-franja-ventajas { gap: 14px 32px; }
.fl-ventaja { margin: 0; font-family: var(--wp--preset--font-family--titulares); font-weight: 700; font-size: 1.12rem; }
.fl-ventaja-num { font-family: var(--wp--preset--font-family--textos); font-size: 11px; letter-spacing: .2em; margin-right: 8px; opacity: .6; }
.fl-ventajas-onda { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 24px; position: relative; padding: 30px 0 !important; }
.fl-ventajas-onda::before { content: ""; position: absolute; left: 4%; right: 4%; top: 72px; height: 60px; background: var(--wp--preset--color--borde);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 60' preserveAspectRatio='none'%3E%3Cpath d='M0,30 C50,-5 100,65 150,30 S250,-5 300,30 S380,60 400,30' fill='none' stroke='black' stroke-width='2' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 60' preserveAspectRatio='none'%3E%3Cpath d='M0,30 C50,-5 100,65 150,30 S250,-5 300,30 S380,60 400,30' fill='none' stroke='black' stroke-width='2' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat center / 100% 100%; }
.fl-onda-item { position: relative; text-align: center; margin: 0 !important; }
.fl-onda-item:nth-child(even) { transform: translateY(46px); }
.fl-circulo-num { width: 84px; height: 84px; border-radius: 50%; background: var(--fl-c); display: grid; place-items: center; margin: 0 auto 16px !important; font-family: var(--wp--preset--font-family--titulares); font-size: 1.7rem; }
.fl-onda-item .fl-promesa { font-family: var(--wp--preset--font-family--titulares); font-weight: 700; font-size: 1.12rem; max-width: 220px; margin: 0 auto; }
@media (max-width: 781px) { .fl-ventajas-onda { grid-template-columns: 1fr 1fr; } .fl-ventajas-onda::before { display: none; } .fl-onda-item:nth-child(even) { transform: translateY(30px); } }

/* LO QUE HAGO B y C */
.fl-dos-tarjetas { gap: 24px !important; margin-top: 40px !important; }
.fl-tarjeta-grande { height: 100%; overflow: hidden; }
.fl-tarjeta-foto { margin: 0 !important; overflow: hidden; }
.fl-tarjeta-foto img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.fl-tarjeta-grande:hover .fl-tarjeta-foto img { transform: scale(1.03); }
.fl-tarjeta-grande .fl-tarjeta-cuerpo { border-top: 10px solid var(--fl-c); }
.fl-tarjeta-grande .fl-tarjeta-cuerpo > * + * { margin-block-start: 14px; }
.fl-zig { gap: clamp(32px, 6vw, 96px) !important; margin-top: clamp(48px, 6vw, 80px) !important; }
.fl-zig .wp-block-column > * + * { margin-block-start: 18px; }
.fl-zig-fotos { position: relative; padding: 0 18% 18% 0 !important; }
.fl-zig-fotos.is-izq { padding: 0 0 18% 18% !important; }
.fl-zig-fotos::before { content: ""; position: absolute; inset: 12% 8% 0 12%; background: var(--fl-c); border-radius: 46% 54% 38% 62% / 52% 40% 60% 48%; z-index: -1; }
.fl-zig-fotos { isolation: isolate; }
.fl-solapa { position: absolute !important; width: 42%; right: 0; bottom: 0; }
.fl-zig-fotos.is-izq .fl-solapa { right: auto; left: 0; }
.fl-solapa img { border: 8px solid var(--wp--preset--color--fondo); }
.fl-zig-num { font-family: var(--wp--preset--font-family--titulares); font-size: 3.4rem; line-height: 1; margin: 0; color: var(--wp--preset--color--tinta); }
.fl-zig-num::after { content: ""; display: block; width: 56px; height: 8px; background: var(--fl-c); margin-top: 10px; border-radius: 8px; }
@media (max-width: 781px) { .fl-zig.is-inverso { flex-direction: column-reverse; } }

/* TRABAJOS B y C */
.fl-rejilla-3 { gap: 24px !important; margin-top: 36px !important; }
.fl-rejilla-3 .fl-rotulo { margin-top: 12px; }
.fl-columnas-desfase { gap: clamp(16px, 2.4vw, 32px) !important; margin-top: 48px !important; }
.fl-columnas-desfase .wp-block-column > * + * { margin-block-start: clamp(16px, 2.4vw, 32px); }
.fl-desfase-2 { margin-top: 90px !important; }
.fl-desfase-3 { margin-top: 30px !important; }
@media (max-width: 781px) { .fl-desfase-2, .fl-desfase-3 { margin-top: 0 !important; } }

/* PROCESO B y C */
.fl-proceso-b-cols { gap: clamp(32px, 5vw, 80px) !important; }
.fl-pegajosa > * + * { margin-block-start: 22px; }
@media (min-width: 782px) { .fl-pegajosa { position: sticky; top: 140px; align-self: flex-start; } }
.fl-pasos-v > * + * { margin-top: 0 !important; }
.fl-paso-v { gap: 28px !important; padding: 0 0 46px 0 !important; position: relative; }
.fl-paso-v .fl-paso-num { width: 64px; height: 64px; border-radius: 50%; background: var(--fl-c); display: grid; place-items: center; flex-shrink: 0; font-size: 1.8rem; position: relative; z-index: 1; }
.fl-paso-v:not(:last-child)::before { content: ""; position: absolute; left: 22px; top: 64px; bottom: 0; width: 20px; background: var(--wp--preset--color--borde);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 400' preserveAspectRatio='none'%3E%3Cpath d='M10,1 C2,54 18,106 5,160 C-3,214 17,268 7,322 C2,356 12,382 9,399' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat center / 20px 100%;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 400' preserveAspectRatio='none'%3E%3Cpath d='M10,1 C2,54 18,106 5,160 C-3,214 17,268 7,322 C2,356 12,382 9,399' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat center / 20px 100%; }
.fl-paso-v .fl-paso-tit { margin: 12px 0 8px !important; }
.fl-camino { display: grid !important; grid-template-columns: repeat(4, 1fr); gap: 28px; margin-top: 56px !important; position: relative; padding-bottom: 50px !important; }
.fl-camino::before { content: ""; position: absolute; left: 6%; right: 6%; top: 10px; height: 90px; background: var(--wp--preset--color--tinta); opacity: .55;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 90' preserveAspectRatio='none'%3E%3Cpath d='M0,30 C60,0 80,90 135,60 S215,0 265,30 S345,95 400,60' fill='none' stroke='black' stroke-width='1.6' stroke-dasharray='6 7' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat center / 100% 100%;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 90' preserveAspectRatio='none'%3E%3Cpath d='M0,30 C60,0 80,90 135,60 S215,0 265,30 S345,95 400,60' fill='none' stroke='black' stroke-width='1.6' stroke-dasharray='6 7' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E") no-repeat center / 100% 100%; }
.fl-camino-paso { margin: 0 !important; position: relative; text-align: center; }
.fl-camino-paso:nth-child(even) { margin-top: 50px !important; }
.fl-camino-paso .fl-paso-tit { margin: 6px 0 10px !important; font-family: var(--wp--preset--font-family--titulares) !important; font-weight: 700 !important; text-transform: none !important; letter-spacing: 0 !important; }
@media (max-width: 781px) { .fl-camino { grid-template-columns: 1fr 1fr; } .fl-camino::before { display: none; } }

/* PRECIOS B y C */
.fl-tabla { margin: 36px 0 28px !important; }
.fl-tabla table { border-collapse: collapse; width: 100%; background: var(--wp--preset--color--fondo); }
.fl-tabla th, .fl-tabla td { border: 0; border-bottom: 1px solid var(--wp--preset--color--borde); padding: 18px 20px; text-align: left; font-size: .97rem; }
.fl-tabla thead th { font-family: var(--wp--preset--font-family--titulares); font-size: 1.4rem; font-weight: 700; border-bottom: 2px solid var(--wp--preset--color--tinta); }
.fl-tabla thead th:nth-child(2) { box-shadow: inset 0 8px 0 var(--wp--preset--color--amarillo); }
.fl-tabla thead th:nth-child(3) { box-shadow: inset 0 8px 0 var(--wp--preset--color--rosa); }
.fl-tabla thead th:nth-child(4) { box-shadow: inset 0 8px 0 var(--wp--preset--color--menta); }
.fl-tabla td:first-child { font-size: 11px; letter-spacing: .18em; text-transform: uppercase; font-weight: 700; color: var(--wp--preset--color--gris); }
@media (max-width: 781px) { .fl-tabla { overflow-x: auto; } .fl-tabla table { min-width: 640px; } }
.fl-escala { display: flex !important; justify-content: center; align-items: flex-end; gap: clamp(20px, 4vw, 64px); margin: 48px 0 30px !important; flex-wrap: wrap; }
.fl-marco-escala { margin: 0 !important; text-align: center; }
.fl-marco-escala > * + * { margin-block-start: 12px; }
.fl-marco-dibujo { border: 3px solid var(--wp--preset--color--tinta); background: var(--fl-c); box-shadow: inset 0 0 0 10px var(--wp--preset--color--fondo); display: grid; place-items: center; margin: 0 auto !important; transition: transform .5s ease; }
.fl-marco-escala:hover .fl-marco-dibujo { transform: translateY(-6px) rotate(-1deg); }
.fl-marco-dibujo.is-s { width: calc(32 * var(--fl-esc, 4.2px)); height: calc(42 * var(--fl-esc, 4.2px)); }
.fl-marco-dibujo.is-m { width: calc(40 * var(--fl-esc, 4.2px)); height: calc(50 * var(--fl-esc, 4.2px)); }
.fl-marco-dibujo.is-l { width: calc(50 * var(--fl-esc, 4.2px)); height: calc(70 * var(--fl-esc, 4.2px)); }
@media (max-width: 781px) { .fl-escala { --fl-esc: 2.4px; gap: 16px; } }
.fl-marco-medida { margin: 0; font-size: 11px; letter-spacing: .16em; font-weight: 700; background: var(--wp--preset--color--fondo); padding: 4px 8px; }

/* PREGUNTAS B y C */
.fl-desplegables > * + * { margin-top: 0 !important; }
.fl-desplegable { position: relative; padding: 22px 0 !important; margin: 0 !important; }
.fl-desplegable::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 10px; background: var(--wp--preset--color--tinta);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 10' preserveAspectRatio='none'%3E%3Cpath d='M0,5 C34,3.4 58,6.3 92,5.5 C126,4.7 148,2.8 186,3.9 C222,5 244,7.1 282,6.3 C318,5.5 344,3.2 372,4.3 C384,4.8 392,5 400,5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") repeat-x left center / 460px 10px;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 10' preserveAspectRatio='none'%3E%3Cpath d='M0,5 C34,3.4 58,6.3 92,5.5 C126,4.7 148,2.8 186,3.9 C222,5 244,7.1 282,6.3 C318,5.5 344,3.2 372,4.3 C384,4.8 392,5 400,5' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") repeat-x left center / 460px 10px; }
.fl-desplegable summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px; font-family: var(--wp--preset--font-family--titulares); font-weight: 700; font-size: 1.3rem; padding-top: 6px; }
.fl-desplegable summary::-webkit-details-marker { display: none; }
.fl-desplegable summary::after { content: "+"; width: 34px; height: 34px; border-radius: 50%; background: var(--fl-c); display: grid; place-items: center; flex-shrink: 0; font-family: var(--wp--preset--font-family--textos); font-weight: 400; transition: transform .35s ease; }
.fl-desplegable[open] summary::after { transform: rotate(45deg); }
.fl-desplegable p { margin: 14px 0 0; max-width: 680px; }
.fl-preguntas-rejilla { display: grid !important; grid-template-columns: repeat(2, 1fr); gap: 24px; margin-top: 44px !important; }
.fl-pregunta-suelta { background: var(--wp--preset--color--fondo); padding: 34px 32px !important; border-radius: 28px; margin: 0 !important; position: relative; }
.fl-pregunta-suelta:nth-child(2) { transform: translateY(36px); }
.fl-pregunta-suelta:nth-child(4) { transform: translateY(36px); }
.fl-pregunta-suelta > * + * { margin-block-start: 12px; }
.fl-pregunta-suelta .fl-faq-p { font-family: var(--wp--preset--font-family--titulares); font-weight: 700; font-size: 1.3rem; line-height: 1.2; margin-top: 16px; }
.fl-interroga { width: 52px; height: 52px; border-radius: 50%; background: var(--fl-c); display: grid; place-items: center; font-family: var(--wp--preset--font-family--titulares); font-size: 1.6rem; margin: 0; }
@media (max-width: 781px) { .fl-preguntas-rejilla { grid-template-columns: 1fr; } .fl-pregunta-suelta:nth-child(n) { transform: none; } }

/* TALLERES C */
.fl-tira-talleres { display: grid !important; grid-template-columns: 1fr 1.25fr 1fr; gap: clamp(14px, 2vw, 28px); align-items: end; position: relative; margin: 44px 0 32px !important; }
.fl-tira-talleres > * { margin: 0 !important; }
.fl-tira-alta img { aspect-ratio: 4 / 5.2; }
.fl-sello { position: absolute !important; width: 170px; height: 170px; border-radius: 50%; background: var(--fl-c); display: grid !important; place-items: center; text-align: center; padding: 22px !important; left: 50%; top: -40px; transform: translateX(-50%) rotate(-8deg); }
.fl-sello-texto { margin: 0; font-family: var(--wp--preset--font-family--titulares); font-size: 1.05rem; line-height: 1.25; }
@media (max-width: 781px) { .fl-tira-talleres { grid-template-columns: 1fr 1fr; } .fl-tira-talleres > figure:nth-child(3) { display: none; } .fl-sello { width: 130px; height: 130px; top: -50px; } }

/* SOBRE MÍ B y C, OPINIONES B y C */
.fl-sobre-b-caja > * + *, .fl-opi-b-caja > * + * { margin-block-start: 22px; }
.fl-cita-grande { font-family: var(--wp--preset--font-family--titulares); font-size: clamp(1.6rem, 3vw, 2.4rem); line-height: 1.3; margin: 0; }
.fl-firma { font-family: var(--wp--preset--font-family--titulares); font-size: 1.3rem; color: var(--wp--preset--color--gris); }
.fl-sobre-c-texto > * + * { margin-block-start: 20px; }
.fl-mancha-texto { position: relative; padding: clamp(36px, 5vw, 70px) !important; isolation: isolate; }
.fl-mancha-texto::before { content: ""; position: absolute; inset: 0; background: var(--fl-c); border-radius: 58% 42% 55% 45% / 45% 58% 42% 55%; z-index: -1; }
.fl-mancha-texto > * + * { margin-block-start: 18px; }
.fl-opi-foto { max-width: 340px; margin: 0 auto !important; }

/* LLAMADAS B y C */
.fl-llamada-b { padding-top: clamp(40px, 5vw, 64px) !important; padding-bottom: clamp(40px, 5vw, 64px) !important; }
.fl-franja-llamada { gap: 24px !important; }
.fl-franja-llamada h2 { margin: 14px 0 0; }
.fl-tag.fl-sin-cuadro::before { background: var(--wp--preset--color--tinta); }
.fl-arco-llamada { background: var(--fl-c); border-radius: 999px 999px 0 0; padding: clamp(60px, 9vw, 120px) clamp(28px, 5vw, 64px) clamp(44px, 5vw, 64px) !important; text-align: center; }
.fl-arco-llamada > * + * { margin-block-start: 20px; }
.fl-arco-llamada .fl-gris { color: rgba(51,48,42,.8); }

/* CABECERAS B y C */
.fl-cab-centrada > * + * { margin-block-start: 20px; }
.fl-cab-centrada .fl-tag { justify-content: center; display: flex !important; }
.fl-centro-filete { margin-left: auto !important; margin-right: auto !important; }
.fl-cab-arco img { aspect-ratio: 4 / 4.6; }

/* TIENDA: vitrina, pieza, colecciones C, compra, regalo */
.fl-productos.is-arcos .wc-block-components-product-image img, .fl-productos.is-arcos .wc-block-components-product-image { border-radius: 999px 999px 0 0; overflow: hidden; }
.fl-productos.is-arcos .wc-block-product { text-align: center; }
.fl-productos.is-pieza .wc-block-product-template { grid-template-columns: 1fr !important; }
.fl-productos.is-pieza .wc-block-product { display: grid !important; grid-template-columns: 1fr 1fr; gap: clamp(28px, 5vw, 80px); align-items: center; }
.fl-productos.is-pieza .wp-block-post-title { font-size: clamp(2rem, 4vw, 3.4rem) !important; font-weight: 400 !important; line-height: 1.02; }
.fl-pieza-info > * + * { margin-block-start: 18px; }
.fl-productos.is-pieza .wc-block-components-product-price { font-family: var(--wp--preset--font-family--titulares); font-size: 1.6rem; }
@media (max-width: 781px) { .fl-productos.is-pieza .wc-block-product { grid-template-columns: 1fr; } }
.fl-colecciones .wc-block-product-categories-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 28px; list-style: none; padding: 0; margin: 32px 0 0; }
.fl-colecciones .wc-block-product-categories-list-item { margin: 0; }
.fl-colecciones .wc-block-product-categories-list-item a { display: flex; flex-direction: column; gap: 12px; text-decoration: none; }
.fl-colecciones .wc-block-product-categories-list-item__image { width: 100% !important; max-width: none !important; margin: 0 !important; border: 0 !important; aspect-ratio: 4 / 5; overflow: hidden; background: var(--wp--preset--color--arena); }
.fl-colecciones .wc-block-product-categories-list-item__image img { width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; }
.fl-colecciones .wc-block-product-categories-list-item__name { font-family: var(--wp--preset--font-family--titulares); font-size: 1.5rem; }
.fl-colecciones.is-arcos .wc-block-product-categories-list-item__image { border-radius: 999px 999px 0 0; }
.fl-colecciones.is-arcos .wc-block-product-categories-list-item a { align-items: center; }
.fl-colecciones.is-arcos li { text-align: center; }
.fl-tienda-garantias { padding-top: 24px !important; padding-bottom: 24px !important; }
.fl-tarjeta-regalo { aspect-ratio: 1.6; max-width: 440px; margin: 0 auto !important; background: var(--fl-c); border-radius: 22px; padding: 32px !important; display: flex !important; flex-direction: column; justify-content: space-between; box-shadow: 0 24px 40px -24px rgba(51,48,42,.45); transform: rotate(-3deg); transition: transform .5s ease; }
.fl-tarjeta-regalo:hover { transform: rotate(0); }
.fl-tarjeta-regalo .fl-golondrina img { width: 64px; }
.fl-tarjeta-regalo-nombre { font-family: var(--wp--preset--font-family--titulares); font-size: 2.2rem; margin: 0; }

/* ============ movimiento: hovers suaves ============ */
@media (prefers-reduced-motion: no-preference) {
	.wp-block-button__link { transition: background-color .25s ease, color .25s ease, transform .25s ease, box-shadow .25s ease; }
	.wp-block-button__link:hover { transform: translateY(-2px); box-shadow: 0 8px 18px -10px rgba(51,48,42,.5); }
	.fl-enlace a::before { transition: transform .45s cubic-bezier(.2,.7,.2,1); transform-origin: left; }
	.fl-enlace a:hover::before { transform: scaleX(.6); }
	.fl-enlace a::after { display: inline-block; transition: transform .3s ease; }
	.fl-enlace a:hover::after { transform: translateX(4px); }
	.fl-mate img, .fl-galeria img, .fl-productos .wc-block-components-product-image img { transition: transform .8s cubic-bezier(.2,.7,.2,1); }
	.fl-mate { overflow: hidden; }
	.fl-mate:hover img, .fl-galeria figure:hover img, .fl-productos .wc-block-product:hover .wc-block-components-product-image img { transform: scale(1.025); }
}

/* menú: subrayado ondulado al pasar */
.fl-cabecera .wp-block-navigation-item__content { position: relative; padding-bottom: 6px !important; }
.fl-cabecera .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 8px; background: var(--wp--preset--color--amarillo); transform: scaleX(0); transform-origin: left; transition: transform .4s cubic-bezier(.2,.7,.2,1);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 10' preserveAspectRatio='none'%3E%3Cpath d='M0,5 C34,3.4 58,6.3 92,5.5 C126,4.7 148,2.8 186,3.9 C222,5 244,7.1 282,6.3 C318,5.5 344,3.2 372,4.3 C384,4.8 392,5 400,5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") repeat-x left center / 160px 8px;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 10' preserveAspectRatio='none'%3E%3Cpath d='M0,5 C34,3.4 58,6.3 92,5.5 C126,4.7 148,2.8 186,3.9 C222,5 244,7.1 282,6.3 C318,5.5 344,3.2 372,4.3 C384,4.8 392,5 400,5' fill='none' stroke='black' stroke-width='3' stroke-linecap='round'/%3E%3C/svg%3E") repeat-x left center / 160px 8px; }
.fl-cabecera .wp-block-navigation-item:nth-child(2) .wp-block-navigation-item__content::after { background: var(--wp--preset--color--rosa); }
.fl-cabecera .wp-block-navigation-item:nth-child(3) .wp-block-navigation-item__content::after { background: var(--wp--preset--color--menta); }
.fl-cabecera .wp-block-navigation-item:nth-child(4) .wp-block-navigation-item__content::after { background: var(--wp--preset--color--salvia); }
.fl-cabecera .wp-block-navigation-item__content:hover::after, .fl-cabecera .current-menu-item > .wp-block-navigation-item__content::after { transform: scaleX(1); }
.fl-cabecera .wp-block-navigation .current-menu-item > a { opacity: 1; }

/* menú del móvil con la marca */
.fl-cabecera .wp-block-navigation__responsive-container.is-menu-open { padding: 28px var(--fl-x) 40px !important; background: var(--wp--preset--color--fondo) !important; }
.fl-cabecera .wp-block-navigation__responsive-container.is-menu-open::after { content: ""; position: absolute; right: -40px; bottom: -30px; width: 320px; height: 320px; background: url("assets/img/isotipo.svg") center / contain no-repeat; opacity: .07; pointer-events: none; }
.fl-cabecera .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 64px !important; }
.fl-cabecera .is-menu-open .wp-block-navigation__responsive-container-content, .fl-cabecera .is-menu-open .wp-block-navigation__container { align-items: flex-start !important; justify-content: flex-start !important; width: 100%; }
.fl-cabecera .is-menu-open .wp-block-navigation__container { gap: 6px !important; }
.fl-cabecera .is-menu-open .wp-block-navigation-item__content { font-family: var(--wp--preset--font-family--titulares); font-size: 2.2rem; letter-spacing: 0; text-transform: none; font-weight: 400; padding: 6px 0 10px !important; }
.fl-cabecera .is-menu-open .wp-block-navigation-item__content::after { bottom: 0; height: 10px; }
@media (prefers-reduced-motion: no-preference) {
	.fl-cabecera .is-menu-open { animation: fl-menu-entra .35s ease both; }
	.fl-cabecera .is-menu-open .wp-block-navigation-item { animation: fl-item-entra .5s cubic-bezier(.2,.7,.2,1) both; }
	.fl-cabecera .is-menu-open .wp-block-navigation-item:nth-child(2) { animation-delay: .05s; }
	.fl-cabecera .is-menu-open .wp-block-navigation-item:nth-child(3) { animation-delay: .1s; }
	.fl-cabecera .is-menu-open .wp-block-navigation-item:nth-child(4) { animation-delay: .15s; }
	.fl-cabecera .is-menu-open .wp-block-navigation-item:nth-child(5) { animation-delay: .2s; }
	.fl-cabecera .is-menu-open .wp-block-navigation-item:nth-child(6) { animation-delay: .25s; }
}
@keyframes fl-menu-entra { from { opacity: 0; } to { opacity: 1; } }
@keyframes fl-item-entra { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.wp-block-navigation__responsive-container-open svg, .wp-block-navigation__responsive-container-close svg { width: 30px; height: 30px; }

/* volver arriba */
.fl-arriba { position: fixed; right: 20px; bottom: 20px; z-index: 55; width: 48px; height: 48px; border-radius: 50%; display: grid; place-items: center; background: var(--wp--preset--color--fondo); color: var(--wp--preset--color--tinta); border: 1.5px solid var(--wp--preset--color--tinta); opacity: 0; pointer-events: none; transform: translateY(10px); transition: opacity .3s ease, transform .3s ease, background-color .25s ease; }
.fl-arriba.is-visible { opacity: 1; pointer-events: auto; transform: none; }
.fl-arriba:hover { background: var(--wp--preset--color--amarillo); }
body:has(.fl-wa-flotante) .fl-arriba { bottom: 86px; }

/* ============ formulario de encargo (sistema nuevo) ============ */
.fl-encargo-sec .fl-encargo-cols { gap: clamp(32px, 5vw, 80px) !important; }
.fl-form { gap: 26px; background: var(--wp--preset--color--blanco); padding: clamp(24px, 4vw, 52px); border-top: 10px solid var(--wp--preset--color--rosa); }
.fl-form legend, .fl-form label.fl-et { font-size: 11px; letter-spacing: .2em; color: var(--wp--preset--color--tinta); display: block; margin-bottom: 10px; }
.fl-form input[type=text], .fl-form input[type=email], .fl-form input[type=tel], .fl-form input[type=date], .fl-form textarea { background: var(--wp--preset--color--fondo); border: 0; border-bottom: 1.5px solid var(--wp--preset--color--tinta); padding: .95rem 1rem; transition: background-color .2s ease, box-shadow .2s ease; }
.fl-form input:focus, .fl-form textarea:focus { outline: none; background: #fff; box-shadow: 0 0 0 2px var(--wp--preset--color--rosa); }
.fl-form .fl-op { padding: 10px 14px; border: 1px solid var(--wp--preset--color--borde); background: var(--wp--preset--color--fondo); transition: border-color .2s ease, background-color .2s ease; }
.fl-form .fl-op:hover { border-color: var(--wp--preset--color--tinta); }
.fl-form .fl-op:has(input:checked) { border-color: var(--wp--preset--color--tinta); background: var(--wp--preset--color--rosa); }
.fl-form .fl-op input { accent-color: var(--wp--preset--color--tinta); }
.fl-form fieldset { gap: 8px; }
.fl-form .fl-aviso { background: var(--wp--preset--color--arena); border-left: 6px solid var(--wp--preset--color--salvia); }
.fl-form button { transition: background-color .25s ease, transform .25s ease; }
.fl-form button:hover { background: var(--wp--preset--color--verde); transform: translateY(-2px); }
.fl-gracias { background: var(--wp--preset--color--menta); padding: clamp(24px, 4vw, 52px); }
.fl-encargo-lado > * + * { margin-block-start: 20px; }

/* ============ ficha de producto ============ */
.fl-ficha { gap: clamp(28px, 5vw, 80px) !important; }
.fl-ficha-info > * + * { margin-block-start: 18px; }
.fl-ficha-info .wp-block-post-title { font-weight: 400; line-height: 1.02; }
.fl-ficha-info .wc-block-components-product-price, .fl-ficha-info .wp-block-woocommerce-product-price { font-family: var(--wp--preset--font-family--titulares); font-size: 1.8rem; }
.fl-ficha-info .wc-block-add-to-cart-form .single_add_to_cart_button, .fl-ficha-info .wc-block-add-to-cart-form button { background: var(--wp--preset--color--tinta); color: var(--wp--preset--color--fondo); border-radius: 0; text-transform: uppercase; letter-spacing: .2em; font-size: .7rem; font-weight: 700; padding: 1.05rem 1.9rem; }
.fl-ficha-galeria .woocommerce-product-gallery__image img, .fl-ficha-galeria img { background: var(--wp--preset--color--arena); }
.fl-ficha-galeria { position: sticky; top: 130px; align-self: flex-start; }
@media (max-width: 781px) { .fl-ficha-galeria { position: static; } }

/* accesibilidad: foco visible en todo lo navegable */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 2px solid var(--wp--preset--color--verde); outline-offset: 3px; }
