@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@500&display=swap');

body.woocommerce, body.kk-shop, body.woocommerce-page{
  --paper:#F2EFE9; --ink:#141311; --stone:#8E897F; --stone-line:#2C2A26;
  --brick:#D9A441; --night:#0A0908; --card:#1B1917; --card-hover:#221F1C;
  --font-display:'Fraunces', serif; --font-body:'Inter', sans-serif; --font-mono:'IBM Plex Mono', monospace;
  --ease-out:cubic-bezier(0.16, 1, 0.3, 1);
  background:#141311 !important;
  color:var(--paper) !important;
  font-family:var(--font-body) !important;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  margin:0;
}
body.woocommerce a, body.kk-shop a, body.woocommerce-page a{ color:inherit; text-decoration:none; }
body.woocommerce img, body.kk-shop img, body.woocommerce-page img{ max-width:100%; display:block; }
body.woocommerce button, body.kk-shop button, body.woocommerce-page button{ font:inherit; cursor:pointer; }

/* --- Superficies del navegador: lo que no dibujamos tambien es diseno --- */
html{ scroll-behavior:smooth; }
body.woocommerce, body.kk-shop, body.woocommerce-page{ scrollbar-color:#37342F #0F0E0D; scrollbar-width:thin; caret-color:var(--brick); }
body.woocommerce ::selection, body.kk-shop ::selection, body.woocommerce-page ::selection{ background:var(--brick); color:var(--night); }
body.woocommerce ::-moz-selection, body.kk-shop ::-moz-selection, body.woocommerce-page ::-moz-selection{ background:var(--brick); color:var(--night); }
body.woocommerce ::-webkit-scrollbar, body.kk-shop ::-webkit-scrollbar, body.woocommerce-page ::-webkit-scrollbar{ width:11px; height:11px; }
body.woocommerce ::-webkit-scrollbar-track, body.kk-shop ::-webkit-scrollbar-track, body.woocommerce-page ::-webkit-scrollbar-track{ background:#0F0E0D; }
body.woocommerce ::-webkit-scrollbar-thumb, body.kk-shop ::-webkit-scrollbar-thumb, body.woocommerce-page ::-webkit-scrollbar-thumb{
  background:#37342F; border:3px solid #0F0E0D; border-radius:99px;
}
body.woocommerce ::-webkit-scrollbar-thumb:hover, body.kk-shop ::-webkit-scrollbar-thumb:hover, body.woocommerce-page ::-webkit-scrollbar-thumb:hover{ background:var(--brick); }
body.woocommerce a:focus-visible, body.woocommerce-page a:focus-visible,
body.woocommerce button:focus-visible, body.kk-shop button:focus-visible, body.woocommerce-page button:focus-visible{
  outline:2px solid var(--brick); outline-offset:3px; border-radius:2px;
}

/* Luz de sala: el fondo deja de ser plano sin convertirse en textura. */
body.woocommerce::before, body.kk-shop::before{
  content:''; position:fixed; top:0; left:0; right:0; height:70vh;
  pointer-events:none; z-index:0;
  background:radial-gradient(115% 68% at 50% 0%, rgba(217,164,65,0.055) 0%, rgba(217,164,65,0) 62%);
}

/* --- Nav --- */
.kk-shop-nav{
  position:sticky; top:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 48px;
  background:#141311;
  border-bottom:1px solid transparent;
  transition:background .35s ease, border-color .35s ease;
}
@supports (backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px)){
  .kk-shop-nav{ background:rgba(20,19,17,0.72); -webkit-backdrop-filter:blur(16px) saturate(1.15); backdrop-filter:blur(16px) saturate(1.15); }
  .kk-shop-nav.is-stuck{ background:rgba(20,19,17,0.88); }
}
.kk-shop-nav.is-stuck{ border-bottom-color:var(--stone-line); }
.kk-shop-nav__logo{ height:26px; transform-origin:left center; transition:transform .35s var(--ease-out); }
.kk-shop-nav.is-stuck .kk-shop-nav__logo{ transform:scale(0.9); }
.kk-shop-nav__links{ display:flex; gap:38px; }
.kk-shop-nav__links a{
  position:relative; font-size:13px; font-weight:500; color:rgba(242,239,233,0.75);
  transition:color .22s ease; padding-bottom:3px;
}
.kk-shop-nav__links a::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:1px; background:var(--brick);
  transform:scaleX(0); transform-origin:right center; transition:transform .38s var(--ease-out);
}
.kk-shop-nav__links a:hover{ color:var(--paper); }
.kk-shop-nav__links a:hover::after{ transform:scaleX(1); transform-origin:left center; }

/* --- Contenedor general --- */
.kk-shop-wrap{ position:relative; z-index:1; max-width:1360px; margin:0 auto; padding:88px 56px 140px; }
.kk-shop-wrap .page-title{
  font-family:var(--font-display); font-weight:600; font-optical-sizing:auto;
  font-size:clamp(38px,5vw,64px);
  letter-spacing:-0.025em; line-height:1.05;
  margin:0 0 18px;
  color:var(--paper);
}
.kk-shop-sub{
  font-size:16px; color:var(--stone); margin:0 0 44px; max-width:56ch; text-wrap:pretty;
}
.kk-shop-count{
  font-family:var(--font-mono); font-size:13px; color:var(--stone);
  margin:0 0 56px; letter-spacing:0.01em;
}
.kk-shop-count__sep{ color:#5C564D; padding:0 4px; }

/* Entrada de cabecera: una sola secuencia autoral, no una por seccion. */
@keyframes kk-rise{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
.kk-shop-wrap .page-title,
.kk-shop-sub,
.kk-cat-pills,
.kk-shop-count{ animation:kk-rise .7s var(--ease-out) both; }
.kk-shop-sub{ animation-delay:.07s; }
.kk-cat-pills{ animation-delay:.14s; }
.kk-shop-count{ animation-delay:.2s; }

/* --- Filtros: el barrido de resaltador de la portada, a escala de control --- */
.kk-cat-pills{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:24px; }
.kk-cat-pill{
  position:relative; isolation:isolate; overflow:hidden;
  display:inline-flex; align-items:center; gap:8px;
  font-size:14px; font-weight:500; color:var(--stone);
  border:1px solid var(--stone-line); border-radius:999px;
  padding:11px 20px;
  transition:border-color .25s ease, color 0s linear 0s;
}
.kk-cat-pill::before{
  content:''; position:absolute; inset:0; z-index:-1;
  background:var(--brick);
  transform:scaleX(0); transform-origin:left center;
  transition:transform .44s var(--ease-out);
}
.kk-cat-pill span{ font-family:var(--font-mono); font-size:11px; color:inherit; opacity:0.65; }
.kk-cat-pill:not(.is-active):hover{ border-color:rgba(217,164,65,0.55); color:var(--paper); }
.kk-cat-pill.is-active{
  color:var(--night); border-color:var(--brick);
  transition:border-color .25s ease, color 0s linear .17s;
}
.kk-cat-pill.is-active::before{ transform:scaleX(1); }
.kk-cat-pill.is-active span{ opacity:0.6; }

/* --- Grupos por categoria --- */
.kk-cat-group{ margin-bottom:96px; }
.kk-cat-group.is-hidden{ display:none; }
.kk-cat-group__title{
  position:relative;
  font-family:var(--font-display); font-weight:500; font-size:28px; color:var(--paper);
  letter-spacing:-0.02em;
  display:flex; align-items:baseline; gap:12px;
  margin:0 0 36px; padding-bottom:18px;
}
.kk-cat-group__title span{
  font-family:var(--font-mono); font-size:13px; color:var(--stone); font-weight:400;
}
/* La regla se traza sola: el gesto de rayar la hoja de inventario. */
.kk-cat-group__title::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:1px;
  background:var(--stone-line); transform-origin:left center;
}

/* --- Grilla --- */
/* Sin esto, width:100% + padding + borde hace el boton mas ancho que su tarjeta. */
.kk-catalog-grid, .kk-catalog-grid *, .kk-catalog-grid *::before, .kk-catalog-grid *::after,
.kk-cat-pill, .kk-cat-more{ box-sizing:border-box; }
.kk-catalog-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(230px, 1fr));
  gap:44px 28px;
}
.pcard{ display:flex; flex-direction:column; }
.pcard--extra.is-hidden{ display:none; }
.pcard--out{ opacity:0.45; }
.pcard--out .pcard__cta{ pointer-events:none; }

