/* =========================================================================
   AULA UNIVERSAL — DESIGN SYSTEM
   Tokens tomados del logo oficial de WebClass (celeste + morado). El
   celeste ("Web") es el color de navegación/enlaces; el morado ("Class")
   es el acento principal de acción (CTAs). Todo componente lee de estas
   variables, así que un ajuste de marca futuro se hace solo acá.
   ========================================================================= */

:root{
  /* Brand — colores institucionales WebClass / Aula Universal */
  --color-primary:        #2A2154;   /* morado muy oscuro — headers, footer, títulos */
  --color-primary-dark:   #1C1638;
  --color-blue:           #1CA6DC;   /* celeste ("Web") — enlaces, navegación */
  --color-blue-light:     #E3F5FC;
  --color-purple:         #5C4A9C;   /* morado ("Class") */
  --color-purple-light:   #EFEAFA;
  --color-accent:         #5C4A9C;   /* CTA principal = morado de marca */
  --color-accent-dark:    #493B7D;
  --color-accent-light:   #EFEAFA;
  --color-teal:           #12B7A0;   /* acento de categoría "Inclusión" */
  --color-teal-light:     #E4F9F6;

  /* Sub-marcas de producto (colores reales de cada catálogo) */
  --color-visual:         #FF7A29;
  --color-visual-dark:    #E0650F;
  --color-visual-light:   #FFF1E6;
  --color-audio:          #8DC63F;
  --color-audio-dark:     #5C8A1E;
  --color-audio-light:    #EEF6E0;

  /* Neutrals */
  --color-ink:            #10182B;
  --color-slate:          #4B5768;
  --color-slate-light:    #8A93A3;
  --color-bg:             #F7F9FC;
  --color-bg-alt:         #F1F4FA;
  --color-white:          #FFFFFF;
  --color-border:         #E3E8F0;
  --color-success:        #1C9A6C;

  /* Type */
  --font-heading: 'Poppins', 'Segoe UI', system-ui, sans-serif;
  --font-body: 'Inter', 'Segoe UI', system-ui, sans-serif;

  /* Shape & elevation */
  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 22px;
  --radius-pill: 999px;
  --shadow-sm: 0 1px 2px rgba(16,24,43,.06);
  --shadow-md: 0 10px 26px rgba(16,24,43,.09);
  --shadow-lg: 0 24px 56px rgba(16,24,43,.16);

  --container: 1220px;
  --header-h: 96px;

  /* Curvas de easing con más carácter que las nativas del navegador */
  --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
  --ease-in-out: cubic-bezier(0.77, 0, 0.175, 1);
}

/* ---------- Reset ---------- */
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; overflow-x:hidden; width:100%; }
body{
  margin:0;
  width:100%;
  max-width:100vw;
  overflow-x:hidden;
  font-family:var(--font-body);
  color:var(--color-ink);
  background:var(--color-white);
  -webkit-font-smoothing:antialiased;
  line-height:1.55;
}
img{ max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }
input,select,textarea{ font-family:inherit; font-size:1rem; }
h1,h2,h3,h4{ font-family:var(--font-heading); color:var(--color-primary); margin:0 0 .5em; line-height:1.2; font-weight:700; }
p{ margin:0 0 1em; color:var(--color-slate); }
:focus-visible{ outline:3px solid var(--color-blue); outline-offset:2px; border-radius:4px; }

