/* =========================================================
   impresion.cl — design tokens + base
   ========================================================= */
:root{
  /* Acento principal: magenta del isotipo PrintUp */
  --imp-accent:#F01890;
  --imp-accent-dark:#C8117A;
  --imp-accent-soft:#FDE7F3;
  --imp-black:#17171A;
  --imp-ink:#2B2B2E;
  --imp-icon-bg:#4A4A4A;
  --imp-icon-bg-alt:#2E2E2E;
  --imp-card:#F4F4F6;
  --imp-border:#E7E7ED;
  --imp-muted:#6C6C76;
  --imp-bar:#F7F6FB;
  --imp-white:#FFFFFF;

  /* Colores muestreados del logo PrintUp */
  --imp-brand:#301860;
  --imp-brand-dark:#24114A;
  --imp-cyan:#18A8C0;

  --imp-radius-sm:8px;
  --imp-radius:14px;
  --imp-radius-lg:20px;
  --imp-shadow:0 2px 10px rgba(16,16,24,.07);
  --imp-shadow-lg:0 10px 30px rgba(16,16,24,.12);

  --imp-font-head:'Poppins',system-ui,sans-serif;
  --imp-font-body:'Lato',system-ui,sans-serif;

  --imp-wrap:1360px;
}

body{font-family:var(--imp-font-body);color:var(--imp-ink);}
h1,h2,h3,h4,h5,h6,.imp-head{font-family:var(--imp-font-head);color:var(--imp-black);letter-spacing:-.01em;}
a{text-decoration:none;}
.imp-wrap{max-width:var(--imp-wrap);margin-inline:auto;padding-inline:20px;}

/* Section heading: title + black rule over light line */
.imp-section-title{font-size:clamp(24px,2.4vw,34px);font-weight:600;margin:0 0 14px;}
.imp-rule{height:1px;background:var(--imp-border);position:relative;margin-bottom:34px;}
.imp-rule::before{content:"";position:absolute;left:0;top:-2px;width:120px;height:4px;background:var(--imp-black);border-radius:2px;}

/* =========================================================
   Header
   ========================================================= */
.imp-header{background:var(--imp-white);}
.imp-header__top{display:flex;align-items:center;gap:28px;padding:18px 0;}
.imp-logo img{max-height:52px;width:auto;height:auto;display:block;object-fit:contain;}
.imp-search{flex:1;max-width:560px;margin-inline:auto;position:relative;}
.imp-search input[type="search"]{width:100%;height:46px;border:1px solid var(--imp-border);background:var(--imp-card);
  border-radius:var(--imp-radius-sm);padding:0 48px 0 18px;font-size:15px;color:var(--imp-ink);transition:.2s;}
.imp-search input[type="search"]:focus{outline:none;background:#fff;border-color:var(--imp-accent);box-shadow:0 0 0 3px rgba(240,24,144,.16);}
.imp-search button{position:absolute;right:6px;top:6px;height:34px;width:34px;display:grid;place-items:center;
  background:transparent;border:0;cursor:pointer;color:var(--imp-black);}
.imp-header__actions{display:flex;align-items:center;gap:26px;margin-left:auto;}
.imp-action{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:var(--imp-black);}
.imp-action:hover{color:var(--imp-accent);}
.imp-action__count{background:var(--imp-accent);color:#fff;border-radius:999px;font-size:11px;min-width:18px;height:18px;
  display:grid;place-items:center;padding:0 5px;}

/* Nav bar */
.imp-nav{border-top:1px solid var(--imp-border);border-bottom:1px solid var(--imp-border);}
.imp-nav__inner{display:flex;align-items:center;gap:6px;justify-content:center;padding:10px 0;flex-wrap:wrap;}
.imp-nav__cats{display:inline-flex;align-items:center;gap:10px;background:var(--imp-black);color:#fff;
  border-radius:var(--imp-radius-sm);padding:11px 18px;font-weight:600;font-size:15px;font-family:var(--imp-font-head);}
.imp-nav__cats:hover{background:var(--imp-accent);color:#fff;}
.imp-menu{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:0;}
.imp-menu > li > a{display:inline-flex;align-items:center;gap:6px;padding:11px 14px;font-size:15px;font-weight:500;
  font-family:var(--imp-font-head);color:var(--imp-black);border-radius:var(--imp-radius-sm);}
.imp-menu > li > a:hover,.imp-menu > li.current-menu-item > a,.imp-menu > li.imp-active > a{color:var(--imp-accent);}
.imp-menu > li.menu-item-has-children > a::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;
  border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-2px);}