.pcard__link{ display:block; }
.pcard__media{
  position:relative; isolation:isolate;
  aspect-ratio:1/1;
  display:flex; align-items:center; justify-content:center;
  margin-bottom:22px;
}
/* Se enciende una luz detras del objeto, no un halo plano sobre el. */
.pcard__media::before{
  content:''; position:absolute; z-index:-1; inset:6% 2%;
  border-radius:50%;
  background:radial-gradient(closest-side, rgba(217,164,65,0.17), rgba(217,164,65,0) 74%);
  opacity:0; transform:scale(.9);
  transition:opacity .5s ease, transform .6s var(--ease-out);
}
.pcard:hover .pcard__media::before{ opacity:1; transform:scale(1); }

.pcard__icon{
  position:relative;
  width:92px; height:92px; border-radius:50%;
  background:var(--card);
  display:flex; align-items:center; justify-content:center;
  transition:background .3s ease;
}
.pcard__icon::after{
  content:''; position:absolute; inset:0; border-radius:50%;
  border:1px solid rgba(217,164,65,0.45);
  transform:scale(.84); opacity:0;
  transition:transform .55s var(--ease-out), opacity .4s ease;
}
.pcard:hover .pcard__icon{ background:var(--card-hover); }
.pcard:hover .pcard__icon::after{ transform:scale(1.14); opacity:1; }
.pcard__icon svg{ width:34px; height:34px; color:var(--stone); transition:color .3s ease; }
.pcard:hover .pcard__icon svg{ color:var(--brick); }

.pcard__media--photo img{
  max-width:92%; max-height:92%; width:auto; height:auto;
  object-fit:contain;
  filter:drop-shadow(0 14px 18px rgba(0,0,0,0.55));
  transition:transform .45s var(--ease-out), filter .45s ease;
}
/* Las dos sombras salen del alfa real de la foto: una asienta, la otra entibia el borde. */
.pcard:hover .pcard__media--photo img{
  transform:translateY(-6px) scale(1.05);
  filter:drop-shadow(0 22px 26px rgba(0,0,0,0.6)) drop-shadow(0 4px 20px rgba(217,164,65,0.22));
}

/* El SKU vive con los otros datos, no flotando sobre la foto. */
.pcard__sku{
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:0.04em; color:var(--brick);
  border:1px solid rgba(217,164,65,0.32); border-radius:2px; padding:1px 6px;
  margin-left:2px; white-space:nowrap;
  transition:border-color .3s ease, background .3s ease;
}
.pcard:hover .pcard__sku{ border-color:var(--brick); background:rgba(217,164,65,0.12); }
.pcard__name{
  font-family:var(--font-display); font-weight:500; font-size:18px; line-height:1.3; color:var(--paper);
  letter-spacing:-0.01em; text-wrap:balance;
  margin:0 0 8px;
  text-decoration-line:underline;
  text-decoration-thickness:1px;
  text-decoration-color:transparent;
  text-underline-offset:0.22em;
  transition:text-decoration-color .25s ease;
}
.pcard__link:hover .pcard__name{ text-decoration-color:rgba(217,164,65,0.75); }
.pcard__meta{
  font-size:13px; color:var(--stone); margin:0;
  display:flex; align-items:center; flex-wrap:wrap; gap:6px 7px;
}
.pcard__dot{ width:5px; height:5px; border-radius:50%; background:var(--brick); flex:none; display:inline-block; }
.pcard--out .pcard__dot{ background:var(--stone); }

.pcard__foot{
  margin-top:auto; padding-top:18px;
  border-top:1px solid var(--stone-line);
  display:flex; flex-direction:column; gap:12px;
  transition:border-color .3s ease;
}
.pcard:hover .pcard__foot{ border-color:#3A362F; }
.pcard__price{
  font-family:var(--font-mono); font-variant-numeric:tabular-nums; font-size:15px; color:var(--paper);
}
.pcard__price .woocommerce-Price-currencySymbol{ color:var(--stone); font-size:12px; }
.pcard__price--tbd{ font-family:var(--font-body); font-style:italic; color:var(--stone); font-size:13px; }

.pcard__cta a, .pcard__cta button{
  position:relative; isolation:isolate; overflow:hidden;
  display:flex; align-items:center; justify-content:center; gap:9px;
  width:100%; text-align:center;
  padding:13px 18px; border-radius:2px;
  border:1px solid rgba(242,239,233,0.22);
  color:var(--paper); font-size:13px; font-weight:500; letter-spacing:0.01em;
  background:transparent;
  transition:border-color .3s ease, background .3s ease, color 0s linear 0s;
}
/* La flecha entra al pasar por la tarjeta: indica que el paso sigue. */
.pcard__cta a::after, .pcard__cta button::after{
  content:''; flex:none; width:13px; height:9px; background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2014%209'%3E%3Cpath%20d='M0%204.5h11.5M8.2%201.2%2011.8%204.5%208.2%207.8'%20fill='none'%20stroke='%23000'%20stroke-width='1.5'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2014%209'%3E%3Cpath%20d='M0%204.5h11.5M8.2%201.2%2011.8%204.5%208.2%207.8'%20fill='none'%20stroke='%23000'%20stroke-width='1.5'/%3E%3C/svg%3E") center/contain no-repeat;
  opacity:0; transform:translateX(-5px);
  transition:opacity .3s ease, transform .35s var(--ease-out);
}
.pcard:hover .pcard__cta a::after, .pcard:hover .pcard__cta button::after{ opacity:1; transform:none; }
/* En reposo ya se lee; al pasar por la tarjeta se enciende antes de tocarlo. */
.pcard:hover .pcard__cta a:not(:hover), .pcard:hover .pcard__cta button:not(:hover){ border-color:rgba(242,239,233,0.4); background:rgba(242,239,233,0.04); }
.pcard__cta a::before, .pcard__cta button::before{
  content:''; position:absolute; inset:0; z-index:-1;
  background:var(--brick);
  transform:scaleX(0); transform-origin:left center;
  transition:transform .38s var(--ease-out);
}
.pcard__cta a:hover, .pcard__cta button:hover{
  color:var(--night); border-color:var(--brick);
  transition:border-color .3s ease, color 0s linear .14s;
}
.pcard__cta a:hover::before, .pcard__cta button:hover::before{ transform:scaleX(1); }
/* Ya reservado en esta visita: el boton deja de pedir fechas y lleva al pedido. */
.pcard__fechas.is-listo{
  border-color:rgba(217,164,65,0.55); background:rgba(217,164,65,0.08); color:var(--brick);
}
.pcard__fechas.is-listo::after{
  opacity:1; transform:none;
  -webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2014%209'%3E%3Cpath%20d='M1%204.6%205%208.2%2013%201'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2014%209'%3E%3Cpath%20d='M1%204.6%205%208.2%2013%201'%20fill='none'%20stroke='%23000'%20stroke-width='1.7'/%3E%3C/svg%3E") center/contain no-repeat;
}
.pcard:hover .pcard__fechas.is-listo:not(:hover){
  border-color:rgba(217,164,65,0.7); background:rgba(217,164,65,0.13);
}
.pcard__fechas.is-listo:hover{ color:var(--night); border-color:var(--brick); }

.kk-cat-more{
  position:relative; isolation:isolate; overflow:hidden;
  display:block; margin:44px auto 0;
  font-family:var(--font-mono); font-size:13px; color:var(--stone);
  border:1px solid var(--stone-line); border-radius:999px;
  padding:12px 28px; background:transparent;
  transition:border-color .25s ease, color 0s linear 0s;
}
.kk-cat-more::before{
  content:''; position:absolute; inset:0; z-index:-1;
  background:var(--brick);
  transform:scaleX(0); transform-origin:left center;
  transition:transform .42s var(--ease-out);
}
.kk-cat-more:hover{ border-color:var(--brick); color:var(--night); transition:border-color .25s ease, color 0s linear .16s; }
.kk-cat-more:hover::before{ transform:scaleX(1); }

/* --- Estados de revelado (solo con JS activo) --- */
.kk-js .pcard{ opacity:0; transform:translateY(18px); }
.kk-js .pcard.is-in{
  opacity:1; transform:none;
  transition:opacity .65s var(--ease-out), transform .65s var(--ease-out);
  transition-delay:var(--d, 0ms);
}
.kk-js .kk-cat-group__title::after{ transform:scaleX(0); }
.kk-js .kk-cat-group.is-in .kk-cat-group__title::after{
  transform:scaleX(1); transition:transform .95s var(--ease-out);
}
.kk-js .pcard__media img{ opacity:0; transition:opacity .5s ease; }
.kk-js .pcard__media img.is-loaded{ opacity:1; }

/* --- Woocommerce notices --- */
.woocommerce-notices-wrapper{ margin-bottom:24px; }
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-message{
  background:var(--card); border:1px solid var(--stone-line); color:var(--paper);
  padding:14px 18px; font-size:14px; list-style:none;
}

/* --- Footer --- */
.kk-shop-footer{
  position:relative; z-index:1;
  border-top:1px solid var(--stone-line);
  padding:40px 48px;
  display:flex; justify-content:space-between; align-items:center;
  flex-wrap:wrap; gap:16px;
  background:#1b1917;
}
.kk-shop-footer img{ height:22px; }
.kk-shop-footer span{ font-size:13px; color:var(--stone); }

/* El contador cambia arriba mientras mirabas una tarjeta abajo: que se note. */
.kk-cart.is-latiendo svg{ animation:kk-latido .9s var(--ease-out); }
.kk-cart.is-latiendo .kk-cart__n{ animation:kk-latido .9s var(--ease-out); }
@keyframes kk-latido{
  0%{ transform:scale(1); }
  30%{ transform:scale(1.28); }
  100%{ transform:scale(1); }
}
@media(prefers-reduced-motion:reduce){
  .kk-cart.is-latiendo svg, .kk-cart.is-latiendo .kk-cart__n{ animation:none; }
}
@media(max-width:780px){
  .kk-shop-nav{ padding:16px 24px; }
  .kk-shop-nav__links{ display:none; }
  .kk-shop-wrap{ padding:56px 24px 80px; }
  .kk-shop-sub{ margin-bottom:36px; }
  .kk-shop-count{ margin-bottom:44px; }
  .kk-catalog-grid{ grid-template-columns:repeat(2, 1fr); gap:36px 16px; }
  .pcard__name{ font-size:16px; }
  .pcard__icon{ width:72px; height:72px; }
  .pcard__icon svg{ width:28px; height:28px; }
  .kk-cat-group{ margin-bottom:72px; }
  .kk-cat-group__title{ font-size:24px; margin-bottom:28px; }
  .kk-shop-footer{ padding:28px 24px; flex-direction:column; text-align:center; }
}

/* --- Movimiento reducido: se va el desplazamiento, queda la respuesta --- */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  body.woocommerce *, body.woocommerce *::before, body.woocommerce *::after,
body.woocommerce-page *, body.kk-shop *, body.woocommerce-page *::before, body.kk-shop *::before, body.woocommerce-page *::after, body.kk-shop *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  .kk-js .pcard{ opacity:1; transform:none; }
  .kk-js .pcard__media img{ opacity:1; }
  .kk-js .kk-cat-group__title::after{ transform:scaleX(1); }
  .pcard:hover .pcard__media--photo img{ transform:none; }
}

