/*
Theme Name: Polykey — NireWeb
Theme URI: https://www.nireweb.es/
Description: Child de Hello Elementor para polykey.eu. Tokens de diseño extraídos de la web original (tema pom): paleta teal/coral, tipografía Archivo, escala 9-50px.
Author: NireWeb
Author URI: https://www.nireweb.es/
Template: hello-elementor
Version: 1.0.0
Text Domain: polykey-nireweb
*/

:root{
  /* Teal — color principal de marca */
  --pk-teal-900:#284e56; --pk-teal-700:#537178; --pk-teal-500:#7e959a;
  --pk-teal-300:#a9b8bb; --pk-teal-100:#d4dcdd;
  /* Coral — acento (botones CTA, píldora "Catalogue") */
  --pk-coral:#c46246; --pk-coral-600:#c46246; --pk-coral-400:#d0816b;
  --pk-coral-300:#dca190; --pk-coral-200:#e7c0b5;
  /* Neutros */
  --pk-sand:#f4f0ed; --pk-white:#ffffff; --pk-grey-100:#f2f2f2;
  --pk-grey-400:#adadad; --pk-grey-600:#636363; --pk-ink:#212121;
  /* Tipografía */
  --pk-font:"Archivo",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Ubuntu,"Helvetica Neue",sans-serif;
}

/* Archivo autoalojada — mismos ficheros que la web original */
/* La web original mapea los pesos "mal" a propósito y de ahí viene su aire:
   el cuerpo (400) es en realidad Archivo ExtraLight y todo lo "negrita" (600/700)
   es Archivo Regular. Sólo existen esos dos ficheros. Declarándolos honestamente
   (200/400) nuestro cuerpo salía en Regular y los títulos en una negrita
   sintética que el navegador engorda: por eso el cliente ve "otra letra".
   Se replica el mapeo del original. */
@font-face{font-family:"Archivo";font-style:normal;font-weight:400;font-display:swap;
  src:url("assets/fonts/Archivo-ExtraLight.woff2") format("woff2"),url("assets/fonts/Archivo-ExtraLight.woff") format("woff");}
@font-face{font-family:"Archivo";font-style:normal;font-weight:600;font-display:swap;
  src:url("assets/fonts/Archivo-Regular.woff2") format("woff2"),url("assets/fonts/Archivo-Regular.woff") format("woff");}

body{font-family:var(--pk-font);color:var(--pk-ink);background:var(--pk-white);}
h1,h2,h3,h4,h5,h6{font-family:var(--pk-font);color:var(--pk-ink);}

/* ---------- Barra de búsqueda superior ----------
   Caja con esquinas redondeadas, no una franja a sangre: así no choca con la
   cabecera ni con el hero. El fondo es el mismo gris azulado del bloque
   "Co-financed by" de About us (#F2F5F5), que casa con el arena de los campos. */
.pk-header-search{border-radius:15px}
.pk-search{display:flex;gap:10px;justify-content:center;align-items:center;flex-wrap:wrap}
.pk-search__text,.pk-search__cat{
  height:44px;padding:12px 20px;font:400 15px/1 var(--pk-font);
  color:var(--pk-grey-600);background:var(--pk-sand);
  border:1px solid var(--pk-teal-300);border-radius:5px;}
.pk-search__text::placeholder{color:var(--pk-grey-600);opacity:1}
.pk-search__text{width:250px}
.pk-search__cat{width:250px;cursor:pointer}
.pk-search__text:focus,.pk-search__cat:focus{outline:2px solid var(--pk-teal-500);outline-offset:1px}
.pk-search__submit{
  height:44px;min-width:250px;padding:10px 24px;border:0;border-radius:5px;cursor:pointer;
  font:400 15px/1 var(--pk-font);color:var(--pk-white);background:var(--pk-teal-900);
  transition:background .18s ease;}
.pk-search__submit:hover,.pk-search__submit:focus-visible{background:var(--pk-teal-700)}

/* ---------- Selector de idioma ---------- */
.pk-langs{display:inline-flex;align-items:center;gap:2px}
.pk-langs .pk-lang{
  padding:6px 4px;font:700 18px/1.5 var(--pk-font);text-decoration:none;
  color:var(--pk-teal-900);opacity:1;transition:color .15s ease;}
.pk-langs .pk-lang:hover{color:var(--pk-coral)}
/* El idioma activo se marca con color, nunca subrayado. */
.pk-langs .pk-lang.is-active{color:var(--pk-coral);text-decoration:none}