.imp-nav__social{display:inline-flex;gap:8px;margin-left:8px;}
.imp-nav__social a{width:30px;height:30px;display:grid;place-items:center;color:var(--imp-black);}
.imp-nav__social a:hover{color:var(--imp-accent);}

/* Desplegable de categorías: panel blanco anclado al ítem, filas separadas */
.imp-menu > li{position:relative;}
.imp-menu > li > a{position:relative;}
.imp-menu > li:hover > a::before,
.imp-menu > li.current-menu-item > a::before,
.imp-menu > li.current-menu-ancestor > a::before{content:"";position:absolute;left:14px;right:14px;bottom:-10px;
  height:3px;background:var(--imp-accent);border-radius:2px;}
.imp-menu > li:hover > a{color:var(--imp-accent);}

.imp-menu .sub-menu{position:absolute;left:0;top:calc(100% + 11px);min-width:340px;display:none;z-index:70;
  background:#fff;border:1px solid var(--imp-border);box-shadow:0 18px 44px rgba(16,16,24,.15);
  margin:0;padding:0;list-style:none;}
/* Puente invisible para que el puntero llegue al panel sin cerrarlo. */
.imp-menu .sub-menu::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px;}
.imp-menu > li:hover > .sub-menu,
.imp-menu > li:focus-within > .sub-menu{display:block;}
.imp-menu .sub-menu li + li{border-top:1px solid var(--imp-border);}
.imp-menu .sub-menu a{display:block;padding:15px 24px;font-family:var(--imp-font-head);font-size:16px;
  font-weight:400;color:var(--imp-ink);line-height:1.3;}
.imp-menu .sub-menu a:hover{color:var(--imp-accent);background:#FAFAFB;}
.imp-menu .sub-menu .imp-submenu-all a{font-size:14px;color:var(--imp-muted);display:flex;align-items:center;gap:8px;}
.imp-menu .sub-menu .imp-submenu-all a:hover{color:var(--imp-accent);}

/* =========================================================
   Breadcrumbs bar
   ========================================================= */
.imp-breadcrumb{background:var(--imp-bar);font-size:14px;}
.imp-breadcrumb .imp-wrap{display:flex;align-items:center;gap:10px;padding-block:13px;flex-wrap:wrap;}
.imp-breadcrumb a{color:var(--imp-muted);}
.imp-breadcrumb a:hover{color:var(--imp-accent);}
.imp-breadcrumb .imp-sep{color:#B9B9C2;display:inline-flex;}
.imp-breadcrumb .imp-current{color:var(--imp-black);font-weight:700;}

/* =========================================================
   Home — "¿Qué necesitas imprimir hoy?"
   ========================================================= */
.imp-needs{padding:46px 0 10px;}
.imp-needs__title{font-size:clamp(32px,4vw,52px);font-weight:700;margin:0 0 26px;}
.imp-needs__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:16px;}
.imp-needs__hero{grid-column:span 2;grid-row:span 2;border-radius:var(--imp-radius-lg);overflow:hidden;
  background:var(--imp-card);box-shadow:var(--imp-shadow);}
.imp-needs__hero img{width:100%;height:100%;object-fit:cover;display:block;}
.imp-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:12px;
  background:#fff;border:1px solid var(--imp-border);border-radius:var(--imp-radius);padding:18px 12px 14px;
  box-shadow:var(--imp-shadow);transition:transform .18s ease,box-shadow .18s ease,border-color .18s;}
