/*
Theme Name: Krepys
Theme URI: https://calzadoskrepys.com
Author: Calzados Krepys
Description: Tema de bloques a medida para Calzados Krepys: zapatería online para toda la familia, desde Elche.
Version: 2.0.0
Requires at least: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: krepys
*/

/* ================= Base ================= */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
.wp-site-blocks { overflow-x: clip; }
:where(a, button, input, summary, select):focus-visible { outline: 2px solid var(--wp--preset--color--tomato); outline-offset: 3px; }
.screen-reader-text { position: absolute !important; clip: rect(1px,1px,1px,1px); width: 1px; height: 1px; overflow: hidden; white-space: nowrap; }
.kp-wrap { width: 100%; max-width: 1320px; margin-inline: auto; padding-inline: clamp(16px, 3vw, 32px); box-sizing: border-box; }
.kp-center { text-align: center; }
.kp-muted { color: var(--wp--preset--color--ink-soft); }
.kp-sec { padding-block: clamp(2.5rem, 5vw, 4rem); }
.kp-sec__head h2 { margin: 0; }
.kp-sec__head p { margin: .4rem 0 0; color: var(--wp--preset--color--ink-soft); font-size: var(--wp--preset--font-size--sm); }
.kp-sec__head { margin-bottom: 1.75rem; }
.kp-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.kp-row h2 { font-size: clamp(1.35rem, 2.6vw, 1.85rem); }

/* ================= Barra superior ================= */
.kp-topbar p { margin: 0; font-size: .95rem; letter-spacing: .01em; text-align: center; }

/* ================= Cabecera ================= */
.kp-header { background: #fff; padding-top: 1.75rem; padding-bottom: .5rem; }
.kp-header__row { display: grid !important; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1.5rem; }
.kp-header__left { font-size: .8rem; }
.kp-header__wa { color: var(--wp--preset--color--ink-soft); text-decoration: none; }
.kp-header__wa:hover { color: var(--wp--preset--color--tomato); }
.kp-header__logo { margin: 0 !important; justify-self: center; }
.kp-header__logo img { border-radius: 50%; box-shadow: 0 6px 18px rgba(0,0,0,.18); }
.kp-header__right { display: flex; align-items: center; justify-content: flex-end; gap: 1.1rem; }
.kp-search { display: flex; align-items: center; gap: .6rem; background: #F4F4F4; border: 1px solid #E6E6E6; border-radius: 999px; padding: .6rem 1.1rem; width: min(300px, 100%); color: #555; }
.kp-search input[type=search] { border: 0; background: transparent; font: inherit; font-size: .9rem; width: 100%; outline: none; color: var(--wp--preset--color--ink); }
.kp-icon { color: #555; display: inline-flex; }
.kp-icon:hover { color: var(--wp--preset--color--tomato); }
.kp-nav { margin-top: 1.75rem !important; }
.kp-nav .wp-block-navigation-item__content { color: #4A4A4A; text-decoration: none; padding: .3rem 0; }
.kp-nav .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--tomato); }
.kp-nav .wp-block-navigation__submenu-container { border: 0 !important; border-radius: 6px; box-shadow: 0 10px 30px rgba(0,0,0,.12); padding: .6rem !important; min-width: 220px !important; }
.kp-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { font-size: .92rem; padding: .45rem .8rem !important; border-radius: 4px; }
.kp-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--sun); }
.kp-tagline { color: var(--wp--preset--color--tomato); font-size: .9rem; margin: 1.6rem 0 .6rem !important; }
@media (max-width: 781px) {
	.kp-header { padding-top: 1rem; }
	.kp-header__row { grid-template-columns: 1fr auto 1fr; gap: .5rem; }
	.kp-header__left { visibility: hidden; }
	.kp-header__logo img { width: 84px !important; }
	.kp-header__right { gap: .6rem; }
	.kp-search { grid-column: 1 / -1; order: 5; width: 100%; }
	.kp-header__right .kp-search { display: none; }
	.kp-nav { margin-top: .75rem !important; }
	.kp-tagline { margin-top: .75rem !important; font-size: .8rem; }
}
.kp-mobile-search { display: none; }
@media (max-width: 781px) { .kp-mobile-search { display: flex; margin: .75rem 16px 0; width: auto; } }