/* Botón de menú: sólo existe en móvil (ver el bloque responsive). */
.pk-navtoggle{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.pk-burger{display:none}

/* ---------- Cabecera ----------
   Blanca en TODAS las páginas: es lo que da aire al diseño. La única excepción
   es la portada, donde va superpuesta y transparente sobre el hero oscuro. */
.pk-header{background-color:var(--pk-white);transition:background-color .25s ease,box-shadow .25s ease}
.pk-header.elementor-sticky--effects{
  background-color:var(--pk-white)!important;
  box-shadow:0 2px 18px rgba(33,33,33,.10);}
.pk-logo{display:block;line-height:0}
.pk-logo__img{display:block;width:250px;height:auto}
.pk-logo--light{display:none}
.pk-nav__list > li > a{color:var(--pk-teal-900)}
.pk-langs .pk-lang{color:var(--pk-teal-900)}
.pk-header .elementor-menu-cart__toggle .elementor-button{color:var(--pk-teal-900)}

/* Portada: cabecera superpuesta sobre el hero. */
body.pk-hero-overlay .pk-header{background-color:transparent}
body.pk-hero-overlay .pk-logo--light{display:block}
body.pk-hero-overlay .pk-logo--dark{display:none}
body.pk-hero-overlay .pk-nav__list > li > a{color:var(--pk-white)}
body.pk-hero-overlay .pk-langs .pk-lang{color:var(--pk-white)}
body.pk-hero-overlay .pk-langs .pk-lang.is-active{color:var(--pk-coral)}
body.pk-hero-overlay .pk-header .elementor-menu-cart__toggle .elementor-button{color:var(--pk-white)}
body.pk-hero-overlay .pk-header.elementor-sticky--effects{
  background-color:var(--pk-teal-900)!important}
body.pk-hero-overlay .pk-header.elementor-sticky--effects .pk-logo--light{display:block}
body.pk-hero-overlay .pk-header.elementor-sticky--effects .pk-logo--dark{display:none}

/* Página activa: color coral y los tres puntitos del diseño anterior. */
.pk-nav__list > li.current-menu-item > a,
.pk-nav__list > li.current-menu-ancestor > a,
.pk-nav__list > li.current-page-ancestor > a,
.pk-nav__list > li.current-menu-parent > a{color:var(--pk-coral)}
.pk-nav__list > li:hover > a::after,
.pk-nav__list > li:focus-within > a::after,
.pk-nav__list > li.current-menu-item > a::after,
.pk-nav__list > li.current-menu-ancestor > a::after,
.pk-nav__list > li.current-page-ancestor > a::after,
.pk-nav__list > li.current-menu-parent > a::after{
  content:"";position:absolute;left:50%;bottom:-3px;transform:translateX(-50%);
  width:27px;height:4px;pointer-events:none;
  background:radial-gradient(circle at 2px 2px,var(--pk-coral) 1.7px,transparent 1.9px) 0 0/9px 4px repeat-x}

/* ---------- Pie ---------- */
.pk-foot-col-title{font:700 12px/1.2 var(--pk-font);color:var(--pk-teal-300);
  letter-spacing:.04em;text-transform:uppercase;margin:0 0 14px}
.pk-foot-links{list-style:none;margin:0;padding:0}
.pk-foot-links li{border-bottom:1px solid rgba(255,255,255,.22)}
.pk-foot-links a{display:block;padding:14px 0;font:400 18px/1.15 var(--pk-font);
  color:var(--pk-white);text-decoration:none;transition:opacity .15s ease}
.pk-foot-links a:hover{opacity:.72}
.pk-foot-links a::after{content:" ↗";font-size:.8em}

/* ---------- Menú principal ---------- */
.pk-nav__list{display:flex;align-items:center;gap:0;list-style:none;margin:0;padding:0}
.pk-nav__list > li{position:relative}
.pk-nav__list > li > a{
  display:block;padding:6px 20px;font:700 18px/1.5 var(--pk-font);
  color:var(--pk-teal-900);text-decoration:none;transition:color .15s ease}
.pk-nav__list > li > a:hover{color:var(--pk-coral)}
.pk-nav__list .sub-menu{
  position:absolute;left:12px;top:100%;min-width:220px;margin:0;padding:8px 0;
  list-style:none;background:var(--pk-white);border-radius:8px;
  box-shadow:0 8px 28px rgba(33,33,33,.16);opacity:0;visibility:hidden;
  transform:translateY(6px);transition:opacity .16s ease,transform .16s ease,visibility .16s}
.pk-nav__list > li:hover .sub-menu,.pk-nav__list > li:focus-within .sub-menu{
  opacity:1;visibility:visible;transform:translateY(0)}
.pk-nav__list .sub-menu a{
  display:block;padding:9px 18px;font:400 16px/1.35 var(--pk-font);
  color:var(--pk-ink);text-decoration:none}
.pk-nav__list .sub-menu a:hover{background:var(--pk-sand);color:var(--pk-teal-900)}

/* ---------- Enlaces legales del pie ---------- */
.pk-legal__list{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 26px;
  list-style:none;margin:0;padding:0}
.pk-legal__list a{font:400 15px/1.5 var(--pk-font);color:var(--pk-ink);text-decoration:none}
.pk-legal__list a:hover{text-decoration:underline}

@media(max-width:1024px){
  .pk-search__text,.pk-search__cat,.pk-search__submit{width:100%;min-width:0}
}

/* ---------- Boletín ---------- */
.pk-news{max-width:510px;margin:0 auto;text-align:left}
/* La etiqueta va dentro del campo, como en el buscador: fuera queda un hueco
   grande y feo. Se conserva para lectores de pantalla. */
.pk-news__label{position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap}
.pk-news__input{width:100%;height:48px;padding:12px 20px;font:400 15px/1 var(--pk-font);
  color:var(--pk-ink);background:var(--pk-white);border:1px solid var(--pk-teal-300);border-radius:5px}
.pk-news__input::placeholder{color:var(--pk-grey-600);opacity:1}
.pk-news__input:focus{outline:2px solid var(--pk-teal-500);outline-offset:1px}
/* Coral, igual que el botón "Catalogue" de la cabecera y el pie. */
.pk-news__submit{width:100%;height:48px;margin-top:12px;border:0;border-radius:10px;cursor:pointer;
  font:700 15px/1 var(--pk-font);color:var(--pk-white);background:var(--pk-coral);
  transition:background .18s ease}
.pk-news__submit:hover,.pk-news__submit:focus-visible{background:var(--pk-coral-400)}

/* ---------- Copyright ---------- */
.pk-copy{margin:14px 0 0;text-align:center;font:400 15px/1.6 var(--pk-font);color:var(--pk-ink)}
.pk-copy a{color:var(--pk-teal-900)}

@media(max-width:1024px){
  .pk-footer-box{flex-wrap:wrap}
  .pk-footer-box > .e-con-inner > *,.pk-footer-box > *{width:100%!important}
}

/* ---------- Correcciones de especificidad frente a Hello Elementor / WooCommerce ---------- */
.pk-search .pk-search__text,
.pk-search .pk-search__cat{flex:0 0 250px;width:250px;max-width:250px}
.pk-search .pk-search__submit{flex:0 0 250px;width:250px;min-width:0}
.pk-header-search .elementor-shortcode{width:100%}

/* Logo a su tamaño real (el SVG es 250x55) */
.pk-header .pk-logo__img{width:250px;height:auto;max-width:none}

/* Carrito: icono discreto, sin caja */
.pk-header .elementor-menu-cart__toggle .elementor-button{
  padding:0;background:transparent;border:0;color:var(--pk-white)}
.pk-header .elementor-menu-cart__toggle .elementor-button-icon{font-size:20px}
.pk-header .elementor-menu-cart__toggle .elementor-button-text{display:none}

/* Reparto de la fila de cabecera: logo fijo · menú elástico · acciones al contenido.
   Elementor da --width:100% a los contenedores hijos y, sin esto, el tercero
   se come el ancho y los otros dos colapsan a 0. */
.pk-header > .e-con:nth-child(1){flex:0 0 250px;width:250px}
.pk-header > .e-con:nth-child(2){flex:1 1 auto;width:auto;justify-content:center}
.pk-header > .pk-actions{flex:0 0 auto;width:auto}
.pk-header .pk-actions > .elementor-widget{width:auto;flex:0 0 auto}

.pk-foot-links li:last-child a{border-bottom:0}

/* ---------- Marca del pie ---------- */
.pk-fbrand{margin:0 0 26px}
.pk-fbrand__logo{display:block;line-height:0;margin:0 0 16px}
.pk-fbrand__logo img{display:block;width:200px;height:auto}
.pk-fbrand__claim{margin:0;max-width:15ch;font:400 17px/1.35 var(--pk-font);color:var(--pk-white)}

/* ---------- Ajuste fino del pie al original ---------- */
.pk-footer-box .elementor-widget-button{width:100%}
/* `min-height` sin centrado vertical dejaba el texto 7 px por encima. */
.pk-footer-box .elementor-button{width:100%;display:flex;align-items:center;
  justify-content:center;min-height:76px;
  transition:background-color .18s ease,color .18s ease}
/* Los dos botones, centrados en su columna y con aire por dentro de la caja. */
.pk-footer-box > .e-con:last-child,
.pk-footer-box > .e-con:last-child > .e-con-inner{justify-content:center;gap:14px}
/* Al pasar el ratón cada botón se aclara, pero NO se convierte en el otro:
   antes «Contact» se ponía del mismo coral que «Catalogue» y confundía. */
.pk-footer-box .elementor-button[href*="contact"]:hover,
.pk-footer-box .elementor-button[href*="contacto"]:hover{
  background-color:rgba(244,240,237,.78)!important;color:var(--pk-teal-900)!important}
.pk-footer-box .elementor-button[href$=".pdf"]:hover{
  background-color:var(--pk-coral-400)!important;color:var(--pk-white)!important}
.pk-footer-box .elementor-social-icon{width:56px;height:56px;font-size:19px}
.pk-footer-box .elementor-social-icons-wrapper{gap:14px}

/* ---------- Móvil ---------- */
@media(max-width:1024px){
  /* Una sola fila: logotipo · idiomas · carrito · menú. En dos filas el
     logotipo se salía por encima del hero y quedaba cortado. */
  .pk-header{position:relative;flex-wrap:nowrap!important;padding:14px 16px!important;
    align-items:center;gap:10px}
  .pk-header > .e-con:nth-child(1){flex:0 0 148px;width:148px}
  .pk-header .pk-logo__img{width:148px}
  /* `position:static` también en el contenedor de Elementor: si no, el panel
     desplegable se ancla al botón (34 px) en vez de a la cabecera. */
  .pk-header > .e-con:nth-child(2){display:flex!important;order:3;flex:0 0 auto;
    width:auto;padding:0;position:static!important}
  /* Elementor pone `position:relative` en el DIV del widget; sin anular eso el
     panel se ancla al botón de 34 px en vez de a la cabecera. */
  .pk-header > .e-con:nth-child(2) .elementor-widget,
  .pk-header > .e-con:nth-child(2) .elementor-shortcode{position:static!important}
  .pk-header > .pk-actions{flex:1 1 auto;width:auto;justify-content:flex-end;gap:12px;order:2}
  /* El botón "Catalogue" no cabe en 390 px; en el original tampoco está. */
  .pk-actions .elementor-widget-button{display:none}
  .pk-langs .pk-lang{padding:6px 3px;font-size:16px}

  .pk-burger{display:flex;flex-direction:column;justify-content:center;gap:5px;
    width:34px;height:34px;padding:6px 4px;cursor:pointer}
  .pk-burger span{display:block;height:2px;border-radius:2px;background:var(--pk-teal-900);
    transition:background .15s ease}
  body.pk-hero-overlay .pk-burger span{background:var(--pk-white)}
  .pk-navtoggle:focus-visible + .pk-burger{outline:2px solid var(--pk-coral);outline-offset:2px}

  .pk-nav{position:static}
  .pk-nav__list{display:none;position:absolute;top:100%;left:0;right:0;z-index:30;
    flex-direction:column;align-items:stretch;padding:8px 0;
    background:var(--pk-white);border-top:1px solid var(--pk-rule,#DCE3E3);
    box-shadow:0 14px 28px rgba(33,33,33,.16)}
  .pk-navtoggle:checked ~ .pk-nav .pk-nav__list{display:flex}
  /* El panel es blanco: los enlaces van en azul aunque la cabecera de la
     portada los pinte en blanco por ir superpuesta sobre el hero. */
  .pk-nav__list > li > a,
  body.pk-hero-overlay .pk-nav__list > li > a{color:var(--pk-teal-900);padding:12px 22px}
  .pk-nav__list > li.current-menu-item > a,
  body.pk-hero-overlay .pk-nav__list > li.current-menu-item > a{color:var(--pk-coral)}
  .pk-nav__list > li > a::after{display:none}
  .pk-nav__list .sub-menu{position:static;opacity:1;visibility:visible;transform:none;
    box-shadow:none;padding:0 0 6px 14px;min-width:0}

  .pk-header-search{padding:14px 16px!important}
  .pk-header-search .pk-search{flex-direction:column;gap:8px}
  /* En columna, el `flex-basis:250px` de escritorio pasa a ser ALTO y dejaba
     tres cuadrados de 250 px que empujaban el hero fuera de la pantalla.
     En móvil los campos van a lo ancho y con su altura normal. */
  .pk-search .pk-search__text,
  .pk-search .pk-search__cat,
  .pk-search .pk-search__submit{
    flex:0 0 auto;width:100%;max-width:none;height:44px;min-height:44px}
  .pk-footer-box{flex-wrap:wrap}
  .pk-footer-box > .e-con{flex:1 1 100%!important;width:100%!important}
}
@media(max-width:767px){
  .pk-legal__list{gap:6px 16px}
  .pk-legal__list a{font-size:14px}
}

/* ---------- Ficha de producto: tabla de especificaciones ---------- */
.pk-specs{width:100%;border-collapse:collapse;margin:26px 0 0;font-family:var(--pk-font)}
.pk-specs th,.pk-specs td{padding:13px 0;text-align:left;vertical-align:top;
  border-bottom:1px solid var(--pk-teal-100);font-size:15px;line-height:1.5}
.pk-specs th{width:38%;font-weight:700;color:var(--pk-teal-700);padding-right:20px}
.pk-specs td{color:var(--pk-ink)}
.pk-specs__pdf{margin:18px 0 0}
.pk-specs__pdf a{font:700 15px/1.5 var(--pk-font);color:var(--pk-teal-900);text-decoration:none;
  border-bottom:1px solid var(--pk-teal-300)}
.pk-specs__pdf a:hover{border-bottom-color:var(--pk-teal-900)}

/* ---------- Botón de consulta ---------- */
.pk-ask{margin:22px 0 0}
.pk-ask__ok{margin:0 0 14px;padding:12px 18px;border-radius:10px;
  background:var(--pk-teal-100);color:var(--pk-teal-900);font:400 15px/1.5 var(--pk-font)}
.pk-ask__open{width:100%;min-height:56px;padding:14px 24px;border:1px solid var(--pk-teal-900);
  border-radius:50px;cursor:pointer;background:transparent;color:var(--pk-teal-900);
  font:700 15px/1.35 var(--pk-font);transition:background .18s ease,color .18s ease;
  /* la etiqueta es larga: sin esto su ancho mínimo empuja la página en móvil */
  white-space:normal;text-wrap:balance;min-width:0}
.pk-ask__open:hover{background:var(--pk-teal-900);color:var(--pk-white)}

/* ---------- Ventana emergente ---------- */
.pk-modal{width:min(520px,calc(100vw - 32px));padding:0;border:0;border-radius:16px;
  background:var(--pk-white);color:var(--pk-ink)}
.pk-modal::backdrop{background:rgba(33,33,33,.55)}
.pk-modal__form{position:relative;display:flex;flex-direction:column;gap:14px;padding:36px 32px 32px}
.pk-modal__close{position:absolute;top:10px;right:14px;border:0;background:none;cursor:pointer;
  font-size:30px;line-height:1;color:var(--pk-grey-400)}
.pk-modal__close:hover{color:var(--pk-ink)}
.pk-modal__title{margin:0;font:700 20px/1.3 var(--pk-font);color:var(--pk-teal-900)}
.pk-modal__cas{margin:-6px 0 0;font:400 14px/1.4 var(--pk-font);color:var(--pk-teal-700)}
.pk-modal label{display:flex;flex-direction:column;gap:6px;font:400 14px/1.4 var(--pk-font);color:var(--pk-grey-600)}
.pk-modal input[type=text],.pk-modal input[type=email],.pk-modal textarea{
  padding:11px 14px;font:400 15px/1.4 var(--pk-font);color:var(--pk-ink);
  border:1px solid var(--pk-teal-300);border-radius:5px;background:var(--pk-white)}
.pk-modal input:focus,.pk-modal textarea:focus{outline:2px solid var(--pk-teal-500);outline-offset:1px}
.pk-modal__consent{flex-direction:row;align-items:flex-start;gap:9px}
.pk-modal__consent input{margin-top:3px}
.pk-modal__send{min-height:52px;border:0;border-radius:50px;cursor:pointer;
  background:var(--pk-teal-900);color:var(--pk-white);font:700 15px/1.4 var(--pk-font)}
.pk-modal__send:hover{background:var(--pk-teal-700)}
.pk-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* ---------- Relacionados ---------- */
.pk-related{margin:0}
.pk-related ul.products{display:grid;grid-template-columns:repeat(4,1fr);gap:26px;
  margin:0;padding:0;list-style:none}
.pk-related ul.products::before,.pk-related ul.products::after{display:none}
.pk-related ul.products li.product{width:auto!important;margin:0!important;float:none!important}
.pk-related ul.products li.product img{border-radius:12px;background:var(--pk-sand)}
.pk-related ul.products li.product .woocommerce-loop-product__title{
  font:400 16px/1.35 var(--pk-font);color:var(--pk-ink);padding:12px 0 0}
.pk-related .price{display:none}
@media(max-width:1024px){.pk-related ul.products{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.pk-related ul.products{grid-template-columns:1fr}}

/* ---------- Ficha de producto: ajustes al diseño original ---------- */
.pk-prod-img .woocommerce-product-gallery__image img,
.pk-prod-img img{border-radius:16px;background:var(--pk-sand)}

/* Línea de categorías: en el original van en tinta, no en el rosa de Woo */
.pk-prod-sum .product_meta,.pk-prod-sum .posted_in{font:400 17px/1.5 var(--pk-font);color:var(--pk-ink)}
.pk-prod-sum .product_meta a,.pk-prod-sum .posted_in a{color:var(--pk-teal-700);text-decoration:none}
.pk-prod-sum .product_meta a:hover{text-decoration:underline}
.pk-prod-sum .sku_wrapper,.pk-prod-sum .tagged_as{display:none}

/* Carrito: el widget no acepta el color por settings, se fija aquí */
.pk-prod-sum form.cart{display:block}
.pk-prod-sum form.cart .wc-pao-addon-container{margin:0 0 18px}
.pk-prod-sum .single_add_to_cart_button{
  width:100%;min-height:52px;padding:12px 25px;border:0;border-radius:10px;
  background:var(--pk-teal-900)!important;color:var(--pk-sand)!important;
  font:700 15px/1.4 var(--pk-font);cursor:pointer;transition:background .18s ease}
.pk-prod-sum .single_add_to_cart_button:hover{background:var(--pk-teal-700)!important}

/* La tabla de especificaciones no debe heredar cabeceras grises de Woo */
.pk-specs th{background:transparent!important}
.pk-specs tr:nth-child(odd) td,.pk-specs tr:nth-child(odd) th{background:transparent!important}

/* Precios a 0 € no aportan nada en un catálogo de muestra */
.pk-related .price,.pk-related .woocommerce-Price-amount{display:none!important}

/* La tabla de Woo/Hello mete marco y fondo en las celdas; los quitamos */
.pk-specs,.pk-specs tr,.pk-specs th,.pk-specs td{border:0!important;background:transparent!important}
.pk-specs th,.pk-specs td{border-bottom:1px solid var(--pk-teal-100)!important}
.pk-specs{margin-top:8px}

/* Lote arriba a todo el ancho, botón debajo — como en el original */
.pk-prod-sum form.cart{display:block!important}
.pk-prod-sum form.cart .wc-pao-addon-container,
.pk-prod-sum form.cart .wc-pao-addon{width:100%;margin:0 0 16px}
.pk-prod-sum form.cart select{width:100%;height:44px;padding:10px 14px;
  font:400 15px/1 var(--pk-font);color:var(--pk-ink);
  border:1px solid var(--pk-teal-300);border-radius:5px;background:var(--pk-sand)}
.pk-prod-sum form.cart .quantity{display:none}

/* La × heredaba el botón rojo de Woo, y `.pk-modal label` ganaba en especificidad
   a `.pk-modal__consent` dejando la casilla apilada sobre su texto. */
.pk-modal .pk-modal__close{background:transparent!important;border:0!important;
  padding:0!important;min-height:0!important;border-radius:0!important;
  color:var(--pk-grey-400)!important;font-size:30px!important;line-height:1!important}
.pk-modal .pk-modal__close:hover{background:transparent!important;color:var(--pk-ink)!important}
.pk-modal label.pk-modal__consent{flex-direction:row;align-items:flex-start;gap:9px}
.pk-modal label.pk-modal__consent input{margin-top:3px;flex:0 0 auto;width:auto}

/* ---------- Tarjeta de producto (calcada del original: 308x401, arena, radio 15) ---------- */
ul.products{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;
  margin:0;padding:0;list-style:none}
ul.products::before,ul.products::after{display:none!important}
ul.products li.product{width:auto!important;margin:0!important;float:none!important}
/* el padding de la tarjeta lo pone .pk-card; no anularlo aquí */

.pk-card{background:var(--pk-sand);border-radius:15px;padding:10px!important;
  transition:transform .18s ease,box-shadow .18s ease}
.pk-card:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(40,78,86,.13)}
.pk-card__link{display:flex;flex-direction:column;gap:0;text-decoration:none;color:inherit}
.pk-card__media{display:block;border-radius:15px;overflow:hidden}
.pk-card__media img{display:block;width:100%;aspect-ratio:1/1;object-fit:contain;
  background:var(--pk-sand);border-radius:15px;margin:0}
.pk-card__body{display:flex;flex-direction:column;gap:5px;align-items:center;
  background:var(--pk-white);border-radius:15px;padding:20px 5px;margin-top:10px;text-align:center}
.pk-card__title{font:400 18px/1.3 var(--pk-font);color:var(--pk-teal-900)}
.pk-card__cas{font:400 15px/1.3 var(--pk-font);color:var(--pk-teal-500)}
.pk-card .price,.pk-card .button,.pk-card .add_to_cart_button{display:none!important}

/* ---------- Archivo de categoría: columna de introducción ---------- */
.pk-catintro{border:1px solid var(--pk-teal-100);border-radius:15px;padding:22px}
.pk-catintro__img{display:block;width:100%;height:auto;border-radius:10px;margin:0 0 22px}
.pk-catintro__title{margin:0 0 16px;font:400 26px/1.25 var(--pk-font);color:var(--pk-ink)}
.pk-catintro__desc{font:400 16px/1.65 var(--pk-font);color:var(--pk-ink)}
.pk-catintro__desc p{margin:0 0 14px}
.pk-catintro__desc ul{margin:0 0 14px;padding-left:20px}
.pk-catintro__desc li{margin:0 0 6px}

@media(max-width:1024px){ul.products{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){ul.products{grid-template-columns:1fr}}

/* ================= PORTADA ================= */

/* Hero con vídeo de fondo. El H1 del original es calc(26px + 4vw): 83.6px a 1440. */
/* El hero del original NO mide píxeles fijos: es `h60` = 60 % de la altura de
   la ventana. Comprobado a 700/900/1200 px de alto → 420/540/720. Por eso con
   una altura fija se veía enorme en unas pantallas y corto en otras. */
.pk-hero{position:relative;overflow:hidden;min-height:60vh}
.pk-hero__title{margin:0;color:var(--pk-white);
  font:700 clamp(38px,calc(26px + 4vw),86px)/1.06 var(--pk-font)}
.pk-hero__box{display:inline-flex;align-items:center;gap:16px;margin-top:10px;
  padding:6px 26px 6px 14px;border:1px solid rgba(255,255,255,.9);border-radius:16px}
.pk-hero__box img{width:50px;height:50px;border-radius:50%;flex:0 0 auto}
/* En el original el enlace va suelto abajo a la derecha del hero, no debajo
   del titular. */
/* Los widgets del hero deben pintar POR ENCIMA del vídeo de fondo, que es
   absoluto con z-index 0. (Ponerlos `static` hacía desaparecer el titular.) */
.pk-hero .elementor-widget{position:relative;z-index:1}
/* Sólo el del enlace se saca del flujo posicionado, para que el `right` se
   mida contra el hero (1424) y no contra el widget (1380). */
.pk-hero .elementor-widget:has(.pk-hero__dl){position:static}
.pk-hero__dl{position:absolute;right:20px;bottom:80px;margin:0;text-align:right}

/* Enlaces sobre imagen: sólo desenfocan el fondo, sin teñirlo (en el original
   es la clase `fondo-borroso`). Nunca subrayado al pasar el ratón. */
.pk-hero__dl a,.pk-services__cta a{
  display:inline-block;padding:30px 60px;border-radius:50px;
  font:700 16.5px/1.2 var(--pk-font);color:var(--pk-white)!important;text-decoration:none;
  background:transparent;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  transition:background-color .2s ease}
.pk-hero__dl a:hover,.pk-hero__dl a:focus-visible,
.pk-services__cta a:hover,.pk-services__cta a:focus-visible{
  text-decoration:none;background:rgba(255,255,255,.12)}

/* YouTube pinta el título del vídeo en la esquina superior del reproductor y
   se colaba sobre el hero. Ampliando el contenedor, esa franja queda fuera del
   recorte de la sección (`overflow:hidden`) y no se ve. */
/* Cualquier sección con vídeo de fondo TIENE que recortar: el iframe de
   YouTube se dimensiona para cubrir y se desborda por abajo, tapando el
   contenido siguiente (así se rompió la página de Servicios). */
.pk-hero,.pk-services,.pk-svc-hero{overflow:hidden}
.pk-hero .elementor-background-video-container,
.pk-services .elementor-background-video-container,
.pk-svc-hero .elementor-background-video-container{transform:scale(1.2)}

/* Cabecera superpuesta solo donde hay hero oscuro: el hero sube por detrás. */
body.pk-hero-overlay .pk-header{position:relative;z-index:10;background:transparent}
body.pk-hero-overlay .pk-header.elementor-sticky--effects{background:var(--pk-teal-900)}
/* El titular va más abajo, a la altura del original (≈470 px desde arriba). */
/* El hero arranca 15 px por debajo de la barra de búsqueda y la cabecera va
   superpuesta encima, igual que en el original. */
body.pk-hero-overlay .pk-hero{margin-top:-90px;padding-top:176px;padding-bottom:8px}
/* El hero de escritorio mide 965 px de alto y reserva 255 abajo para colocar
   el titular; en una pantalla de móvil eso es una pantalla y media en blanco. */
/* En móvil el original mantiene el mismo 60vh; sólo cambia el hueco inferior.
   Y el enlace de catálogo vuelve al flujo, debajo del titular: en absoluto se
   montaba encima del texto en pantallas estrechas. */
@media(max-width:1024px){
  body.pk-hero-overlay .pk-hero{padding-bottom:30px}
  .pk-hero__dl{position:static;right:auto;bottom:auto;margin:26px 0 0;text-align:center}
  .pk-hero__dl a{padding:20px 34px}
}

/* ---------- Ritmo vertical de la portada ----------
   Calcado del original, que es todo relativo a la ventana:
   hero 60vh · 15 px · tarjetas 35vh · 15 px · buscador (30/30) · 15 px · …
   Con alturas fijas en píxeles se veía enorme en pantallas bajas. */
body.home main .elementor > .e-con{padding-bottom:0!important}
body.home main .elementor > .e-con + .e-con{margin-top:15px}
body.home main .elementor > .e-con > .e-con-inner > .elementor-widget:last-child,
body.home main .elementor > .e-con > .elementor-widget:last-child{margin-bottom:0}
.pk-catcard{min-height:35vh}
body.home main .elementor > .e-con.pk-home-search{padding-top:30px!important;padding-bottom:30px!important}
.pk-services{padding-top:150px!important;padding-bottom:150px!important}

/* Tarjetas de categoría */
.pk-catcards > .e-con{flex:1 1 0;min-width:0}
.pk-catcard{position:relative;overflow:hidden}
.pk-catcard__link{position:absolute;inset:0;display:flex;flex-direction:column;
  justify-content:flex-end;padding:30px 32px;text-decoration:none;color:var(--pk-white)}
.pk-catcard__title{font:400 30px/1.2 var(--pk-font);color:var(--pk-white)}
.pk-catcard__arrow{position:absolute;top:22px;right:26px;font-size:60px;line-height:1;
  font-weight:200;color:var(--pk-white);transition:transform .2s ease}
.pk-catcard:hover .pk-catcard__arrow{transform:translate(4px,-4px)}

/* ---------- Banda de catálogo al pie del contenido ----------
   Calcada del bloque reutilizable del original: 478 px, radio 15, el vídeo de
   las burbujas de fondo, reclamo a la izquierda y enlace al PDF a la derecha. */
/* Titular al 52 % del alto y enlace al 75 %, como en el original. El enlace
   va en absoluto respecto a la BANDA, no a su widget. */
.pk-cta{position:relative;overflow:hidden;justify-content:flex-end;
  width:calc(100% - 32px)!important;margin-inline:16px;
  padding-inline:44px!important;padding-bottom:8px!important}
.pk-cta .elementor-widget:has(.pk-cta__dl){position:static}
.pk-cta .elementor-background-video-container{transform:scale(1.2)}
.pk-cta .elementor-widget{position:relative;z-index:1}
.pk-cta__title{margin:0;color:var(--pk-white);
  font:700 clamp(34px,calc(26px + 4vw),86px)/1.06 var(--pk-font)}
.pk-cta__dl{position:absolute;right:44px;bottom:40px;margin:0;text-align:right}
.pk-cta__dl a{display:inline-block;padding:30px 60px;border-radius:50px;
  font:700 16.5px/1.2 var(--pk-font);color:var(--pk-white)!important;text-decoration:none;
  background:transparent;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  transition:background-color .2s ease}
.pk-cta__dl a:hover,.pk-cta__dl a:focus-visible{background:rgba(255,255,255,.12)}
@media(max-width:1024px){
  .pk-cta{min-height:340px!important}
  .pk-cta__dl{position:static;margin:24px 0 0;text-align:center}
  .pk-cta__dl a{padding:20px 34px}
}

/* Titular con filetes a los lados */
.pk-ruled{display:flex;align-items:center;gap:26px;margin:0 0 34px}
.pk-ruled::before,.pk-ruled::after{content:"";flex:1;height:1px;background:var(--pk-teal-300)}
.pk-ruled span{font:700 37.5px/1.2 var(--pk-font);color:var(--pk-teal-900);white-space:nowrap}

/* Bloque de servicios */
.pk-services__text{max-width:900px;margin:0 auto;text-align:center;color:var(--pk-white);
  font:700 clamp(26px,3vw,44px)/1.2 var(--pk-font)}
.pk-services__cta{margin:38px 0 0;text-align:center}

@media(max-width:1024px){
  .pk-catcards{flex-wrap:wrap}
  .pk-catcards > .e-con{flex:1 1 100%}
  /* La cabecera móvil mide 64 px: el hero sube exactamente eso para quedar
     debajo, ni un píxel más (si no se mete bajo la barra del buscador). */
  body.pk-hero-overlay .pk-hero{margin-top:-64px;padding-top:104px}
}
@media(max-width:767px){
  .pk-ruled{gap:14px}
  .pk-ruled span{font-size:26px;white-space:normal}
  .pk-hero__box{padding:6px 16px 6px 10px;gap:10px}
  .pk-hero__box img{width:36px;height:36px}
}

/* Elementor pone position:relative en cada widget, así que el enlace absoluto de la
   tarjeta se posicionaba contra el widget (60px de alto) en vez de contra la tarjeta. */
.pk-catcard .elementor-widget,
.pk-catcard .elementor-widget-container{position:static}

/* Los "best sellers" van a 4 en fila, como en el original (la rejilla general es de 3) */
.pk-bestsellers ul.products{grid-template-columns:repeat(4,1fr)}
@media(max-width:1024px){.pk-bestsellers ul.products{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.pk-bestsellers ul.products{grid-template-columns:1fr}}

/* ================= PÁGINA DE SERVICIO ================= */
.pk-svc-hero__title{margin:0;text-align:center;color:var(--pk-white);
  font:700 clamp(28px,3.2vw,43px)/1.15 var(--pk-font)}

.pk-svc-p{margin:0 0 22px;font:400 18px/1.65 var(--pk-font);color:var(--pk-ink)}
.pk-svc-p strong{font-weight:700}
.pk-svc-feats{margin-top:34px}
.pk-svc-feat__h{margin:0 0 8px;font:700 23px/1.3 var(--pk-font);color:var(--pk-coral)}
.pk-svc-feats .pk-svc-p{margin-bottom:26px}
.pk-svc-closing{margin:40px 0 0;text-align:center;
  font:700 clamp(20px,2vw,26px)/1.4 var(--pk-font);color:var(--pk-ink)}

/* Llamada a la acción */
.pk-svc-ctabox{text-align:center}
.pk-svc-cta__t{margin:0 0 10px;font:700 19px/1.4 var(--pk-font);color:var(--pk-teal-900)}
.pk-svc-cta__d{margin:0 0 30px;font:400 19px/1.5 var(--pk-font);color:var(--pk-teal-900)}
.pk-svc-cta__b{margin:0}
.pk-svc-cta__b a{display:inline-block;padding:20px 34px;border-radius:8px;
  background:var(--pk-teal-900);color:var(--pk-sand);text-decoration:none;
  font:700 15px/1.2 var(--pk-font);transition:background .18s ease}
.pk-svc-cta__b a:hover{background:var(--pk-teal-700)}

/* Acordeón con <details> nativos: sin JS y accesible con teclado */
.pk-acc{margin:0}
.pk-acc__item{border-bottom:1px solid var(--pk-teal-100)}
.pk-acc__item summary{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 4px;cursor:pointer;list-style:none;
  font:400 18px/1.4 var(--pk-font);color:var(--pk-teal-900)}
.pk-acc__item summary::-webkit-details-marker{display:none}
.pk-acc__item summary::after{content:"";flex:0 0 auto;width:10px;height:10px;
  border-right:2px solid var(--pk-teal-500);border-bottom:2px solid var(--pk-teal-500);
  transform:rotate(45deg);transition:transform .2s ease}
.pk-acc__item[open] summary::after{transform:rotate(-135deg)}
.pk-acc__item summary:hover{color:var(--pk-coral)}
.pk-acc__body{padding:0 4px 20px}
.pk-acc__body p{margin:0;font:400 16px/1.65 var(--pk-font);color:var(--pk-ink)}

/* Tarjetas de otros servicios */
.pk-svc-cards > .e-con{flex:1 1 0;min-width:0}
.pk-svc-card{display:flex}
.pk-svc-card__h{margin:0 0 12px;font:700 23px/1.3 var(--pk-font);color:var(--pk-teal-900)}
.pk-svc-card__p{margin:0 0 24px;font:400 17px/1.6 var(--pk-font);color:var(--pk-ink)}
.pk-svc-card__b{margin:auto 0 0}
.pk-svc-card__b a{display:block;padding:16px 20px;border-radius:8px;text-align:center;
  background:var(--pk-teal-900);color:var(--pk-sand);text-decoration:none;
  font:700 15px/1.2 var(--pk-font)}
.pk-svc-card__b a:hover{background:var(--pk-teal-700)}

@media(max-width:900px){
  .pk-svc-cards{flex-wrap:wrap}
  .pk-svc-cards > .e-con{flex:1 1 100%}
  .pk-svc-acc > .e-con-inner > .e-con{width:100%!important}
}

/* ================= PÁGINA DE CONTACTO ================= */
.pk-contact-map img{display:block;width:100%;height:auto;border-radius:15px}
.pk-contact__intro{margin:0 0 18px;font:700 23px/1.4 var(--pk-font);color:var(--pk-ink)}
.pk-contact__data{margin:0 0 34px;font:400 21px/1.5 var(--pk-font);color:var(--pk-teal-500)}
.pk-contact__data a{color:var(--pk-teal-500);text-decoration:none}
.pk-contact__data a:hover{text-decoration:underline}
/* El teléfono va como en la web original: recuadro de 1 px naranja con
   esquinas redondeadas, y el número dentro en el mismo tono que la línea. */
.pk-contact__data .pk-tel{display:inline-block;padding:0 10px;
  border:1px solid #E96449;border-radius:15px;
  color:var(--pk-teal-500);box-shadow:none}
.pk-contact__data .pk-mail{font-weight:400}

/* Formulario */
.pk-form__row{margin:0 0 14px}
.pk-form input[type=text],.pk-form input[type=email],.pk-form input[type=tel],.pk-form textarea{
  width:100%;padding:14px 18px;font:400 15px/1.4 var(--pk-font);color:var(--pk-ink);
  background:var(--pk-sand);border:1px solid var(--pk-teal-100);border-radius:6px}
.pk-form textarea{resize:vertical;min-height:110px}
.pk-form input::placeholder,.pk-form textarea::placeholder{color:var(--pk-grey-600);opacity:.85}
.pk-form input:focus,.pk-form textarea:focus{outline:2px solid var(--pk-teal-500);outline-offset:1px}
.pk-form__check{display:flex;align-items:flex-start;gap:10px;margin:0 0 10px;
  font:400 18px/1.4 var(--pk-font);color:var(--pk-ink)}
.pk-form__check input{margin-top:4px;flex:0 0 auto}
.pk-form__legal{margin:18px 0 0;font:italic 400 13px/1.55 var(--pk-font);color:var(--pk-ink)}
.pk-form__legal a{color:var(--pk-teal-500)}
.pk-form__send{margin:26px 0 0;text-align:right}
.pk-form__send button{min-width:164px;padding:20px 30px;border:0;border-radius:8px;cursor:pointer;
  background:var(--pk-teal-900);color:var(--pk-sand);font:700 15px/1.2 var(--pk-font);
  transition:background .18s ease}
.pk-form__send button:hover{background:var(--pk-teal-700)}
.pk-form__ok{margin:0 0 20px;padding:14px 20px;border-radius:10px;
  background:var(--pk-teal-100);color:var(--pk-teal-900);font:400 16px/1.5 var(--pk-font)}

@media(max-width:900px){
  .pk-contact > .e-con-inner{flex-wrap:wrap}
  .pk-contact > .e-con-inner > .e-con{width:100%!important}
  .pk-contact__data{font-size:18px}
}

/* Otra hoja pone border:0 !important en los enlaces y se comía la píldora del teléfono;
   el contorno se dibuja con box-shadow, que ningún reset toca. */

/* Especificidad por encima de `.pk-contact__data a` (que si no se lleva el color)
   y del reset `.elementor a{box-shadow:none}`. */
.pk-contact__data a.pk-tel{color:var(--pk-teal-500);box-shadow:none;border:1px solid #E96449}

/* Nombre de la empresa destacado en pastilla, como el `.destacado-blanco`
   del original: borde blanco de 1 px, radio 15 y 10 px a los lados. */
.pk-destacado{display:inline-block;padding:0 10px;
  border:1px solid var(--pk-white);border-radius:15px}

/* «Other Services» con la foto del servicio de fondo: el texto pasa a blanco
   y el botón a la pastilla clara, o no se leería nada. */
.pk-svc-card--foto{position:relative;min-height:290px;justify-content:flex-end}
.pk-svc-card--foto .pk-svc-card__h,
.pk-svc-card--foto .pk-svc-card__p{color:var(--pk-white)!important}
.pk-svc-card--foto .pk-svc-card__b a{
  display:inline-block;padding:12px 26px;border-radius:50px;
  background:var(--pk-sand);color:var(--pk-teal-900);text-decoration:none;
  font:700 15px/1.2 var(--pk-font);transition:background-color .18s ease}
.pk-svc-card--foto .pk-svc-card__b a:hover{background:var(--pk-coral);color:var(--pk-white)}

/* ================= PROYECTOS ================= */
/* Pastilla con el acrónimo del proyecto entre la imagen y el título, como en
   el original. El dato vive en el campo `acronym` de cada proyecto. */
/* El contorno se queda naranja; el texto va en el azul-verdoso corporativo. */
.pk-proj__acro{display:inline-block;margin:0 0 10px;padding:4px 14px;
  border:1px solid var(--pk-coral);border-radius:50px;text-transform:uppercase;
  font:400 13px/1.3 var(--pk-font);color:var(--pk-teal-900);letter-spacing:.02em}
.pk-projects .pk-newsfilter{grid-column:1/-1}

.pk-projects{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.pk-proj{display:block;text-decoration:none;color:inherit;background:var(--pk-sand);
  border-radius:15px;padding:10px;transition:transform .18s ease,box-shadow .18s ease}
.pk-proj:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(40,78,86,.13)}
.pk-proj__media{display:block;border-radius:12px;overflow:hidden}
.pk-proj__img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.pk-proj__body{display:block;padding:18px 12px 14px;text-align:center}
.pk-proj__title{display:block;font:700 19px/1.35 var(--pk-font);color:var(--pk-teal-900)}
@media(max-width:1024px){.pk-projects{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.pk-projects{grid-template-columns:1fr}}

/* Ficha de proyecto */
/* Ficha de proyecto — dos columnas, como en el original: la foto a la
   izquierda ocupa todo el alto del bloque (473 px de 1420) y el contenido va a
   la derecha, separados 50 px. */
.pk-project{display:grid;grid-template-columns:minmax(0,473fr) minmax(0,847fr);
  gap:50px;align-items:stretch}
.pk-project--sinfoto{grid-template-columns:minmax(0,1fr)}
.pk-project__foto{border-radius:15px;background-size:cover;background-position:center;
  min-height:420px}
.pk-project__main{min-width:0}
.pk-project__logo{margin:0 0 22px}
.pk-project__logo img{max-height:100px;width:auto;height:auto}
.pk-project__title{margin:0 0 16px;font:700 clamp(26px,2.6vw,37.5px)/1.2 var(--pk-font);
  color:var(--pk-ink)}
/* Fechas y presupuesto en la píldora de borde coral del original. */
.pk-project__meta{margin:0 0 28px}
.pk-project__meta span{display:inline-block;padding:3px 10px;
  border:1px solid #E96449;border-radius:15px;
  font:400 18px/1.45 var(--pk-font);color:var(--pk-teal-900)}
.pk-project__desc p{margin:0 0 18px;font:400 16px/1.7 var(--pk-font);color:var(--pk-ink)}
.pk-project__label{margin:34px 0 16px;font:400 16px/1.4 var(--pk-font);color:var(--pk-ink)}
/* Socios: tarjeta blanca con borde, el logotipo centrado dentro. */
.pk-project__partners{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.pk-partner{display:flex;align-items:center;justify-content:center;
  min-height:160px;padding:20px;background:var(--pk-white);
  border:1px solid #E5E5E5;border-radius:10px}
.pk-partner__img{max-width:100%;max-height:120px;width:auto;height:auto;object-fit:contain}
.pk-project__funding img{max-width:260px;height:auto}
.pk-project__funding p{margin:14px 0 0;font:400 15px/1.6 var(--pk-font);color:var(--pk-grey-600)}
.pk-project__cta{margin:30px 0 0}
.pk-project__cta a{display:inline-block;padding:18px 32px;border-radius:8px;
  background:var(--pk-teal-900);color:var(--pk-sand);text-decoration:none;
  font:700 15px/1.2 var(--pk-font);transition:background .18s ease}
.pk-project__cta a:hover{background:var(--pk-teal-700)}
@media(max-width:1024px){
  .pk-project{grid-template-columns:minmax(0,1fr);gap:28px}
  .pk-project__foto{min-height:280px}
  .pk-project__partners{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:600px){.pk-project__partners{grid-template-columns:repeat(2,1fr)}}

/* ================= SOBRE NOSOTROS ================= */
.pk-about-hero__t{margin:0 auto;text-align:center;color:var(--pk-white);max-width:640px;
  font:700 calc(18px + 1.8vw)/1.25 var(--pk-font)}
/* Equipo: TODAS las fotos al mismo tamaño (290x307, el del original). Antes
   las filas de dos salían al doble que las de tres porque cada foto ocupaba
   su columna, y nadie debe salir más grande que nadie. */
.pk-team-row{align-items:flex-start;justify-content:center;gap:30px}
.pk-team-row > .elementor-widget{flex:0 0 290px;width:290px;min-width:0}
.pk-person .elementor-image-box-img img{
  width:290px;height:307px;object-fit:cover;object-position:center top;
  background:var(--pk-white);border-radius:12px;display:block}
.pk-person .elementor-image-box-title{margin:16px 0 4px}
.pk-person .elementor-image-box-description,
.pk-person .elementor-image-box-content .elementor-image-box-description{
  margin:0;color:var(--pk-grey-600)!important}
/* Tercera línea: el área, en coral, como en el diseño original. */
.pk-person__area{display:block;margin-top:2px;color:var(--pk-coral)!important}

/* Cofinanciación */
.pk-cofin{display:block;background:#F2F5F5;border-radius:15px;padding:52px 40px;text-align:center}
.pk-cofin__h,.pk-cofin__p{display:block;width:100%}
.pk-cofin__h{margin:0 0 10px;font:700 26px/1.25 var(--pk-font);color:var(--pk-teal-900)}
.pk-cofin__p{margin:0 auto 38px;max-width:70ch;font:400 16px/1.6 var(--pk-font);color:var(--pk-grey-600)}
.pk-cofin__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:40px 30px;
  list-style:none;margin:0;padding:0;align-items:center;justify-items:center}
.pk-cofin__grid img{max-width:100%;max-height:64px;width:auto;height:auto;object-fit:contain}
@media(max-width:780px){.pk-cofin__grid{grid-template-columns:repeat(2,1fr)}}

/* Vacantes */
.pk-vac{padding:44px 30px}
.pk-vac__txt{margin:0 auto!important;max-width:520px;padding:12px 20px;text-align:center;
  background:var(--pk-white);border-radius:8px;font:400 15px/1.5 var(--pk-font);color:var(--pk-grey-600)}
.pk-vac__cta{margin:22px 0 0;text-align:center}
.pk-vac__cta a{display:inline-block;padding:12px 30px;border-radius:8px;
  background:var(--pk-teal-900);color:var(--pk-white);text-decoration:none;
  font:700 15px/1.2 var(--pk-font);transition:background .18s ease}
.pk-vac__cta a:hover{background:var(--pk-teal-700)}
.pk-vac__txt{margin:0;text-align:center;font:400 18px/1.6 var(--pk-font);color:var(--pk-ink)}
.pk-vac__cta{margin:22px 0 0;text-align:center}
.pk-vac__cta a{display:inline-block;padding:16px 40px;border-radius:8px;
  background:var(--pk-teal-900);color:var(--pk-sand);text-decoration:none;
  font:700 15px/1.2 var(--pk-font)}
.pk-vac__cta a:hover{background:var(--pk-teal-700)}
.pk-cofin{display:flex;flex-wrap:wrap;gap:34px;align-items:center;margin-top:8px}
.pk-cofin img{max-width:230px;height:auto}
@media(max-width:900px){
  .pk-team-row{flex-wrap:wrap}
  .pk-team-row > .elementor-widget{flex:1 1 45%}
}
@media(max-width:560px){.pk-team-row > .elementor-widget{flex:1 1 100%}}

/* El widget image-box limita la imagen a un porcentaje propio; aquí queremos
   que ocupe toda la columna. */
.pk-person .elementor-image-box-img{width:290px!important;margin:0 auto!important}
.pk-person .elementor-image-box-wrapper{display:block;text-align:center}

/* ================= Ficha de noticia ================= */
/* Imagen destacada entre el titular y el cuerpo, como en el original. */
.pk-post__figure{margin:0 0 30px}
.pk-post__figure img{display:block;width:100%;height:auto;border-radius:15px}
/* El rosa de Hello Elementor (#CC3366) por el naranja corporativo.
   SÓLO en la ficha de noticia: `.page-content` envuelve también el contenido
   de las páginas normales y teñía de coral hasta el botón del hero. */
body.single-post .page-content a,
body.single-post .entry-content a{color:var(--pk-coral)}
body.single-post .page-content a:hover,
body.single-post .entry-content a:hover{color:var(--pk-coral-600)}

/* ================= PÁGINAS LEGALES ================= */
.pk-legal-page h1{margin:0 0 34px}
.pk-legal-page .elementor-widget-theme-post-content{font-family:var(--pk-font)}
.pk-legal-page p{margin:0 0 18px;font:400 17px/1.75 var(--pk-font);color:var(--pk-ink)}
.pk-legal-page h2{margin:40px 0 14px;font:700 24px/1.3 var(--pk-font);color:var(--pk-teal-900)}
.pk-legal-page h3{margin:30px 0 12px;font:700 19px/1.35 var(--pk-font);color:var(--pk-teal-900)}
.pk-legal-page ul,.pk-legal-page ol{margin:0 0 20px;padding-left:24px}
.pk-legal-page li{margin:0 0 8px;font:400 17px/1.7 var(--pk-font);color:var(--pk-ink)}
.pk-legal-page a{color:var(--pk-teal-700)}
.pk-legal-page hr{margin:26px 0;border:0;border-top:1px solid var(--pk-teal-100)}
.pk-legal-page table{width:100%;border-collapse:collapse;margin:0 0 24px}
.pk-legal-page th,.pk-legal-page td{padding:11px 12px;border:1px solid var(--pk-teal-100);
  text-align:left;vertical-align:top;font:400 15px/1.55 var(--pk-font)}
.pk-legal-page th{background:var(--pk-sand);font-weight:700;color:var(--pk-teal-900)}
.pk-legal-page table{display:block;overflow-x:auto}

/* Índice de /legal/ */
.pk-legal-index{list-style:none;margin:0;padding:0}
.pk-legal-index li{border-bottom:1px solid var(--pk-teal-100);margin:0}
.pk-legal-index a{display:block;padding:18px 4px;font:400 19px/1.4 var(--pk-font);
  color:var(--pk-teal-900);text-decoration:none}
.pk-legal-index a::after{content:" →"}
.pk-legal-index a:hover{color:var(--pk-coral)}

/* ================= ÍNDICE DE SERVICIOS ================= */
/* Bloques de servicio de 500 px con 15 de hueco, como en el original: la foto
   llena el alto de su mitad en vez de imponerlo con una proporción fija, que
   era lo que estiraba cada bloque hasta 571. */
.pk-svcidx{min-height:500px}
.pk-svcidx > .e-con-inner{padding-bottom:0!important;align-items:stretch}
.pk-svcidx + .pk-svcidx{margin-top:15px}
.pk-svcidx__img{align-self:stretch}
.pk-svcidx__img img{display:block;width:100%;height:100%;min-height:500px;
  border-radius:15px;object-fit:cover}
.pk-svcidx__txt{align-self:center}
.pk-svcidx__h{margin:0 0 16px;font:700 30px/1.25 var(--pk-font);color:var(--pk-ink)}
/* La alternancia texto/imagen arranca al revés que en el original: allí el
   primer bloque lleva el texto a la izquierda. */
.pk-svcidx__list{margin:0 0 18px;padding-left:20px;list-style:disc}
.pk-svcidx__list li{margin:0 0 6px;font:400 16px/1.6 var(--pk-font);color:var(--pk-ink)}
.pk-svcidx__p{margin:0 0 22px;font:400 18px/1.7 var(--pk-font);color:var(--pk-ink)}
.pk-svcidx__cta{margin:0}
.pk-svcidx__cta a{font:700 15px/1.4 var(--pk-font);color:var(--pk-teal-900);text-decoration:none;
  border-bottom:1px solid var(--pk-teal-300);padding-bottom:2px}
.pk-svcidx__cta a:hover{color:var(--pk-coral);border-bottom-color:var(--pk-coral)}
@media(max-width:900px){
  .pk-svcidx{min-height:0}
  .pk-svcidx > .e-con-inner{flex-wrap:wrap}
  .pk-svcidx > .e-con-inner > .e-con{width:100%!important}
  .pk-svcidx__img img{min-height:0;height:auto;aspect-ratio:4/3}
  .pk-svcidx__h{font-size:24px}
}

/* El <select> del modal no estaba cubierto por las reglas de input/textarea */
.pk-modal select{padding:11px 14px;font:400 15px/1.4 var(--pk-font);color:var(--pk-ink);
  background:var(--pk-white);border:1px solid var(--pk-teal-300);border-radius:5px;cursor:pointer}
.pk-modal select:focus{outline:2px solid var(--pk-teal-500);outline-offset:1px}
.pk-modal__reason{font-weight:700}
.pk-modal__consent a{color:var(--pk-teal-700);text-decoration:none}

/* La capa de zoom de WooCommerce mide ~2200px y desbordaba la página en móvil:
   se recorta en su contenedor. */
.pk-prod-img .woocommerce-product-gallery,
.pk-prod-img .woocommerce-product-gallery__wrapper,
.pk-prod-img .woocommerce-product-gallery__image{overflow:hidden;max-width:100%}
.pk-prod-img .zoomImg{max-width:none}

/* ---------- Página de solicitud de presupuesto (checkout) ---------- */
.woocommerce-checkout #place_order,
.woocommerce-cart .checkout-button{
  background:var(--pk-teal-900)!important;color:var(--pk-sand)!important;
  border:0!important;border-radius:8px!important;padding:18px 34px!important;
  font:700 15px/1.2 var(--pk-font)!important}
.woocommerce-checkout #place_order:hover,
.woocommerce-cart .checkout-button:hover{background:var(--pk-teal-700)!important}
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper,
.woocommerce-checkout #payment{background:var(--pk-sand)!important;border-radius:12px}
.woocommerce-checkout h1,.woocommerce-cart h1{margin:0 0 26px;
  font:700 clamp(26px,3vw,38px)/1.2 var(--pk-font);color:var(--pk-ink)}
.woocommerce-checkout h3,.woocommerce-cart h3{font:700 22px/1.3 var(--pk-font);color:var(--pk-teal-900)}
.woocommerce-checkout label,.woocommerce-cart label{font:400 15px/1.4 var(--pk-font);color:var(--pk-ink)}
.woocommerce-checkout input[type=text],.woocommerce-checkout input[type=email],
.woocommerce-checkout input[type=tel],.woocommerce-checkout textarea{
  padding:12px 16px;font:400 15px/1.4 var(--pk-font);
  border:1px solid var(--pk-teal-300);border-radius:6px;background:var(--pk-white)}
.woocommerce-checkout a,.woocommerce-cart a{color:var(--pk-teal-700)}

/* ================= /products/ : tarjetas de categoría grandes ================= */
.pk-catcards-full{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pk-catfull{position:relative;display:block;min-height:560px;border-radius:15px;overflow:hidden;
  background-size:cover;background-position:center;text-decoration:none;color:var(--pk-white)}
.pk-catfull__veil{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(18,28,30,.15) 0%,rgba(18,28,30,.72) 55%,rgba(18,28,30,.86) 100%)}
/* Los títulos se alinean entre tarjetas: el texto arranca arriba, no abajo,
   porque cada descripción tiene un largo distinto y los dejaba a distinta altura. */
.pk-catfull__body{position:relative;display:flex;flex-direction:column;gap:14px;
  height:100%;padding:118px 32px 32px;justify-content:flex-start}
/* Flecha en la esquina, como en cada foto de producto del original. */
.pk-catfull__arrow{position:absolute;top:22px;right:26px;z-index:1;
  font:200 60px/1 var(--pk-font);color:var(--pk-white);transition:transform .2s ease}
.pk-catfull:hover .pk-catfull__arrow{transform:translate(4px,-4px)}
.pk-catfull__h{font:400 32px/1.2 var(--pk-font);color:var(--pk-white)}
.pk-catfull__d,.pk-catfull__d p,.pk-catfull__d li{font:400 16px/1.6 var(--pk-font);color:rgba(255,255,255,.92)}
.pk-catfull__d p{margin:0 0 10px}
.pk-catfull__d ul{margin:0 0 10px;padding-left:20px}
.pk-catfull:hover .pk-catfull__veil{background:linear-gradient(180deg,rgba(18,28,30,.25) 0%,rgba(18,28,30,.8) 55%,rgba(18,28,30,.9) 100%)}
/* La tarjeta suelta del "producto del mes" era un <a> en línea: su caja se
   centraba sobre la línea base y asomaba por arriba y por abajo del hueco,
   dejando dos franjas de color. En bloque encaja exacta. */
.pk-onecard{display:block;max-width:330px;margin:26px auto 0}
.pk-card,.pk-card--solo{display:block}
@media(max-width:1024px){.pk-catcards-full{grid-template-columns:1fr}.pk-catfull{min-height:400px}}

/* Titulares de página ocultos a la vista: el cliente no los quiere impresos,
   pero la página no puede quedarse sin H1 (jerarquía y buscadores). */
.pk-page__h1--oculto{position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;margin:-1px;padding:0;border:0}

/* Producto del mes: filetes a los lados del titular y nombre en coral. */
.pk-mes .pk-svcidx__h{color:var(--pk-coral)!important;font-weight:400}

/* ================= /news/ ================= */
.pk-pager__gap{padding:9px 4px;color:var(--pk-grey-400);font:400 15px/1.3 var(--pk-font)}
.pk-newsfilter{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 34px}
.pk-newsfilter__a{padding:9px 18px;border:1px solid var(--pk-teal-100);border-radius:50px;
  font:400 15px/1.3 var(--pk-font);color:var(--pk-teal-900);text-decoration:none;transition:.15s}
.pk-newsfilter__a span{color:var(--pk-teal-500);font-size:13px}
.pk-newsfilter__a:hover{border-color:var(--pk-teal-500)}
.pk-newsfilter__a.is-active{background:var(--pk-teal-900);color:var(--pk-white);border-color:var(--pk-teal-900)}
.pk-newsfilter__a.is-active span{color:rgba(255,255,255,.7)}

.pk-newsgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.pk-newsitem{display:flex;flex-direction:column;background:var(--pk-sand);border-radius:15px;
  overflow:hidden;text-decoration:none;color:inherit;transition:transform .18s ease,box-shadow .18s ease}
.pk-newsitem:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(40,78,86,.13)}
.pk-newsitem__media{display:block;background:var(--pk-teal-100)}
.pk-newsitem__media img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover}
.pk-newsitem__body{display:flex;flex-direction:column;gap:10px;padding:22px 22px 26px;flex:1}
.pk-newsitem__h{font:700 19px/1.35 var(--pk-font);color:var(--pk-teal-900)}
.pk-newsitem__x{font:400 15px/1.6 var(--pk-font);color:var(--pk-grey-600)}
.pk-newsitem__more{margin-top:auto;font:700 14px/1.3 var(--pk-font);color:var(--pk-coral)}

.pk-pager{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:42px 0 0}
.pk-pager__a{min-width:40px;padding:9px 12px;text-align:center;border:1px solid var(--pk-teal-100);
  border-radius:8px;font:400 15px/1.2 var(--pk-font);color:var(--pk-teal-900);text-decoration:none}
.pk-pager__a.is-active{background:var(--pk-teal-900);color:var(--pk-white);border-color:var(--pk-teal-900)}
@media(max-width:1024px){.pk-newsgrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.pk-newsgrid{grid-template-columns:1fr}}

/* ================= /search/ ================= */
.pk-searchpage .pk-search{justify-content:flex-start}
.pk-searchpage__hint{margin:18px 0 0;font:400 16px/1.65 var(--pk-font);color:var(--pk-grey-600)}

/* Titular de las páginas simples (buscador, productos, noticias) */
.pk-page__h1{margin:0 0 30px;font:700 clamp(28px,3vw,38px)/1.2 var(--pk-font);color:var(--pk-ink)}
.pk-mes .pk-page__h1{text-align:center}

/* ================= MINICARRITO LATERAL ================= */
/* Calcado del original: 350 px, fondo arena, título arriba y un solo botón abajo. */
.elementor-menu-cart__container .elementor-menu-cart__main{
  width:350px!important;max-width:100vw;background:var(--pk-sand)!important;
  padding:26px 22px 22px!important;display:flex;flex-direction:column}
.pk-minicart__title{margin:0 0 22px;font:400 19px/1.3 var(--pk-font);color:var(--pk-ink)}

.elementor-menu-cart__products{flex:1;overflow-y:auto}
.elementor-menu-cart__product{padding:0 0 18px!important;border:0!important;
  border-bottom:1px solid rgba(40,78,86,.12)!important;margin:0 0 18px!important}
.elementor-menu-cart__product:last-child{border-bottom:0!important}
.elementor-menu-cart__product-image img{width:90px;height:90px;object-fit:contain;
  background:var(--pk-white);border-radius:8px}
.elementor-menu-cart__product-name,
.elementor-menu-cart__product-name a{font:400 16px/1.3 var(--pk-font);color:var(--pk-ink);text-decoration:none}
.elementor-menu-cart__product .variation,
.elementor-menu-cart__product dl.variation{font:400 14px/1.45 var(--pk-font);color:var(--pk-grey-600);margin:6px 0 0}

/* Un catálogo a 0 € no debe enseñar importes tampoco aquí, pero la cantidad sí:
   es el único sitio del minicarrito donde se ve cuántas unidades se piden. */
.elementor-menu-cart__subtotal,
.elementor-menu-cart__product .quantity .amount{display:none!important}
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-price{
  grid-column:2;grid-row:2;margin:2px 0 0;
  font:400 14px/1.45 var(--pk-font)!important;color:var(--pk-grey-600)!important}

/* Papelera discreta, como en el original */
.elementor-menu-cart__product .elementor-menu-cart__product-remove,
.elementor-menu-cart__product .remove{color:var(--pk-grey-600)!important;opacity:.75}
.elementor-menu-cart__product .remove:hover{opacity:1;color:var(--pk-coral)!important}

/* Un único botón, abajo del todo */
.elementor-menu-cart__footer-buttons{margin-top:auto;display:block}
.elementor-menu-cart__footer-buttons .elementor-button--view-cart{display:none!important}
.elementor-menu-cart__footer-buttons .elementor-button--checkout{
  display:block;width:100%;padding:18px 20px!important;border-radius:10px!important;
  background:var(--pk-teal-900)!important;color:var(--pk-sand)!important;
  font:700 15px/1.2 var(--pk-font)!important;text-align:center}
.elementor-menu-cart__footer-buttons .elementor-button--checkout:hover{background:var(--pk-teal-700)!important}
.elementor-menu-cart__empty-message{font:400 16px/1.5 var(--pk-font);color:var(--pk-grey-600)}

/* El widget de carrito de Elementor aplica la tipografía "primary" del Kit (50 px)
   al nombre del producto. Hay que ganarle con su propio selector. */
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-name,
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-name a{
  font-family:var(--pk-font)!important;font-size:16px!important;font-weight:400!important;
  line-height:1.3!important;color:var(--pk-ink)!important}
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product .variation,
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product dl.variation,
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product dl.variation *{
  font-family:var(--pk-font)!important;font-size:14px!important;line-height:1.45!important;
  color:var(--pk-grey-600)!important}
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product{
  display:grid;grid-template-columns:64px 1fr auto;gap:4px 14px;align-items:start}
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-image{grid-row:1/span 2}
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-image img{
  width:64px;height:64px;object-fit:contain;background:var(--pk-white);border-radius:8px}
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-remove{align-self:start}
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-remove{
  grid-column:3;grid-row:1;margin:0!important;position:relative!important;
  /* Elementor desplaza el botón con top/right propios; en flujo relativo eso
     lo sacaba del recuadro con overflow y el clic no llegaba. */
  inset:auto!important;align-self:center}
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-image{grid-column:1}
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-name{grid-column:2;grid-row:1}

/* La ✕ de quitar producto hereda los 50 px de la tipografía "primary" del Kit.
   Pequeña, en su esquina y con área de clic suficiente. */
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product .remove,
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-remove,
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-remove a{
  display:inline-flex!important;align-items:center;justify-content:center;
  width:28px!important;height:28px!important;min-width:28px;
  font-family:var(--pk-font)!important;font-size:18px!important;line-height:1!important;
  font-weight:400!important;border-radius:50%;
  color:var(--pk-grey-600)!important;background:transparent!important;text-decoration:none;
  transition:background .15s ease,color .15s ease}
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-remove a:hover,
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product .remove:hover{
  background:rgba(196,98,70,.12)!important;color:var(--pk-coral)!important}
/* Elementor dibuja la ✕ con dos barras absolutas dimensionadas en % de su
   contenedor posicionado. Al fijar el ancho del botón hay que atarlas a él y
   darles el color del enlace, o se quedan gigantes y casi invisibles. */
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-remove::before,
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-remove::after{
  width:14px!important;height:1.5px!important;inset:auto!important;
  top:50%!important;left:50%!important;margin:0!important;
  transform-origin:center;background:var(--pk-grey-600)!important;border-radius:1px;
  pointer-events:none}
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-remove::before{
  transform:translate(-50%,-50%) rotate(45deg)!important}
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-remove::after{
  transform:translate(-50%,-50%) rotate(-45deg)!important}
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-remove:hover::before,
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-remove:hover::after{
  background:var(--pk-coral)!important}
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-remove:hover{
  background:rgba(196,98,70,.12)!important;border-radius:50%}
/* Los dos enlaces de quitar (Elementor pinta uno por cada comportamiento) se
   estiran sobre todo el botón para que el clic caiga donde se ve la ✕. */
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__product-remove a{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
  border-radius:50%;z-index:5;pointer-events:auto!important}

/* ================= Solicitud de presupuesto: dos columnas ================= */
.woocommerce-checkout h1{text-align:center;margin:86px auto 56px;max-width:900px;
  font:700 30px/1.25 var(--pk-font);color:var(--pk-teal-900)}
.woocommerce-checkout form.checkout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
  column-gap:56px;row-gap:14px;align-items:start}
.woocommerce-checkout #customer_details{grid-column:1}
.woocommerce-checkout .pk-order-col{grid-column:2;position:sticky;top:130px}
.woocommerce-checkout #order_review_heading{margin:0 0 18px}
.woocommerce-checkout #order_review{position:static}
.woocommerce-checkout .col2-set,.woocommerce-checkout .col-1,.woocommerce-checkout .col-2{width:100%!important;float:none!important}

/* Campos: sin etiqueta, sobre arena y con aire */
.woocommerce-checkout .form-row label.screen-reader-text{position:absolute!important;
  width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.woocommerce-checkout .form-row{margin:0 0 18px;padding:0}
.woocommerce-checkout .form-row input[type=text],
.woocommerce-checkout .form-row input[type=email],
.woocommerce-checkout .form-row input[type=tel],
.woocommerce-checkout .form-row textarea,
.woocommerce-checkout .form-row .select2-selection{
  width:100%;min-height:60px;padding:18px 22px!important;
  font:400 15px/1.4 var(--pk-font)!important;color:var(--pk-ink)!important;
  background:var(--pk-sand)!important;border:1px solid transparent!important;
  border-radius:10px!important;box-shadow:none!important}
.woocommerce-checkout .form-row textarea{min-height:120px;resize:vertical}
.woocommerce-checkout .form-row input::placeholder,
.woocommerce-checkout .form-row textarea::placeholder{color:var(--pk-grey-600);opacity:.9}
.woocommerce-checkout .form-row input:focus,.woocommerce-checkout .form-row textarea:focus{
  border-color:var(--pk-teal-500)!important;outline:none}

/* Resumen con miniatura. La imagen se posiciona sobre la celda, no dentro de la
   línea: así la cantidad y las variaciones quedan alineadas bajo el nombre. */
.pk-review__row{display:inline}
.woocommerce-checkout #order_review table.shop_table td.product-name{position:relative;padding:16px 0 16px 74px}
.pk-review__img{position:absolute;left:0;top:16px;width:58px;height:58px;
  object-fit:contain;background:var(--pk-sand);border-radius:8px}
.pk-review__name{font:400 16px/1.35 var(--pk-font);color:var(--pk-ink)}
.woocommerce-checkout #order_review td.product-name .product-quantity{
  font:400 15px/1.4 var(--pk-font);color:var(--pk-grey-600)}
.woocommerce-checkout #order_review dl.variation{margin:6px 0 0;font:400 13px/1.5 var(--pk-font);
  color:var(--pk-grey-600);display:flex;flex-wrap:wrap;gap:0 6px}
.woocommerce-checkout #order_review dl.variation dt,
.woocommerce-checkout #order_review dl.variation dd{margin:0;font-weight:400}
.woocommerce-checkout #order_review dl.variation dd p{margin:0}
.woocommerce-checkout #order_review table.shop_table{border:0;width:100%}
.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td{border:0;border-bottom:1px solid var(--pk-teal-100);
  padding:16px 0;font:400 15px/1.5 var(--pk-font)}
.woocommerce-checkout #order_review table.shop_table thead,
.woocommerce-checkout #order_review tr.cart-subtotal,
.woocommerce-checkout #order_review tr.order-total{display:none}
.woocommerce-checkout #order_review_heading{font:700 22px/1.3 var(--pk-font);color:var(--pk-teal-900)}

@media(max-width:900px){
  .woocommerce-checkout form.checkout{grid-template-columns:1fr;row-gap:28px}
  .woocommerce-checkout h1{margin-top:48px}
  .woocommerce-checkout .pk-order-col{position:static;grid-column:1}
}


/* =================================================================
   Revisión del cliente — 28.09.2026
   ================================================================= */

/* General 6 — en la portada el menú va en blanco sobre el hero y al pasar el
   ratón se quedaba blanco: sólo aparecían los tres puntos. La regla del hero
   ganaba por número de ELEMENTOS (body+li+a), no por clases, así que el
   `:hover` genérico no llegaba. */
body.pk-hero-overlay .pk-nav__list > li:hover > a,
body.pk-hero-overlay .pk-nav__list > li:focus-within > a,
body.pk-hero-overlay .pk-nav__list > li > a:hover,
body.pk-hero-overlay .pk-nav__list > li > a:focus-visible{color:var(--pk-coral)}

/* General 8 — el buscador superior era una franja a sangre y se salía por los
   lados respecto al hero y a la banda de catálogo (que van a 16 px). Ahora es
   una caja con el mismo margen y las esquinas redondeadas a la vista. */
.pk-header-search{width:calc(100% - 32px)!important;margin-inline:16px;
  border-radius:15px;overflow:hidden}

/* General 9 — el reclamo del pie caía en tres líneas. Con dos cabe justo. */
.pk-fbrand__claim{max-width:22ch}

/* Portada 4 — flecha de las tarjetas: la del diseño anterior (el icono de
   Bootstrap `arrow-up-right`), no el carácter ↗ de la tipografía, que sale
   grueso. Se mantiene arriba a la derecha y se agranda. */
.pk-catcard__arrow,.pk-catfull__arrow{font-size:0;line-height:0;width:56px;height:56px;
  background:currentColor;color:var(--pk-white);
  -webkit-mask:var(--pk-arrow) center/contain no-repeat;
          mask:var(--pk-arrow) center/contain no-repeat}
:root{--pk-arrow:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M14 2.5a.5.5 0 0 0-.5-.5h-6a.5.5 0 0 0 0 1h4.793L2.146 13.146a.5.5 0 0 0 .708.708L13 3.707V8.5a.5.5 0 0 0 1 0v-6z'/%3E%3C/svg%3E")}

/* Portada 4 — el texto de las tarjetas, al tamaño y peso del diseño anterior. */
.pk-catcard__title{font:700 36px/1.2 var(--pk-font)}

/* Portada 4 — las fotos y el vídeo iban más claros que en el diseño anterior
   (medido: verde 105 frente a 84). Un velo uniforme por debajo del texto. */
.pk-catcard::after{content:"";position:absolute;inset:0;z-index:0;
  background:rgba(12,20,22,.20);pointer-events:none}
.pk-catcard__link,.pk-catcard__arrow{z-index:1}
.pk-hero::after{content:"";position:absolute;inset:0;z-index:0;
  background:rgba(12,20,22,.18);pointer-events:none}

/* Portada 5 — el campo de texto llevaba un borde gris oscuro y radio 3 px
   (heredados de Hello Elementor) y el desplegable el borde de marca: uno
   parecía blanco al lado del otro. */
.pk-search__text,.pk-search__cat,
input.pk-search__text,select.pk-search__cat{
  border:1px solid var(--pk-teal-300)!important;border-radius:5px!important;
  background:var(--pk-sand)!important}

/* About 3 — el recuadro de vacantes va sobre el naranja claro del bloque, no
   en blanco. */
.pk-vac__txt{background:transparent!important;border:1px solid rgba(196,98,70,.30);
  border-radius:8px;max-width:640px;margin:0 auto!important;padding:12px 20px}

/* About 4 y 5 — una regla anterior dejaba `.pk-cofin` en `flex` y los logos se
   pegaban a la izquierda. Vuelve a ser el bloque centrado, con el mismo ancho
   que el recuadro de vacantes y el mismo aire arriba y abajo. */
.pk-cofin{display:block!important;background:#F2F5F5;border-radius:15px;
  padding:52px 40px;text-align:center;margin:0!important}
.pk-cofin__grid{display:grid!important;grid-template-columns:repeat(4,1fr);
  gap:40px 30px;justify-items:center;align-items:center;
  list-style:none;margin:0;padding:0}
/* Los dos bloques, al mismo ancho (el de "Co-financed by", 1400). */
.pk-vac > .e-con-inner{max-width:1400px!important;width:100%!important}

/* Products 3 — el "producto del mes" iba en una caja estrecha y sus filetes
   salían cortos; deben medir lo mismo que los de "Best sellers". */
.pk-mes > .e-con-inner{max-width:none!important;width:100%!important}

/* News 1 — al quitar el titular quedaba su hueco. */
.pk-page__h1--oculto + *{margin-top:0}
body.page .pk-newsfilter{margin-top:0}

/* News 2 y categorías — paginación como la del diseño anterior: la página
   actual en un círculo coral, el resto números sueltos y una flecha al final. */
.pk-pager{gap:14px;align-items:center}
.pk-pager__a{min-width:34px;height:34px;padding:0;display:inline-flex;
  align-items:center;justify-content:center;border:0;border-radius:50%;
  font:400 15px/1 var(--pk-font);color:var(--pk-teal-900);background:transparent}
.pk-pager__a:hover{color:var(--pk-coral)}
.pk-pager__a.is-active{background:var(--pk-coral);color:var(--pk-white)}
.pk-pager__next{display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;color:var(--pk-teal-900);text-decoration:none;font-size:20px;line-height:1}
.pk-pager__next:hover{color:var(--pk-coral)}
/* La paginación propia de WooCommerce en el archivo de categoría. */
.woocommerce-pagination ul{display:flex;gap:14px;justify-content:center;
  list-style:none;margin:42px 0 0;padding:0;border:0}
.woocommerce-pagination ul li{border:0!important;margin:0}
.woocommerce-pagination ul li a,.woocommerce-pagination ul li span{
  min-width:34px;height:34px;padding:0!important;display:inline-flex;
  align-items:center;justify-content:center;border-radius:50%;
  font:400 15px/1 var(--pk-font);color:var(--pk-teal-900);background:transparent!important}
.woocommerce-pagination ul li span.current{background:var(--pk-coral)!important;color:var(--pk-white)}
.woocommerce-pagination ul li a:hover{color:var(--pk-coral)}

/* Products 2 — el texto de las tarjetas grandes, al tamaño y peso del
   diseño anterior (36/700; el cuerpo, un punto mayor). */
.pk-catfull__h{font:700 36px/1.2 var(--pk-font)}
.pk-catfull__d,.pk-catfull__d p,.pk-catfull__d li{font-size:17px}

/* News 1 — el H1 oculto seguía ocupando su hueco de widget y, con el hueco de
   la rejilla, dejaba 70 px en blanco bajo la cabecera. Se saca del flujo
   entero (sigue en el HTML, que es lo que importa para el buscador). */
.elementor-widget:has(.pk-page__h1--oculto){position:absolute!important;
  width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);margin:-1px;padding:0}
main .elementor > .e-con:has(.pk-page__h1--oculto) > .e-con-inner{padding-top:24px}

/* ---------- Ficha de producto: revisión 28.09.2026 ---------- */

/* El nombre químico va bajo el título, fuera de la tabla. */
.pk-specs__chem{margin:0 0 6px;font:400 17px/1.5 var(--pk-font);color:var(--pk-ink)}

/* Las aplicaciones son la fila que el cliente quiere destacada. */
.pk-specs__r--application th{color:var(--pk-coral)}
.pk-specs sub{font-size:.72em;vertical-align:-.22em}
.pk-specs sup{font-size:.72em;vertical-align:.42em}

/* Botones TDS y SDS bajo la imagen. */
.pk-docs{display:flex;gap:18px;justify-content:center;margin:22px 0 0}
.pk-docs__b{min-width:140px;padding:13px 26px;border:0;border-radius:50px;cursor:pointer;
  background:var(--pk-coral);color:var(--pk-white);font:700 15px/1.2 var(--pk-font);
  transition:background .18s ease}
.pk-docs__b:hover,.pk-docs__b:focus-visible{background:var(--pk-coral-400)}

/* "Bulk request": el contorno, igual de cuadrado que el botón de encima, no
   una píldora. */
.pk-ask__open{border-radius:8px}

/* El rosa que salía era el color de enlace de Hello Elementor dentro del
   resumen del producto. Va en el azul de marca. */
.pk-prod-sum a,.pk-prod-sum .page-content a{color:var(--pk-teal-700)}
.pk-prod-sum a:hover{color:var(--pk-coral)}

/* Relacionados: hasta cuatro a la vista y el resto con flechas. */
.pk-related--carrusel{position:relative;display:flex;align-items:center;gap:10px}
.pk-related__pista{flex:1;min-width:0;overflow-x:auto;scroll-snap-type:x mandatory;
  scrollbar-width:none}
.pk-related__pista::-webkit-scrollbar{display:none}
.pk-related--carrusel ul.products{display:grid;grid-auto-flow:column;
  grid-auto-columns:calc(25% - 20px);grid-template-columns:none}
.pk-related--carrusel ul.products li.product{scroll-snap-align:start}
.pk-related__nav{flex:0 0 auto;width:42px;height:42px;border:1px solid var(--pk-teal-100);
  border-radius:50%;background:var(--pk-white);color:var(--pk-teal-900);cursor:pointer;
  font-size:19px;line-height:1;transition:.15s}
.pk-related__nav:hover{border-color:var(--pk-coral);color:var(--pk-coral)}
@media(max-width:1024px){
  .pk-related--carrusel ul.products{grid-auto-columns:calc(50% - 13px)}
}
@media(max-width:520px){
  .pk-related--carrusel ul.products{grid-auto-columns:88%}
}

/* Titular con filetes, el mismo de "Best sellers" de la portada. */
.pk-related-wrap .pk-ruled,.pk-prod-rel .pk-ruled{margin:0 0 30px}

/* ---------- Solicitud de presupuesto: revisión 28.09.2026 ---------- */

/* El aviso "añadido" salía con el verde de WooCommerce. */
.woocommerce-message,.woocommerce-info{
  border-top-color:var(--pk-teal-900)!important;background:var(--pk-sand)!important;
  color:var(--pk-ink)!important;border-radius:10px}
.woocommerce-message::before,.woocommerce-info::before{color:var(--pk-teal-900)!important}
.woocommerce-message .button,.woocommerce-info .button{
  background:var(--pk-teal-900)!important;color:var(--pk-white)!important;
  border-radius:8px!important;padding:14px 26px!important;
  font:700 15px/1.2 var(--pk-font)!important}
.woocommerce-message .button:hover{background:var(--pk-coral)!important}

/* El nombre del producto se comía en cuatro líneas de dos palabras porque la
   columna de importes seguía reservando su ancho. */
.woocommerce-checkout #order_review table.shop_table td.product-name{width:100%}
.woocommerce-checkout #order_review table.shop_table td.product-total,
.woocommerce-checkout #order_review table.shop_table th.product-total{
  display:none}
.pk-review__name{display:inline-block;max-width:100%}

/* Las dos casillas, una debajo de otra y con aire. "Send request", mayor. */
.woocommerce-checkout .pk-news-opt{margin:10px 0 0}
.woocommerce-checkout .pk-priv-link{margin:10px 0 0;font:400 13px/1.5 var(--pk-font)}
.woocommerce-checkout #place_order{width:100%;min-height:64px;
  font-size:17px!important;border-radius:10px!important}

/* El widget de Elementor rotula la línea de categorías con "Categories" en un
   <span> propio; el cliente quiere sólo los enlaces. */
.pk-prod-sum .posted_in .detail-label{display:none}

/* About 5 — el recuadro de vacantes iba a sangre y el de cofinanciación a
   20 px: mismos bordes para los dos. Y el hueco hasta la banda de catálogo era
   de 70 px frente a los 11 de arriba; se igualan. */
.pk-vac{width:calc(100% - 40px)!important;margin-inline:auto!important;border-radius:15px}
.pk-vac > .e-con-inner{max-width:none!important;padding-inline:20px}
main .elementor > .e-con:has(> .e-con-inner > .elementor-widget .pk-cofin){padding-bottom:0!important}
main .elementor > .e-con:has(> .e-con-inner > .elementor-widget .pk-cofin) > .e-con-inner{padding-bottom:10px!important}

/* Familias de producto — la ficha de la izquierda: foto con las esquinas
   redondeadas como en la portada, y el nombre en azul y en negrita. */
.pk-catintro__img{border-radius:15px}
.pk-catintro__title{font:700 26px/1.25 var(--pk-font);color:var(--pk-teal-900)}
.pk-catintro__desc ul{margin:14px 0 0;padding-left:20px;list-style:disc}
.pk-catintro__desc li{margin:0 0 4px}
/* Flechas de la paginación de WooCommerce, sin borde ni fondo. */
.woocommerce-pagination ul li a.prev,.woocommerce-pagination ul li a.next{
  font-size:19px;color:var(--pk-teal-900)}
.woocommerce-pagination ul li a.prev:hover,.woocommerce-pagination ul li a.next:hover{color:var(--pk-coral)}
.woocommerce-pagination .screen-reader-text{position:absolute!important;width:1px;height:1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* WooCommerce da a `.page-numbers` su propio ancho, borde y relleno: el círculo
   salía ovalado y con una raya debajo. Se fija la caja entera. */
.woocommerce nav.woocommerce-pagination{text-align:center;border:0}
.woocommerce nav.woocommerce-pagination ul{display:flex;gap:14px;justify-content:center;
  list-style:none;margin:42px 0 0;padding:0;border:0!important}
.woocommerce nav.woocommerce-pagination ul li{border:0!important;margin:0;padding:0;
  overflow:visible;float:none;display:inline-flex}
.woocommerce nav.woocommerce-pagination ul li a.page-numbers,
.woocommerce nav.woocommerce-pagination ul li span.page-numbers{
  box-sizing:border-box;width:34px;min-width:34px;height:34px;padding:0!important;margin:0;
  display:inline-flex;align-items:center;justify-content:center;
  border:0!important;border-radius:50%;text-decoration:none!important;
  font:400 15px/1 var(--pk-font);color:var(--pk-teal-900);background:transparent!important}
.woocommerce nav.woocommerce-pagination ul li span.current{
  background:var(--pk-coral)!important;color:var(--pk-white)!important}
.woocommerce nav.woocommerce-pagination ul li a.page-numbers:hover{
  background:transparent!important;color:var(--pk-coral)}
.woocommerce nav.woocommerce-pagination ul li a.prev,
.woocommerce nav.woocommerce-pagination ul li a.next{font-size:19px}

/* ---------- Revisión 29.09.2026 ---------- */

/* Pie: el reclamo en dos líneas fijas, sin depender del ancho de la columna. */
.pk-fbrand__claim{max-width:none}
.pk-fbrand__claim span{display:block;white-space:nowrap}

/* Equipo: las fotos traen el marco dibujado dentro del PNG. Con `cover` y la
   proporción de la caja (290×307) apenas distinta de la del fichero (681×722)
   se perdía la última fila de píxeles… que es justo la línea inferior del
   marco. `contain` enseña el fichero entero, como el original (`fill`), y sin
   radio propio para no recortar las esquinas del marco. */
.pk-person .elementor-image-box-img img{object-fit:contain;border-radius:0}

/* /products/: cada título en una sola línea. El tamaño se ajusta al ancho de
   la tarjeta (medido: "Batteries & Bioelectronics" es el más largo). */
.pk-catfull__h{font-size:clamp(20px,calc(2.9vw - 9px),33px)}

/* Familias: la foto de la izquierda con el radio del original (15 px). La
   regla de Elementor `.elementor img` le ganaba por especificidad. */
.pk-catintro img.pk-catintro__img{border-radius:15px}

/* Botones propios: Hello Elementor pinta en rosa (#c36) cualquier botón con
   foco, y el foco se queda tras hacer clic. Al pasar, pulsar o tener el foco,
   todos van al azul de marca. */
.pk-docs__b:hover,.pk-docs__b:focus,.pk-docs__b:active,
.pk-ask__open:hover,.pk-ask__open:focus,.pk-ask__open:active,
.pk-modal__send:hover,.pk-modal__send:focus,.pk-modal__send:active{
  background:var(--pk-teal-900)!important;color:var(--pk-white)!important}
.pk-related__nav:hover,.pk-related__nav:focus,.pk-related__nav:active,
.pk-modal__close:hover,.pk-modal__close:focus,.pk-modal__close:active{
  background:var(--pk-white)!important}
.pk-modal__close:focus,.pk-modal__close:active{color:var(--pk-ink)!important}

/* =================================================================
   Revisión del cliente — 01.10.2026
   ================================================================= */

/* GENERAL — un único ancho máximo.
   Las bandas (cabecera, buscador, hero, tarjetas, banda de catálogo, pie)
   crecían con la ventana mientras el contenido se quedaba clavado en 1440:
   a partir de ~1500 px la página se veía a dos anchos distintos. Ahora todos
   paran a la vez. Hasta 1920 no cambia nada respecto a lo revisado. */
:root{--pk-max:1920px}
main .elementor > .e-con,
.pk-header-search{
  width:min(100% - 32px, var(--pk-max))!important;
  margin-inline:auto!important}
main .elementor > .e-con > .e-con-inner{max-width:none!important;width:100%!important}
.pk-header > .e-con-inner,
.pk-footer-box{max-width:var(--pk-max);margin-inline:auto}
/* El texto corrido no debe estirarse con la ventana: se lee mal. */
.pk-svcidx__p,.pk-svcidx__list,.pk-about-intro p,.pk-legal-page p{max-width:95ch}

/* ABOUT 5 — la línea del área, en coral, va en negrita como en el original. */
.pk-person__area{font-weight:700}

/* FINES DE PÁGINA — faltaba aire entre la banda de catálogo y el boletín. */

/* CONTACTO — el bloque respiraba demasiado: el formulario quedaba perdido. */
.pk-contact > .e-con-inner{padding-top:40px!important;padding-bottom:40px!important}
.pk-contact .elementor-widget:last-child{margin-bottom:0}

/* FAMILIAS DE PRODUCTO — la foto de la izquierda tenía la altura de su
   original, así que "Batteries & Bioelectronics" (vertical) salía al doble que
   las demás. Misma caja para las tres. */
.pk-catintro img.pk-catintro__img{
  width:100%;aspect-ratio:16/10;height:auto;object-fit:cover;display:block}

/* TARJETA DE PRODUCTO — la referencia, en negrita. */
.pk-card__title{font-weight:700}

/* FICHA — el código del producto, en el azul de marca. */
body.single-product h1.elementor-heading-title{color:var(--pk-teal-900)}

/* FICHA — "Bulk request" con la misma forma y el mismo cuerpo que "Add to
   quote" (iba a 15/56/8 frente a 16/52/10), y el mismo hueco entre bloques. */
.pk-ask__open{border-radius:10px;font-size:16px;min-height:52px;padding:10px 16px}
.pk-ask{margin-top:18px}

/* FICHA — TDS y SDS: al pasar el ratón, el coral claro del botón "Catalogue",
   no el azul (lo pidieron el 01.10 después de quitar el rosa de Hello). */
.pk-docs__b:hover,.pk-docs__b:focus,.pk-docs__b:active{
  background:var(--pk-coral-400)!important;color:var(--pk-white)!important}
/* Y menos aire entre la imagen y los dos botones. */
.pk-docs{margin-top:10px}

/* RELACIONADOS — las flechas, centradas respecto a las tarjetas. */
.pk-related--carrusel{align-items:center}
.pk-related__nav{align-self:center}

/* SOLICITUD DE PRESUPUESTO — sobraba espacio sobre el titular, y el aire tiene
   que ir ANTES de "Additional information", no después. */
.woocommerce-checkout h1{margin-top:40px}
.woocommerce-checkout #customer_details .col-2,
.woocommerce-checkout h3#order_review_heading{margin-top:0}
.woocommerce-checkout #customer_details h3{margin:34px 0 10px}

/* El Kit de Elementor pinta el titular de la ficha con más especificidad. */
body.single-product .elementor-widget-theme-post-title .elementor-heading-title,
body.single-product .elementor-widget-heading .elementor-heading-title{
  color:var(--pk-teal-900)}

/* El hueco hasta "Bulk request" era 36 px frente a los 16 que separan el
   desplegable del botón de encima. */
body.single-product form.cart{margin-bottom:16px!important}
.pk-ask{margin-top:0}

/* El hueco hasta "Bulk request" venía del margen del widget del formulario
   más el del propio formulario: se deja uno solo, igual que el de arriba. */
body.single-product form.cart{margin-bottom:0!important}
body.single-product .elementor-widget:has(.pk-ask){margin-top:0!important}
.pk-ask{margin-top:0}

/* La galería reservaba 34 px por debajo y, sumados al hueco del contenedor,
   dejaban 62 px muertos entre la foto y los botones TDS/SDS. */
body.single-product .woocommerce-product-gallery,
body.single-product .woocommerce-product-gallery__wrapper,
body.single-product .elementor-widget-woocommerce-product-images{margin-bottom:0!important}
.pk-docs{margin-top:0}

/* Las plantillas de ficha (proyecto, producto, noticia, legal) pintan FUERA de
   <main>, así que la unificación de anchos de arriba no las alcanzaba: se
   quedaban en el 1180 del contenedor y no acompañaban a las bandas. */
.elementor > .e-con.e-parent:not(.pk-header):not(.pk-footer-box):not(.pk-header-search){
  width:min(100% - 32px, var(--pk-max))!important;margin-inline:auto!important}
.elementor > .e-con.e-parent:not(.pk-header):not(.pk-footer-box) > .e-con-inner{
  max-width:none!important;width:100%!important}
/* …y sin el relleno lateral propio, para que casen con el pie y la cabecera.
   La banda de catálogo (.pk-cta) se excluye: necesita su margen interno para
   que el texto no quede pegado a los bordes, como en el hero de la home. */
.elementor > .e-con.e-parent:not(.pk-header):not(.pk-footer-box):not(.pk-header-search):not(.pk-cta){
  padding-inline:0!important}

/* About 4 — "Co-financed by". La rejilla se estiraba con la ventana (1.328 px
   a 1440 y 1.800 a 2560: los logotipos quedaban desperdigados) y mi regla con
   !important había anulado el salto a 2 columnas en móvil, así que en el
   teléfono salían doce logos en cuatro columnas. Bloque centrado de ancho fijo,
   como en el original, y reflujo de verdad. */
.pk-cofin__grid{max-width:900px;margin-inline:auto!important}
@media(max-width:900px){.pk-cofin__grid{grid-template-columns:repeat(3,1fr)!important}}
@media(max-width:620px){
  .pk-cofin__grid{grid-template-columns:repeat(2,1fr)!important;gap:28px 20px}
  .pk-cofin{padding:40px 22px}
  .pk-cofin__h{font-size:22px}
}
/* Las celdas se dimensionaban por el logotipo más ancho y la rejilla se salía
   de su caja en móvil (la segunda columna quedaba cortada). */
.pk-cofin__grid > *{min-width:0;width:100%;display:flex;align-items:center;justify-content:center}
.pk-cofin__grid img{max-width:100%!important;height:auto;max-height:64px;object-fit:contain}

/* Contacto — el formulario arrancaba 54 px por debajo de la línea de datos.
   Se sube para que el bloque quede más compacto (pedido el 02.10). */
.pk-form{margin-top:-30px}
@media(max-width:1024px){.pk-form{margin-top:-14px}}

/* El nombre químico, bajo el código del producto, en el azul de marca. */
.pk-specs__chem{color:var(--pk-teal-900)}

/* Solicitud de presupuesto — el boletín arrancaba pegado al formulario: en el
   resto de páginas ese aire lo da la banda de catálogo, que aquí no existe. */
body.woocommerce-checkout form.checkout,
body.woocommerce-cart .woocommerce{margin-bottom:64px}

/* La descripción corta heredada de Pomatio repite el nombre químico y el CAS,
   que la ficha técnica ya pinta justo debajo: en castellano el nombre salía dos
   veces, en negro y en azul. Se oculta (el texto sigue en la base de datos;
   la maqueta del cliente enseña el nombre una sola vez). */
body.single-product .woocommerce-product-details__short-description,
body.single-product .elementor-widget-woocommerce-product-short-description{display:none}

/* "Facilities, Technology & People" — dos columnas como en la web actual: el
   acordeón a la izquierda (605 de 1410) y la foto a la derecha (705x500,
   radio 15), separadas 50 px. */
.pk-svc-fac > .e-con-inner{display:grid;grid-template-columns:minmax(0,605fr) minmax(0,705fr);
  gap:50px;align-items:center}
.pk-svc-fac > .e-con-inner > .e-con{width:auto!important;max-width:none!important}
.pk-svc-fac__img{margin:0;line-height:0}
.pk-svc-fac__img img{width:100%;height:500px;object-fit:cover;border-radius:15px;display:block}
@media(max-width:1024px){
  .pk-svc-fac > .e-con-inner{grid-template-columns:minmax(0,1fr);gap:28px}
  .pk-svc-fac__img img{height:300px}
}

/* Páginas de servicio — al unificar los anchos quité también el tope de la
   columna de texto y los párrafos pasaron a ocupar los 1408 px de la página.
   En la web actual ese texto va en una columna de 1110 centrada. */
.pk-svc-p,.pk-svc-closing,.pk-svc-feats,
.elementor-widget.pk-svc-feats > .elementor-widget-container{
  max-width:1110px;margin-inline:auto}

/* Páginas de servicio — ajustes para igualar polykey.eu (02.10) */

/* La llamada a la acción va dentro de una caja arena con esquinas redondeadas;
   la nuestra estaba suelta sobre blanco. */
.pk-svc-ctabox{background:var(--pk-sand);border-radius:15px;padding:50px 30px}
.pk-svc-cta__d{max-width:640px;margin-inline:auto}

/* El bloque de características quedaba 19 px más estrecho que los párrafos de
   arriba (1071 frente a 1110) por aplicar el tope dos veces. */
.elementor-widget.pk-svc-feats > .elementor-widget-container{max-width:none;margin-inline:0}
/* `.pk-svc-feats` es un widget, o sea un elemento flex: con `margin-inline:auto`
   deja de estirarse y se encoge al ancho de su contenido (1071). Hay que darle
   el ancho explícito. */
.elementor-widget.pk-svc-feats{width:min(100%,1110px)}

/* «Other Services» — en polykey.eu estas tarjetas llevan la foto ACLARADA y el
   texto oscuro (titular azul, cuerpo en tinta); la nuestra ponía texto blanco
   directamente sobre la foto. Medido sobre los píxeles pintados, el blanco daba
   3,1:1 de media y 1,07:1 en las zonas claras de la foto: ilegible. Con el velo
   claro y el texto oscuro se parece al original y además se lee. El velo NO se
   pinta aquí: va en los ajustes de la propia tarjeta (Elementor lo imprime con
   más especificidad), así que se cambió allí de #212121/0.55 a blanco/0.62. */
.pk-svc-card--foto .pk-svc-card__h{color:var(--pk-teal-900)!important}
.pk-svc-card--foto .pk-svc-card__p{color:var(--pk-ink)!important}
.pk-svc-card--foto .pk-svc-card__b a{
  background:var(--pk-teal-900);color:var(--pk-white);border-radius:8px;padding:14px 26px}
.pk-svc-card--foto .pk-svc-card__b a:hover{background:var(--pk-teal-700);color:var(--pk-white)}

/* "Other Services" va en la misma columna que el resto del texto (1110), no a
   todo el ancho; y con el velo claro la tarjeta perdía su borde, así que se le
   devuelve el filete que la delimita (el original la define con la foto). */
.pk-svc-cards{width:min(100%,1110px);margin-inline:auto}
.elementor-widget:has(> .elementor-widget-container > .pk-svc-otros),
.pk-svc-otros{max-width:1110px;margin-inline:auto}
.pk-svc-card--foto{border:1px solid #E5E5E5}
/* El titular "Other Services" también va en la columna de 1110. */
.e-con:has(> .e-con-inner > .pk-svc-cards) > .e-con-inner > .elementor-widget-heading,
.e-con:has(.pk-svc-cards) > .e-con-inner > .elementor-widget-heading{
  width:min(100%,1110px);margin-inline:auto}


/* =================================================================
   Revisión del cliente — 05.10.2026 · ritmo vertical uniforme
   =================================================================
   El cliente ve que "los espacios entre los bloques no son iguales… en toda
   la web". El hueco entre bloques dependía del relleno interno de cada sección
   del generador y variaba de 15 a 104 px. Aquí se fija un ritmo único de 15 px
   en TODAS las páginas (antes sólo en la home), quitando los rellenos blancos
   que cada bloque arrastraba arriba y abajo. Las bandas de color conservan su
   relleno interno para que su texto no quede pegado al borde. */
main .elementor > .e-con.e-parent + .e-con.e-parent{margin-top:15px}
main .elementor > .e-con.e-parent:not(:first-child){padding-top:0!important}
main .elementor > .e-con.e-parent{padding-bottom:0!important}
main .elementor > .e-con.e-parent:not(.pk-vac):not(.pk-cta):not(.pk-contact) > .e-con-inner{padding-bottom:0!important}

/* Mismo hueco de 15 px antes de la newsletter en todas las páginas: antes era
   40 px en las que acababan en la banda de catálogo y 0 en las demás (la
   newsletter se pegaba al bloque anterior — "fin de página"). */
.pk-newsletter{margin-top:15px}

/* ── Cambios 16.10.2026 (PPT de Andere) ─────────────────────────────── */

/* Servicios, diap. 3 — el párrafo de cierre («Whether you need…») quedaba
   suelto entre el cuerpo y la caja arena. Pasa a ser su propio bloque, en
   coral muy claro (el tono de su maqueta), del mismo ancho que la caja arena
   y con el texto en la columna de 1110 px. En «Síntesis a demanda» la pregunta
   «Have a material in mind?» va dentro de la misma caja. */
.pk-svc-closing{max-width:none;margin:24px 0 0;text-align:center;font:inherit;
  background:#FBF1EE;border-radius:15px;
  padding:44px max(30px,calc((100% - 1110px)/2))}
.pk-svc-closing__t{margin:0;font:400 clamp(19px,1.6vw,22px)/1.55 var(--pk-font);color:var(--pk-ink)}
.pk-svc-closing__q{margin:18px 0 0;font:700 clamp(22px,2vw,26px)/1.3 var(--pk-font);color:var(--pk-teal-900)}
@media (max-width:767px){.pk-svc-closing{padding:32px 20px}}

/* Servicios, diap. 4 — más aire entre la caja arena y «Facilities…».
   Productos, diap. 2 — más aire entre las tarjetas y «Products of the month». */
main .elementor > .e-con.e-parent.pk-svc-fac,
main .elementor > .e-con.e-parent.pk-mes{margin-top:64px!important}
@media (max-width:767px){
  main .elementor > .e-con.e-parent.pk-svc-fac,
  main .elementor > .e-con.e-parent.pk-mes{margin-top:44px!important}}

/* ---------- Megamenú de Products (27.10.2026) ----------
   Panel a todo el ancho bajo la cabecera, como en la web anterior.
   La cabecera pasa a ser el ancla (position:relative) y el <li> deja de serlo
   (position:static), que es lo que permite que el panel ocupe todo el ancho
   en vez de la anchura del enlace. */
.pk-header{position:relative}
.pk-nav__list > li.pk-has-mega{position:static}
/* Los tres puntitos del elemento activo son un ::after con position:absolute
   que se anclaba al <li>. Al pasar el <li> a static (para que el panel ocupe
   todo el ancho) se iban al centro de la cabecera. Se ancla al <a>, que ocupa
   exactamente la misma caja, así que el resultado visual no cambia. */
.pk-nav__list > li > a{position:relative}
/* Entre el menú y la cabecera, Elementor deja dos contenedores con
   position:relative; el panel se anclaba al más interno (627 px) en vez de a
   la cabecera. Se neutralizan SOLO los que envuelven al menú — con :has(), para
   no tocar el resto de la cabecera (carrito, buscador) que sí usa el anclaje. */
.pk-header .e-con:has(.pk-nav),
.pk-header .elementor-widget:has(.pk-nav){position:static}

.pk-mega{
  /* Se sube para que quede pegado al menú como en su web actual: allí el
     hueco entre los puntitos del enlace y el panel es de 13 px, y con
     top:100% nos salían 30 por el relleno inferior de la cabecera. */
  position:absolute;left:0;right:0;top:calc(100% - var(--pk-mega-subir,13px));z-index:40;
  background:var(--pk-sand);box-shadow:0 14px 28px rgba(33,33,33,.14);
  opacity:0;visibility:hidden;
  /* Al ocultarse se espera 250 ms: da tiempo a bajar el ratón del enlace al
     panel cruzando el relleno de la cabecera sin que se cierre. */
  transition:opacity .16s ease,visibility 0s linear .25s}
.pk-nav__list > li.pk-has-mega:hover .pk-mega,
.pk-nav__list > li.pk-has-mega:focus-within .pk-mega,
.pk-mega:hover{opacity:1;visibility:visible;transition:opacity .16s ease,visibility 0s}

.pk-mega__inner{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 56px;
  max-width:1240px;margin:0 auto;padding:40px 24px 48px}
.pk-mega__fam{
  display:inline-block;margin:0 0 22px;
  font:400 24px/1.25 var(--pk-font);color:var(--pk-teal-900);text-decoration:none}
.pk-mega__fam::after{content:" ↗";font-size:.8em}
.pk-mega__fam:hover{color:var(--pk-coral)}
.pk-mega__list{list-style:none;margin:0;padding:0}
.pk-mega__list li + li{margin-top:14px}
.pk-mega__list a{
  font:400 17px/1.3 var(--pk-font);color:var(--pk-teal-700);text-decoration:none;
  transition:color .15s ease}
.pk-mega__list a:hover{color:var(--pk-coral)}

/* Tableta: tres columnas no caben con holgura. */
@media(max-width:1200px){
  .pk-mega__inner{gap:26px 32px;padding:32px 20px 38px}
  .pk-mega__fam{font-size:21px;margin-bottom:16px}
  .pk-mega__list a{font-size:16px}
}

/* Móvil: el menú ya es un desplegable; el panel se integra en la lista como
   un bloque más, sin posicionamiento ni efectos. */
@media(max-width:1024px){
  .pk-mega{position:static;opacity:1;visibility:visible;transition:none;
    background:transparent;box-shadow:none}
  .pk-mega__inner{display:block;padding:0 22px 10px;max-width:none}
  .pk-mega__col + .pk-mega__col{margin-top:18px}
  .pk-mega__fam{margin:0 0 10px;font-size:18px;font-weight:700}
  .pk-mega__list li + li{margin-top:10px}
  .pk-mega__list a{font-size:16px}
}