.imp-tile:hover{transform:translateY(-4px);box-shadow:var(--imp-shadow-lg);border-color:#D9D9E2;}
.imp-tile__icon{width:92px;height:92px;border-radius:50%;background:var(--imp-icon-bg);display:grid;place-items:center;overflow:hidden;}
.imp-tile__icon img{width:100%;height:100%;object-fit:cover;}
.imp-tile__label{font-family:var(--imp-font-head);font-size:15px;font-weight:500;color:var(--imp-ink);text-align:center;line-height:1.3;}
.imp-tile--flag::after{content:"";position:absolute;top:10px;right:10px;width:12px;height:12px;border-radius:50%;background:var(--imp-accent);}

/* =========================================================
   Product cards (Woo loop)
   ========================================================= */
.imp-products{padding:40px 0;}
ul.products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;list-style:none;margin:0;padding:0;}
ul.products::before,ul.products::after{display:none;}
ul.products li.product{width:auto!important;margin:0!important;float:none!important;
  background:#fff;border:1px solid var(--imp-border);border-radius:var(--imp-radius);padding:14px 14px 20px;
  box-shadow:var(--imp-shadow);text-align:center;transition:transform .18s ease,box-shadow .18s ease;position:relative;}
ul.products li.product:hover{transform:translateY(-4px);box-shadow:var(--imp-shadow-lg);}
ul.products li.product img{border-radius:10px;background:var(--imp-card);aspect-ratio:1/1;object-fit:cover;margin:0 0 14px;}
.imp-card__sku{display:block;font-size:12px;color:var(--imp-muted);margin-bottom:6px;letter-spacing:.02em;}
ul.products li.product .woocommerce-loop-product__title{font-family:var(--imp-font-head);font-size:17px;font-weight:600;
  color:var(--imp-black);line-height:1.35;padding:0;margin:0 0 10px;}
ul.products li.product .price{color:var(--imp-black);font-size:17px;font-weight:700;display:block;}
ul.products li.product .price del{color:var(--imp-muted);font-weight:400;font-size:15px;opacity:1;}
ul.products li.product .price ins{text-decoration:none;}
.imp-price-from{font-style:italic;font-weight:400;font-size:14px;color:var(--imp-ink);margin-right:4px;}
.imp-price-iva{font-size:13px;font-weight:400;color:var(--imp-ink);margin-left:4px;}
ul.products li.product .star-rating{margin:10px auto 0;color:var(--imp-accent);float:none;font-size:13px;}
ul.products li.product .onsale{position:absolute;top:14px;right:14px;background:var(--imp-black);color:#fff;
  border-radius:50%;width:52px;height:52px;display:grid;place-items:center;font-size:12px;font-weight:700;
  line-height:1.1;text-align:center;margin:0;padding:0;min-height:0;z-index:3;}
ul.products li.product a.button,ul.products li.product .added_to_cart{display:none;}

/* =========================================================
   Category cards (vista de categorías)
   ========================================================= */
.imp-cats__intro{max-width:620px;color:var(--imp-ink);font-size:17px;line-height:1.6;margin:0 0 36px;}
.imp-cats__grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px;}
.imp-cat-card{display:flex;flex-direction:column;background:var(--imp-card);border-radius:var(--imp-radius);overflow:hidden;
  border:1px solid transparent;transition:transform .18s ease,box-shadow .18s ease,border-color .18s;}
.imp-cat-card:hover{transform:translateY(-4px);box-shadow:var(--imp-shadow-lg);border-color:var(--imp-border);}
.imp-cat-card__media{display:grid;place-items:center;padding:42px 20px;}
.imp-cat-card__media img{width:150px;height:150px;object-fit:contain;border-radius:22px;background:var(--imp-icon-bg);}
.imp-cat-card__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;
  padding:16px 18px;font-family:var(--imp-font-head);font-size:15px;font-weight:500;color:var(--imp-black);}
.imp-cat-card:hover .imp-cat-card__foot{color:var(--imp-accent);}

/* Filters pill */
.imp-filters-bar{display:flex;justify-content:center;padding:6px 0 30px;}
.imp-filters{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--imp-accent);color:var(--imp-accent);
  background:#fff;border-radius:var(--imp-radius-sm);padding:12px 22px;font-family:var(--imp-font-head);font-weight:500;cursor:pointer;}
