/* JMG Polo — componentes del theme (diseno/direccion.md v1.1).
   Colores, fuentes y escala viven en theme.json; acá van las composiciones de cada pattern.
   Este archivo también se carga en el editor (add_editor_style). */

:root {
	--jmg-ease: var(--wp--custom--ease, cubic-bezier(0.2, 0.7, 0.1, 1));
	--jmg-seccion: var(--wp--preset--spacing--seccion, clamp(96px, 14vw, 200px));
	--jmg-header: 76px;
}
html { scroll-padding-top: calc(var(--jmg-header) + var(--wp-admin--admin-bar--height, 0px)); }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:focus-visible { outline: 2px solid var(--wp--preset--color--suela-oscura); outline-offset: 3px; }
.wp-site-blocks { padding-top: 0; }

/* Las grillas propias controlan su propio espacio: sin los márgenes de flujo de WordPress
   (:root :where(.is-layout-flow) > *). `body :is()` les gana en especificidad. */
body :is(.jmg-hero-grid, .jmg-hechos, .jmg-capitulo, .jmg-cap-media, .jmg-galeria, .jmg-trabajos-intro,
	.jmg-cert-grid, .jmg-sello, .jmg-trade-grid, .jmg-puertas, .jmg-condiciones, .jmg-footer-grid,
	.jmg-clientes-lista, .jmg-cap-texto, .jmg-trade-aside, .jmg-persona, .jmg-puerta) > * { margin-block: 0; }
body :is(.jmg-sello, .jmg-condiciones, .jmg-footer-grid, .jmg-hechos) > div > * { margin-block: 0; }

/* ── tipografía ── */
.jmg-etiqueta {
	font-family: var(--wp--preset--font-family--texto); font-size: 0.72rem; font-weight: 600;
	font-stretch: 125%; letter-spacing: 0.16em; text-transform: uppercase; line-height: 1.3;
	color: var(--wp--preset--color--piedra);
}
.has-crema-color .jmg-etiqueta { color: var(--wp--preset--color--hilo); }
.jmg-display-xl, .jmg-display {
	font-family: var(--wp--preset--font-family--display); font-variation-settings: "opsz" 72;
	letter-spacing: -0.02em; text-wrap: balance;
}
.jmg-display-xl { font-size: var(--wp--preset--font-size--display-xl); font-weight: 300; line-height: 1; }
.jmg-display { font-size: var(--wp--preset--font-size--display); font-weight: 340; line-height: 1.05; }
.jmg-display-xl em, .jmg-display em { font-style: italic; font-weight: 300; }
.jmg-bajada { font-size: var(--wp--preset--font-size--bajada); line-height: 1.55; max-width: 34em; color: var(--wp--preset--color--piedra); text-wrap: pretty; }
.has-crema-color .jmg-bajada { color: var(--wp--preset--color--hilo); }
.jmg-cifra { font-weight: 500; font-variant-numeric: tabular-nums slashed-zero; }
.jmg-cifra-grande {
	font-family: var(--wp--preset--font-family--display); font-weight: 300; font-variation-settings: "opsz" 48;
	font-size: clamp(1.5rem, 2.4vw, 2.25rem); line-height: 1.15; letter-spacing: -0.01em;
}
.jmg-titulo-pagina { margin-top: var(--wp--preset--spacing--60); }
.jmg-main--texto { padding-bottom: var(--wp--preset--spacing--60); }

/* ── botones ── */
.jmg-btn-chico .wp-block-button__link { padding: 11px 1.1em; font-size: 0.72rem; }
.jmg-btn-claro .wp-block-button__link { background: var(--wp--preset--color--crema); color: var(--wp--preset--color--noche); border-color: var(--wp--preset--color--crema); }
.jmg-btn-pendiente { opacity: 0.55; pointer-events: none; }
.wp-block-button.is-style-jmg-flecha .wp-block-button__link {
	background: transparent; border-color: transparent; color: var(--wp--preset--color--tinta); padding-inline: 0;
}
.wp-block-button.is-style-jmg-flecha .wp-block-button__link::after { content: " →"; transition: margin 0.22s var(--jmg-ease); }
.wp-block-button.is-style-jmg-flecha .wp-block-button__link:hover::after { margin-left: 4px; }
.jmg-cta { margin-top: var(--wp--preset--spacing--40); gap: 12px 28px; align-items: center; }

