/* =========================================================
   gio · Estilos de marca para WordPress + WooCommerce + AsapTheme
   Colores y tipografía editables en :root
   ========================================================= */
:root {
  --gio-grafito: #1F2A36;
  --gio-ambar: #F2AE2E;
  --gio-coral: #E8734A;
  --gio-salvia: #8FA89A;
  --gio-roble: #B98A5E;
  --gio-niebla: #EEF1F4;
  --gio-fondo: #F7F8F9;
  --gio-blanco: #FFFFFF;
  --gio-ambar-claro: #FBEFD6;
  --gio-coral-claro: #FBE3D9;
  --gio-salvia-claro: #E3EBE6;
  --gio-roble-claro: #EFE6DC;
  --gio-texto-suave: #4A5763;
  --gio-borde: #DCE1E6;
  --gio-borde-fuerte: #C3CBD3;
  --gio-exito: #3F5A4C;
  --gio-peligro: #8A3A1E;
  --gio-fuente: "Figtree", system-ui, -apple-system, "Segoe UI", sans-serif;
  --gio-radio: 22px;
  --gio-radio-chico: 14px;
  --gio-sombra: 0 16px 32px rgba(31, 42, 54, .08);
}

body { overflow-x: clip; }
.gio-seccion, .gio-tarjeta, .gio-disena, .gio-mis-disenos, .woocommerce, .wc-block-components-sidebar-layout, .gio-filtros, .gio-chips, .gio-acceso, .gio-form { font-family: var(--gio-fuente); }

