/*
Theme Name: Candy Base
Description: Base ligera de Candy Muñecas para WooCommerce. El diseño de cada sección vive en su propio plugin (shortcodes).
Version: 1.0.0
Text Domain: candy-base
Requires at least: 6.6
Requires PHP: 8.0
*/
/* Sistema de diseño compartido por todos los módulos Candy */
:root{
--cm-bg:#fffafc;--cm-surface:#fff;--cm-ink:#3f3150;--cm-muted:#7a6d88;--cm-line:#f0e4ee;
--cm-primary:#7e5a9e;--cm-primary-dark:#654684;--cm-pink:#e07fa8;--cm-pink-dark:#c9628f;
--cm-pink-soft:#fde9f1;--cm-lilac-soft:#f3ecfa;--cm-mint:#d3f0e6;--cm-butter:#fff4d1;
--cm-radius:22px;--cm-radius-sm:12px;--cm-shadow:0 10px 30px rgba(126,90,158,.12);
--cm-font-head:'Fredoka',ui-rounded,'Nunito',system-ui,sans-serif;--cm-font-body:'Nunito',system-ui,-apple-system,sans-serif;
--cm-width:1240px;--cm-space:clamp(16px,3vw,40px)
}
*{box-sizing:border-box}
body{margin:0;background:var(--cm-bg);color:var(--cm-ink);font-family:var(--cm-font-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--cm-font-head);font-weight:600;line-height:1.15;color:var(--cm-ink)}
a{color:var(--cm-primary);text-underline-offset:.2em}
img{max-width:100%;height:auto}
button,input,select,textarea{font:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--cm-pink);outline-offset:3px}
.cm-container{width:min(var(--cm-width),100% - 2 * var(--cm-space));margin-inline:auto}
.cm-header{border-bottom:1px solid var(--cm-line);background:#fff}.cm-header-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;padding-block:1.25rem}
.cm-brand{font-family:var(--cm-font-head);font-size:1.5rem;font-weight:600;text-decoration:none}.custom-logo{max-width:180px;max-height:72px;width:auto}
.cm-nav ul{display:flex;flex-wrap:wrap;gap:1rem;list-style:none;padding:0;margin:0}
.cm-main{min-height:60vh;padding-block:var(--cm-space)}.cm-main--modules{padding:0}
.cm-footer{border-top:1px solid var(--cm-line);padding-block:1.5rem;font-size:.9rem}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip-link:focus{position:fixed;top:1rem;left:1rem;width:auto;height:auto;clip-path:none;background:#fff;padding:1rem;z-index:9999}
.alignwide{max-width:var(--cm-width);margin-inline:auto}.alignfull{width:100%}.woocommerce img{height:auto}

/* Botón de marca reutilizable */
.cm-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 26px;border:0;border-radius:999px;background:var(--cm-primary);color:#fff;font-family:var(--cm-font-head);font-size:16px;font-weight:500;letter-spacing:.01em;text-decoration:none;cursor:pointer;transition:background .2s,transform .2s}
.cm-btn:hover{background:var(--cm-primary-dark);transform:translateY(-1px)}
.cm-btn--pink{background:var(--cm-pink)}.cm-btn--pink:hover{background:var(--cm-pink-dark)}
.cm-btn--ghost{background:transparent;color:var(--cm-primary);box-shadow:inset 0 0 0 2px currentColor}.cm-btn--ghost:hover{background:var(--cm-lilac-soft)}

/* Anti-desbordamiento horizontal */
html,body{max-width:100%;overflow-x:clip}
.cm-main,.cm-main--modules{max-width:100%;overflow-x:clip}
.cm-novedades,.cm-wishlist,.cm-slider-module{max-width:100%;min-width:0}
.cm-product-carousel{width:100%;max-width:100%;min-width:0}
/* Los carruseles contienen su texto oculto (absolute) */
.cm-product-carousel,.cm-categories-track,.cm-novedades,.cm-wishlist{position:relative}

/* Avisos de WooCommerce en el estilo Candy */
.woocommerce-notices-wrapper{max-width:100%}
.woocommerce-message,.woocommerce-info,.wc-block-components-notice-banner.is-success,.wc-block-components-notice-banner.is-info{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;background:var(--cm-lilac-soft)!important;color:var(--cm-ink)!important;border:0!important;border-left:5px solid var(--cm-primary)!important;border-radius:14px!important;box-shadow:none!important;padding:14px 18px!important;font-size:15px;font-weight:700;line-height:1.5;list-style:none;margin:0 0 20px;width:auto}
.woocommerce-message::before,.woocommerce-info::before{display:none!important}
.woocommerce-message a,.woocommerce-info a{color:var(--cm-primary)}
.woocommerce-message a.button,.woocommerce-info a.button,.woocommerce-message .button{order:2;float:none!important;background:var(--cm-primary)!important;color:#fff!important;border:0!important;border-radius:999px!important;padding:10px 20px!important;font-family:var(--cm-font-head);font-size:14px!important;font-weight:500;text-decoration:none!important;margin:0}
.woocommerce-message a.button:hover{background:var(--cm-primary-dark)!important}
.woocommerce-error{background:#fff4f6!important;color:var(--cm-ink)!important;border:0!important;border-left:5px solid #c4405f!important;border-radius:14px!important;box-shadow:none!important;padding:14px 18px 14px 22px!important;list-style:none;font-size:15px}
.woocommerce-error::before{display:none!important}

/* Secciones de portada: cabecera común y flechas de carrusel */
.cm-home-section{width:min(var(--cm-width),100% - 2 * var(--cm-space));margin:clamp(44px,7vw,84px) auto 0}
.cm-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:clamp(16px,2.4vw,26px)}
.cm-section-heading h2{margin:0;font-size:clamp(26px,4vw,38px);letter-spacing:-.01em}
.cm-section-heading p{margin:6px 0 0;color:var(--cm-muted);font-size:clamp(15px,1.6vw,17px)}
.cm-section-link{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;font-weight:800;color:var(--cm-primary);text-decoration:none;white-space:nowrap}
.cm-section-link:hover{color:var(--cm-pink-dark)}
.cm-categories-controls,.cm-carousel-controls{display:flex;gap:8px;flex-shrink:0}
.cm-categories-controls button,.cm-carousel-controls button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:0;border-radius:50%;background:var(--cm-lilac-soft);color:var(--cm-primary);cursor:pointer;transition:background .2s,color .2s}
.cm-categories-controls button:hover:not(:disabled),.cm-carousel-controls button:hover:not(:disabled){background:var(--cm-primary);color:#fff}
.cm-categories-controls button:disabled,.cm-carousel-controls button:disabled{opacity:.4;cursor:default}
.cm-categories-controls[hidden],.cm-carousel-controls[hidden]{display:none}

/* Páginas genéricas de WooCommerce (pedido recibido, pagar pedido): solo estilo, sin cambiar plantillas */
.woocommerce-order{max-width:880px;margin-inline:auto}
.woocommerce-thankyou-order-received{margin:0 0 20px;padding:20px 22px;border-radius:var(--cm-radius);background:var(--cm-mint);font-family:var(--cm-font-head);font-size:22px;font-weight:500;color:#1f5e4b}
.woocommerce ul.order_details{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 28px;padding:0}
.woocommerce ul.order_details::before,.woocommerce ul.order_details::after{display:none}
.woocommerce ul.order_details li{float:none;margin:0;padding:12px 16px;border:0;border-radius:16px;background:var(--cm-lilac-soft);font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--cm-muted)}
.woocommerce ul.order_details li strong{margin-top:4px;font-size:16px;text-transform:none;letter-spacing:0;color:var(--cm-ink)}
.woocommerce table.shop_table{border:0;border-radius:var(--cm-radius);background:#fff;box-shadow:0 0 0 1px var(--cm-line);border-collapse:separate;overflow:hidden}
.woocommerce table.shop_table th,.woocommerce table.shop_table td{padding:14px 18px;border-top:1px solid var(--cm-line)}
.woocommerce table.shop_table thead th{border-top:0;background:var(--cm-lilac-soft)}
.woocommerce table.shop_table tfoot tr:last-child td{font-weight:800;color:var(--cm-primary)}
.woocommerce .woocommerce-customer-details address{padding:16px 18px;border:0;border-radius:var(--cm-radius);background:#fff;box-shadow:0 0 0 1px var(--cm-line)}
.woocommerce-order h2,.woocommerce-order-details__title,.woocommerce-column__title{font-size:24px}
.woocommerce-bacs-bank-details{padding:16px 18px;border-radius:var(--cm-radius);background:var(--cm-butter)}

/* Aviso de la tienda de WooCommerce (p. ej. envíos a Baleares) en colores de marca */
.woocommerce-store-notice,p.demo_store{background:var(--cm-ink)!important;color:#fff!important;font-family:var(--cm-font-body);font-size:14px;font-weight:700;padding:12px 48px 12px 16px!important;box-shadow:0 -6px 20px rgba(63,49,80,.15)}
.woocommerce-store-notice a,.woocommerce-store-notice__dismiss-link{color:#f5b8d0!important;font-weight:800}

/* Formulario de contacto (Contact Form 7) */
.cm-cf7{display:grid;gap:14px;font-family:var(--cm-font-body)}
.cm-cf7-row{display:grid;gap:14px}
.cm-cf7 label{display:block;font-size:14px;font-weight:700;color:var(--cm-ink)}
.cm-cf7 .wpcf7-form-control-wrap{display:block;margin-top:4px}
.cm-cf7 input.wpcf7-text,.cm-cf7 input.wpcf7-email,.cm-cf7 input.wpcf7-tel,.cm-cf7 textarea{width:100%;min-height:48px;padding:10px 14px;border:2px solid var(--cm-line);border-radius:14px;background:#fff;color:var(--cm-ink);font-size:16px;box-shadow:none;box-sizing:border-box}
.cm-cf7 textarea{min-height:150px;resize:vertical}
.cm-cf7 input:focus,.cm-cf7 textarea:focus{border-color:var(--cm-primary);outline:none}
.cm-cf7 .wpcf7-acceptance .wpcf7-list-item{margin:0}
.cm-cf7 .wpcf7-acceptance label{display:flex;align-items:flex-start;gap:10px;font-weight:600;cursor:pointer}
.cm-cf7 .wpcf7-acceptance input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--cm-primary);flex-shrink:0}
.cm-cf7 .wpcf7-acceptance a{color:var(--cm-primary);font-weight:800}
.cm-cf7 .wpcf7-submit{justify-self:start;min-height:52px;padding:12px 30px;border:0;border-radius:999px;background:var(--cm-primary);color:#fff;font-family:var(--cm-font-head);font-size:17px;font-weight:500;cursor:pointer;transition:background .2s}
.cm-cf7 .wpcf7-submit:hover{background:var(--cm-primary-dark)}
.cm-cf7 .wpcf7-submit:disabled{opacity:.5;cursor:not-allowed}
.cm-cf7 .wpcf7-not-valid{border-color:#d4577a!important}
.cm-cf7 .wpcf7-not-valid-tip{margin-top:4px;font-size:13px;font-weight:700;color:#b2385a}
.wpcf7 form .wpcf7-response-output{margin:14px 0 0;padding:12px 16px;border:0!important;border-radius:14px;font-weight:700}
.wpcf7 form.sent .wpcf7-response-output{background:var(--cm-mint);color:#1f5e4b}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.unaccepted .wpcf7-response-output,.wpcf7 form.failed .wpcf7-response-output{background:var(--cm-pink-soft);color:#b2385a}
@media(min-width:600px){.cm-cf7-row{grid-template-columns:1fr 1fr}}