/* ── cinta POLO y costura ── */
.jmg-cinta {
	height: 3px; margin: 0;
	background: linear-gradient(90deg,
		var(--wp--preset--color--polo-magenta) 0 25%, var(--wp--preset--color--polo-celeste) 25% 50%,
		var(--wp--preset--color--polo-naranja) 50% 75%, var(--wp--preset--color--polo-verde) 75% 100%);
}
hr.wp-block-separator.jmg-costura {
	border: 0; height: 2px; width: 100% !important; max-width: none !important; margin: var(--wp--preset--spacing--40) 0 0; opacity: 1;
	background: repeating-linear-gradient(90deg, var(--wp--preset--color--suela) 0 6px, transparent 6px 10px);
}

/* ── header ── */
.jmg-site-header { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; background: var(--wp--preset--color--crema); }
.jmg-header-fila { min-height: var(--jmg-header); }
.jmg-header-nav { gap: clamp(16px, 2.2vw, 36px); }
.jmg-nav { font-stretch: 112%; gap: clamp(16px, 2.2vw, 36px); }
.jmg-nav .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--suela-oscura); }
.jmg-nav .jmg-nav-tienda .wp-block-navigation-item__content { text-transform: none; letter-spacing: 0.02em; color: var(--wp--preset--color--piedra); }
.jmg-nav .wp-block-navigation__responsive-container-open { border: 1px solid var(--wp--preset--color--tinta); border-radius: 2px; padding: 8px; }
.jmg-site-header .wp-block-woocommerce-customer-account { display: none; } /* la cuenta vive en la tienda */
@media (max-width: 781px) { body .jmg-header-cta { display: none; } :root { --jmg-header: 64px; } }

/* ── hero ── */
.jmg-hero { padding-top: clamp(32px, 6vw, 88px); padding-bottom: clamp(48px, 6vw, 96px); overflow: clip; }
.jmg-hero-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: center; }
.jmg-hero-copy { grid-column: 1 / span 6; position: relative; z-index: 2; }
.jmg-hero-copy > .jmg-etiqueta { margin-bottom: 28px; }
.jmg-hero-copy > .jmg-display-xl { margin: 0 0 28px; }
.jmg-hero-stage { grid-column: 7 / span 6; position: relative; }
.jmg-stage-img { margin: 0; }
.jmg-stage-img img { width: 100%; height: auto; max-height: min(56vh, 560px); object-fit: contain; }
.jmg-hero-stage::before {
	content: ""; position: absolute; left: 18%; right: 18%; bottom: 96px; height: 7%;
	background: radial-gradient(closest-side, rgba(22, 20, 43, 0.22), transparent);
}
.jmg-stage-3d { position: absolute; inset: 0 0 80px 0; opacity: 0; transition: opacity 0.6s var(--jmg-ease); }
.jmg-stage-3d model-viewer { width: 100%; height: 100%; background: transparent; --poster-color: transparent; }
.jmg-hero-stage.is-3d .jmg-stage-3d { opacity: 1; }
.jmg-hero-stage.is-3d .jmg-stage-img { opacity: 0; transition: opacity 0.6s var(--jmg-ease); }
ul.jmg-callouts { list-style: none; padding: 0; margin: 24px 0 0; display: grid; grid-template-columns: repeat(3, auto); justify-content: space-between; gap: 16px; }
.jmg-callouts li { padding-left: 14px; border-left: 2px dotted var(--wp--preset--color--suela); font-weight: 500; font-variant-numeric: tabular-nums; margin: 0; }
.jmg-callouts strong {
	display: block; margin-bottom: 4px; font-size: 0.72rem; font-weight: 600; font-stretch: 125%;
	letter-spacing: 0.16em; text-transform: uppercase; color: var(--wp--preset--color--piedra);
}
.jmg-hechos-wrap { padding-bottom: clamp(48px, 6vw, 96px); }
.jmg-hechos { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--wp--preset--color--hilo); }
.jmg-hechos > div { padding: 24px 24px 0 0; display: grid; gap: 10px; align-content: start; }
.jmg-hechos > div + div { padding-left: 24px; border-left: 1px solid var(--wp--preset--color--hilo); }
.jmg-hechos p { margin: 0; }
/* hero fijo mientras gira el casco (lo activa animaciones.js solo en escritorio) */
.jmg-hero--fijo { min-height: 210vh; padding-top: 0; padding-bottom: 0; }
.jmg-hero--fijo .jmg-hero-grid {
	position: sticky; top: calc(var(--jmg-header) + var(--wp-admin--admin-bar--height, 0px) + 3px);
	min-height: calc(100vh - var(--jmg-header) - var(--wp-admin--admin-bar--height, 0px) - 3px); align-content: center;
}
@media (max-width: 1023px) {
	.jmg-hero-copy, .jmg-hero-stage { grid-column: 1 / -1; }
	.jmg-hero-stage { margin-top: 56px; max-width: 560px; justify-self: center; width: 100%; }
	.jmg-stage-img img { max-height: 52vh; }
}
@media (max-width: 640px) {
	.jmg-hechos { grid-template-columns: 1fr; }
	.jmg-hechos > div + div { padding-left: 0; border-left: 0; border-top: 1px solid var(--wp--preset--color--hilo); }
	.jmg-hechos > div { padding: 18px 0; }
}