/* --- Contenido de paginas genericas (ej. Contacto) --- */
.kk-page-wrap{ max-width:900px; }
.kk-page-content{ font-size:16px; line-height:1.7; color:var(--paper); }
.kk-page-content h2{
  font-family:var(--font-display); font-weight:600; font-size:28px;
  margin:48px 0 16px; color:var(--paper); letter-spacing:-0.02em;
}
.kk-page-content h2:first-child{ margin-top:0; }
.kk-page-content p{ margin-bottom:16px; color:rgba(242,239,233,0.85); max-width:70ch; }
.kk-page-content a{ color:var(--brick); text-decoration:underline; text-underline-offset:0.2em; }
.kk-page-content img{ width:100%; border:1px solid var(--stone-line); margin:24px 0; }
.kk-page-content ul, .kk-page-content ol{ margin:0 0 16px 20px; }
/* ===================== FICHA DE PRODUCTO ===================== */
.kk-prod__back{
  display:inline-flex; align-items:center; gap:9px;
  font-size:13px; color:var(--stone); margin-bottom:44px;
  transition:color .25s ease;
}
.kk-prod__back svg{ width:16px; height:16px; transition:transform .3s var(--ease-out); }
.kk-prod__back:hover{ color:var(--paper); }
.kk-prod__back:hover svg{ transform:translateX(-4px); }

.kk-prod{
  position:relative;
  display:grid; grid-template-columns:1fr 1fr; gap:72px; align-items:start;
  padding-bottom:100px;
}
/* Filete entre columnas: liga las dos mitades en una sola composicion. */
.kk-prod::before{
  content:''; position:absolute; z-index:0;
  top:4%; bottom:26%; left:50%; width:1px;
  background:linear-gradient(180deg, rgba(44,42,38,0) 0%, var(--stone-line) 14%, var(--stone-line) 86%, rgba(44,42,38,0) 100%);
}

.kk-prod__media{
  position:relative; isolation:isolate; aspect-ratio:1/0.86;
  display:flex; align-items:center; justify-content:center;

}

.kk-prod__media::before{
  content:''; position:absolute; z-index:-1; inset:6% 2%; border-radius:50%;
  background:radial-gradient(closest-side, rgba(217,164,65,0.15), rgba(217,164,65,0) 74%);
}
.kk-prod__media img{
  max-width:94%; max-height:94%; width:auto; height:auto; object-fit:contain;
  filter:drop-shadow(0 26px 34px rgba(0,0,0,0.6)) drop-shadow(0 6px 22px rgba(217,164,65,0.14));
}
.kk-prod__icon{
  width:min(190px,52%); aspect-ratio:1/1; border-radius:50%; background:var(--card);
  display:flex; align-items:center; justify-content:center;
}
.kk-prod__icon svg{ width:38%; height:38%; color:var(--stone); }

.kk-prod__meta{ display:flex; align-items:center; flex-wrap:wrap; gap:6px 9px; font-size:14px; color:var(--stone); margin:0 0 16px; }
.kk-prod__dot{ width:6px; height:6px; border-radius:50%; background:var(--brick); flex:none; }
.kk-prod__dot.is-out{ background:var(--stone); }
.kk-prod__sku{ font-family:var(--font-mono); font-size:11px; letter-spacing:0.04em; color:var(--brick); border:1px solid rgba(217,164,65,0.32); border-radius:2px; padding:2px 7px; }