.container{ max-width:var(--container); margin:0 auto; padding:0 24px; }
.section{ padding:88px 0; }
.section--tight{ padding:56px 0; }
.section--alt{ background:var(--color-bg); }
.section--dark{ background:var(--color-primary); color:#fff; }
.section--dark h2, .section--dark h3, .section--dark p{ color:#fff; }
.section--dark p{ color:#C7D3EC; }

.eyebrow{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--font-heading); font-weight:600; font-size:.78rem;
  letter-spacing:.08em; text-transform:uppercase; color:var(--color-accent-dark);
  background:var(--color-accent-light); padding:6px 14px; border-radius:var(--radius-pill);
  margin-bottom:16px;
}
.section--dark .eyebrow{ background:rgba(255,255,255,.12); color:#8FDCF2; }

.section-head{ max-width:680px; margin:0 0 48px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-head h2{ font-size:clamp(1.7rem,3vw,2.4rem); }
.section-head p{ font-size:1.05rem; }
.section-head-row{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom:40px; }
.section-head-row .section-head{ margin-bottom:0; }

/* ---------- Buttons ---------- */
.btn, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-family:var(--font-heading); font-weight:600; font-size:.95rem;
  padding:14px 26px; border-radius:var(--radius-md); border:2px solid transparent;
  transition:transform 160ms var(--ease-out), box-shadow 200ms var(--ease-out), background-color 160ms ease, color 160ms ease, border-color 160ms ease;
  white-space:nowrap; background:var(--color-accent); color:#fff !important; box-shadow:var(--shadow-sm);
}
@media (hover:hover) and (pointer:fine){
  .btn:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover{
    background:var(--color-accent-dark); transform:translateY(-2px); box-shadow:var(--shadow-md);
  }
}
.btn:active, .woocommerce a.button:active, .woocommerce button.button:active, .woocommerce input.button:active{
  transform:scale(.97); box-shadow:var(--shadow-sm);
}
.btn svg{ width:18px; height:18px; flex:none; }
.btn-primary{ background:var(--color-primary); color:#fff; }
.btn-outline{ background:transparent; border-color:var(--color-primary); color:var(--color-primary) !important; }
.btn-outline-light{ background:transparent; border-color:rgba(255,255,255,.55); color:#fff !important; }
.btn-light{ background:#fff; color:var(--color-primary) !important; box-shadow:var(--shadow-sm); }
@media (hover:hover) and (pointer:fine){
  .btn-primary:hover{ background:var(--color-primary-dark); transform:translateY(-2px); box-shadow:var(--shadow-md); }
  .btn-outline:hover{ background:var(--color-primary); color:#fff !important; transform:translateY(-2px); }
  .btn-outline-light:hover{ background:#fff; color:var(--color-primary) !important; }
  .btn-light:hover{ transform:translateY(-2px); box-shadow:var(--shadow-md); }
}
.btn-sm{ padding:9px 16px; font-size:.85rem; border-radius:var(--radius-sm); }
.btn-block{ width:100%; }
.btn[disabled], .woocommerce a.button.disabled{ opacity:.5; cursor:not-allowed; transform:none !important; }

.link-arrow{ display:inline-flex; align-items:center; gap:6px; font-weight:600; color:var(--color-blue); font-family:var(--font-heading); font-size:.92rem; }
.link-arrow span{ width:16px; height:16px; transition:transform .18s ease; display:inline-block; }
.link-arrow:hover span{ transform:translateX(4px); }

/* ---------- Header ---------- */
.site-header{ position:sticky; top:0; z-index:60; background:#fff; box-shadow:0 1px 0 var(--color-border); }
.header-main{ display:flex; align-items:center; justify-content:center; gap:14px; padding:12px 0; }
.brand{ display:flex; align-items:center; gap:12px; font-family:var(--font-heading); }
.brand-logo{ height:34px; width:164px; aspect-ratio:751.04/155.11; display:block; flex:none; }
.site-footer .brand-logo{ filter:brightness(0) invert(1); }

.main-nav{ display:flex; align-items:center; gap:2px; }
.main-nav > li{ position:relative; --nav-accent:#1CA6DC; }
.nav-link{
  display:flex; align-items:center; gap:4px; padding:10px 9px; font-weight:600; font-size:.85rem;
  color:var(--color-ink); border-radius:var(--radius-sm); white-space:nowrap; cursor:pointer;
  transition:color 160ms ease;
}
.nav-link:hover, .nav-link.is-active{ color:var(--nav-accent); }
.nav-link svg{ width:14px; height:14px; transition:transform .18s ease; }
.has-dropdown:hover .nav-link svg{ transform:rotate(180deg); }

.dropdown{
  position:absolute; top:100%; left:0; margin-top:6px; background:#fff; border-radius:var(--radius-md);
  box-shadow:var(--shadow-lg); border:1px solid var(--color-border); width:300px; padding:10px;
  opacity:0; visibility:hidden; transform:translateY(6px);
  transition:opacity 160ms var(--ease-out), transform 160ms var(--ease-out), visibility 160ms;
}
.has-dropdown:hover .dropdown{ opacity:1; visibility:visible; transform:translateY(0); }
.dropdown a{ display:flex; align-items:center; gap:12px; padding:10px 12px; border-radius:var(--radius-sm); font-weight:600; font-size:.9rem; color:var(--color-ink); }
.dropdown a:hover{ background:var(--color-bg); color:var(--color-blue); }

.dropdown-products{ width:560px; padding:16px; display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.dropdown-products a{ flex-direction:column; align-items:stretch; gap:8px; padding:10px; text-align:left; }
.dropdown-products img{ width:100%; height:110px; object-fit:contain; border-radius:10px; background:#fff; border:1px solid var(--color-border); padding:8px; box-sizing:border-box; }
.dd-product-info{ display:flex; flex-direction:column; min-width:0; gap:2px; }
.dd-product-info b{ font-size:.86rem; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.dd-product-info small{ font-size:.8rem; font-weight:700; color:var(--color-blue); }
.dropdown-viewall{ grid-column:1 / -1; display:block; text-align:center; margin-top:2px; padding:12px; font-size:.86rem; font-weight:700; color:var(--nav-accent,var(--color-blue)); background:var(--color-blue-light); border-radius:var(--radius-sm); }
.dropdown-viewall:hover{ background:var(--nav-accent,var(--color-blue)); color:#fff; }
@media (max-width:1080px){ .dropdown-products{ width:auto; grid-template-columns:1fr 1fr; padding:10px; } }
@media (max-width:560px){ .dropdown-products{ grid-template-columns:1fr; } }

.header-actions{ display:flex; align-items:center; gap:8px; flex-shrink:0; }
.header-actions .btn-accent{ padding:10px 18px; font-size:.86rem; }
.header-actions .icon-btn{ width:38px; height:38px; }
.icon-btn{ position:relative; width:44px; height:44px; border-radius:var(--radius-md); display:flex; align-items:center; justify-content:center; background:var(--color-bg); color:var(--color-primary); border:1px solid var(--color-border); }
.icon-btn:hover{ background:var(--color-blue-light); color:var(--color-blue); }
.icon-btn svg{ width:20px; height:20px; }
.cart-count{ position:absolute; top:-6px; right:-6px; background:var(--color-accent); color:#fff; font-size:.68rem; font-weight:700; min-width:19px; height:19px; border-radius:999px; display:flex; align-items:center; justify-content:center; padding:0 4px; border:2px solid #fff; }
.cart-link{ display:flex; align-items:center; gap:8px; }
.cart-total{ font-family:var(--font-heading); font-weight:700; font-size:.92rem; color:var(--color-primary); white-space:nowrap; }
@media (max-width:640px){ .cart-total{ display:none; } }
.menu-toggle{ display:none; }
@media (max-width:480px){ .header-actions .btn-accent{ display:none; } }

/* ---------- Buscador visible (barra + boton circular) con panel de resultados debajo ---------- */
.aula-search{ position:relative; flex:0 1 260px; min-width:0; max-width:300px; }
@media (max-width:1440px){ .aula-search{ display:none; } }
.aula-search-bar{ display:flex; align-items:center; gap:6px; width:100%; box-sizing:border-box; background:var(--color-bg); border:1px solid var(--color-border); border-radius:var(--radius-pill); padding:6px 6px 6px 16px; }
.aula-search-input{ flex:1; min-width:0; border:0; background:transparent; font-size:.92rem; outline:none; }
.aula-search-btn{ flex:none; width:34px; height:34px; border-radius:50%; border:0; background:var(--color-primary); color:#fff; display:flex; align-items:center; justify-content:center; cursor:pointer; }
.aula-search-btn svg{ width:16px; height:16px; }
.aula-search-panel{ position:absolute; top:calc(100% + 10px); right:0; width:340px; max-width:90vw; background:#fff; border:1px solid var(--color-border); border-radius:var(--radius-lg); box-shadow:var(--shadow-lg); padding:14px; z-index:90; }
.aula-search-results{ max-height:360px; overflow-y:auto; }
.aula-search-hint, .aula-search-empty{ padding:14px 4px; color:#6b7280; font-size:.88rem; text-align:center; }
.aula-search-item{ display:flex; align-items:center; gap:10px; padding:8px; border-radius:var(--radius-sm); text-decoration:none; color:var(--color-ink); }
.aula-search-item:hover{ background:var(--color-bg); }
.aula-search-item img{ width:44px; height:44px; object-fit:contain; background:#fff; border:1px solid var(--color-border); border-radius:var(--radius-sm); flex:none; padding:4px; box-sizing:border-box; }
.aula-search-item-info{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.aula-search-item-info b{ font-size:.92rem; line-height:1.2; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.aula-search-item-cat{ display:inline-flex; align-items:center; gap:5px; font-size:.74rem; color:#6b7280; }
.aula-search-item-cat::before{ content:""; width:7px; height:7px; border-radius:50%; background:var(--cat-accent,var(--color-accent)); flex:none; }
.aula-search-item-price{ font-size:.82rem; font-weight:700; color:var(--color-primary); }
@media (max-width:480px){ .aula-search-panel{ position:fixed; top:64px; left:12px; right:12px; width:auto; } }

.nav-only-mobile{ display:none; }
@media (max-width:1440px){
  .nav-only-mobile{ display:block; }
  .main-nav{ position:fixed; inset:0 0 0 auto; top:0; height:100vh; width:min(340px,86vw); background:#fff; flex-direction:column; align-items:stretch; padding:90px 20px 30px; box-shadow:var(--shadow-lg); transform:translateX(100%); transition:transform .28s ease; overflow-y:auto; gap:4px; z-index:80; }
  .main-nav.is-open{ transform:translateX(0); }
  .nav-link{ width:100%; justify-content:space-between; padding:14px 12px; }
  .dropdown{ position:static; width:auto; box-shadow:none; border:0; opacity:1; visibility:visible; transform:none; display:none; margin:0 0 6px; padding-left:8px; }
  .has-dropdown.is-open .dropdown{ display:block; }
  .menu-toggle{ display:flex; }
  .nav-scrim{ display:none; position:fixed; inset:0; background:rgba(9,17,38,.5); z-index:55; }
  .nav-scrim.is-open{ display:block; }
}

/* ---------- Hero principal (home) ---------- */
.hero{ position:relative; overflow:hidden; color:#fff; }
.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-media img{ width:100%; height:100%; object-fit:cover; }
.hero-media::after{ content:""; position:absolute; inset:0; background:linear-gradient(100deg, rgba(28,22,56,.94) 0%, rgba(28,22,56,.84) 38%, rgba(42,33,84,.4) 75%); }
.hero-inner{ position:relative; z-index:1; padding:100px 0 120px; max-width:640px; }

/* Carrusel de noticias en el hero: desliza horizontalmente (transform), no solo fundido. */
.hero-carousel{ min-height:600px; }
@media (max-width:760px){ .hero-carousel{ min-height:660px; } }
.hero-track{ display:flex; width:100%; height:100%; min-height:inherit; transition:transform 700ms cubic-bezier(.65,0,.35,1); will-change:transform; }
.hero-slide{ position:relative; flex:0 0 100%; width:100%; min-height:600px; }
@media (max-width:760px){ .hero-slide{ min-height:660px; } }
.hero-dots{ position:absolute; z-index:3; left:0; right:0; bottom:104px; display:flex; justify-content:center; gap:9px; }
@media (max-width:760px){ .hero-dots{ bottom:150px; } }
.hero-dot{ width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.4); border:0; padding:0; cursor:pointer; transition:background-color .2s ease, transform .2s ease; }
.hero-dot:hover{ background:rgba(255,255,255,.7); }
.hero-dot.is-active{ background:#fff; transform:scale(1.35); }
.hero-inner h1{ color:#fff; font-size:clamp(2.2rem,4.6vw,3.4rem); margin-bottom:20px; }
.hero-inner p{ color:#DDE6F7; font-size:1.15rem; margin-bottom:34px; max-width:540px; }
.hero-actions{ display:flex; gap:14px; flex-wrap:wrap; }
.hero-stats{ position:absolute; z-index:2; left:0; right:0; bottom:0; display:flex; gap:0; flex-wrap:wrap; border-top:1px solid rgba(255,255,255,.18); background:rgba(16,11,35,.35); backdrop-filter:blur(2px); }
.hero-stats .container{ display:flex; flex-wrap:wrap; gap:0; }
.hero-stat{ flex:1 1 200px; padding:22px 24px; border-right:1px solid rgba(255,255,255,.14); display:flex; align-items:center; gap:14px; }
.hero-stat:last-child{ border-right:0; }
.hero-stat .ic{ width:38px; height:38px; border-radius:10px; background:rgba(255,255,255,.12); display:flex; align-items:center; justify-content:center; flex:none; }
.hero-stat .ic svg{ width:20px; height:20px; }
.hero-stat b{ display:block; font-family:var(--font-heading); font-size:.92rem; }
.hero-stat span{ font-size:.8rem; color:#B9C8E8; }

.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
@media (max-width:860px){ .grid-2{ grid-template-columns:1fr; gap:28px; } }
.rounded-media{ border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-md); }
.rounded-media img{ width:100%; height:100%; object-fit:cover; display:block; }
.value-list{ display:flex; flex-direction:column; gap:16px; margin-top:22px; }
.value-item{ display:flex; gap:14px; }
.value-item .vi-icon{ width:40px; height:40px; border-radius:11px; background:var(--color-blue-light); color:var(--color-blue); display:flex; align-items:center; justify-content:center; flex:none; }
.value-item .vi-icon svg{ width:20px; height:20px; }
.value-item h4{ font-size:.96rem; margin-bottom:4px; color:var(--color-ink); }
.value-item p{ font-size:.88rem; margin-bottom:0; }

/* ---------- Shop hero: categorías como imágenes grandes e interactivas ---------- */
.shop-hero{ padding:44px 0 8px; }
.shop-hero-head{ display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:28px; }
.shop-hero-head h1{ font-size:clamp(1.8rem,3.4vw,2.5rem); margin-bottom:0; }
.btn-lg{ padding:16px 30px; font-size:1rem; }

.hero-categories-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
@media (max-width:820px){ .hero-categories-grid{ grid-template-columns:1fr; } }

.hero-cat-tile{
  position:relative; display:block; border-radius:var(--radius-lg); overflow:hidden;
  height:320px; box-shadow:var(--shadow-sm); transition:transform 250ms var(--ease-out), box-shadow 250ms var(--ease-out);
}
.hero-cat-tile:active{ transform:scale(.98); }
.hero-cat-tile img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform 400ms var(--ease-out); }
@media (hover:hover) and (pointer:fine){
  .hero-cat-tile:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lg); }
  .hero-cat-tile:hover img{ transform:scale(1.08); }
}
.hero-cat-tile::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(20,15,40,.88) 0%, rgba(20,15,40,.35) 45%, rgba(20,15,40,.05) 70%); }
.hero-cat-overlay{ position:absolute; left:0; right:0; bottom:0; z-index:1; padding:26px; display:flex; flex-direction:column; gap:6px; }
.hero-cat-name{ font-family:var(--font-heading); font-weight:800; font-size:1.5rem; color:#fff; }
.hero-cat-count{ font-size:.86rem; font-weight:600; color:#D9CCF7; }
@media (max-width:600px){ .hero-cat-tile{ height:230px; } }

.page-hero{ background:linear-gradient(120deg,var(--color-primary-dark),var(--color-primary)); color:#fff; padding:64px 0 56px; }
.page-hero h1{ color:#fff; font-size:clamp(1.9rem,3.6vw,2.6rem); margin-bottom:12px; }
.page-hero p{ color:#D3DEF3; max-width:640px; font-size:1.05rem; margin-bottom:0; }
.breadcrumbs{ display:flex; align-items:center; gap:8px; font-size:.85rem; color:#AFC1E6; margin-bottom:18px; flex-wrap:wrap; }
.breadcrumbs a{ color:#D3DEF3; font-weight:600; }
.breadcrumbs a:hover{ color:#fff; }
.breadcrumbs.on-light{ color:var(--color-slate); }
.breadcrumbs.on-light a{ color:var(--color-slate); }

/* ---------- Category cards ---------- */
.category-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
@media (max-width:1080px){ .category-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .category-grid{ grid-template-columns:1fr; } }
.category-card{ position:relative; border-radius:var(--radius-lg); overflow:hidden; background:var(--color-ink); box-shadow:var(--shadow-sm); transition:transform .25s ease, box-shadow .25s ease; height:100%; display:flex; flex-direction:column; }
.category-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.category-card .cc-media{ position:relative; height:170px; overflow:hidden; }
.category-card .cc-media img{ width:100%; height:100%; object-fit:cover; transition:transform .4s ease; }
.category-card:hover .cc-media img{ transform:scale(1.06); }
.category-card .cc-body{ background:#fff; padding:24px 20px; flex:1; display:flex; flex-direction:column; }
.category-card h3{ font-size:1.08rem; margin-bottom:8px; }
.category-card p{ font-size:.88rem; flex:1; margin-bottom:16px; }

/* ---------- Layout tienda/categoría con sidebar de filtros ---------- */
.shop-layout{ display:grid; grid-template-columns:250px 1fr; gap:40px; align-items:start; }
@media (max-width:900px){ .shop-layout{ grid-template-columns:1fr; } }
.shop-sidebar{ display:flex; flex-direction:column; gap:24px; position:sticky; top:96px; }
@media (max-width:900px){ .shop-sidebar{ position:static; } }
.filter-block{ background:#fff; border:1px solid var(--color-border); border-radius:var(--radius-md); padding:20px; }
.filter-block h4{ font-size:.82rem; text-transform:uppercase; letter-spacing:.05em; color:var(--color-slate); margin-bottom:14px; }
.filter-cat-list li{ margin-bottom:4px; }
.filter-cat-list a{ display:flex; justify-content:space-between; gap:8px; font-weight:600; font-size:.92rem; color:var(--color-ink); padding:7px 8px; border-radius:var(--radius-sm); }
.filter-cat-list a:hover{ background:var(--color-bg); }
.filter-cat-list a.is-active{ color:var(--color-blue); background:var(--color-blue-light); }
.filter-cat-list span{ color:var(--color-slate-light); font-weight:500; }
.filter-price-form{ display:flex; flex-direction:column; gap:10px; }
.filter-price-form input{ border:1px solid var(--color-border); border-radius:var(--radius-sm); padding:9px 12px; font-size:.9rem; width:100%; }
.shop-layout .product-grid, .shop-layout .woocommerce ul.products{ grid-template-columns:repeat(4,1fr) !important; }
@media (max-width:1300px){ .shop-layout .product-grid, .shop-layout .woocommerce ul.products{ grid-template-columns:repeat(3,1fr) !important; } }
@media (max-width:1080px){ .shop-layout .product-grid, .shop-layout .woocommerce ul.products{ grid-template-columns:repeat(2,1fr) !important; } }
@media (max-width:620px){ .shop-layout .product-grid, .shop-layout .woocommerce ul.products{ grid-template-columns:1fr !important; } }

/* Barra "Mostrando X resultados" + orden: cada elemento independiente (sin recuadro compartido), alineados en una fila */
.woocommerce-products-header{ display:none; } /* header nativo vacio de WooCommerce (WC 8+); el nuestro es .aula-shop-toolbar */
.aula-shop-toolbar{ display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:20px; }
.woocommerce-result-count{ margin:0; font-size:.9rem; color:var(--color-slate); }

/* Selector de orden a medida (reemplaza el <select> nativo del navegador por un boton + lista con el diseno del sitio) */
.woocommerce-ordering{ margin:0; }
.woocommerce-ordering select{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.aula-order-dropdown{ position:relative; }
.aula-order-toggle{ display:flex; align-items:center; gap:10px; border:1px solid var(--color-border); background:#fff; border-radius:var(--radius-pill); padding:9px 16px; font-size:.88rem; font-weight:600; color:var(--color-ink); cursor:pointer; }
.aula-order-toggle svg{ width:14px; height:14px; transition:transform .18s ease; flex:none; }
.aula-order-toggle.is-open svg{ transform:rotate(180deg); }
.aula-order-toggle:hover, .aula-order-toggle.is-open{ border-color:var(--color-accent); }
.aula-order-list{
  position:absolute; top:calc(100% + 8px); right:0; min-width:230px; background:#fff; border-radius:var(--radius-md);
  box-shadow:var(--shadow-lg); border:1px solid var(--color-border); padding:8px; z-index:40;
  opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .16s ease, transform .16s ease, visibility .16s ease;
}
.aula-order-dropdown.is-open .aula-order-list{ opacity:1; visibility:visible; transform:translateY(0); }
.aula-order-option{ display:block; width:100%; text-align:left; border:0; background:none; padding:9px 12px; border-radius:var(--radius-sm); font-size:.88rem; color:var(--color-ink); cursor:pointer; }
.aula-order-option:hover{ background:var(--color-bg); }
.aula-order-option.is-selected{ background:var(--color-accent); color:#fff; font-weight:600; }

/* ---------- Product cards (custom + WooCommerce loop) ---------- */
.product-grid, .woocommerce ul.products{ display:grid !important; grid-template-columns:repeat(4,1fr); gap:24px; margin:0 !important; padding:0 !important; }
/* WooCommerce agrega un clearfix (::before/::after) pensado para floats; en un grid se cuela como celda vacia. */
.woocommerce ul.products::before, .woocommerce ul.products::after{ content:none !important; display:none !important; }
@media (max-width:1080px){ .product-grid, .woocommerce ul.products{ grid-template-columns:repeat(2,1fr) !important; } }
@media (max-width:620px){ .product-grid, .woocommerce ul.products{ grid-template-columns:1fr !important; } }
.product-card, .woocommerce ul.products li.product{
  background:#fff; border:1px solid var(--color-border); border-radius:var(--radius-lg); overflow:hidden;
  display:flex; flex-direction:column; transition:transform 220ms var(--ease-out), box-shadow 220ms var(--ease-out), border-color 220ms ease;
  height:100%; padding:0 !important; width:100% !important; margin:0 !important;
}
@media (hover:hover) and (pointer:fine){
  .product-card:hover, .woocommerce ul.products li.product:hover{ transform:translateY(-5px); box-shadow:var(--shadow-md); border-color:transparent; }
}
.pc-media-wrap, .woocommerce ul.products li.product .pc-media-wrap{ position:relative; height:240px; background:#fff; overflow:hidden; }
.pc-media-wrap img{ display:block; width:100%; height:100%; object-fit:contain; object-position:center center; padding:10px; box-sizing:border-box; }
.pc-badge-cat{ position:absolute; top:12px; left:12px; z-index:2; background:#fff; color:var(--color-accent); font-size:.66rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; padding:6px 12px; border-radius:var(--radius-pill); box-shadow:var(--shadow-sm); }
.woocommerce ul.products li.product a{ display:flex; flex-direction:column; flex:1; }
.pc-body, .woocommerce ul.products li.product .pc-body{ padding:20px; display:flex; flex-direction:column; flex:1; gap:6px; }
.woocommerce ul.products li.product h2, .woocommerce ul.products li.product h3{ font-size:1.08rem; margin:0; }
.pc-title-row{ display:flex; align-items:flex-start; justify-content:space-between; gap:8px; padding:16px 20px 0; }
.pc-featured{ flex:none; margin-top:3px; background:var(--color-accent); color:#fff; font-size:.62rem; font-weight:700; text-transform:uppercase; letter-spacing:.03em; padding:4px 9px; border-radius:var(--radius-pill); white-space:nowrap; }
.pc-desc{ margin:8px 0 0; padding:0 20px; font-size:.86rem; line-height:1.5; color:var(--color-slate); flex:1; }
.pc-body-lower{ padding:14px 20px 20px; display:flex; flex-direction:column; gap:12px; }
.pc-price-row{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.pc-price-col{ display:flex; flex-direction:column; gap:2px; }
.woocommerce ul.products li.product .price{ font-family:var(--font-heading); font-weight:700; color:var(--color-primary) !important; font-size:1.2rem; }
.pc-price-note{ font-size:.76rem; color:var(--color-slate-light); font-weight:500; }
.pc-quickadd{
  width:46px; height:46px; border-radius:50%; flex:none; border:0;
  background:var(--color-accent); color:#fff; font-size:1.7rem; font-weight:700; line-height:1;
  display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-sm);
  transition:transform 160ms var(--ease-out), background-color 160ms ease;
}
.pc-quickadd:active{ transform:scale(.92); }
@media (hover:hover) and (pointer:fine){
  .pc-quickadd:hover{ background:var(--color-accent-dark); transform:scale(1.08); }
}
.pc-view-btn{ display:block; text-align:center; border:2px solid var(--color-primary); color:var(--color-primary); font-weight:700; font-size:.9rem; padding:11px 16px; border-radius:var(--radius-md); transition:background-color 160ms ease, color 160ms ease; }
.pc-view-btn:hover{ background:var(--color-primary); color:#fff; }

/* ---------- Solutions / use-case cards ---------- */
.solution-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
@media (max-width:820px){ .solution-grid{ grid-template-columns:1fr; } }
.solution-card{ background:#fff; border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:30px; display:flex; gap:20px; transition:box-shadow .2s ease, transform .2s ease; }
.solution-card:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); }
.solution-card .sc-icon{ width:54px; height:54px; border-radius:14px; background:var(--color-blue-light); color:var(--color-blue); display:flex; align-items:center; justify-content:center; flex:none; }
.solution-card h3{ font-size:1.12rem; margin-bottom:6px; }
.solution-combo{ display:flex; flex-wrap:wrap; gap:6px; margin:10px 0 12px; }
.combo-tag{ background:var(--color-bg-alt); color:var(--color-primary); font-size:.74rem; font-weight:700; padding:5px 10px; border-radius:var(--radius-pill); }
.combo-plus{ color:var(--color-slate-light); font-weight:700; font-size:.8rem; align-self:center; }

/* ---------- Trust strip ---------- */
.trust-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
@media (max-width:900px){ .trust-grid{ grid-template-columns:repeat(2,1fr); } }
.trust-item{ text-align:center; padding:22px 14px; }
.trust-item .ti-icon{ width:60px; height:60px; border-radius:16px; background:rgba(255,255,255,.1); color:var(--color-blue); display:flex; align-items:center; justify-content:center; margin:0 auto 16px; }
.trust-item h4{ color:#fff; font-size:1rem; margin-bottom:6px; }
.trust-item p{ font-size:.86rem; margin-bottom:0; }

/* ---------- CTA banner ---------- */
.cta-banner{ background:linear-gradient(120deg, var(--color-blue), var(--color-primary)); border-radius:var(--radius-lg); padding:52px; display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap; color:#fff; }
.cta-banner h2{ color:#fff; font-size:clamp(1.4rem,2.6vw,1.9rem); margin-bottom:8px; }
.cta-banner p{ color:#D9E3FA; margin-bottom:0; max-width:480px; }
.cta-banner-actions{ display:flex; gap:12px; flex-wrap:wrap; }

/* ---------- Footer ---------- */
.site-footer{ background:var(--color-primary-dark); color:#B9C8E8; padding:64px 0 0; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,.1); }
@media (max-width:900px){ .footer-grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-grid h4{ color:#fff; font-size:.92rem; margin-bottom:18px; text-transform:uppercase; letter-spacing:.05em; }
.footer-grid li{ margin-bottom:11px; font-size:.9rem; }
.footer-grid a:hover{ color:#fff; }
.footer-brand p{ color:#9DB0D6; font-size:.9rem; max-width:280px; }
.footer-badge{ display:inline-flex; align-items:center; gap:8px; background:rgba(255,255,255,.08); padding:8px 14px; border-radius:var(--radius-pill); font-size:.78rem; font-weight:600; color:#fff; margin-top:14px; }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; padding:22px 0; font-size:.82rem; color:#8A9DC6; }
.social-row{ display:flex; gap:10px; }
.social-row a{ width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.08); display:flex; align-items:center; justify-content:center; color:#fff; }
.social-row a:hover{ background:var(--color-accent); }
.social-row svg{ width:16px; height:16px; }

.aula-3d-viewer{ margin-top:20px; }
.aula-3d-viewer-title{ font-size:1rem; margin-bottom:10px; }
.aula-3d-viewer-hint{ font-size:.8rem; color:var(--color-slate-light); text-align:center; margin-top:8px; margin-bottom:0; }

.aula-360-viewer{ position:relative; width:100%; height:460px; background:var(--color-bg); border-radius:var(--radius-lg); overflow:hidden; cursor:grab; user-select:none; display:flex; align-items:center; justify-content:center; }
.aula-360-viewer.is-dragging{ cursor:grabbing; }
.aula-360-viewer-img{ width:100%; height:100%; object-fit:cover; pointer-events:none; }
.aula-360-viewer-badge{ position:absolute; top:16px; right:16px; background:rgba(16,24,43,.75); color:#fff; font-family:var(--font-heading); font-weight:700; font-size:.72rem; letter-spacing:.04em; padding:5px 10px; border-radius:var(--radius-pill); }

/* ---------- Product detail (single product) ---------- */
.woocommerce div.product{ display:grid; grid-template-columns:3fr 2fr; gap:48px; align-items:flex-start; max-width:var(--container); margin:0 auto; padding:88px 24px; }
@media (max-width:900px){ .woocommerce div.product{ grid-template-columns:1fr; gap:32px; padding:56px 24px; } }
.woocommerce div.product div.images{ border-radius:var(--radius-lg); overflow:hidden; background:var(--color-bg); }

/* Galeria propia estilo Nike: miniaturas verticales a la izquierda, imagen grande a la derecha */
.aula-gallery{ display:flex; gap:14px; }
.aula-gallery-thumbs{
  display:flex; flex-direction:column; gap:10px; width:80px; flex:none;
  max-height:520px; overflow-y:auto;
}
.aula-gallery-thumb{ border:2px solid transparent; border-radius:var(--radius-sm); padding:0; background:none; cursor:pointer; opacity:.7; transition:opacity .15s ease, border-color .15s ease; }
.aula-gallery-thumb img{ display:block; width:100%; height:80px; object-fit:cover; border-radius:calc(var(--radius-sm) - 2px); }
.aula-gallery-thumb.is-active, .aula-gallery-thumb:hover{ opacity:1; border-color:var(--color-blue); }
.aula-gallery-main{ flex:1; min-width:0; background:#fff; border:1px solid var(--color-border); border-radius:var(--radius-lg); overflow:hidden; display:flex; align-items:center; justify-content:center; height:520px; padding:48px; box-sizing:border-box; }
.aula-gallery-main img{ display:block; max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; }
@media (max-width:640px){
  .aula-gallery{ flex-direction:column-reverse; }
  .aula-gallery-thumbs{ flex-direction:row; width:100%; max-height:none; overflow-x:auto; }
  .aula-gallery-thumb img{ height:64px; }
  .aula-gallery-main{ height:340px; }
}
.woocommerce div.product div.summary{ padding:0 !important; }
.woocommerce div.product .product_title{ font-size:clamp(1.6rem,3vw,2.1rem); }
.woocommerce div.product p.price{ background:var(--color-bg); border-radius:var(--radius-md); padding:20px; display:block; margin:20px 0 !important; font-family:var(--font-heading); font-weight:800; font-size:1.7rem; color:var(--color-primary) !important; }
.woocommerce div.product form.cart{ display:flex; gap:12px; flex-wrap:wrap; margin-bottom:24px !important; }
.woocommerce div.product form.cart .quantity{ margin-right:0 !important; }
.woocommerce div.product form.cart input.qty{ border:1px solid var(--color-border); border-radius:var(--radius-sm); height:48px; width:64px; text-align:center; }
.woocommerce-tabs{ margin-top:52px; max-width:var(--container); margin-left:auto; margin-right:auto; padding:0 24px; }
.woocommerce-tabs ul.tabs{ border-bottom:1px solid var(--color-border); margin-bottom:24px; }
.woocommerce-tabs ul.tabs li{ display:inline-block; margin-right:8px; }
.woocommerce-tabs ul.tabs li a{ display:block; padding:12px 18px; font-family:var(--font-heading); font-weight:600; color:var(--color-slate); }
.woocommerce-tabs ul.tabs li.active a{ color:var(--color-blue); border-bottom:2px solid var(--color-blue); }
.related.products{ max-width:var(--container); margin:0 auto; padding:56px 24px 88px; }
.related.products > h2{ font-size:1.35rem; margin-bottom:18px; }

/* ---------- Shop archive header ---------- */
.aula-shop-header{ background:linear-gradient(120deg,var(--color-primary-dark),var(--color-primary)); color:#fff; padding:64px 0 56px; margin-bottom:56px; }
.aula-shop-header .container{ max-width:var(--container); margin:0 auto; padding:0 24px; }
.aula-shop-header h1{ color:#fff; font-size:clamp(1.9rem,3.6vw,2.6rem); margin-bottom:0; }
.aula-shop-header-desc{ color:#D3DEF3; max-width:720px; font-size:1.1rem; line-height:1.6; margin:16px 0 0; }
.aula-shop-header-cta{ margin-top:26px; }
.aula-shop-header.has-media{ position:relative; overflow:hidden; }
.aula-shop-header-media{ position:absolute; inset:0; background-size:cover; background-position:center; z-index:0; }
.aula-shop-header-media::after{ content:""; position:absolute; inset:0; background:linear-gradient(100deg, rgba(28,22,56,.94) 0%, rgba(28,22,56,.86) 45%, rgba(42,33,84,.55) 100%); }
.aula-shop-header.has-media .container{ position:relative; z-index:1; }
.aula-shop-header-includes{ margin-top:22px; display:flex; align-items:flex-start; gap:12px; flex-wrap:wrap; }
.aula-shop-header-includes > span{ color:#D3DEF3; font-size:.85rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; padding-top:9px; flex:none; }
.aula-shop-header-chips{ display:flex; flex-wrap:wrap; gap:8px; }
.aula-shop-header-chip{ background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.3); color:#fff; font-size:.85rem; font-weight:600; padding:8px 14px; border-radius:var(--radius-pill); transition:background-color .15s ease; }
.aula-shop-header-chip:hover{ background:rgba(255,255,255,.24); }

/* ---------- Cart & checkout (bloques nuevos de WooCommerce) ---------- */
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout{ max-width:var(--container); margin:0 auto; padding:56px 24px 88px; }
.wp-block-woocommerce-empty-cart-block{ text-align:center; padding:40px 0 20px; }
.wc-block-cart__empty-cart__title, .wp-block-woocommerce-empty-cart-block h2{
  font-family:var(--font-heading); color:var(--color-primary); font-size:1.6rem; margin-bottom:10px;
}
.wp-block-woocommerce-empty-cart-block > p{ color:var(--color-slate); max-width:440px; margin:0 auto; }
.wp-block-woocommerce-empty-cart-block .wp-block-separator{ max-width:120px; margin:32px auto; opacity:.5; }
.wp-block-woocommerce-empty-cart-block::before{
  content:""; display:block; width:64px; height:64px; margin:0 auto 18px; border-radius:50%;
  background:var(--color-blue-light) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231CA6DC' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 3h2.4l2.3 12.2a2 2 0 0 0 2 1.6h8.6a2 2 0 0 0 2-1.6L21.5 7H6'/%3E%3Ccircle cx='9' cy='21' r='1.4'/%3E%3Ccircle cx='19' cy='21' r='1.4'/%3E%3C/svg%3E") center/26px no-repeat;
}
.wp-block-woocommerce-empty-cart-block .wc-block-grid{ margin-top:28px; }
.wp-block-woocommerce-empty-cart-block h2.wp-block-heading:nth-of-type(2){ font-size:1.15rem; margin-bottom:20px; }

/* ---------- Carrito vacio (plantilla clasica): icono + mensaje + sugerencias ---------- */
.aula-empty-cart{ text-align:center; padding:40px 0 20px; }
.aula-empty-cart-icon{ display:flex; align-items:center; justify-content:center; width:64px; height:64px; margin:0 auto 18px; border-radius:50%; background:var(--color-blue-light); color:var(--color-blue); }
.aula-empty-cart-icon svg{ width:26px; height:26px; }
.aula-empty-cart h2{ font-family:var(--font-heading); color:var(--color-primary); font-size:1.6rem; margin-bottom:10px; }
.aula-empty-cart p{ color:var(--color-slate); max-width:440px; margin:0 auto; }
.aula-empty-cart-suggestions{ margin-top:44px; padding-top:36px; border-top:1px solid var(--color-border); }
.aula-empty-cart-suggestions h3{ font-family:var(--font-heading); color:var(--color-primary); font-size:1.15rem; margin-bottom:20px; text-align:center; }

.wc-block-grid__products{ display:grid !important; grid-template-columns:repeat(3,1fr); gap:20px; list-style:none; margin:0 !important; padding:0 !important; }
@media (max-width:768px){ .wc-block-grid__products{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:480px){ .wc-block-grid__products{ grid-template-columns:1fr; } }
.wc-block-grid__product{ text-align:left; background:#fff; border:1px solid var(--color-border); border-radius:var(--radius-lg); overflow:hidden; transition:box-shadow .2s ease, transform .2s ease; }
.wc-block-grid__product:hover{ box-shadow:var(--shadow-md); transform:translateY(-3px); }
.wc-block-grid__product-link{ display:block; }
.wc-block-grid__product-image{ background:var(--color-bg); }
.wc-block-grid__product-image img{ width:100%; height:170px; object-fit:cover; }
.wc-block-grid__product-title{ font-family:var(--font-heading); font-weight:700; font-size:.98rem; color:var(--color-ink); padding:14px 16px 0; }
.wc-block-grid__product-price{ padding:6px 16px 0; font-weight:700; color:var(--color-primary) !important; }
.wc-block-grid__product-add-to-cart{ padding:12px 16px 16px; }
.wc-block-grid__product-add-to-cart .wp-block-button__link{
  display:inline-flex; align-items:center; justify-content:center; width:100%;
  background:var(--color-accent) !important; color:#fff !important; font-family:var(--font-heading); font-weight:600;
  padding:10px 16px; border-radius:var(--radius-md);
}

.wp-block-woocommerce-filled-cart-block{ display:grid; grid-template-columns:1.6fr 1fr; gap:48px; align-items:start; }
@media (max-width:900px){ .wp-block-woocommerce-filled-cart-block{ grid-template-columns:1fr; } }
.wp-block-woocommerce-cart-order-summary-block, .wp-block-woocommerce-cart-totals-block > div{
  background:var(--color-bg); border-radius:var(--radius-lg); padding:24px;
}
.wc-block-components-product-name{ color:var(--color-ink); font-weight:600; }
.wc-block-components-formatted-money-amount{ color:var(--color-primary); font-weight:700; }
.wp-block-woocommerce-proceed-to-checkout-block .wp-block-button__link{
  background:var(--color-accent) !important; font-family:var(--font-heading); font-weight:700;
  border-radius:var(--radius-md) !important; padding:14px 26px !important;
}

/* ---------- Stepper de compra (+ / cantidad / -) en la ficha de producto ---------- */
.aula-stepper{ display:flex; align-items:center; gap:14px; margin:20px 0; }
.aula-qty-plus, .aula-qty-minus{
  width:52px; height:52px; border-radius:50%; border:none; background:var(--color-accent); color:#fff;
  font-size:1.6rem; line-height:1; font-weight:700; cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:transform 150ms ease, opacity 150ms ease; flex:none;
}
.aula-qty-plus:hover, .aula-qty-minus:hover{ transform:translateY(-2px); }
.aula-qty-plus:disabled, .aula-qty-minus:disabled{ opacity:.6; cursor:default; transform:none; }
.aula-qty-minus{ background:#fff; color:var(--color-accent); border:2px solid var(--color-accent); }
.aula-qty-value{ min-width:1.5em; text-align:center; font-family:var(--font-heading); font-weight:800; font-size:1.3rem; color:var(--color-primary); }
@media (max-width:480px){ .aula-qty-plus, .aula-qty-minus{ width:46px; height:46px; font-size:1.4rem; } }

/* ---------- Cart & checkout (shortcode clásico, por si acaso) ---------- */
.woocommerce-cart table.cart, .woocommerce-checkout table.shop_table{ border:1px solid var(--color-border); border-radius:var(--radius-lg); overflow:hidden; border-collapse:collapse; width:100%; }
.woocommerce-cart table.cart th, .woocommerce-cart table.cart td{ padding:16px; border-bottom:1px solid var(--color-border); }
.woocommerce-cart table.cart img{ border-radius:var(--radius-sm); width:80px; height:80px; object-fit:contain; background:#fff; border:1px solid var(--color-border); padding:6px; box-sizing:border-box; }
.cart-collaterals .cart_totals{ background:var(--color-bg); border-radius:var(--radius-lg); padding:26px; }
.aula-cart-stepper{ display:inline-flex; align-items:center; gap:10px; }
.aula-cart-stepper.is-loading{ opacity:.5; pointer-events:none; }
.aula-cart-qty-plus, .aula-cart-qty-minus{
  width:32px; height:32px; border-radius:50%; border:2px solid var(--color-accent); background:#fff; color:var(--color-accent);
  font-size:1.1rem; font-weight:700; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; flex:none;
}
.aula-cart-qty-plus{ background:var(--color-accent); color:#fff; border-color:transparent; }
.aula-cart-qty-value{ min-width:1.4em; text-align:center; font-weight:700; color:var(--color-primary); }
.woocommerce-checkout #payment{ background:var(--color-bg); border-radius:var(--radius-lg); padding:20px; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row select{
  border:1px solid var(--color-border); border-radius:var(--radius-sm); padding:12px 14px; font-size:.94rem;
}
.woocommerce-cart-form, .woocommerce-checkout-review-order, #customer_details{ max-width:var(--container); margin:0 auto; padding:0 24px 56px; }

/* ---------- Forms ---------- */
.form-card{ background:#fff; border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:36px; box-shadow:var(--shadow-sm); }
.wpcf7-form p, .form-field{ display:flex; flex-direction:column; gap:7px; margin-bottom:16px; }
.wpcf7-form input, .wpcf7-form textarea, .wpcf7-form select{
  border:1px solid var(--color-border); border-radius:var(--radius-sm); padding:12px 14px; font-size:.94rem; color:var(--color-ink); background:#fff; width:100%;
}

/* ---------- Aparición al hacer scroll (con entrada escalonada en grillas) ---------- */
.reveal{ opacity:0; transform:translateY(16px); transition:opacity 500ms var(--ease-out), transform 500ms var(--ease-out); }
.reveal.is-visible{ opacity:1; transform:translateY(0); }
@media (prefers-reduced-motion: reduce){
  .reveal{ transition:opacity 200ms ease; transform:none; opacity:1; }
}
.hero-categories-grid > .reveal:nth-child(1){ transition-delay:0ms; }
.hero-categories-grid > .reveal:nth-child(2){ transition-delay:60ms; }
.hero-categories-grid > .reveal:nth-child(3){ transition-delay:120ms; }
.hero-categories-grid > .reveal:nth-child(4){ transition-delay:180ms; }

.text-center{ text-align:center; }