/* ── taller ── */
.jmg-taller { padding-block: var(--jmg-seccion); overflow: clip; }
.jmg-taller-intro { margin-bottom: clamp(64px, 9vw, 140px); }
.jmg-taller-intro > .jmg-etiqueta { margin-bottom: 24px; }
.jmg-taller-intro > .jmg-display { max-width: 14em; margin: 0; }
.jmg-capitulo { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: end; }
.jmg-capitulo + .jmg-capitulo { margin-top: clamp(96px, 12vw, 180px); }
.jmg-cap-media { grid-column: 1 / span 8; position: relative; padding-bottom: 12%; }
.jmg-cap-fondo { width: 88%; overflow: hidden; }
.jmg-cap-fondo img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.jmg-cap-frente { position: absolute !important; right: 0; bottom: 0; width: 40%; overflow: hidden; outline: 10px solid var(--wp--preset--color--gamuza); }
.jmg-cap-frente img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.jmg-capitulo--alto .jmg-cap-fondo { width: 62%; }
.jmg-capitulo--alto .jmg-cap-fondo img { aspect-ratio: 3 / 4; }
.jmg-capitulo--alto .jmg-cap-frente { width: 42%; bottom: -4%; }
.jmg-cap-texto { grid-column: 9 / span 4; padding-bottom: 14%; }
.jmg-cap-texto > * { margin: 0; }
.jmg-cap-num {
	font-family: var(--wp--preset--font-family--display); font-weight: 300; font-variation-settings: "opsz" 72;
	font-size: clamp(3rem, 6vw, 5.5rem); line-height: 1; color: var(--wp--preset--color--suela); margin-bottom: 16px !important;
}
.jmg-cap-texto h3 { margin-bottom: 12px; }
.jmg-cap-texto p:not(.jmg-cap-num) { color: var(--wp--preset--color--hilo); max-width: 26em; }
.jmg-capitulo--inv .jmg-cap-media { grid-column: 5 / span 8; grid-row: 1; }
.jmg-capitulo--inv .jmg-cap-fondo { margin-left: auto; }
.jmg-capitulo--inv .jmg-cap-frente { right: auto; left: 0; }
.jmg-capitulo--inv .jmg-cap-texto { grid-column: 1 / span 4; grid-row: 1; }
@media (max-width: 1023px) {
	.jmg-cap-media, .jmg-capitulo--inv .jmg-cap-media { grid-column: 1 / -1; grid-row: auto; }
	.jmg-cap-texto, .jmg-capitulo--inv .jmg-cap-texto { grid-column: 1 / -1; grid-row: auto; padding: 40px 0 0; }
}