.kk-prod__title{
  font-family:var(--font-display); font-weight:600; font-size:clamp(30px,3.6vw,44px);
  line-height:1.08; letter-spacing:-0.03em; color:var(--paper); margin:0 0 20px; text-wrap:balance;
}
.kk-prod__spec{ font-size:16px; line-height:1.75; color:rgba(242,239,233,0.7); margin:0 0 30px; max-width:50ch; text-wrap:pretty; }
/* --- Ficha tecnica: los datos en el idioma del resto del sitio --- */
.kk-prod__ficha{ margin:0 0 32px; padding:0; border-top:1px solid var(--stone-line); }
.kk-prod__fila{
  display:flex; align-items:baseline; justify-content:space-between; gap:24px;
  padding:13px 2px; border-bottom:1px solid var(--stone-line);
}
.kk-prod__fila dt{ font-size:13px; color:var(--stone); flex:none; }
.kk-prod__fila dd{ margin:0; font-size:14px; color:var(--paper); text-align:right; }
.kk-prod__fila dd.is-dato{
  font-family:var(--font-mono); font-variant-numeric:tabular-nums; font-size:13.5px;
}
.kk-prod__fila dd a{
  border-bottom:1px solid var(--stone-line); padding-bottom:1px;
  transition:border-color .25s ease, color .25s ease;
}
.kk-prod__fila dd a:hover{ color:var(--brick); border-color:var(--brick); }
.kk-prod__fila dd .woocommerce-Price-currencySymbol{ color:var(--stone); font-size:12px; }
.kk-prod__unidad{ color:var(--stone); font-size:12px; margin-left:2px; }
.kk-prod__tbd{ font-family:var(--font-body); font-style:italic; color:var(--stone); font-size:14px; }
/* --- El formulario de reserva del plugin --- */
.kk-prod__booking .cart{ margin:0; }
.kk-prod__booking .wceb_picker_wrap{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:16px; }
.kk-prod__booking .form-row{ margin:0; display:flex; flex-direction:column; gap:8px; }
.kk-prod__booking label{
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--stone);
}
.kk-prod__booking input.wceb_datepicker{
  width:100%; box-sizing:border-box;
  background:var(--card); border:1px solid var(--stone-line); border-radius:2px;
  color:var(--paper); font:inherit; font-size:15px; padding:14px 16px;
  transition:border-color .25s ease, background .25s ease;
}
.kk-prod__booking input.wceb_datepicker::placeholder{ color:#6E6960; }
.kk-prod__booking input.wceb_datepicker:hover{ border-color:#3A362F; }
.kk-prod__booking input.wceb_datepicker:focus{ outline:none; border-color:var(--brick); background:var(--card-hover); }
.kk-prod__booking .reset_dates{
  display:inline-block; font-size:12px; color:var(--stone);
  border-bottom:1px solid var(--stone-line); padding-bottom:2px; margin-bottom:22px;
  transition:color .25s ease, border-color .25s ease;
}
.kk-prod__booking .reset_dates:hover{ color:var(--paper); border-color:var(--brick); }
/* Cuando el plugin no calculo nada todavia, estas lineas no deben dejar hueco. */
.kk-prod__booking .booking_details, .kk-prod__booking .booking_price{ margin:0; line-height:0; }
.kk-prod__booking .booking_details > *, .kk-prod__booking .booking_price > *{
  display:inline-block; line-height:1.6; font-family:var(--font-mono);
  font-variant-numeric:tabular-nums; font-size:15px; color:var(--paper); margin-bottom:18px;
}
.kk-prod__booking .quantity{ display:none; }
.kk-prod__booking .single_add_to_cart_button{
  position:relative; isolation:isolate; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  width:100%; padding:17px 24px; border:1px solid var(--brick); border-radius:2px;
  background:var(--brick); color:var(--night);
  font-size:14px; font-weight:600; letter-spacing:0.01em; cursor:pointer;
  transition:border-color .3s ease, color 0s linear 0s;
}
.kk-prod__booking .single_add_to_cart_button::before{
  content:''; position:absolute; inset:0; z-index:-1; background:var(--paper);
  transform:scaleX(0); transform-origin:left center; transition:transform .4s var(--ease-out);
}
.kk-prod__booking .single_add_to_cart_button:hover::before{ transform:scaleX(1); }
.kk-prod__booking .single_add_to_cart_button:disabled{ opacity:0.45; cursor:not-allowed; }
.kk-prod__booking .single_add_to_cart_button:disabled::before{ transform:scaleX(0); }

.kk-prod__note{
  margin:26px 0 0; padding-left:16px; border-left:1px solid var(--brick);
  font-size:13.5px; line-height:1.65; color:var(--stone); max-width:46ch; text-wrap:pretty;
}
.kk-prod__note strong{ color:var(--brick); font-weight:500; }

/* --- Mas de la categoria --- */
.kk-prod-more{ padding-bottom:40px; }
.kk-prod-more__title{
  font-family:var(--font-display); font-weight:500; font-size:26px; color:var(--paper);
  letter-spacing:-0.02em; display:flex; align-items:baseline; gap:12px;
  margin:0 0 34px; padding-bottom:18px; border-bottom:1px solid var(--stone-line);
}
.kk-prod-more__title span{ font-family:var(--font-mono); font-size:13px; color:var(--stone); font-weight:400; }

@media(max-width:900px){
  .kk-prod{ grid-template-columns:1fr; gap:36px; padding-bottom:70px; }
  .kk-prod::before{ display:none; }
  .kk-prod__media{ aspect-ratio:1/0.8; }
  .kk-prod__back{ margin-bottom:28px; }
  .kk-prod__price{ font-size:20px; margin-bottom:24px; padding-bottom:22px; }
  .kk-prod-more__title{ font-size:22px; }
}
@media(max-width:480px){
  .kk-prod__booking .wceb_picker_wrap{ grid-template-columns:1fr; gap:14px; }
}

/* ===================== CALENDARIO (pickadate) ===================== */
/* Su hoja carga despues de esta, asi que subimos especificidad con body. */
body.woocommerce .picker, body.kk-shop .picker{ font-family:var(--font-body); font-size:14px; z-index:60; }
/* holder es la capa de posicionamiento a pantalla completa de pickadate.
   La convertimos en un desplegable anclado bajo el campo, y la caja visual
   pasa a ser .picker__box, que es lo que de verdad se ve. */
body.woocommerce .picker, body.kk-shop .picker{ position:relative; display:block; }
body.woocommerce .picker__holder, body.kk-shop .picker__holder{
  position:absolute; top:100%; left:0; right:auto; bottom:auto;
  width:min(320px, 86vw); max-width:none; height:auto; max-height:none;
  margin-top:8px; padding:0; overflow:visible;
  background:transparent; border:none; box-shadow:none; border-radius:0;
}
body.woocommerce .picker__frame, body.kk-shop .picker__frame{
  position:static; width:100%; min-width:0; max-width:none;
  margin:0; padding:0; top:auto; bottom:auto; max-height:none; overflow:visible;
}
body.woocommerce .picker__wrap, body.kk-shop .picker__wrap{ display:block; margin:0; padding:0; }
body.woocommerce .picker__box, body.kk-shop .picker__box{
  background:var(--card); border:1px solid var(--stone-line); border-radius:3px;
  box-shadow:0 26px 52px rgba(0,0,0,0.6);
  padding:16px 16px 10px;
}

body.woocommerce .picker__header, body.kk-shop .picker__header{ color:var(--paper); margin-top:0; padding-bottom:6px; }
body.woocommerce .picker__month, body.kk-shop .picker__month, body.woocommerce .picker__year, body.kk-shop .picker__year{
  font-family:var(--font-display); font-weight:500; font-size:16px; color:var(--paper); font-style:normal;
}
body.woocommerce .picker__year, body.kk-shop .picker__year{ color:var(--stone); font-size:14px; }
body.woocommerce .picker__select--month, body.kk-shop .picker__select--month, body.woocommerce .picker__select--year, body.kk-shop .picker__select--year{
  background:var(--card-hover); border:1px solid var(--stone-line); color:var(--paper);
  padding:5px 7px; border-radius:2px; font-size:13px; height:auto;
}
body.woocommerce .picker__nav--prev, body.kk-shop .picker__nav--prev, body.woocommerce .picker__nav--next, body.kk-shop .picker__nav--next{
  width:30px; height:30px; padding:0; border-radius:2px; top:-2px;
  transition:background .2s ease;
}
body.woocommerce .picker__nav--prev:hover, body.kk-shop .picker__nav--prev:hover, body.woocommerce .picker__nav--next:hover, body.kk-shop .picker__nav--next:hover{ background:var(--card-hover); }
body.woocommerce .picker__nav--prev:before, body.kk-shop .picker__nav--prev:before{ border-right-color:var(--stone); }
body.woocommerce .picker__nav--next:before, body.kk-shop .picker__nav--next:before{ border-left-color:var(--stone); }
body.woocommerce .picker__nav--prev:hover:before, body.kk-shop .picker__nav--prev:hover:before{ border-right-color:var(--brick); }
body.woocommerce .picker__nav--next:hover:before, body.kk-shop .picker__nav--next:hover:before{ border-left-color:var(--brick); }
body.woocommerce .picker__nav--disabled, body.kk-shop .picker__nav--disabled, body.woocommerce .picker__nav--disabled:hover, body.kk-shop .picker__nav--disabled:hover{ background:transparent; opacity:0.25; }

body.woocommerce .picker__table, body.kk-shop .picker__table{ margin-top:8px; margin-bottom:4px; }
body.woocommerce .picker__weekday, body.kk-shop .picker__weekday{
  font-family:var(--font-mono); font-size:10px; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--stone); padding-bottom:9px; font-weight:500;
}
body.woocommerce .picker__day, body.kk-shop .picker__day{
  color:var(--paper); padding:9px 0; border-radius:2px; border:1px solid transparent;
  font-variant-numeric:tabular-nums; transition:background .15s ease, color .15s ease;
}
body.woocommerce .picker__day--outfocus, body.kk-shop .picker__day--outfocus{ color:#4A453D; }
body.woocommerce .picker__day--today:before, body.kk-shop .picker__day--today:before{ border-top-color:var(--brick); }
body.woocommerce .picker__day--infocus:hover, body.kk-shop .picker__day--infocus:hover, body.woocommerce .picker__day--outfocus:hover, body.kk-shop .picker__day--outfocus:hover{
  background:var(--card-hover); color:var(--paper); border-color:var(--stone-line);
}
body.woocommerce .picker__day--highlighted, body.kk-shop .picker__day--highlighted{ border-color:rgba(217,164,65,0.55); background:transparent; color:var(--paper); }
body.woocommerce .picker__day--highlighted:hover, body.kk-shop .picker__day--highlighted:hover, body.woocommerce .picker--focused .picker__day--highlighted, body.kk-shop .picker--focused .picker__day--highlighted{
  background:rgba(217,164,65,0.14); color:var(--paper);
}
body.woocommerce .picker__day--selected, body.kk-shop .picker__day--selected, body.woocommerce .picker__day--selected:hover, body.kk-shop .picker__day--selected:hover, body.woocommerce .picker--focused .picker__day--selected, body.kk-shop .picker--focused .picker__day--selected{
  background:var(--brick); color:var(--night); font-weight:600; border-color:var(--brick);
}
body.woocommerce .picker__day--disabled, body.woocommerce .picker__day--disabled:hover,
body.woocommerce .picker--focused .picker__day--disabled, body.kk-shop .picker--focused .picker__day--disabled{
  background:transparent; color:#3A362F; border-color:transparent; cursor:default;
}
body.woocommerce .picker__day--disabled:before, body.kk-shop .picker__day--disabled:before{ border-top-color:#3A362F; }

body.woocommerce .picker__footer, body.kk-shop .picker__footer{ border-top:1px solid var(--stone-line); padding-top:8px; margin-top:4px; }
body.woocommerce .picker__button--today, body.kk-shop .picker__button--today, body.woocommerce .picker__button--clear, body.kk-shop .picker__button--clear, body.woocommerce .picker__button--close, body.kk-shop .picker__button--close{
  background:transparent; border:1px solid var(--stone-line); border-radius:2px;
  color:var(--stone); font-size:12px; padding:9px 4px; font-weight:500;
  transition:border-color .2s ease, color .2s ease;
}
body.woocommerce .picker__button--today:hover, body.kk-shop .picker__button--today:hover, body.woocommerce .picker__button--clear:hover, body.kk-shop .picker__button--clear:hover, body.woocommerce .picker__button--close:hover, body.kk-shop .picker__button--close:hover{
  background:transparent; border-color:var(--brick); color:var(--brick);
}
body.woocommerce .picker__button--today:before, body.kk-shop .picker__button--today:before{ border-top-color:var(--brick); }
body.woocommerce .picker__button--close:before, body.kk-shop .picker__button--close:before{ color:var(--stone); }

/* --- Estado previo a elegir fechas --- */
/* El plugin lo deja en opacidad 0.5, que lee como roto. Mejor un estado de
   espera explicito: contorno apagado y una linea que dice que falta. */
body.woocommerce .kk-prod__booking .single_add_to_cart_button.date-selection-needed, body.kk-shop .kk-prod__booking .single_add_to_cart_button.date-selection-needed{
  opacity:1 !important; background:transparent;
  border-color:var(--stone-line); color:var(--stone); cursor:default;
}
body.woocommerce .kk-prod__booking .single_add_to_cart_button.date-selection-needed::before, body.kk-shop .kk-prod__booking .single_add_to_cart_button.date-selection-needed::before{ transform:scaleX(0); }
.kk-prod__booking:has(.date-selection-needed)::after{
  content:'Elegí las fechas para continuar';
  display:block; margin-top:12px; text-align:center;
  font-size:12.5px; color:var(--stone);
}

/* El stock ya se muestra arriba, junto al SKU. */
.kk-prod__booking .stock{ display:none; }

/* --- Ajustes finos del calendario --- */
/* El campo ya dice DESDE / HASTA justo arriba: el titulo repite. */
body.woocommerce .picker__title, body.kk-shop .picker__title{ display:none; }

/* Cabecera como fila: mes a la izquierda, navegacion a la derecha. */
body.woocommerce .picker__header, body.kk-shop .picker__header{
  display:flex; align-items:center; gap:9px;
  padding:0 0 14px; margin:0; text-align:left;
}
body.woocommerce .picker__month, body.kk-shop .picker__month{ order:1; margin:0; text-transform:capitalize; }
body.woocommerce .picker__year, body.kk-shop .picker__year{ order:2; margin:0 auto 0 0; }
body.woocommerce .picker__nav--prev, body.kk-shop .picker__nav--prev{ order:3; }
body.woocommerce .picker__nav--next, body.kk-shop .picker__nav--next{ order:4; }
body.woocommerce .picker__nav--prev, body.kk-shop .picker__nav--prev, body.woocommerce .picker__nav--next, body.kk-shop .picker__nav--next{
  position:static; display:inline-flex; align-items:center; justify-content:center;
  width:28px; height:28px; padding:0; margin:0; top:auto; left:auto; right:auto;
  border:1px solid var(--stone-line); border-radius:2px;
  transition:border-color .2s ease, background .2s ease;
}
/* Chevrones en vez de los triangulos por defecto de la libreria. */
body.woocommerce .picker__nav--prev:before, body.kk-shop .picker__nav--prev:before, body.woocommerce .picker__nav--next:before, body.kk-shop .picker__nav--next:before{
  content:''; display:block; width:6px; height:6px; margin:0;
  border:0; border-left:1.5px solid var(--stone); border-bottom:1.5px solid var(--stone);
  transition:border-color .2s ease;
}
body.woocommerce .picker__nav--prev:before, body.kk-shop .picker__nav--prev:before{ transform:rotate(45deg); margin-left:2px; }
body.woocommerce .picker__nav--next:before, body.kk-shop .picker__nav--next:before{ transform:rotate(-135deg); margin-right:2px; }
body.woocommerce .picker__nav--prev:hover, body.kk-shop .picker__nav--prev:hover, body.woocommerce .picker__nav--next:hover, body.kk-shop .picker__nav--next:hover{ border-color:var(--brick); background:transparent; }
body.woocommerce .picker__nav--prev:hover:before, body.kk-shop .picker__nav--prev:hover:before, body.woocommerce .picker__nav--next:hover:before, body.kk-shop .picker__nav--next:hover:before{ border-left-color:var(--brick); border-bottom-color:var(--brick); }
body.woocommerce .picker__nav--disabled, body.kk-shop .picker__nav--disabled, body.woocommerce .picker__nav--disabled:hover, body.kk-shop .picker__nav--disabled:hover{ opacity:0.3; border-color:var(--stone-line); }
body.woocommerce .picker__nav--disabled:hover:before, body.kk-shop .picker__nav--disabled:hover:before{ border-left-color:var(--stone); border-bottom-color:var(--stone); }

/* Pie: tres acciones parejas, sin el guion rojo de la libreria. */
body.woocommerce .picker__footer, body.kk-shop .picker__footer{
  display:flex; gap:8px; text-align:center;
  border-top:1px solid var(--stone-line); padding-top:12px; margin-top:8px;
}
body.woocommerce .picker__button--today, body.kk-shop .picker__button--today, body.woocommerce .picker__button--clear, body.kk-shop .picker__button--clear, body.woocommerce .picker__button--close, body.kk-shop .picker__button--close{
  flex:1; width:auto; margin:0; display:inline-flex; align-items:center; justify-content:center; gap:5px;
}
body.woocommerce .picker__button--clear:before, body.kk-shop .picker__button--clear:before{
  content:''; display:inline-block; position:static; top:auto;
  width:8px; height:0; border-top:1.5px solid var(--stone); transition:border-color .2s ease;
}
body.woocommerce .picker__button--clear:hover:before, body.kk-shop .picker__button--clear:hover:before{ border-top-color:var(--brick); }
body.woocommerce .picker__button--today:before, body.kk-shop .picker__button--today:before{
  content:''; display:inline-block; position:static; top:auto;
  width:0; height:0; border-top:5px solid var(--brick);
  border-left:3px solid transparent; border-right:3px solid transparent;
}
body.woocommerce .picker__button--close:before, body.kk-shop .picker__button--close:before{ content:'\00d7'; display:inline-block; position:static; top:auto; font-size:13px; color:inherit; transform:none; }

/* Celdas mas parejas y con mas aire. */
body.woocommerce .picker__day, body.kk-shop .picker__day{ padding:10px 0; font-size:13.5px; }
body.woocommerce .picker__table, body.kk-shop .picker__table{ margin-bottom:2px; }

/* ===================== CALENDARIO DE RANGO ===================== */
.kk-cal{ margin-bottom:20px; }
.kk-cal__trigger{
  display:inline-flex; align-items:center; gap:10px;
  padding:12px 20px; border-radius:2px;
  border:1px solid rgba(242,239,233,0.22); background:transparent;
  color:var(--paper); font-size:13.5px; font-weight:500;
  transition:border-color .25s ease, background .25s ease;
}
.kk-cal__trigger svg{ width:17px; height:17px; color:var(--stone); flex:none; transition:color .25s ease; }
.kk-cal__trigger:hover{ border-color:rgba(242,239,233,0.45); background:rgba(242,239,233,0.04); }
.kk-cal__trigger:hover svg{ color:var(--brick); }
.kk-cal.is-listo .kk-cal__trigger{ border-color:rgba(217,164,65,0.5); }
.kk-cal.is-listo .kk-cal__trigger svg{ color:var(--brick); }
.kk-cal.is-error .kk-cal__trigger{ border-color:rgba(224,112,90,0.5); }

.kk-cal__fondo{
  position:fixed; inset:0; z-index:80; background:rgba(10,9,8,0.74);
  -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
}
.kk-cal__fondo[hidden]{ display:none; }
/* Sin border-box el padding se suma al ancho y la ventana se pasa de medida. */
.kk-cal, .kk-cal *, .kk-cal__panel, .kk-cal__panel *{ box-sizing:border-box; }
.kk-cal__panel{
  position:fixed; z-index:81; top:50%; left:50%; transform:translate(-50%,-50%);
  width:min(700px, 94vw); padding:24px;
  max-height:calc(100vh - 32px); overflow-y:auto;
  background:var(--card); border:1px solid var(--stone-line); border-radius:3px;
  box-shadow:0 34px 68px rgba(0,0,0,0.66);
  scrollbar-color:#37342F transparent; scrollbar-width:thin;
}
.kk-cal__panel[hidden]{ display:none; }
.kk-cal__panel:focus{ outline:none; }

.kk-cal__top{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding-bottom:18px; margin-bottom:20px; border-bottom:1px solid var(--stone-line);
}
.kk-cal__titulo{ font-family:var(--font-display); font-weight:500; font-size:18px; color:var(--paper); }
.kk-cal__acciones{ display:flex; align-items:center; gap:8px; }
.kk-cal__nav, .kk-cal__cerrar{
  width:32px; height:32px; flex:none; display:inline-flex; align-items:center; justify-content:center;
  border:1px solid var(--stone-line); border-radius:2px; background:transparent; color:var(--stone);
  transition:border-color .2s ease, color .2s ease, opacity .2s ease;
}
.kk-cal__nav::before{ content:''; width:6px; height:6px; border-left:1.5px solid currentColor; border-bottom:1.5px solid currentColor; }
.kk-cal__nav--prev::before{ transform:rotate(45deg); margin-left:2px; }
.kk-cal__nav--next::before{ transform:rotate(-135deg); margin-right:2px; }
.kk-cal__cerrar{ margin-left:6px; }
.kk-cal__cerrar svg{ width:14px; height:14px; }
.kk-cal__nav:hover:not(:disabled), .kk-cal__cerrar:hover{ border-color:var(--brick); color:var(--brick); }
.kk-cal__nav:disabled{ opacity:0.28; cursor:default; }

/* Dos meses lado a lado: el rango que cruza de mes se elige sin navegar. */
.kk-cal__meses{ display:grid; grid-template-columns:1fr 1fr; gap:30px; }
.kk-cal__mes{
  display:block; text-align:center; margin-bottom:14px;
  font-family:var(--font-display); font-weight:500; font-size:15px;
  color:var(--paper); text-transform:capitalize;
}
.kk-cal__grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.kk-cal__wd{
  font-family:var(--font-mono); font-size:10px; letter-spacing:0.05em; text-transform:uppercase;
  color:var(--stone); text-align:center; padding-bottom:9px;
}
.kk-cal__dia{
  position:relative; aspect-ratio:1/0.92;
  border:1px solid transparent; border-radius:2px; background:transparent;
  color:var(--paper); font-size:13.5px; font-variant-numeric:tabular-nums;
  transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.kk-cal__dia.is-fuera{ color:transparent; pointer-events:none; }
.kk-cal__dia.is-bloqueada{ color:#3A362F; cursor:default; }
/* Hoy: un punto, para orientarse sin competir con la seleccion. */
.kk-cal__dia.is-hoy::after{ content:''; position:absolute; left:50%; bottom:5px; width:3px; height:3px; border-radius:50%; background:var(--stone); transform:translateX(-50%); }
.kk-cal__dia:not(:disabled):hover{ background:var(--card-hover); border-color:var(--stone-line); }
.kk-cal__dia.is-previa{ background:rgba(217,164,65,0.09); }
.kk-cal__dia.is-dentro{ background:rgba(217,164,65,0.15); border-radius:0; }
.kk-cal__dia.is-desde, .kk-cal__dia.is-hasta{
  background:var(--brick); color:var(--night); font-weight:600; border-color:var(--brick);
}
.kk-cal__dia.is-desde::after, .kk-cal__dia.is-hasta::after{ background:var(--night); }
.kk-cal__dia.is-desde{ border-radius:2px 0 0 2px; }
.kk-cal__dia.is-hasta{ border-radius:0 2px 2px 0; }

.kk-cal__pie{
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  margin-top:20px; padding-top:16px; border-top:1px solid var(--stone-line);
}
.kk-cal__resumen{ margin:0; font-size:13px; color:var(--stone); }
.kk-cal__resumen b{ color:var(--paper); font-weight:500; }
.kk-cal__panel.is-error .kk-cal__resumen{ color:#E0705A; }
.kk-cal__limpiar{
  flex:none; padding:8px 14px; border:1px solid var(--stone-line); border-radius:2px;
  background:transparent; color:var(--stone); font-size:12.5px;
  transition:border-color .2s ease, color .2s ease;
}
.kk-cal__limpiar:hover{ border-color:var(--brick); color:var(--brick); }
.kk-cal__limpiar[hidden]{ display:none; }

/* El calendario tambien se abre desde una tarjeta: ahi el titulo es el equipo. */
.kk-cal__enc{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.kk-cal__eyebrow{
  font-family:var(--font-mono); font-size:10px; letter-spacing:0.08em;
  text-transform:uppercase; color:var(--stone);
}
.kk-cal__eyebrow[hidden]{ display:none; }
.kk-cal__titulo{ display:block; overflow-wrap:anywhere; }

.kk-cal__pie-acciones{ display:flex; align-items:center; gap:10px; flex:none; }
.kk-cal__confirmar{
  padding:11px 22px; border-radius:2px;
  border:1px solid var(--brick); background:var(--brick); color:var(--night);
  font-size:13px; font-weight:600; letter-spacing:0.01em;
  transition:background .25s ease, border-color .25s ease, color .25s ease;
}
.kk-cal__confirmar:hover:not(:disabled){ background:#E4B457; border-color:#E4B457; }
.kk-cal__confirmar:disabled{
  background:transparent; border-color:var(--stone-line); color:var(--stone); cursor:default;
}
/* Mientras se confirma, los dias se apagan: no hay nada que tocar todavia. */
.kk-cal__panel.is-cargando{ cursor:progress; }
.kk-cal__panel.is-cargando .kk-cal__meses{ opacity:0.4; pointer-events:none; }
.kk-cal__meses{ transition:opacity .2s ease; }

@media(max-width:720px){
  .kk-cal__panel{ width:min(360px, 94vw); padding:18px; }
  .kk-cal__meses{ grid-template-columns:1fr; gap:0; }
  .kk-cal__bloque--dos{ display:none; }
  .kk-cal__trigger{ width:100%; justify-content:center; }
  .kk-cal__pie{ flex-direction:column; align-items:stretch; gap:12px; text-align:center; }
}

/* ===================== PEDIDO EN LA BARRA ===================== */
.kk-cart{
  display:inline-flex; align-items:center; gap:8px;
  font-size:13px; font-weight:500; color:rgba(242,239,233,0.75);
  transition:color .22s ease;
}
.kk-cart svg{ width:16px; height:16px; flex:none; color:var(--stone); transition:color .22s ease; }
.kk-cart:hover{ color:var(--paper); }
.kk-cart:hover svg{ color:var(--brick); }
.kk-cart.has-items svg{ color:var(--brick); }
.kk-cart__n{
  font-family:var(--font-mono); font-size:10.5px; font-weight:600; line-height:1;
  min-width:18px; height:18px; padding:0 5px;
  display:inline-flex; align-items:center; justify-content:center;
  background:var(--brick); color:var(--night); border-radius:999px;
  font-variant-numeric:tabular-nums;
}
@media(max-width:780px){
  /* Los demas enlaces se ocultan, pero el pedido tiene que seguir alcanzable. */
  .kk-shop-nav__links{ display:flex; gap:0; }
  .kk-shop-nav__links a:not(.kk-cart){ display:none; }
  .kk-cart__label{ display:none; }
}

/* ===================== PEDIDO: CHECKOUT ===================== */
/* Es el checkout en bloques de WooCommerce. Su hoja carga antes que esta, */
/* asi que alcanza con igualar especificidad salvo donde usa estilos propios. */
.wc-block-checkout, .wc-block-components-form{ color:var(--paper); }

/* --- Titulos de seccion --- */
.wc-block-components-checkout-step__heading, .wc-block-components-title{
  font-family:var(--font-display) !important; font-weight:500 !important;
  color:var(--paper) !important; letter-spacing:-0.015em;
}
.wc-block-components-checkout-step__description, .wc-block-components-checkout-step__heading-content{ color:var(--stone) !important; }

/* --- Campos de texto --- */
.wc-block-components-text-input{ position:relative; margin-top:14px; }
.wc-block-components-text-input input[type="text"],
.wc-block-components-text-input input[type="email"],
.wc-block-components-text-input input[type="tel"],
.wc-block-components-text-input input[type="number"],
.wc-block-components-textarea{
  background:var(--card) !important; color:var(--paper) !important;
  border:1px solid var(--stone-line) !important; border-radius:2px !important;
  font-family:var(--font-body) !important; font-size:15px !important;
  padding:22px 16px 8px !important; box-shadow:none !important;
  transition:border-color .2s ease, background .2s ease;
}
.wc-block-components-textarea{ padding:14px 16px !important; }
.wc-block-components-text-input input:focus,
.wc-block-components-textarea:focus{
  outline:none !important; border-color:var(--brick) !important; background:var(--card-hover) !important;
}
/* La etiqueta flotante quedaba cortada sobre el borde. */
.wc-block-components-text-input label{
  position:absolute !important; left:17px !important; top:15px !important;
  transform:none !important; transform-origin:left top;
  color:var(--stone) !important; font-family:var(--font-body) !important;
  font-size:15px !important; line-height:1 !important; pointer-events:none;
  transition:top .18s ease, font-size .18s ease, color .18s ease;
}
.wc-block-components-text-input.is-active label{
  top:8px !important; font-size:10px !important;
  font-family:var(--font-mono) !important; letter-spacing:0.06em; text-transform:uppercase;
}
.wc-block-components-text-input.is-active:focus-within label{ color:var(--brick) !important; }

/* --- Desplegables --- */
.wc-blocks-components-select__container{
  background:var(--card) !important; border:1px solid var(--stone-line) !important;
  border-radius:2px !important; box-shadow:none !important;
}
.wc-blocks-components-select__select{
  background:transparent !important; color:var(--paper) !important;
  font-family:var(--font-body) !important; font-size:15px !important;
  padding:22px 16px 8px !important; border:0 !important;
}
.wc-blocks-components-select__select option{ background:var(--card); color:var(--paper); }
.wc-blocks-components-select__label{
  color:var(--stone) !important; font-family:var(--font-mono) !important;
  font-size:10px !important; letter-spacing:0.06em; text-transform:uppercase;
  top:8px !important; left:17px !important; transform:none !important;
}
.wc-blocks-components-select__expand{ fill:var(--stone); }

/* --- Casillas --- */
.wc-block-components-checkbox__input[type="checkbox"]{
  background:var(--card) !important; border:1px solid var(--stone-line) !important;
  border-radius:2px !important;
}
.wc-block-components-checkbox__input[type="checkbox"]:checked{ background:var(--brick) !important; border-color:var(--brick) !important; }
.wc-block-components-checkbox__mark{ fill:var(--night) !important; }
.wc-block-components-checkbox__label{ color:var(--paper); font-size:14px; }

/* --- Resumen del pedido --- */
.wc-block-components-sidebar .wc-block-components-panel,
.wp-block-woocommerce-checkout-order-summary-block{
  background:var(--card); border:1px solid var(--stone-line); border-radius:3px;
}
.wc-block-components-order-summary-item__image img{ border-radius:2px; }
.wc-block-components-order-summary-item__quantity{
  background:var(--brick) !important; color:var(--night) !important;
  border-color:var(--brick) !important; box-shadow:none !important;
  font-family:var(--font-mono); font-weight:600;
}
.wc-block-components-product-name{ color:var(--paper) !important; font-family:var(--font-display); font-weight:500; }
.wc-block-components-product-metadata, .wc-block-components-product-details{ color:var(--stone) !important; font-size:12.5px; }
.wc-block-components-product-details__name{ color:var(--stone) !important; }
.wc-block-components-product-details__value{ color:rgba(242,239,233,0.82) !important; }
.wc-block-components-product-price__value, .wc-block-formatted-money-amount{
  font-family:var(--font-mono); font-variant-numeric:tabular-nums; color:var(--paper);
}

/* --- Totales --- */
.wc-block-components-totals-wrapper{ border-top-color:var(--stone-line) !important; }
.wc-block-components-totals-item__label{ color:var(--stone) !important; }
.wc-block-components-totals-item__value{ color:var(--paper) !important; font-family:var(--font-mono); font-variant-numeric:tabular-nums; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value{
  color:var(--paper) !important; font-size:19px;
}
.wc-block-components-panel__button{ color:var(--paper) !important; }
.wc-block-components-panel__button svg{ fill:var(--stone); }

/* --- Boton principal --- */
.wc-block-components-checkout-place-order-button{
  background:var(--brick) !important; color:var(--night) !important;
  border:1px solid var(--brick) !important; border-radius:2px !important;
  font-family:var(--font-body) !important; font-weight:600 !important; font-size:14px !important;
  padding:17px 24px !important; transition:background .25s ease, border-color .25s ease;
}
.wc-block-components-checkout-place-order-button:hover{
  background:var(--paper) !important; border-color:var(--paper) !important; color:var(--night) !important;
}
.wc-block-components-button__text{ color:inherit !important; }

/* --- Avisos y textos menores --- */
.wc-block-components-checkout-policies, .wc-block-components-checkout-policies a{ color:var(--stone) !important; font-size:12.5px; }
.wc-block-components-checkout-policies a:hover{ color:var(--brick) !important; }
.wc-block-components-notice-banner{ background:var(--card) !important; border-color:var(--stone-line) !important; color:var(--paper) !important; }
.wc-block-components-validation-error{ color:#E0705A !important; }
.wc-block-components-address-card{ background:var(--card); border:1px solid var(--stone-line); color:var(--paper); }

.kk-nota-total{
  margin:4px 24px 20px; padding-left:14px;
  border-left:1px solid var(--brick);
  font-size:12.5px; line-height:1.6; color:var(--stone); text-wrap:pretty;
}

/* ===================== CONTACTO ===================== */
.kk-contacto, .kk-contacto *{ box-sizing:border-box; }
.kk-contacto .kk-shop-sub a{ color:var(--paper); border-bottom:1px solid var(--stone-line); transition:border-color .25s ease; }
.kk-contacto .kk-shop-sub a:hover{ border-color:var(--brick); color:var(--brick); }
.kk-contacto__grid{ display:grid; grid-template-columns:1.35fr 1fr; gap:72px; align-items:start; padding-bottom:110px; }
.kk-contacto__titulo{
  font-family:var(--font-display); font-weight:500; font-size:20px; color:var(--paper);
  letter-spacing:-0.015em; margin:0 0 22px; padding-bottom:14px; border-bottom:1px solid var(--stone-line);
}

/* --- Formulario --- */
.kk-form__trampa{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.kk-form__fila{ display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.kk-campo{ display:flex; flex-direction:column; gap:9px; margin-bottom:20px; }
.kk-campo label{
  font-family:var(--font-mono); font-size:10.5px; letter-spacing:0.07em;
  text-transform:uppercase; color:var(--stone);
}
.kk-campo label span{ text-transform:none; letter-spacing:0; opacity:0.65; margin-left:4px; }
.kk-campo input, .kk-campo textarea{
  width:100%; background:var(--card); color:var(--paper);
  border:1px solid var(--stone-line); border-radius:2px;
  font-family:var(--font-body); font-size:15px; line-height:1.5;
  padding:14px 16px; resize:vertical;
  transition:border-color .22s ease, background .22s ease;
}
.kk-campo input::placeholder, .kk-campo textarea::placeholder{ color:#6E6960; }
.kk-campo input:hover, .kk-campo textarea:hover{ border-color:#3A362F; }
.kk-campo input:focus, .kk-campo textarea:focus{
  outline:none; border-color:var(--brick); background:var(--card-hover);
}
.kk-form__enviar{
  position:relative; isolation:isolate; overflow:hidden;
  margin-top:8px; padding:16px 34px; border-radius:2px;
  background:var(--brick); border:1px solid var(--brick); color:var(--night);
  font-size:14px; font-weight:600; cursor:pointer;
  transition:border-color .3s ease, color 0s linear 0s;
}
.kk-form__enviar::before{ content:''; position:absolute; inset:0; z-index:-1; background:var(--paper); transform:scaleX(0); transform-origin:left center; transition:transform .4s var(--ease-out); }
.kk-form__enviar:hover::before{ transform:scaleX(1); }

/* --- Avisos --- */
.kk-aviso{ margin:0 0 22px; padding:14px 16px; border-radius:2px; font-size:14px; line-height:1.55; }
.kk-aviso--ok{ background:rgba(217,164,65,0.1); border:1px solid rgba(217,164,65,0.45); color:var(--paper); }
.kk-aviso--mal{ background:rgba(224,112,90,0.09); border:1px solid rgba(224,112,90,0.45); color:#E0705A; }

/* --- Columna lateral --- */
.kk-bloque{ margin-bottom:44px; }
.kk-bloque:last-child{ margin-bottom:0; }
.kk-bloque__dato{ font-family:var(--font-mono); font-size:14px; color:var(--paper); margin:0 0 10px; }
.kk-bloque__texto{ font-size:14px; line-height:1.7; color:var(--stone); margin:0; text-wrap:pretty; }
.kk-bloque__texto a{ color:var(--paper); border-bottom:1px solid var(--stone-line); transition:border-color .25s ease, color .25s ease; }
.kk-bloque__texto a:hover{ color:var(--brick); border-color:var(--brick); }
.kk-bloque__link{
  display:inline-block; margin-top:16px; font-size:13px; color:var(--stone);
  border-bottom:1px solid var(--stone-line); padding-bottom:2px;
  transition:color .25s ease, border-color .25s ease;
}
.kk-bloque__link:hover{ color:var(--brick); border-color:var(--brick); }

/* --- Vias directas --- */
.kk-directo{
  display:flex; align-items:center; gap:14px;
  padding:16px 4px; border-bottom:1px solid var(--stone-line);
  transition:padding-left .3s var(--ease-out);
}
.kk-directo:first-of-type{ border-top:1px solid var(--stone-line); }
.kk-directo svg{ width:20px; height:20px; flex:none; color:var(--stone); transition:color .25s ease; }
.kk-directo span{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.kk-directo b{ font-size:14px; font-weight:500; color:var(--paper); }
.kk-directo small{ font-size:12.5px; color:var(--stone); overflow-wrap:anywhere; }
.kk-directo:hover{ padding-left:10px; }
.kk-directo:hover svg{ color:var(--brick); }
.kk-directo:hover b{ color:var(--brick); }

@media(max-width:900px){
  .kk-contacto__grid{ grid-template-columns:1fr; gap:52px; padding-bottom:70px; }
}
@media(max-width:560px){
  .kk-form__fila{ grid-template-columns:1fr; gap:0; }
  .kk-form__enviar{ width:100%; }
}

/* ===================== PEDIDO VACÍO ===================== */
/* El icono de carita venia de la clase with-empty-cart-icon del bloque. */
.wp-block-woocommerce-empty-cart-block .with-empty-cart-icon::before{ display:none !important; }
.kk-vacio{
  max-width:46ch; margin:0 auto; padding:80px 0 110px; text-align:center;
}
.kk-vacio__titulo{
  font-family:var(--font-display); font-weight:500; font-size:clamp(26px,3.2vw,36px);
  letter-spacing:-0.025em; color:var(--paper); margin:0 0 18px;
}
.kk-vacio__texto{
  font-size:15.5px; line-height:1.75; color:var(--stone); margin:0 0 34px; text-wrap:pretty;
}
.kk-vacio__cta{
  position:relative; isolation:isolate; overflow:hidden;
  display:inline-block; padding:16px 34px; border-radius:2px;
  background:var(--brick); border:1px solid var(--brick); color:var(--night);
  font-size:14px; font-weight:600;
  transition:border-color .3s ease, color 0s linear 0s;
}
.kk-vacio__cta::before{ content:''; position:absolute; inset:0; z-index:-1; background:var(--paper); transform:scaleX(0); transform-origin:left center; transition:transform .4s var(--ease-out); }
.kk-vacio__cta:hover::before{ transform:scaleX(1); }

/* Un dia de otro mes nunca pinta la seleccion, aunque caiga dentro del rango. */
.kk-cal__dia.is-fuera{ background:transparent; border-color:transparent; }