/* ---------- Secciones y tipografía ---------- */
.gio-seccion { padding: clamp(48px, 7vw, 88px) clamp(16px, 4vw, 32px); margin-top: 0; margin-bottom: 0; }
.gio-seccion.alignfull { width: 100vw; max-width: 100vw; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); box-sizing: border-box; }
.gio-seccion > * + * { margin-top: 24px; }
/* Contenedor propio: el ancho no depende del tema (AsapTheme u otro). */
.gio-seccion > *, .gio-seccion.alignfull > * { max-width: min(1200px, 100%) !important; width: 100%; margin-left: auto !important; margin-right: auto !important; box-sizing: border-box; }
/* Temas clásicos envuelven el grupo en .wp-block-group__inner-container: su contenido usa todo el ancho. */
.gio-seccion > .wp-block-group__inner-container > *, .is-style-gio-tarjeta > .wp-block-group__inner-container > *, .gio-encabezado-seccion > .wp-block-group__inner-container > * { max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }
.gio-seccion > .wp-block-group__inner-container > * + * { margin-top: 24px; }
.gio-encabezado-seccion > .wp-block-group__inner-container { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px 24px; }
.is-style-gio-tarjeta > .wp-block-group__inner-container > :first-child { margin-top: 0; }
.is-style-gio-tarjeta > .wp-block-group__inner-container > :last-child { margin-bottom: 0; }
.gio-seccion h2, .gio-seccion h3, .is-style-gio-tarjeta h2, .is-style-gio-tarjeta h3, .gio-bloque-producto h2, .gio-bloque-producto h3, .gio-legal h2 { font-family: var(--gio-fuente); font-weight: 700; letter-spacing: -.02em; line-height: 1.15; }
.gio-seccion h2:not(.gio-titulo-grande) { font-size: clamp(1.75rem, 3vw, 2.25rem); }
.gio-seccion h3, .is-style-gio-tarjeta h3 { font-size: 1.25rem; }
/* Secciones que aún no tienen contenido (videos sin enlace, sin reseñas) no se muestran en la web; en el editor sí. */
body:not(.block-editor-iframe__body) .gio-seccion--videos:not(:has(iframe)),
body:not(.block-editor-iframe__body) .gio-seccion--resenas:not(:has(.gio-resena)),
body:not(.block-editor-iframe__body) .gio-videos-bloque:not(:has(iframe)) { display: none; }
.gio-seccion--hero { padding-top: clamp(32px, 5vw, 64px); }
.gio-seccion--pagina { padding-top: 8px; padding-bottom: 48px; }
/* Botones propios: los estilos genéricos de <button> del tema no los afectan. */
button.gio-chip, button.gio-necesidad, a.gio-chip { box-shadow: none !important; text-transform: none !important; letter-spacing: normal !important; }
button.gio-chip { background: #fff !important; color: var(--gio-grafito) !important; border: 1px solid var(--gio-borde-fuerte) !important; border-radius: 999px !important; padding: 0 18px !important; }
button.gio-chip[aria-pressed="true"] { background: var(--gio-grafito) !important; color: #fff !important; border-color: var(--gio-grafito) !important; }
button.gio-necesidad { background: #fff !important; color: var(--gio-grafito) !important; border: 2px solid var(--gio-borde) !important; border-radius: 14px !important; padding: 8px 16px !important; width: 100%; }
button.gio-necesidad[aria-pressed="true"] { border-color: var(--gio-grafito) !important; }
button.gio-enlace-peligro { background: none !important; color: var(--gio-peligro) !important; border: 0 !important; }
.gio-titulo-grande { font-size: clamp(2.25rem, 5vw, 4rem); line-height: 1.04; letter-spacing: -.03em; font-weight: 700; margin: 0 0 20px; }
.gio-titulo-seccion { font-size: clamp(1.75rem, 3vw, 2.25rem); line-height: 1.12; letter-spacing: -.02em; font-weight: 700; margin: 0 0 8px; }
.gio-lead { font-size: clamp(1.0625rem, 1.6vw, 1.1875rem); line-height: 1.6; color: var(--gio-texto-suave); max-width: 62ch; }
.has-gio-grafito-background-color .gio-lead, .gio-seccion--oscura .gio-lead { color: #C9D2DB; }
.gio-texto-suave { color: var(--gio-texto-suave); }
.gio-meta { font-size: .9375rem; color: var(--gio-texto-suave); }
.gio-subtitulo { font-size: 1.375rem; font-weight: 700; margin: 0 0 16px; }
.gio-encabezado-seccion { align-items: flex-end; gap: 12px 24px; margin-bottom: 8px; }
.gio-encabezado-seccion > * { margin: 0; }
.gio-enlace-seccion a { font-weight: 600; color: inherit; }
.gio-seccion a:not(.wp-block-button__link):not(.button), .gio-tarjeta a:not(.wp-block-button__link):not(.button) { color: inherit; text-underline-offset: 3px; }

/* ---------- Botones ---------- */
/* Selectores reforzados para que los estilos del tema no cambien los botones de marca. */
.wp-block-buttons .wp-block-button .wp-block-button__link, a.gio-boton, button.gio-boton, span.gio-boton {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-height: 48px; padding: 0 26px !important; border-radius: 999px !important; border: 2px solid var(--gio-grafito) !important;
  background: var(--gio-grafito) !important; color: #fff !important; font-family: var(--gio-fuente); font-weight: 600; font-size: 1rem;
  text-decoration: none !important; cursor: pointer; transition: background-color .15s, color .15s; box-shadow: none;
}
.wp-block-buttons .wp-block-button .wp-block-button__link:hover, a.gio-boton:hover, button.gio-boton:hover { background: #2C3A48 !important; color: #fff !important; }
.wp-block-buttons .wp-block-button.is-style-gio-ambar .wp-block-button__link, a.gio-boton--ambar, span.gio-boton--ambar { background: var(--gio-ambar) !important; border-color: var(--gio-ambar) !important; color: var(--gio-grafito) !important; }
.wp-block-buttons .wp-block-button.is-style-gio-ambar .wp-block-button__link:hover, a.gio-boton--ambar:hover { background: #E59F1C !important; color: var(--gio-grafito) !important; }
.wp-block-buttons .wp-block-button.is-style-gio-borde .wp-block-button__link, a.gio-boton--borde, button.gio-boton--borde { background: transparent !important; color: var(--gio-grafito) !important; }
.wp-block-buttons .wp-block-button.is-style-gio-borde .wp-block-button__link:hover, a.gio-boton--borde:hover, button.gio-boton--borde:hover { background: var(--gio-grafito) !important; color: #fff !important; }
.wp-block-buttons .wp-block-button.is-style-gio-claro .wp-block-button__link, a.gio-boton--claro { background: #fff !important; border-color: #fff !important; color: var(--gio-grafito) !important; }
.has-gio-grafito-background-color .wp-block-buttons .wp-block-button:not(.is-style-gio-ambar) .wp-block-button__link { background: #fff !important; border-color: #fff !important; color: var(--gio-grafito) !important; }
.gio-botones { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.gio-enlace-peligro { background: none; border: 0; padding: 12px 8px; color: var(--gio-peligro); text-decoration: underline; cursor: pointer; font: inherit; }

/* ---------- Tarjetas, rejillas y chips ---------- */
.is-style-gio-tarjeta { border-radius: var(--gio-radio); padding: clamp(20px, 3vw, 28px); }
.is-style-gio-tarjeta > :first-child { margin-top: 0; }
.is-style-gio-tarjeta > :last-child { margin-bottom: 0; }
.is-style-gio-tarjeta h3 { font-size: 1.25rem; margin: 12px 0 6px; }
.is-style-gio-tarjeta h3 a { text-decoration: none; }
.is-style-gio-tarjeta h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.gio-tarjeta--categoria, .gio-tarjeta--necesidad { position: relative; height: 100%; box-sizing: border-box; transition: transform .15s; }
.gio-tarjeta--categoria:hover, .gio-tarjeta--necesidad:hover { transform: translateY(-2px); }
.gio-tarjeta__img img { width: 100%; height: 160px; object-fit: contain; border-radius: var(--gio-radio-chico); }
.gio-tarjeta--banner { padding: clamp(28px, 5vw, 48px); }
.gio-tarjeta--oscura, .gio-tarjeta--oscura h3 { color: #fff; }
.gio-tarjeta--logo { display: flex; align-items: center; justify-content: center; min-height: 280px; }
.gio-tarjeta--acceso { box-shadow: var(--gio-sombra); }
.gio-rejilla { gap: 20px; flex-wrap: wrap !important; }
.gio-rejilla > .wp-block-column { flex: 1 1 240px !important; }
.gio-rejilla--5 > .wp-block-column { flex: 1 1 190px !important; }
.gio-rejilla--compacta > .wp-block-column { flex: 1 1 180px !important; }
.gio-dos-columnas { gap: clamp(24px, 4vw, 48px); flex-wrap: wrap !important; }
.gio-dos-columnas > .wp-block-column { flex: 1 1 320px; }
.gio-hero { align-items: center !important; gap: clamp(24px, 4vw, 48px); flex-wrap: wrap !important; }
.gio-hero > .wp-block-column { flex: 1 1 360px; }
.gio-hero__img img { width: 100%; height: auto; border-radius: 28px; }
.gio-banner { align-items: center !important; gap: 32px; flex-wrap: wrap !important; }
.gio-banner > .wp-block-column { flex: 1 1 300px; }
.gio-banner > .wp-block-column:first-child { flex: 0 1 200px; }
.gio-logo-img img { width: 100%; max-width: 240px; height: auto; }
.gio-logo-img--chico img { max-width: 96px; }

.gio-chips, .gio-lista-chips, .gio-chips-lista { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 16px 0; }
.gio-lista-chips li, .gio-chips-lista li { margin: 0; }
.gio-chip, .gio-lista-chips a, .gio-chips-lista a {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border-radius: 999px;
  border: 1px solid var(--gio-borde-fuerte); background: #fff; color: var(--gio-grafito); font-weight: 600; font-size: .9375rem;
  text-decoration: none; cursor: pointer; font-family: var(--gio-fuente);
}
.gio-chip[aria-pressed="true"], .gio-chip[aria-current="page"], .gio-chips-lista .current-cat a { background: var(--gio-grafito); border-color: var(--gio-grafito); color: #fff; }
.gio-chip--sub { min-height: 38px; font-weight: 500; }
.gio-chip__punto { width: 14px; height: 14px; border-radius: 50%; border: 1px solid rgba(31, 42, 54, .15); }

.is-style-gio-pregunta { background: #fff; border: 1px solid var(--gio-borde); border-radius: var(--gio-radio-chico); padding: 16px 20px; margin: 10px 0; }
.is-style-gio-pregunta summary { font-weight: 600; cursor: pointer; }
.is-style-gio-pregunta[open] summary { margin-bottom: 10px; }

.gio-aviso-admin { border: 2px dashed var(--gio-ambar); border-radius: var(--gio-radio-chico); padding: 14px 18px; background: var(--gio-ambar-claro); color: var(--gio-grafito); font-size: .9375rem; }
.gio-alerta { border-radius: var(--gio-radio-chico); padding: 16px 20px; background: var(--gio-ambar-claro); margin: 0 0 20px; }
.gio-alerta--ok { background: var(--gio-salvia-claro); }
.gio-alerta--error { background: var(--gio-coral-claro); }
.gio-vacio { text-align: left; padding: 32px; border-radius: var(--gio-radio); background: #fff; }

/* ---------- Videos cortos ---------- */
.gio-videos .wp-block-embed { margin: 0; }
.gio-videos .wp-block-embed__wrapper { border-radius: 20px; overflow: hidden; }
.gio-videos .wp-embed-aspect-16-9 .wp-block-embed__wrapper::before { padding-top: 177.78%; }

/* ---------- Reseñas y producto en artículo ---------- */
.gio-resenas { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.gio-resena { margin: 0; background: #fff; border: 1px solid var(--gio-borde); border-radius: var(--gio-radio); padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.gio-resena blockquote { margin: 0; padding: 0; border: 0; font-size: 1.0625rem; line-height: 1.55; font-style: normal; }
.gio-resena figcaption { font-size: .875rem; color: var(--gio-texto-suave); }
.gio-estrellas, .star-rating span::before, .wc-block-components-product-rating__stars span::before { color: #B7790B; }
.gio-producto-inline { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; padding: 16px; border: 1px solid var(--gio-borde); border-radius: var(--gio-radio); background: #fff; color: var(--gio-grafito); text-decoration: none; margin: 24px 0; }
.gio-producto-inline__img img { width: 120px; height: 120px; object-fit: cover; border-radius: 16px; display: block; }
.gio-producto-inline__texto { flex: 1 1 220px; display: flex; flex-direction: column; gap: 4px; line-height: 1.4; }
.gio-producto-inline__etiqueta { font-size: .875rem; color: var(--gio-texto-suave); }
.gio-producto-inline__nombre { font-size: 1.25rem; font-weight: 700; }
.gio-producto-inline__desc { font-size: .9375rem; color: var(--gio-texto-suave); }

/* ---------- Blog ---------- */
.gio-entradas.wp-block-latest-posts, .gio-entradas .wp-block-post-template { gap: 28px; }
.gio-entradas .wp-block-latest-posts__featured-image img, .gio-entradas .wp-block-post-featured-image img { border-radius: 20px; aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.gio-entradas .wp-block-latest-posts__post-title, .gio-entradas .wp-block-post-title a { font-size: 1.25rem; font-weight: 700; color: var(--gio-grafito); text-decoration: none; line-height: 1.3; }
.gio-entrada-cluster a { font-size: .875rem; font-weight: 600; color: #8A4A2A; text-decoration: none; }
.gio-destacado .wp-block-post-template { grid-template-columns: 1fr !important; }
.gio-destacado .wp-block-post { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: center; background: var(--gio-grafito); color: #EEF1F4; border-radius: 28px; overflow: hidden; padding-right: 36px; }
.gio-destacado .wp-block-post > :not(.wp-block-post-featured-image) { grid-column: 2; }
.gio-destacado .wp-block-post-featured-image { grid-row: 1 / span 4; margin: 0; }
.gio-destacado .wp-block-post-featured-image img { border-radius: 0; height: 100%; }
.gio-destacado .wp-block-post-title a { color: #fff; font-size: clamp(1.5rem, 3vw, 2.125rem); }
.gio-destacado .gio-entrada-cluster a { color: var(--gio-ambar); }
@media (max-width: 720px) {
  .gio-destacado .wp-block-post { grid-template-columns: 1fr; padding: 0 0 24px; }
  .gio-destacado .wp-block-post > * { grid-column: 1 !important; padding: 0 20px; }
  .gio-destacado .wp-block-post-featured-image { grid-row: auto; padding: 0; }
}

/* ---------- Legales y pie ---------- */
.gio-legal { max-width: 760px; font-size: 1.0625rem; line-height: 1.7; }
.gio-legal h2 { font-size: 1.5rem; margin-top: 2em; }
.gio-pie-caja { padding: 48px clamp(16px, 4vw, 32px); border-radius: var(--gio-radio); }
.gio-pie-caja a { color: #C9D2DB; text-decoration: none; }
.gio-lista-simple { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 8px; }

/* ---------- Pasos de compra ---------- */
.gio-pasos { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0 0 24px; counter-reset: paso; }
.gio-pasos li { counter-increment: paso; display: flex; align-items: center; gap: 8px; padding: 8px 16px 8px 8px; border-radius: 999px; background: #fff; border: 1px solid var(--gio-borde); font-weight: 500; font-family: var(--gio-fuente); margin: 0; }
.gio-pasos li::before { content: counter(paso); width: 28px; height: 28px; border-radius: 50%; background: var(--gio-niebla); display: inline-flex; align-items: center; justify-content: center; font-weight: 700; }
.gio-pasos li.is-actual { background: var(--gio-grafito); color: #fff; border-color: var(--gio-grafito); font-weight: 700; }
.gio-pasos li.is-actual::before { background: var(--gio-ambar); color: var(--gio-grafito); }
.gio-pasos li.is-hecho { background: var(--gio-salvia-claro); border-color: var(--gio-salvia-claro); }
.gio-pasos li.is-hecho::before { content: "✓"; background: var(--gio-exito); color: #fff; }
.gio-pasos a { color: inherit; text-decoration: none; }

/* ---------- Iconos de cabecera (en el menú) ---------- */
.gio-menu-icono { display: inline-flex; align-items: center; position: relative; list-style: none; }
.gio-iconos { display: inline-flex; gap: 8px; align-items: center; }
.gio-menu-icono .gio-icono-btn, .gio-iconos .gio-icono-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: 44px; height: 44px; border-radius: 999px !important; border: 0 !important; background: var(--gio-niebla) !important; color: var(--gio-grafito) !important; cursor: pointer; padding: 0 12px !important; text-decoration: none; box-shadow: none !important; }
.gio-menu-icono .gio-icono-btn svg { color: var(--gio-grafito); }
.gio-icono-texto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.gio-carrito-btn { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 18px; border-radius: 999px; background: var(--gio-grafito); color: #fff !important; font-weight: 600; text-decoration: none; white-space: nowrap; }
.gio-cart-count { display: inline-flex; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px; background: var(--gio-ambar); color: var(--gio-grafito); font-size: .8125rem; font-weight: 700; align-items: center; justify-content: center; box-sizing: border-box; }
.gio-buscador { display: none; position: absolute; top: calc(100% + 8px); right: 0; z-index: 50; background: #fff; border-radius: 16px; padding: 10px; box-shadow: var(--gio-sombra); width: min(360px, 86vw); }
.gio-menu-buscar.is-abierto .gio-buscador { display: block; }
.gio-buscador input[type="search"] { width: 100%; height: 44px; border-radius: 999px; border: 1px solid var(--gio-borde-fuerte); padding: 0 16px; font: inherit; box-sizing: border-box; }
@media (max-width: 900px) {
  .gio-buscador { position: static; width: 100%; box-shadow: none; padding: 8px 0; }
  .gio-menu-icono .gio-icono-texto { position: static; width: auto; height: auto; clip: auto; }
}

/* ---------- Catálogo ---------- */
.gio-chips--categorias { margin: 16px 0 8px; }
.gio-chips--sub { margin: 0 0 16px; }
.gio-filtros { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-start; margin: 8px 0 24px; padding: 12px; background: #fff; border: 1px solid var(--gio-borde); border-radius: var(--gio-radio); }
.gio-filtro { position: relative; }
.gio-filtro > summary { list-style: none; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 999px; background: var(--gio-niebla); font-weight: 600; cursor: pointer; }
.gio-filtro > summary::-webkit-details-marker { display: none; }
.gio-filtro > summary::after { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); }
.gio-filtro[open] > summary { background: var(--gio-grafito); color: #fff; }
.gio-filtro__n { background: var(--gio-ambar); color: var(--gio-grafito); border-radius: 999px; padding: 0 7px; font-size: .8125rem; }
.gio-filtro__opciones { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 0 4px; max-width: 520px; }
@media (min-width: 900px) {
  .gio-filtro__opciones { position: absolute; z-index: 40; top: calc(100% + 8px); left: 0; width: max-content; background: #fff; border-radius: 18px; padding: 14px; box-shadow: var(--gio-sombra); }
}
.gio-filtros__limpiar { align-self: center; padding: 0 12px; font-weight: 600; color: var(--gio-peligro); }
.gio-texto-seo { margin-top: 48px; padding: 32px; background: #fff; border-radius: var(--gio-radio); max-width: 100%; }

/* Tarjetas de producto (lista clásica de WooCommerce) */
.woocommerce ul.products li.product, .woocommerce-page ul.products li.product { background: #fff; border-radius: var(--gio-radio); padding: 14px 14px 20px; box-sizing: border-box; text-align: left; }
.woocommerce ul.products li.product a img { border-radius: 16px; background: var(--gio-fondo); margin-bottom: 12px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1.125rem !important; font-weight: 700; color: var(--gio-grafito); padding: 0 !important; }
.woocommerce ul.products li.product .price { color: var(--gio-grafito) !important; font-weight: 700; font-size: 1.0625rem !important; }
.gio-card-desc { font-size: .875rem; color: var(--gio-texto-suave); margin: 4px 0 8px; line-height: 1.4; }
.gio-seccion--oscura ul.products li.product { color: var(--gio-grafito); }
.woocommerce span.onsale { background: var(--gio-coral); color: var(--gio-grafito); border-radius: 999px; min-height: auto; line-height: 1; padding: 8px 12px; font-weight: 700; }

/* Botones de WooCommerce */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt, .wc-block-components-button:not(.is-link) {
  border-radius: 999px !important; background: var(--gio-grafito) !important; color: #fff !important; font-weight: 600 !important;
  font-family: var(--gio-fuente) !important; padding: 12px 24px !important; border: 0 !important; min-height: 44px;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .wc-block-components-button:not(.is-link):hover { background: #2C3A48 !important; }
.woocommerce button.button.gio-comprar-ahora, .wc-block-components-checkout-place-order-button { background: var(--gio-ambar) !important; color: var(--gio-grafito) !important; }
.woocommerce button.button.gio-comprar-ahora { width: 100%; margin-top: 12px; min-height: 52px; }

/* ---------- Ficha de producto ---------- */
.woocommerce div.product .product_title { font-family: var(--gio-fuente); font-weight: 700; font-size: clamp(2rem, 4vw, 3.25rem); letter-spacing: -.03em; line-height: 1.02; }
.gio-producto-secciones .gio-bloque-producto, .gio-producto-secciones .gio-bloque-producto > *, .gio-producto-secciones .gio-bloque-producto > .wp-block-group__inner-container > *, .gio-producto-secciones .gio-videos-bloque > * , .gio-producto-secciones .gio-videos-bloque > .wp-block-group__inner-container > * { max-width: 100% !important; margin-left: 0 !important; margin-right: 0 !important; }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--gio-grafito); font-size: 1.625rem; font-weight: 700; }
.woocommerce div.product div.images img { border-radius: 24px; }
.woocommerce div.product form.cart .variations td, .woocommerce div.product form.cart .variations th { display: block; padding: 0; }
.woocommerce div.product form.cart .variations label { font-weight: 700; }
.woocommerce div.product form.cart .quantity .qty { height: 52px; border-radius: 999px; border: 1px solid var(--gio-borde-fuerte); width: 84px; }
.woocommerce div.product form.cart .single_add_to_cart_button { min-height: 52px; }
.gio-variante.is-listo select { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); opacity: 0; }
.gio-muestras { display: flex; flex-wrap: wrap; gap: 12px; margin: 8px 0; }
.gio-muestra { min-width: 44px; height: 44px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--gio-borde-fuerte); background: #fff; font: inherit; font-weight: 600; cursor: pointer; color: var(--gio-grafito); }
.woocommerce .gio-muestra { border-radius: 999px !important; }
.woocommerce .gio-muestra--color { width: 48px; height: 48px; padding: 0 !important; background: var(--gio-muestra) !important; border: 4px solid #fff !important; box-shadow: 0 0 0 1px var(--gio-borde-fuerte); }
.woocommerce .gio-muestra[aria-pressed="true"] { box-shadow: 0 0 0 3px var(--gio-grafito); }
.woocommerce div.product form.cart table.variations, .woocommerce div.product form.cart table.variations tr, .woocommerce div.product form.cart table.variations td, .woocommerce div.product form.cart table.variations th { border: 0 !important; background: transparent !important; }
.woocommerce div.product form.cart .reset_variations { font-size: .875rem; }
.gio-muestra:not(.gio-muestra--color)[aria-pressed="true"] { background: var(--gio-grafito); color: #fff; }
.gio-muestra:disabled { opacity: .35; cursor: not-allowed; }
.gio-variante__elegida { margin: 4px 0 0; font-size: .9375rem; color: var(--gio-texto-suave); min-height: 1.4em; }
.gio-confianza-lista { list-style: none; padding: 0; margin: 20px 0; display: flex; flex-direction: column; gap: 10px; color: #3A4652; font-size: .9375rem; }
.gio-confianza-lista li { display: flex; align-items: center; gap: 10px; margin: 0; }
.gio-confianza-lista li::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--gio-ambar); flex: none; }
.gio-confianza-lista li:nth-child(2)::before { background: var(--gio-salvia); }
.gio-confianza-lista li:nth-child(3)::before { background: var(--gio-coral); }
.gio-producto-secciones { clear: both; padding: 32px 0; }
.gio-bloque-producto .gio-titulo-seccion { margin-top: 40px; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { border-radius: 999px 999px 0 0; }
.woocommerce .upsells.products > h2, .woocommerce .related.products > h2, .woocommerce .cross-sells > h2 { font-size: clamp(1.5rem, 3vw, 2rem); letter-spacing: -.02em; }

/* ---------- Carrito y pago (bloques) ---------- */
.wc-block-cart, .wc-block-checkout { font-family: var(--gio-fuente); }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input, .wc-blocks-components-select__select { border-radius: 12px !important; }
.wc-block-components-sidebar .wc-block-components-panel, .wc-block-cart__totals-title { font-weight: 700; }
.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted, .wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted { box-shadow: inset 0 0 0 2px var(--gio-grafito) !important; border-radius: 14px; }

/* ---------- Gracias, cuenta, seguimiento ---------- */
.gio-gracias { display: flex; flex-wrap: wrap; align-items: center; gap: 32px; background: var(--gio-grafito); color: #EEF1F4; border-radius: 28px; padding: clamp(28px, 5vw, 48px); margin: 0 0 32px; }
.gio-gracias__titulo { font-size: clamp(1.75rem, 4vw, 2.75rem); letter-spacing: -.02em; color: #fff; margin: 0 0 12px; }
.gio-gracias__num { color: var(--gio-ambar); }
.gio-gracias__logo { flex: 0 0 160px; }
.gio-gracias > div:last-child { flex: 1 1 320px; }
.gio-tarjeta { display: flex; flex-direction: column; gap: 6px; background: #fff; border: 1px solid var(--gio-borde); border-radius: var(--gio-radio); padding: 22px; color: var(--gio-grafito); text-decoration: none; margin: 0 0 20px; }
.gio-tarjeta strong { font-size: 1.25rem; }
.gio-tarjeta--coral { background: var(--gio-coral-claro); border-color: var(--gio-coral-claro); }
.gio-cuenta-tarjetas { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; margin-top: 24px; }
.gio-cuenta-tarjetas .gio-tarjeta { margin: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; padding: 10px; margin: 0; background: #fff; border-radius: var(--gio-radio); display: flex; flex-direction: column; gap: 4px; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 12px 16px; border-radius: 14px; color: var(--gio-grafito); font-weight: 600; text-decoration: none; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--gio-grafito); color: #fff; }
.woocommerce-account .woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--gio-peligro); }
.gio-estado--processing, .gio-estado--gio-preparando { background: var(--gio-coral-claro); }
.gio-estado--gio-enviado { background: var(--gio-ambar-claro); }
.gio-estado--completed { background: var(--gio-salvia-claro); }
.gio-pedido__estado { align-self: flex-start; font-size: .8125rem; font-weight: 700; padding: 4px 10px; border-radius: 999px; }
.gio-pedidos { display: flex; flex-direction: column; gap: 10px; margin-bottom: 32px; }
.gio-pedido { display: grid; grid-template-columns: 1fr auto; gap: 4px 12px; padding: 16px 18px; background: #fff; border: 1px solid var(--gio-borde); border-radius: 16px; color: var(--gio-grafito); text-decoration: none; }
.gio-pedido__num { font-weight: 700; }
.gio-pedido__meta { grid-column: 1 / -1; font-size: .875rem; color: var(--gio-texto-suave); }
.gio-tracking .track_order { background: #fff; border-radius: var(--gio-radio); padding: 24px; }
.gio-timeline-caja { background: #fff; border-radius: var(--gio-radio); padding: 24px; margin: 0 0 24px; border: 1px solid var(--gio-borde); }
.gio-timeline { list-style: none; margin: 16px 0 0; padding: 0; }
.gio-timeline li { position: relative; display: flex; gap: 16px; padding: 0 0 22px; margin: 0; }
.gio-timeline li:not(:last-child)::after { content: ""; position: absolute; left: 14px; top: 32px; bottom: 0; width: 3px; background: var(--gio-borde); }
.gio-timeline li.is-hecho:not(:last-child)::after { background: var(--gio-exito); }
.gio-timeline__punto { width: 32px; height: 32px; border-radius: 50%; border: 3px solid var(--gio-borde-fuerte); background: #fff; flex: none; box-sizing: border-box; }
.gio-timeline .is-hecho .gio-timeline__punto { border-color: var(--gio-exito); background: var(--gio-salvia-claro); }
.gio-timeline .is-actual .gio-timeline__punto { border-color: var(--gio-ambar); background: var(--gio-ambar); }
.gio-timeline strong { display: block; }
.gio-timeline small { color: var(--gio-texto-suave); font-size: .875rem; }
.gio-timeline .is-pendiente strong { color: #5D6B79; font-weight: 500; }
.gio-timeline__guia { background: var(--gio-fondo); border-radius: 14px; padding: 12px 16px; }

/* ---------- Formularios y acceso ---------- */
.gio-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 20px; margin-bottom: 20px; }
.gio-form label { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: .9375rem; }
.gio-form input:not([type="checkbox"]), .gio-form select, .gio-form textarea, .gio-disena input[type="text"] { min-height: 48px; border-radius: 12px; border: 1px solid var(--gio-borde-fuerte); padding: 10px 14px; font: inherit; font-weight: 400; background: #fff; box-sizing: border-box; width: 100%; }
.gio-form__ancho { grid-column: 1 / -1; }
.gio-form__check { flex-direction: row !important; align-items: flex-start; font-weight: 400 !important; }
.gio-form__check input { width: 18px; height: 18px; margin-top: 3px; }
.gio-trampa { position: absolute !important; left: -9999px; }
@media (max-width: 640px) { .gio-form__grid { grid-template-columns: 1fr; } }
.gio-acceso__titulo { font-size: 1.5rem; font-weight: 700; margin: 8px 0 16px; }
.gio-acceso .woocommerce-form-login { border: 0 !important; padding: 0 !important; margin: 0 !important; }
.gio-acceso .woocommerce-form-row input.input-text { min-height: 48px; border-radius: 12px; }
.gio-acceso .woocommerce-form-login__submit { width: 100%; margin-top: 8px !important; }
.gio-separador { display: flex; align-items: center; gap: 12px; color: var(--gio-texto-suave); font-size: .875rem; }
.gio-separador::before, .gio-separador::after { content: ""; flex: 1; height: 1px; background: var(--gio-borde); }
.gio-google { display: flex; justify-content: center; margin: 8px 0; }
.gio-ancla { position: relative; top: -120px; }

/* ---------- Diseña tu espacio ---------- */
.gio-disena { display: flex; flex-wrap: wrap; gap: 32px; align-items: flex-start; margin: 24px 0; }
.gio-disena__panel { flex: 1 1 320px; max-width: 420px; background: #fff; border-radius: 24px; padding: 28px; display: flex; flex-direction: column; gap: 24px; box-sizing: border-box; }
.gio-disena__vista { flex: 999 1 480px; min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.gio-opciones { border: 0; margin: 0; padding: 0; }
.gio-opciones legend { font-size: 1.0625rem; font-weight: 700; margin-bottom: 12px; padding: 0; }
.gio-opciones .gio-chips { margin: 0; }
.gio-necesidades { display: flex; flex-direction: column; gap: 8px; }
.gio-necesidad { display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 8px 16px; border-radius: 14px; border: 2px solid var(--gio-borde); background: #fff; color: var(--gio-grafito); text-align: left; cursor: pointer; font: inherit; }
.gio-necesidad strong, .gio-necesidad small { display: block; }
.gio-necesidad small { color: var(--gio-texto-suave); font-size: .875rem; }
.gio-necesidad__caja { width: 26px; height: 26px; border-radius: 8px; background: var(--gio-niebla); display: inline-flex; align-items: center; justify-content: center; flex: none; color: transparent; }
.gio-necesidad[aria-pressed="true"] { border-color: var(--gio-grafito); }
.gio-necesidad[aria-pressed="true"] .gio-necesidad__caja { background: var(--gio-ambar); color: var(--gio-grafito); }
.gio-disena__lienzo, .gio-diseno__vista { border-radius: 28px; overflow: hidden; line-height: 0; }
.gio-escritorio { width: 100%; height: auto; display: block; }
.gio-disena__resumen { background: #fff; border-radius: 24px; padding: 28px; }
.gio-disena__items { list-style: none; padding: 0; margin: 0 0 16px; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.gio-disena__items a { display: grid; grid-template-columns: 56px 1fr; grid-template-rows: auto auto; column-gap: 12px; align-items: center; padding: 10px; border: 1px solid var(--gio-borde); border-radius: 16px; color: var(--gio-grafito); text-decoration: none; }
.gio-disena__items img { grid-row: 1 / span 2; width: 56px; height: 56px; object-fit: cover; border-radius: 12px; background: var(--gio-fondo); }
.gio-disena__items span { font-weight: 600; line-height: 1.3; }
.gio-disena__items .gio-precio { font-weight: 400; color: var(--gio-texto-suave); font-size: .9375rem; }
.gio-disena__total { font-size: 1.125rem; }
.gio-disena__nombre label { display: flex; flex-direction: column; gap: 6px; font-weight: 600; font-size: .9375rem; max-width: 420px; }
.gio-disena__mensaje { min-height: 1.5em; font-weight: 600; }
.gio-mis-disenos { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 24px; margin: 24px 0; }
.gio-diseno { background: #fff; border-radius: 24px; overflow: hidden; display: flex; flex-direction: column; }
.gio-diseno__vista { border-radius: 0; }
.gio-diseno__texto { padding: 22px; }
.gio-diseno__texto h3 { margin: 0 0 6px; font-size: 1.3125rem; }
.gio-diseno--nuevo { align-items: center; justify-content: center; gap: 8px; min-height: 300px; border: 2px dashed var(--gio-borde-fuerte); background: transparent; color: var(--gio-grafito); text-decoration: none; text-align: center; padding: 24px; }
.gio-diseno__mas { width: 56px; height: 56px; border-radius: 50%; background: var(--gio-coral-claro); display: inline-flex; align-items: center; justify-content: center; font-size: 1.75rem; font-weight: 700; }

/* ---------- Accesibilidad ---------- */
.gio-seccion a:focus-visible, .gio-chip:focus-visible, .gio-muestra:focus-visible, .gio-necesidad:focus-visible, .gio-boton:focus-visible, .wp-block-button__link:focus-visible, .gio-icono-btn:focus-visible, .gio-carrito-btn:focus-visible, .gio-filtro > summary:focus-visible {
  outline: 3px solid var(--gio-coral); outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
  .gio-tarjeta--categoria, .gio-tarjeta--necesidad, .wp-block-button__link, .gio-boton { transition: none; }
}
.gio-acceso .woocommerce-form-row, .gio-acceso .woocommerce-form-row input.input-text { width: 100% !important; box-sizing: border-box; display: block; }
.gio-acceso .woocommerce-form-row input.input-text { border: 1px solid var(--gio-borde-fuerte) !important; border-radius: 12px !important; padding: 10px 14px !important; }
/* En la página de pedido recibido los pasos marcan "Confirmación". */
.woocommerce-order-received .gio-pasos li { background: var(--gio-salvia-claro); border-color: var(--gio-salvia-claro); color: var(--gio-grafito); font-weight: 500; }
.woocommerce-order-received .gio-pasos li::before { content: "✓"; background: var(--gio-exito); color: #fff; }
.woocommerce-order-received .gio-pasos li:last-child { background: var(--gio-grafito); border-color: var(--gio-grafito); color: #fff; font-weight: 700; }
.woocommerce-order-received .gio-pasos li:last-child::before { content: counter(paso); background: var(--gio-ambar); color: var(--gio-grafito); }
.gio-gracias__titulo, .gio-tarjeta h3 { font-family: var(--gio-fuente); font-weight: 700; }