/* ── trabajos (galería) ── */
.jmg-trabajos { padding-block: var(--jmg-seccion); }
.jmg-trabajos-intro { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: end; margin-bottom: clamp(48px, 6vw, 88px); }
.jmg-trabajos-intro > div { grid-column: 1 / span 6; }
.jmg-trabajos-intro > div > .jmg-etiqueta { margin-bottom: 24px; }
.jmg-trabajos-intro .jmg-bajada { grid-column: 8 / span 5; }
.jmg-galeria { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; grid-auto-flow: dense; }
.jmg-galeria .wp-block-image { position: relative; margin: 0; background: var(--wp--preset--color--lino); overflow: hidden; grid-column: span 3; }
.jmg-galeria .wp-block-image a { display: block; height: 100%; cursor: zoom-in; }
.jmg-galeria .wp-block-image img { width: 100%; height: 100%; aspect-ratio: 1; object-fit: cover; transition: transform 0.9s var(--jmg-ease); }
.jmg-galeria .wp-block-image a:hover img { transform: scale(1.03); }
.jmg-galeria .jmg-producto img { object-fit: contain; padding: 10%; }
.jmg-galeria .g-a { grid-column: span 6; grid-row: span 2; }
.jmg-galeria .g-c { grid-row: span 2; }
.jmg-galeria .g-f { grid-column: span 12; }
.jmg-galeria .g-f img { aspect-ratio: 21 / 8; }
.jmg-galeria figcaption.wp-element-caption {
	position: absolute; left: 14px; bottom: 12px; margin: 0; padding: 6px 9px; background: var(--wp--preset--color--crema);
	color: var(--wp--preset--color--tinta); font-size: 0.72rem; font-weight: 600; font-stretch: 125%; letter-spacing: 0.16em; text-transform: uppercase; line-height: 1.3;
}
.jmg-video a::after {
	content: ""; position: absolute; inset: 0; margin: auto; width: 64px; height: 64px; border-radius: 50%;
	background: rgba(243, 238, 229, 0.92) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath d='M26 21l17 11-17 11z' fill='%2316142B'/%3E%3C/svg%3E") center / 64px no-repeat;
}
@media (max-width: 1023px) {
	.jmg-trabajos-intro > div, .jmg-trabajos-intro .jmg-bajada { grid-column: 1 / -1; }
	.jmg-trabajos-intro .jmg-bajada { margin-top: 24px; }
	.jmg-galeria { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.jmg-galeria .wp-block-image { grid-column: span 1 !important; grid-row: auto !important; display: flex; flex-direction: column; }
	.jmg-galeria .g-a, .jmg-galeria .g-f, .jmg-galeria .g-i { grid-column: span 2 !important; }
	.jmg-galeria .wp-block-image img { aspect-ratio: 1; height: auto; }
	.jmg-galeria .g-a img, .jmg-galeria .g-i img { aspect-ratio: 4 / 3; }
	.jmg-galeria .g-f img { aspect-ratio: 16 / 9; }
	.jmg-galeria figcaption.wp-element-caption { position: static; background: none; padding: 10px 12px 12px; font-size: 0.62rem; letter-spacing: 0.12em; }
	.jmg-video a::after { bottom: 34px; }
}

/* ── clientes ── */
.jmg-clientes { padding-bottom: var(--jmg-seccion); }
.jmg-clientes-lista { gap: 28px clamp(28px, 4vw, 56px); padding-block: 32px; margin-top: 36px !important; border-block: 1px solid var(--wp--preset--color--hilo); align-items: center; }
.jmg-logo-cliente { margin: 0; }
.jmg-logo-cliente img { height: auto; width: auto; max-height: 46px; max-width: 140px; opacity: 0.78; }
.jmg-logo-texto { margin: 0; font-weight: 700; font-size: 0.95rem; font-stretch: 125%; letter-spacing: 0.14em; text-transform: uppercase; opacity: 0.78; }

/* ── certificación ── */
.jmg-cert { padding-block: var(--jmg-seccion); }
.jmg-cert-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; align-items: start; }
.jmg-plano-fig { grid-column: 1 / span 6; position: sticky; top: calc(var(--jmg-header) + 40px); margin: 0; }
.jmg-cert-copy { grid-column: 8 / span 5; }
.jmg-cert-copy > .jmg-etiqueta { margin-bottom: 24px; }
.jmg-cert-copy > .jmg-display { margin: 0 0 24px; }
svg.jmg-plano { width: 100%; height: auto; overflow: visible; }
.jmg-plano .canto { fill: none; stroke: var(--wp--preset--color--crema); stroke-width: 2.6; stroke-linejoin: round; stroke-linecap: round; }
.jmg-plano .costura { fill: none; stroke: var(--wp--preset--color--hilo); stroke-width: 1.2; stroke-dasharray: 5 5; }
.jmg-plano .fino { fill: none; stroke: var(--wp--preset--color--hilo); stroke-width: 1.2; }
.jmg-plano .guia { fill: none; stroke: var(--wp--preset--color--hilo); stroke-width: 1; opacity: 0.7; }
.jmg-plano .punto, .jmg-plano .disco { fill: var(--wp--preset--color--suela); }
.jmg-plano .num { fill: var(--wp--preset--color--crema); font: 600 22px var(--wp--preset--font-family--texto); }
.jmg-sello {
	margin-top: 40px !important; padding: 26px 28px; position: relative; display: grid; grid-template-columns: repeat(3, auto); gap: 20px; justify-content: space-between;
	border: 1px solid rgba(207, 197, 180, 0.35); background: rgba(22, 20, 43, 0.35);
}
.jmg-sello::before { content: ""; position: absolute; inset: 10px; pointer-events: none; border: 1.5px dashed var(--wp--preset--color--suela); opacity: 0.7; }
.jmg-sello p { margin: 0; position: relative; }
.jmg-sello .jmg-cifra { margin-top: 8px; font-size: 1.05rem; }
ol.jmg-leyenda { list-style: none; padding: 0; margin-top: 40px; display: grid; gap: 10px; counter-reset: n; }
.jmg-leyenda li { counter-increment: n; display: grid; grid-template-columns: 28px 1fr; gap: 10px; margin: 0; font-size: 0.9375rem; line-height: 1.45; color: var(--wp--preset--color--hilo); }
.jmg-leyenda li::before {
	content: counter(n); width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center;
	background: var(--wp--preset--color--suela); color: var(--wp--preset--color--crema); font-size: 0.75rem; font-weight: 600;
}
.jmg-talles { margin-top: 40px; display: flex; flex-direction: column-reverse; }
.jmg-talles table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums slashed-zero; font-size: 1rem; }
.jmg-talles th, .jmg-talles td { border: 0; border-bottom: 1px solid rgba(207, 197, 180, 0.3); padding: 10px 0; text-align: left; font-weight: 400; }
.jmg-talles thead { border: 0; }
.jmg-talles thead th { font-size: 0.7rem; font-weight: 600; font-stretch: 125%; letter-spacing: 0.14em; text-transform: uppercase; color: var(--wp--preset--color--hilo); }
.jmg-talles td:first-child { font-weight: 600; }
.jmg-talles figcaption { margin: 0 0 12px; text-align: left; font-size: 0.72rem; font-weight: 600; font-stretch: 125%; letter-spacing: 0.16em; text-transform: uppercase; color: var(--wp--preset--color--hilo); }
@media (max-width: 1023px) {
	.jmg-plano-fig, .jmg-cert-copy { grid-column: 1 / -1; position: static; }
	.jmg-plano-fig { margin-bottom: 48px; max-width: 560px; }
	.jmg-sello { grid-template-columns: 1fr; }
}