.imp-filters:hover{background:var(--imp-accent);color:#fff;}

/* =========================================================
   Instagram strip
   ========================================================= */
.imp-ig{padding:50px 0 60px;}
.imp-ig__kicker{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--imp-muted);margin-bottom:6px;}
.imp-ig__handle{font-family:var(--imp-font-head);font-size:22px;font-style:italic;font-weight:400;margin:0 0 14px;}
.imp-ig__grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:18px;}
.imp-ig__item{aspect-ratio:1/1;border-radius:var(--imp-radius);overflow:hidden;background:var(--imp-card);display:block;}
.imp-ig__item img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.imp-ig__item:hover img{transform:scale(1.06);}

/* =========================================================
   Footer
   ========================================================= */
.imp-footer{background:var(--imp-brand);color:#fff;padding:52px 0 0;}
.imp-footer a{color:rgba(255,255,255,.88);}
.imp-footer a:hover{color:var(--imp-accent);opacity:1;}
/* Elementor envuelve los hijos del contenedor en .e-con-inner, así que la
   grilla de 4 columnas tiene que aplicarse ahí y no en el contenedor. */
.imp-footer .imp-footer__grid > .e-con-inner{display:grid;grid-template-columns:1.15fr 1fr 1fr 1.2fr;
  gap:34px;align-items:start;max-width:var(--imp-wrap);width:100%;}
.imp-footer .imp-footer__bottom > .e-con-inner{display:flex;align-items:center;justify-content:space-between;
  gap:24px;flex-wrap:wrap;max-width:var(--imp-wrap);width:100%;}
.imp-footer__logo img{max-width:200px;height:auto;}
/* Logo oscuro sobre fondo naranjo: se pasa a blanco. Quita esta línea si el logo ya es claro. */
.imp-footer__logo img{filter:brightness(0) invert(1);}
.imp-footer h4{color:var(--imp-cyan);font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin:0 0 6px;}
.imp-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:12px;font-size:15px;}
.imp-footer__follow{display:flex;align-items:center;gap:12px;margin-top:22px;font-size:15px;}
.imp-footer__follow a{width:26px;height:26px;display:grid;place-items:center;}
.imp-footer__contact{display:grid;gap:14px;font-size:15px;}
.imp-footer__contact li{display:flex;gap:10px;align-items:flex-start;}
.imp-footer__bottom{margin-top:46px;border-top:1px solid rgba(255,255,255,.22);padding:22px 0 28px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;font-size:14px;}
/* .imp-pay queda disponible por si se vuelven a mostrar los medios de pago. */
.imp-pay{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;}
.imp-pay img{height:38px;width:auto;background:#fff;border-radius:7px;padding:5px 9px;object-fit:contain;}
.imp-footer{border-top:4px solid var(--imp-accent);}
.imp-footer__contact svg{color:var(--imp-cyan);flex:0 0 auto;}

/* =========================================================
   Selector de cantidad (ficha y carro)
   ========================================================= */
.imp-qty{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--imp-border);
  border-radius:999px;padding:4px;background:#fff;}
.imp-qty button{width:30px;height:30px;border-radius:50%;border:0;background:transparent;color:var(--imp-muted);
  cursor:pointer;display:grid;place-items:center;font-size:17px;line-height:1;transition:.15s;padding:0;}
.imp-qty button:hover{background:var(--imp-accent-soft);color:var(--imp-accent);}
.imp-qty input{width:40px;border:0;text-align:center;font-family:var(--imp-font-head);font-size:15px;
  font-weight:600;color:var(--imp-black);background:transparent;-moz-appearance:textfield;padding:0;}
.imp-qty input:focus{outline:none;}
.imp-qty input::-webkit-outer-spin-button,.imp-qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}

/* =========================================================
   Botones (compartidos por ficha, carro y plantillas)
   ========================================================= */
.imp-btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:9px;
  border-radius:var(--imp-radius-sm);font-family:var(--imp-font-head);font-size:15px;font-weight:600;
  padding:15px 22px;cursor:pointer;border:1px solid transparent;transition:.18s;line-height:1.2;}