/* ================= Hero 4 secciones ================= */
.kp-hero { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); height: clamp(300px, 38vw, 560px); overflow: hidden; background: #ddd; }
.kp-hero__panel { position: relative; display: block; overflow: hidden; }
.kp-hero__panel img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s ease, filter .3s; }
.kp-hero__panel:hover img { transform: scale(1.05); filter: brightness(1.05); }
.kp-hero__band { position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-50%); display: grid; grid-template-columns: repeat(4, 1fr); background: rgba(141, 29, 126, .55); backdrop-filter: blur(1px); pointer-events: none; }
.kp-hero__band span { text-align: center; color: #fff; font-weight: 800; text-transform: uppercase; letter-spacing: .01em; font-size: var(--wp--preset--font-size--hero); line-height: 1; padding: .35em 0; text-shadow: 0 2px 12px rgba(0,0,0,.25); }
.kp-hero__label { display: none; }
@media (max-width: 781px) {
	.kp-hero { grid-template-columns: repeat(2, 1fr); height: auto; }
	.kp-hero__panel { aspect-ratio: 1 / 1; }
	.kp-hero__band { display: none; }
	.kp-hero__label { display: block; position: absolute; left: 0; right: 0; bottom: 0; background: rgba(141, 29, 126, .7); color: #fff; text-align: center; font-weight: 800; text-transform: uppercase; font-size: 1.15rem; padding: .5rem 0; }
}

/* ================= Carruseles ================= */
.kp-carousel { position: relative; }
.kp-carousel__track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 5 * 1.25rem) / 6); gap: 1.25rem; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; scroll-behavior: smooth; }
.kp-carousel__track::-webkit-scrollbar { display: none; }
.kp-carousel__track > * { scroll-snap-align: start; }
@media (max-width: 1000px) { .kp-carousel__track { grid-auto-columns: calc((100% - 2 * 1rem) / 3.3); gap: 1rem; } }
@media (max-width: 600px) { .kp-carousel__track { grid-auto-columns: 44%; gap: .85rem; } }
.kp-carousel__btn { position: absolute; top: 34%; z-index: 3; width: 34px; height: 62px; border: 0; background: var(--wp--preset--color--sky); color: #fff; font-size: 2rem; line-height: 1; cursor: pointer; opacity: .9; }
.kp-carousel__btn:hover { opacity: 1; background: var(--wp--preset--color--tomato); }
.kp-carousel__btn--prev { left: -6px; }
.kp-carousel__btn--next { right: -6px; }
.kp-arrows { display: flex; gap: .5rem; }
.kp-arrows button { width: 34px; height: 34px; border-radius: 50%; border: 0; background: #F1F1F1; color: #555; font-size: 1.4rem; line-height: 1; cursor: pointer; }
.kp-arrows button:hover { background: var(--wp--preset--color--tomato); color: #fff; }

/* Tarjeta de producto (demo) */
.kp-pcard { position: relative; text-align: center; }
.kp-pcard__img { display: block; position: relative; aspect-ratio: 1 / 1; overflow: hidden; background: #F6F6F6; }
.kp-pcard__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.kp-pcard:hover .kp-pcard__img img { transform: scale(1.05); }
.kp-pcard__tag { position: absolute; left: .5rem; top: .5rem; background: var(--wp--preset--color--tomato); color: #fff; font-size: .72rem; font-weight: 700; padding: .25rem .5rem; border-radius: 3px; }
.kp-pcard__fav { position: absolute; top: .5rem; right: .5rem; width: 36px; height: 36px; border-radius: 50%; border: 0; background: rgba(255,255,255,.9); color: #333; display: grid; place-items: center; cursor: pointer; }
.kp-pcard__fav[aria-pressed="true"] { color: var(--wp--preset--color--tomato); }
.kp-pcard__fav[aria-pressed="true"] svg { fill: currentColor; }
.kp-pcard__name { font-family: inherit; font-weight: 400; font-size: .9rem; line-height: 1.35; margin: .8rem .25rem .3rem; color: #777; }
.kp-pcard__name a { color: inherit; text-decoration: none; }
.kp-pcard__price { margin: 0; color: var(--wp--preset--color--tomato); font-size: 1.15rem; }
.kp-pcard__price del { color: #999; font-size: .85rem; margin-right: .25rem; }

/* Imprescindibles de temporada */
.kp-tile { display: block; text-decoration: none; color: var(--wp--preset--color--ink); }
.kp-tile__img { display: block; aspect-ratio: 4 / 5; overflow: hidden; border-radius: 4px; }
.kp-tile__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.kp-tile:hover .kp-tile__img img { transform: scale(1.06); }
.kp-tile__label { display: flex; justify-content: space-between; align-items: center; margin-top: .65rem; font-size: .9rem; }
.kp-tile__label svg { color: var(--wp--preset--color--tomato); }

/* Marcas */
.kp-brand { position: relative; display: block; aspect-ratio: 3 / 4; overflow: hidden; border-radius: 6px; }
.kp-brand img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.kp-brand:hover img { transform: scale(1.06); }
.kp-brand span { position: absolute; left: 8%; right: 8%; bottom: 8%; background: rgba(141, 29, 126, .85); color: #fff; text-align: center; font-weight: 600; padding: .45rem; border-radius: 4px; font-size: .95rem; }

/* Historia */
.kp-kicker { display: flex; align-items: center; justify-content: center; gap: .9rem; margin: 0 0 .6rem; }
.kp-kicker span { font-size: .72rem; letter-spacing: .25em; text-transform: uppercase; color: var(--wp--preset--color--sky); font-weight: 600; }
.kp-kicker::before, .kp-kicker::after { content: ""; width: 40px; height: 1px; background: var(--wp--preset--color--sky); }
.kp-story h2 { margin: 0 0 .4rem; }
.kp-why { display: inline-block; margin-top: 1.5rem; text-align: left; max-width: 640px; }
.kp-why summary { cursor: pointer; list-style: none; border: 1px solid var(--wp--preset--color--sky); color: var(--wp--preset--color--tomato); border-radius: 999px; padding: .65rem 1.4rem; font-size: .9rem; text-align: center; }
.kp-why summary::-webkit-details-marker { display: none; }
.kp-why summary::after { content: " ⌄"; }
.kp-why[open] summary::after { content: " ⌃"; }
.kp-why div { padding: 1rem .5rem 0; color: var(--wp--preset--color--ink-soft); font-size: .95rem; }

/* Valoraciones */
.kp-rating { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 2rem; max-width: 1000px; margin: 1rem auto 0; background: #fff; border-radius: 12px; box-shadow: var(--wp--preset--shadow--card); padding: 1.75rem 2.25rem; }
.kp-rating__score { display: flex; align-items: center; gap: .6rem; }
.kp-rating__score strong { font-size: 3rem; line-height: 1; }
.kp-stars { color: #F5B301; font-size: 1.25rem; letter-spacing: .05em; }
.kp-rating__text h3 { font-family: inherit; font-weight: 700; font-size: 1.05rem; margin: 0 0 .3rem; }
.kp-rating__text p { margin: 0; font-size: .85rem; color: var(--wp--preset--color--ink-soft); }
.kp-btn-dark { display: inline-flex; gap: .5rem; align-items: center; background: #1E1E1E; color: #fff !important; text-decoration: none; border-radius: 999px; padding: .75rem 1.4rem; font-size: .85rem; font-weight: 600; white-space: nowrap; }
.kp-btn-dark:hover { background: var(--wp--preset--color--tomato); }
@media (max-width: 781px) { .kp-rating { grid-template-columns: 1fr; text-align: center; gap: 1rem; padding: 1.5rem; } .kp-rating__score { justify-content: center; } .kp-btn-dark { justify-self: center; } }

/* Ventajas */
.kp-perks { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; text-align: center; }
@media (max-width: 781px) { .kp-perks { grid-template-columns: repeat(2, 1fr); } }
.kp-perk { display: flex; flex-direction: column; align-items: center; gap: .3rem; }
.kp-perk__ico { width: 58px; height: 58px; border-radius: 50%; background: var(--wp--preset--color--sun); color: var(--wp--preset--color--tomato); display: grid; place-items: center; margin-bottom: .5rem; }
.kp-perk strong { font-size: .9rem; }
.kp-perk span { font-size: .8rem; color: var(--wp--preset--color--ink-soft); }

/* FAQ */
.kp-faq { max-width: 900px; }
.kp-faq h2 { margin-bottom: 1.5rem; }
.kp-faq details { border-bottom: 1px solid var(--wp--preset--color--line); padding: 1rem 0; }
.kp-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; font-size: .95rem; }
.kp-faq summary::-webkit-details-marker { display: none; }
.kp-faq summary::after { content: "+"; color: var(--wp--preset--color--tomato); font-size: 1.3rem; line-height: 1; }
.kp-faq details[open] summary::after { content: "–"; }
.kp-faq details p { color: var(--wp--preset--color--ink-soft); font-size: .92rem; margin: .7rem 0 0; }

/* ================= Pie ================= */
.kp-footer { background: #EEEEEE; color: #444; padding: 3.5rem 0 1.5rem; margin-top: 2rem; font-size: .88rem; }
.kp-footer a { color: #444; text-decoration: none; }
.kp-footer a:hover { color: var(--wp--preset--color--tomato); }
.kp-footer__cols { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1.3fr; gap: 2rem; }
@media (max-width: 900px) { .kp-footer__cols { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .kp-footer__cols { grid-template-columns: 1fr; } }
.kp-footer h4 { font-family: inherit; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; margin: 0 0 .9rem; color: #222; }
.kp-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .4rem; }
.kp-footer__contact { gap: .6rem !important; }
.kp-footer__hours { margin-top: 1.2rem; }
.kp-social { display: flex; gap: .6rem; margin-bottom: 1.5rem; }
.kp-social a { width: 36px; height: 36px; border-radius: 50%; background: #fff; display: grid; place-items: center; }
.kp-footer__nl-title { text-transform: none !important; letter-spacing: 0 !important; font-size: .9rem !important; }
.kp-newsletter { display: grid; grid-template-columns: 1fr auto; gap: .5rem; }
.kp-newsletter input[type=email] { border: 1px solid #DDD; border-radius: 999px; padding: .6rem 1rem; font: inherit; font-size: .85rem; background: #fff; }
.kp-newsletter button { border: 0; border-radius: 999px; background: #1E1E1E; color: #fff; width: 42px; cursor: pointer; font-size: 1.1rem; }
.kp-newsletter button:hover { background: var(--wp--preset--color--tomato); }
.kp-check { grid-column: 1 / -1; font-size: .75rem; display: flex; gap: .4rem; align-items: flex-start; }
.kp-newsletter__ok { grid-column: 1 / -1; color: var(--wp--preset--color--tomato); font-weight: 600; margin: 0; }
.kp-footer__links { display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem 1.4rem; border-top: 1px solid #DDD; margin-top: 2.5rem; padding-top: 1.5rem; font-size: .8rem; }
.kp-footer__links a::before { content: "· "; color: #999; }
.kp-pay { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem; margin-top: 1.25rem; }
.kp-pay span { background: #fff; border-radius: 4px; padding: .35rem .7rem; font-size: .72rem; font-weight: 700; color: #555; letter-spacing: .02em; }
.kp-footer__copy { text-align: center; font-size: .75rem; color: #888; margin: 1.25rem 0 0; }
.kp-wa-float { position: fixed; left: 22px; bottom: 22px; z-index: 90; width: 58px; height: 58px; border-radius: 50%; background: #25D366; display: grid; place-items: center; box-shadow: 0 6px 18px rgba(0,0,0,.25); transition: transform .2s; }
.kp-wa-float:hover { transform: scale(1.08); }

/* ================= WooCommerce ================= */
.kp-store-badge { display: none; }
ul.products li.product .kp-store-badge { display: block; position: absolute; top: .6rem; right: .6rem; z-index: 2; background: rgba(255,255,255,.92); border-radius: 3px; padding: .2rem .45rem; font-size: .68rem; font-weight: 700; }

/* Rejilla clásica (shortcodes) */
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; margin: 0 !important; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
@media (max-width: 900px) { .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.woocommerce ul.products li.product { width: auto !important; margin: 0 !important; float: none !important; position: relative; text-align: center; }
.woocommerce ul.products li.product a img { aspect-ratio: 1 / 1; object-fit: cover; margin-bottom: .75rem !important; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { font-family: inherit; font-weight: 400 !important; font-size: .9rem !important; color: #777; }
.woocommerce ul.products li.product .price { color: var(--wp--preset--color--tomato) !important; font-weight: 700; font-size: 1.1rem !important; }
.woocommerce ul.products li.product .button { background: var(--wp--preset--color--tomato) !important; color: #fff !important; border-radius: 6px !important; font-size: .8rem !important; }

/* Rejillas de bloques (tienda, categorías, relacionados) */
li.wc-block-product { position: relative; text-align: center; }
li.wc-block-product .wc-block-components-product-image img { aspect-ratio: 1 / 1; object-fit: cover; border-radius: 0; }
li.wc-block-product .wp-block-post-title { font-family: var(--wp--preset--font-family--montserrat) !important; font-weight: 400 !important; font-size: .9rem !important; line-height: 1.35; margin: .8rem .25rem .3rem !important; }
li.wc-block-product .wp-block-post-title a { color: #777; text-decoration: none; }
li.wc-block-product .wc-block-components-product-price { color: var(--wp--preset--color--tomato); font-weight: 700; font-size: 1.15rem !important; }
li.wc-block-product .wc-block-components-product-price del { color: #999; font-weight: 400; font-size: .85rem; }
li.wc-block-product .wc-block-components-product-price ins { text-decoration: none; }
li.wc-block-product .wp-block-button__link { font-size: .8rem !important; padding: .65rem 1.1rem !important; border-radius: 6px !important; }
.wc-block-components-product-sale-badge { background: var(--wp--preset--color--tomato) !important; color: #fff !important; border: 0 !important; border-radius: 3px !important; padding: .3rem .5rem !important; font-size: .75rem !important; font-weight: 700; line-height: 1 !important; }
.wc-block-breadcrumbs, .woocommerce-breadcrumb { font-size: .8rem; color: var(--wp--preset--color--ink-soft); }
.wc-block-catalog-sorting select, .woocommerce-ordering select { border: 1px solid #DDD; border-radius: 6px; padding: .5rem .8rem; font: inherit; font-size: .85rem; background: #fff; }

/* Ficha de producto */
.single-product h1.wp-block-post-title { font-size: var(--wp--preset--font-size--xl) !important; }
.wc-block-components-product-price, .woocommerce div.product p.price { color: var(--wp--preset--color--tomato) !important; font-weight: 700; }
.wc-block-components-product-price ins, .woocommerce div.product p.price ins { text-decoration: none; }
.kp-buy, .kp-buy:hover { display: inline-block; text-decoration: none !important; background: var(--wp--preset--color--tomato) !important; color: #fff !important; border-radius: 6px !important; padding: .95rem 2rem !important; font-weight: 600 !important; }
.kp-buy:hover { background: var(--wp--preset--color--tomato-dark) !important; }
.kp-buy-note { display: flex; gap: .5rem; align-items: center; font-size: .8rem; color: var(--wp--preset--color--ink-soft); margin-top: .9rem; }
.kp-buy-note svg { width: 18px; height: 18px; flex: 0 0 auto; }

/* ================= Páginas ================= */
.kp-prose h2 { font-size: var(--wp--preset--font-size--lg); margin-top: 2.2rem; }
.kp-prose p, .kp-prose li { color: var(--wp--preset--color--ink-soft); }
.kp-card { background: #fff; border-radius: 10px; box-shadow: var(--wp--preset--shadow--card); }