/* ── trade ── */
.jmg-trade { padding-block: var(--jmg-seccion); }
.jmg-trade-intro { margin-bottom: clamp(48px, 6vw, 80px); }
.jmg-trade-intro > .jmg-etiqueta { margin-bottom: 24px; }
.jmg-trade-intro > .jmg-display { margin: 0 0 24px; }
.jmg-puertas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.jmg-puerta { padding: 32px 28px 36px; border-top: 3px solid var(--wp--preset--color--noche); }
.jmg-puerta h3 { margin: 0 0 10px; }
.jmg-puerta p { margin: 0; color: var(--wp--preset--color--piedra); font-size: 1rem; }
.jmg-proceso { margin-top: clamp(64px, 8vw, 112px) !important; }
ol.jmg-pasos { list-style: none; padding: 0; margin-top: 24px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px; counter-reset: p; }
.jmg-pasos li { counter-increment: p; display: grid; gap: 8px; margin: 0; font-weight: 600; }
.jmg-pasos li::before { content: counter(p); font-family: var(--wp--preset--font-family--display); font-weight: 300; font-variation-settings: "opsz" 72; font-size: 2.25rem; line-height: 1; color: var(--wp--preset--color--suela-oscura); }
.jmg-proceso hr.wp-block-separator.jmg-costura { margin-top: 24px; }
.jmg-trade-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: 24px; margin-top: clamp(64px, 8vw, 112px) !important; align-items: start; }
.jmg-trade-aside { grid-column: 1 / span 4; display: grid; gap: 28px; }
.jmg-trade-aside > * { margin: 0; }
.jmg-condiciones { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.jmg-condiciones p { margin: 0; }
.jmg-valor { margin-top: 6px !important; font-weight: 500; }
.jmg-persona { border-top: 1px solid var(--wp--preset--color--hilo); padding-top: 24px; }
.jmg-persona > * { margin: 0; }
.jmg-persona > .jmg-etiqueta { margin-bottom: 12px; }
.jmg-persona-nombre { font-family: var(--wp--preset--font-family--display); font-weight: 340; font-variation-settings: "opsz" 48; font-size: 1.6rem; line-height: 1.2; }
.jmg-persona-cargo { color: var(--wp--preset--color--piedra); margin-bottom: 8px !important; }
.jmg-enlaces a { font-size: 0.8rem; font-weight: 600; font-stretch: 112%; letter-spacing: 0.12em; text-transform: uppercase; color: var(--wp--preset--color--tinta); text-decoration: none; line-height: 2.6; }
.jmg-enlaces a::after { content: " →"; }
.jmg-form { grid-column: 6 / span 7; padding: clamp(24px, 3.5vw, 48px); }
.jmg-form-titulo { font-family: var(--wp--preset--font-family--display) !important; font-weight: 340 !important; font-size: clamp(1.6rem, 2.4vw, 2rem) !important; margin: 0 0 28px !important; }
@media (max-width: 1023px) {
	.jmg-puertas { grid-template-columns: 1fr; }
	.jmg-trade-aside, .jmg-form { grid-column: 1 / -1; }
	.jmg-form { margin-top: 48px !important; }
	ol.jmg-pasos { gap: 8px; font-size: 0.8rem; }
}
@media (max-width: 640px) {
	ol.jmg-pasos { grid-template-columns: 1fr; }
	.jmg-pasos li { grid-template-columns: 40px 1fr; align-items: baseline; }
}

/* ── formulario (Contact Form 7, ver README del theme) ── */
.jmg-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 28px; }
.jmg-campo { display: grid; gap: 8px; min-width: 0; margin: 0; }
.jmg-campo--ancho { grid-column: 1 / -1; }
.jmg-campo > span:first-child {
	font-size: 0.7rem; font-weight: 600; font-stretch: 112%; letter-spacing: 0.12em; text-transform: uppercase; color: var(--wp--preset--color--piedra);
}
.jmg-form .wpcf7-form-control:not(.wpcf7-submit):not(.wpcf7-checkbox):not(.wpcf7-radio):not(.wpcf7-file) {
	width: 100%; min-height: 48px; padding: 12px 14px; background: #fff; border: 1px solid var(--wp--preset--color--hilo); border-radius: 2px;
	font: inherit; font-size: 1rem; color: var(--wp--preset--color--tinta);
}
.jmg-form *, .jmg-form *::before, .jmg-form *::after { box-sizing: border-box; }
.jmg-form .wpcf7-form-control-wrap { display: block; }
.jmg-form .wpcf7-form-control:focus { outline: 2px solid var(--wp--preset--color--suela-oscura); outline-offset: 0; }
.jmg-form .wpcf7-list-item { margin: 0 24px 0 0; display: inline-flex; align-items: center; min-height: 36px; }
.jmg-form .wpcf7-list-item input { accent-color: var(--wp--preset--color--noche); width: 18px; height: 18px; margin-right: 8px; }
.jmg-form .wpcf7-file { padding: 10px; border: 1px dashed var(--wp--preset--color--hilo); width: 100%; }
.jmg-form .wpcf7-submit {
	min-height: 48px; padding: 0 1.5em; background: var(--wp--preset--color--noche); color: var(--wp--preset--color--crema); border: 0; border-radius: 2px; cursor: pointer;
	font-size: 0.8rem; font-weight: 600; font-stretch: 112%; letter-spacing: 0.12em; text-transform: uppercase;
}
.jmg-form .wpcf7-submit:hover { background: var(--wp--preset--color--tinta); }
.jmg-form .wpcf7-not-valid-tip { color: var(--wp--preset--color--error, #9D2A1E); font-size: 0.85rem; }
.jmg-form .wpcf7-response-output { margin: 18px 0 0 !important; padding: 12px 14px !important; border-radius: 2px; }
.jmg-aviso-admin { padding: 10px 12px; background: #fff6c2; border: 1px dashed #b38f00; font-size: 0.85rem; }
@media (max-width: 640px) { .jmg-campos { grid-template-columns: 1fr; } }

/* ── footer ── */
.jmg-footer { margin-top: 0 !important; }
.jmg-footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 32px; padding-block: 72px 88px; }
.jmg-footer-grid p { margin: 0; font-size: 0.9375rem; }
.jmg-footer-grid .jmg-etiqueta { margin-bottom: 12px; color: var(--wp--preset--color--hilo); }
.jmg-footer a { color: var(--wp--preset--color--crema); }
.jmg-footer-logo { margin: 0; }
.jmg-footer-logo img { width: 132px; height: auto; }
@media (max-width: 760px) { .jmg-footer-grid { grid-template-columns: 1fr 1fr; } .jmg-footer-logo { grid-column: 1 / -1; } }

/* ── lightbox ── */
.jmg-lightbox { width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: var(--wp--preset--color--tinta); color: var(--wp--preset--color--crema); }
.jmg-lightbox[open] { display: grid; grid-template-rows: 1fr auto; place-items: center; }
.jmg-lightbox::backdrop { background: transparent; }
.jmg-lb-media { width: min(92vw, 1200px); height: calc(100dvh - 140px); display: grid; place-items: center; }
.jmg-lb-media img, .jmg-lb-media video { max-width: 100%; max-height: calc(100dvh - 140px); width: auto; height: auto; object-fit: contain; }
.jmg-lb-media .jmg-lb-producto { background: var(--wp--preset--color--crema); padding: 5%; }
.jmg-lb-cap { padding: 18px 0 28px; margin: 0; }
.jmg-lb-btn {
	position: absolute; min-width: 48px; min-height: 48px; padding: 0 14px; background: transparent; color: var(--wp--preset--color--crema);
	border: 1px solid rgba(243, 238, 229, 0.4); border-radius: 2px; cursor: pointer; font: 600 0.72rem/1 var(--wp--preset--font-family--texto); letter-spacing: 0.14em; text-transform: uppercase;
}
.jmg-lb-btn:hover { background: rgba(243, 238, 229, 0.1); }
.jmg-lb-cerrar { top: 20px; right: 20px; }
.jmg-lb-prev { left: 20px; top: 50%; translate: 0 -50%; font-size: 1.1rem; }
.jmg-lb-sig { right: 20px; top: 50%; translate: 0 -50%; font-size: 1.1rem; }
@media (max-width: 640px) { .jmg-lb-prev, .jmg-lb-sig { top: auto; bottom: 16px; translate: none; } }

/* ── estados iniciales de animación: solo con JS activo y sin reduced-motion ── */
.jmg-animando .jmg-revelar { opacity: 0; transform: translateY(24px); }
.jmg-animando .jmg-cap-media .wp-block-image { clip-path: inset(100% 0 0 0); }
.jmg-animando .jmg-anim hr.wp-block-separator.jmg-costura { clip-path: inset(0 100% 0 0); }
.jmg-animando .jmg-callouts li { opacity: 0; }