.imp-btn--dark{background:var(--imp-black);color:#fff;}
.imp-btn--dark:hover{background:var(--imp-accent);color:#fff;}
.imp-btn--ghost{background:#fff;color:var(--imp-black);border-color:var(--imp-border);}
.imp-btn--ghost:hover{border-color:var(--imp-black);}

/* Variantes de marca */
.imp-btn--accent{background:var(--imp-accent);color:#fff;box-shadow:0 6px 18px rgba(240,24,144,.28);}
.imp-btn--accent:hover{background:var(--imp-accent-dark);color:#fff;box-shadow:0 8px 22px rgba(240,24,144,.34);}
.imp-btn--brand-outline{background:#fff;color:var(--imp-brand);border-color:var(--imp-brand);}
.imp-btn--brand-outline:hover{background:var(--imp-brand);color:#fff;}
.imp-btn--whatsapp{background:#25D366;color:#fff;box-shadow:0 6px 18px rgba(37,211,102,.3);}
.imp-btn--whatsapp:hover{background:#1DB356;color:#fff;}
.imp-btn[disabled]{opacity:.45;pointer-events:none;}

/* =========================================================
   Floating elements
   ========================================================= */
.imp-rail{position:fixed;right:0;top:52%;transform:translateY(-50%);display:grid;gap:2px;z-index:90;}
.imp-rail a{width:34px;height:34px;display:grid;place-items:center;background:#fff;color:var(--imp-black);
  box-shadow:var(--imp-shadow);border-radius:4px 0 0 4px;}
.imp-rail a:hover{color:var(--imp-accent);}
.imp-wa{position:fixed;right:22px;bottom:22px;width:58px;height:58px;border-radius:50%;background:#25D366;color:#fff;
  display:grid;place-items:center;box-shadow:0 6px 20px rgba(37,211,102,.45);z-index:95;transition:transform .2s;}
.imp-wa:hover{transform:scale(1.07);color:#fff;}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:1200px){
  .imp-needs__grid{grid-template-columns:repeat(5,minmax(0,1fr));}
  .imp-cats__grid{grid-template-columns:repeat(4,minmax(0,1fr));}
  .imp-ig__grid{grid-template-columns:repeat(4,minmax(0,1fr));}
  ul.products{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:1100px){
  .imp-footer .imp-footer__grid > .e-con-inner{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;}
}
@media (max-width:900px){
  .imp-header__top{flex-wrap:wrap;gap:14px;}
  .imp-search{order:3;flex:1 0 100%;max-width:none;}
  .imp-needs__grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .imp-needs__hero{grid-column:span 3;grid-row:span 1;max-height:280px;}
  .imp-cats__grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .imp-footer .imp-footer__grid > .e-con-inner{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:600px){
  .imp-needs__grid,.imp-cats__grid,.imp-ig__grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  ul.products{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
  .imp-needs__hero{grid-column:span 2;}
  .imp-footer .imp-footer__grid > .e-con-inner{grid-template-columns:1fr;}
  .imp-footer__bottom{flex-direction:column;align-items:flex-start;}
  .imp-pay{justify-content:flex-start;}
  .imp-rail{display:none;}
}

/* =========================================================
   Carousel (productos destacados / instagram)
   ========================================================= */
.imp-carousel{position:relative;}
.imp-carousel__track,
ul.products.imp-carousel__track{display:grid;grid-template-columns:none;grid-auto-flow:column;
  grid-auto-columns:calc((100% - (var(--imp-gap) * (var(--imp-per-view) - 1))) / var(--imp-per-view));
  gap:var(--imp-gap,22px);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:4px;margin:-4px;}
.imp-carousel__track::-webkit-scrollbar{display:none;}
.imp-carousel__track > *{scroll-snap-align:start;}
.imp-carousel .imp-dots{display:flex;gap:11px;justify-content:center;margin-top:34px;}
.imp-dot{width:11px;height:11px;border-radius:50%;border:1px solid #C9C9D2;background:#fff;padding:0;cursor:pointer;transition:.18s;}
.imp-dot:hover{border-color:var(--imp-black);}
.imp-dot.is-active{background:var(--imp-black);border-color:var(--imp-black);}
.imp-carousel__nav{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;
  border:1px solid var(--imp-border);background:#fff;display:grid;place-items:center;cursor:pointer;color:var(--imp-black);z-index:4;}
.imp-carousel__nav:hover{border-color:var(--imp-accent);color:var(--imp-accent);}
.imp-carousel__nav--prev{left:-48px;}
.imp-carousel__nav--next{right:-48px;}
@media (max-width:1500px){.imp-carousel__nav--prev{left:-12px;}.imp-carousel__nav--next{right:-12px;}}
@media (max-width:1200px){.imp-carousel__track,ul.products.imp-carousel__track{--imp-per-view:3;}}
@media (max-width:900px){.imp-carousel__track,ul.products.imp-carousel__track{--imp-per-view:2;}}
@media (max-width:600px){.imp-carousel__track,ul.products.imp-carousel__track{--imp-per-view:1.3;--imp-gap:14px;}
  .imp-carousel__nav{display:none;}}

/* =========================================================
   Elementor interop
   ========================================================= */
.imp-header .e-con-inner,.imp-footer .e-con-inner{max-width:var(--imp-wrap);}
.imp-header .elementor-widget{width:auto;}
.imp-header__top > .e-con,.imp-header__top > .elementor-widget{margin:0;}
.imp-header__top .imp-search{flex:1;}
.imp-nav{position:relative;}

/* Footer menus rendered by the Elementor nav widget */
.imp-footer .elementor-nav-menu{display:grid;gap:12px;}
.imp-footer .elementor-nav-menu a.elementor-item{padding:0;color:rgba(255,255,255,.88);font-size:15px;
  font-family:var(--imp-font-body);font-weight:400;fill:currentColor;}
.imp-footer .elementor-nav-menu a.elementor-item:hover,
.imp-footer .elementor-nav-menu a.elementor-item.elementor-item-active{color:var(--imp-accent);background:transparent;}
.imp-footer .elementor-menu-toggle,.imp-footer .elementor-nav-menu--dropdown{display:none!important;}
.imp-footer .elementor-widget-heading{margin-bottom:4px;}
.imp-footer .imp-footer__col{display:flex;flex-direction:column;align-items:flex-start;gap:14px;width:100%;}
.imp-footer .imp-footer__col > .elementor-widget{width:100%;}
.imp-footer__bottom{width:100%;color:rgba(255,255,255,.85);}
.imp-footer__bottom .elementor-widget-text-editor,
.imp-footer__bottom .imp-copyright{color:rgba(255,255,255,.85);font-size:14px;}
.imp-footer__bottom .elementor-widget-text-editor p{margin:0;line-height:1.6;}
.imp-footer__bottom .imp-copyright--right{text-align:right;}
@media (max-width:700px){
  .imp-footer .imp-footer__bottom > .e-con-inner{flex-direction:column;align-items:flex-start;gap:8px;}
  .imp-footer__bottom .imp-copyright--right{text-align:left;}
}

/* Product loop inside Elementor containers */
.imp-products .e-con-inner{padding:0;}
.imp-empty{padding:40px 0;color:var(--imp-muted);}

/* Woo pagination */
.woocommerce-pagination ul{display:flex;gap:8px;justify-content:center;list-style:none;margin:40px 0 0;padding:0;border:0;}
.woocommerce-pagination ul li{border:0;}
.woocommerce-pagination a,.woocommerce-pagination span{display:grid;place-items:center;min-width:40px;height:40px;
  border:1px solid var(--imp-border);border-radius:var(--imp-radius-sm);color:var(--imp-black);font-weight:600;}
.woocommerce-pagination span.current{background:var(--imp-black);border-color:var(--imp-black);color:#fff;}

/* Buscador: más ancho y ópticamente centrado entre logo y acciones.
   Elementor mete los hijos en .e-con-inner y les impone flex-grow vía
   --container-widget-flex-grow, así que estas reglas lo sobrescriben. */
.imp-header .imp-header__top > .e-con-inner{display:flex;align-items:center;gap:28px;
  justify-content:space-between;flex-wrap:nowrap;}
.imp-header .imp-header__top > .e-con-inner > .elementor-widget-theme-site-logo,
.imp-header .imp-header__top > .e-con-inner > .imp-header__actions{flex:0 0 270px;width:270px;max-width:270px;}
.imp-header .imp-header__top > .e-con-inner > .imp-header__actions{justify-content:flex-end;}
.imp-header .imp-header__top > .e-con-inner > .elementor-widget-imp-search{flex:1 1 auto;width:auto;max-width:720px;margin-inline:auto;}
.imp-header .elementor-widget-imp-search > .elementor-widget-container{width:100%;}
.imp-header .imp-search{max-width:none;width:100%;margin:0;}
.imp-header .imp-search input[type="search"]{height:54px;font-size:16px;padding:0 56px 0 22px;border-radius:10px;}
.imp-header .imp-search button{top:10px;right:10px;height:34px;width:34px;}

@media (max-width:900px){
  .imp-header .imp-header__top > .e-con-inner{flex-wrap:wrap;}
  .imp-header .imp-header__top > .e-con-inner > .elementor-widget-theme-site-logo,
  .imp-header .imp-header__top > .e-con-inner > .imp-header__actions{flex:0 0 auto;width:auto;max-width:none;}
  .imp-header .imp-header__top > .e-con-inner > .elementor-widget-imp-search{flex:1 0 100%;max-width:none;order:3;}
}

/* =========================================================
   Hero slider (widget Slides de Elementor Pro) — ancho completo
   La altura escala con el viewport en vez de quedar fija en px,
   y el texto se alinea con la grilla de 1360 del resto del sitio.
   ========================================================= */
.imp-hero-wrap{width:100%;}
.imp-hero-wrap > .e-con-inner{max-width:none;padding:0;}

/* Gana a la altura fija que Elementor imprime por elemento. */
.imp-hero.elementor-widget .elementor-slides .swiper-slide{height:clamp(380px,38vw,620px);}
.imp-hero .swiper,.imp-hero .elementor-swiper,.imp-hero .swiper-wrapper{height:auto;}

.imp-hero .swiper-slide-inner{width:100%;max-width:var(--imp-wrap);margin-inline:auto;
  padding-inline:clamp(20px,4vw,40px);}
.imp-hero .elementor-slide-heading{font-family:var(--imp-font-head);font-weight:700;color:#fff;
  font-size:clamp(30px,3.6vw,54px);line-height:1.08;letter-spacing:-.02em;margin-bottom:16px;max-width:17ch;}
.imp-hero .elementor-slide-description{font-family:var(--imp-font-body);color:rgba(255,255,255,.92);
  font-size:clamp(15px,1.3vw,20px);line-height:1.55;margin-bottom:28px;max-width:44ch;}
.imp-hero .elementor-slide-button{background:var(--imp-accent);border:0;color:#fff;border-radius:var(--imp-radius-sm);
  font-family:var(--imp-font-head);font-weight:600;font-size:15px;padding:15px 30px;transition:.18s;}
.imp-hero .elementor-slide-button:hover{background:#fff;color:var(--imp-black);}

/* Flechas y puntos con el lenguaje del resto del sitio */
.imp-hero .elementor-swiper-button{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.92);
  color:var(--imp-black);display:grid;place-items:center;font-size:15px;box-shadow:var(--imp-shadow);transition:.18s;}
.imp-hero .elementor-swiper-button:hover{background:var(--imp-accent);color:#fff;}
.imp-hero .elementor-swiper-button-prev{left:clamp(12px,2vw,28px);}
.imp-hero .elementor-swiper-button-next{right:clamp(12px,2vw,28px);}
.imp-hero .swiper-pagination{bottom:18px;}
.imp-hero .swiper-pagination-bullet{width:10px;height:10px;background:#fff;opacity:.55;transition:.18s;}
.imp-hero .swiper-pagination-bullet-active{opacity:1;width:26px;border-radius:5px;background:var(--imp-accent);}

.imp-hero-wrap + .e-con .imp-needs{padding-top:40px;}

@media (max-width:600px){
  .imp-hero .elementor-slide-heading{max-width:none;}
  .imp-hero .elementor-swiper-button{display:none;}
}
