/*
Theme Name: Erotic Corner Luxe
Theme URI: https://eroticcorner.com
Description: Tema hijo personalizado de Blocksy para Erotic Corner. Diseño de lujo oscuro (negro/dorado).
Author: Erotic Corner
Template: blocksy
Version: 1.0.0
Text Domain: erotic-corner-luxe
*/

:root{
  --ec-bg: #0b0b0d;
  --ec-bg-alt: #131215;
  --ec-card: #17161a;
  --ec-card-border: #2a2822;
  --ec-gold: #c9a24b;
  --ec-gold-light: #e8cf8a;
  --ec-gold-dim: #8a7237;
  --ec-white: #f5f1e8;
  --ec-muted: #a89f8f;
  --ec-danger: #b0413e;
  --ec-radius: 4px;
  --ec-font-display: 'Playfair Display', 'Times New Roman', serif;
  --ec-font-body: 'Jost', 'Helvetica Neue', Arial, sans-serif;
}

html, body{
  background-color: var(--ec-bg) !important;
  color: var(--ec-white) !important;
  font-family: var(--ec-font-body) !important;
  letter-spacing: .02em;
}

a{ color: var(--ec-gold); text-decoration:none; }
a:hover{ color: var(--ec-gold-light); }

h1,h2,h3,h4,.ec-display{
  font-family: var(--ec-font-display) !important;
  color: var(--ec-white);
  font-weight: 600;
  letter-spacing: .01em;
}

::selection{ background: var(--ec-gold); color:#0b0b0d; }

.ct-container{ max-width: 1280px; }

/* ---------- Age Gate ---------- */
#ec-age-gate{
  position: fixed; inset:0; z-index: 99999;
  background: radial-gradient(circle at 50% 20%, #1c1a17 0%, #08080a 70%);
  display:flex; align-items:center; justify-content:center;
  text-align:center; padding: 24px;
}
#ec-age-gate.ec-hidden{ display:none; }
.ec-age-box{ max-width: 460px; }
.ec-age-box .ec-brand{ font-family: var(--ec-font-display); font-size: 2rem; color: var(--ec-gold); letter-spacing:.15em; margin-bottom: 14px; }
.ec-age-box p{ color: var(--ec-muted); margin-bottom: 28px; line-height:1.6; }
.ec-age-actions{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.ec-btn{
  display:inline-block; padding: 14px 34px; border:1px solid var(--ec-gold);
  color: var(--ec-gold); background: transparent; border-radius: var(--ec-radius);
  font-size:.8rem; letter-spacing:.18em; text-transform:uppercase; cursor:pointer;
  transition: all .25s ease;
}
.ec-btn:hover{ background: var(--ec-gold); color:#0b0b0d; }
.ec-btn-solid{ background: var(--ec-gold); color:#0b0b0d; }
.ec-btn-solid:hover{ background: var(--ec-gold-light); border-color: var(--ec-gold-light); color:#0b0b0d; }
.ec-btn-ghost{ border-color: var(--ec-muted); color: var(--ec-muted); }
.ec-btn-ghost:hover{ border-color:#fff; color:#fff; background:transparent; }
.ec-age-exit{ background:none; border:none; color: var(--ec-muted); text-decoration: underline; cursor:pointer; }

/* ---------- Announcement bar ---------- */
.ec-announce{
  background: var(--ec-bg-alt); color: var(--ec-muted); text-align:center;
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  padding: 9px 12px; border-bottom: 1px solid var(--ec-card-border);
}
.ec-announce strong{ color: var(--ec-gold); }

/* ---------- Header ---------- */
#ec-header{
  background: var(--ec-bg); border-bottom: 1px solid var(--ec-card-border);
  position: sticky; top:0; z-index: 500;
}
.ec-header-inner{ display:flex; align-items:center; justify-content:space-between; padding: 18px 0; }
.ec-logo{ display:flex; align-items:center; gap:12px; font-family: var(--ec-font-display); font-size: 1.6rem; letter-spacing:.22em; color: var(--ec-white); }
.ec-logo-text span{ color: var(--ec-gold); }
.ec-logo-mark{
  position:relative; width: 34px; height: 34px; flex-shrink:0; display:block;
  background-color: var(--ec-gold);
  -webkit-mask: url('assets/logo-mark.png') center / contain no-repeat;
  mask: url('assets/logo-mark.png') center / contain no-repeat;
}
#ec-footer .ec-logo{ margin-bottom: 14px; }
#ec-footer .ec-logo-mark{ width: 30px; height: 30px; }
.ec-nav{ display:flex; gap: 34px; }
.ec-nav a{
  color: var(--ec-white); font-size:.78rem; letter-spacing:.14em; text-transform:uppercase;
  position:relative; padding-bottom:4px;
}
.ec-nav a:hover{ color: var(--ec-gold); }
.ec-header-icons{ display:flex; align-items:center; gap: 20px; }
.ec-header-icons a{ color: var(--ec-white); font-size:1.05rem; position:relative; }
.ec-header-icons a:hover{ color: var(--ec-gold); }
.ec-cart-count{
  position:absolute; top:-8px; right:-10px; background: var(--ec-gold); color:#0b0b0d;
  font-size:.62rem; width:16px; height:16px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  font-weight:700;
}
.ec-burger{ display:none; background:none; border:none; color:var(--ec-white); font-size:1.4rem; cursor:pointer; }

@media (max-width: 900px){
  .ec-nav{
    display:none; position:absolute; top:100%; left:0; right:0; background: var(--ec-bg);
    flex-direction:column; padding: 18px 24px; border-bottom:1px solid var(--ec-card-border);
  }
  .ec-nav.ec-open{ display:flex; }
  .ec-burger{ display:block; }
}

/* ---------- Hero ---------- */
.ec-hero{
  position: relative; min-height: 86vh; display:flex; align-items:center;
  background: linear-gradient(180deg, rgba(11,11,13,.55), rgba(11,11,13,.92)), var(--ec-bg-alt);
  background-size: cover; background-position: center;
  border-bottom: 1px solid var(--ec-card-border);
  overflow:hidden;
}
.ec-hero::before{
  content:""; position:absolute; inset:0;
  background: radial-gradient(ellipse at 30% 30%, rgba(201,162,75,.14), transparent 60%);
}
.ec-hero-row{
  position:relative; display:flex; align-items:center; justify-content:space-between;
  gap: 40px; padding: 0 24px;
}
.ec-hero-inner{ max-width: 560px; flex: 1 1 480px; }
.ec-hero-eyebrow{ color: var(--ec-gold); letter-spacing:.3em; text-transform:uppercase; font-size:.72rem; margin-bottom:18px; display:block; }
.ec-hero h1{ font-size: clamp(2.4rem, 5vw, 4rem); line-height:1.08; margin-bottom: 22px; }
.ec-hero p{ color: var(--ec-muted); font-size:1.02rem; line-height:1.7; margin-bottom: 34px; max-width: 480px; }
.ec-hero-visual{ position:relative; flex: 1 1 380px; max-width: 420px; }
.ec-hero-visual img{ width:100%; height:auto; display:block; }
.ec-hero-cta-mobile{ display:none; }
@media (max-width: 900px){
  .ec-hero{ min-height: auto; padding: 20px 0; }
  .ec-hero-row{ flex-direction:column; text-align:center; padding-top: 0; gap: 8px; }
  .ec-hero-inner{ max-width: 100%; flex: 0 1 auto; }
  .ec-hero-visual{ flex: 0 1 auto; }
  .ec-hero-eyebrow{ margin-bottom: 8px; }
  .ec-hero h1{ margin-bottom: 12px; font-size: 2.1rem; }
  .ec-hero p{ margin-left:auto; margin-right:auto; margin-bottom: 16px; }
  .ec-hero-visual{ max-width: 300px; margin-top: 0; }
  .ec-hero-cta-desktop{ display:none; }
  .ec-hero-cta-mobile{ display:inline-block; margin-top: 14px; }
}

/* ---------- Trust badges ---------- */
.ec-badges{ background: var(--ec-bg-alt); border-bottom:1px solid var(--ec-card-border); padding: 46px 0; }
.ec-badges-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap: 28px; text-align:center; }
.ec-badge-icon{ font-size:1.6rem; color: var(--ec-gold); margin-bottom:10px; }
.ec-badge-title{ font-size:.82rem; letter-spacing:.08em; text-transform:uppercase; margin-bottom:4px; color: var(--ec-white); }
.ec-badge-text{ color: var(--ec-muted); font-size:.78rem; }
@media (max-width:800px){ .ec-badges-grid{ grid-template-columns: repeat(2,1fr); } }

/* ---------- Section heading ---------- */
.ec-section{ padding: 90px 0; }
.ec-section-head{ text-align:center; margin-bottom: 50px; }
.ec-section-eyebrow{ color: var(--ec-gold); letter-spacing:.3em; text-transform:uppercase; font-size:.7rem; }
.ec-section-title{ font-size: clamp(1.8rem, 3vw, 2.6rem); margin-top:10px; }
.ec-section-sub{ color: var(--ec-muted); max-width: 560px; margin: 14px auto 0; }

/* ---------- Category grid ---------- */
.ec-cat-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.ec-cat-card{
  position:relative; aspect-ratio: 3/4; overflow:hidden; border-radius: var(--ec-radius);
  border: 1px solid var(--ec-card-border); background: var(--ec-card);
}
.ec-cat-card img{ width:100%; height:100%; object-fit:cover; transition: transform .5s ease; filter: brightness(.6); }
.ec-cat-card:hover img{ transform: scale(1.08); filter: brightness(.75); }
.ec-cat-card .ec-cat-label{
  position:absolute; left:0; right:0; bottom:0; padding: 22px 18px;
  background: linear-gradient(0deg, rgba(0,0,0,.85), transparent);
  font-family: var(--ec-font-display); font-size:1.1rem; letter-spacing:.05em; color: var(--ec-white);
}
.ec-cat-empty{
  grid-column: 1/-1; text-align:center; padding: 60px 20px; border:1px dashed var(--ec-card-border);
  color: var(--ec-muted); border-radius: var(--ec-radius);
}
@media (max-width:1000px){ .ec-cat-grid{ grid-template-columns: repeat(2,1fr); } }

/* ---------- Product grid (WooCommerce loop) ---------- */
ul.products{ display:grid !important; grid-template-columns: repeat(4, 1fr); gap: 26px !important; list-style:none; padding:0; }
ul.products li.product{ margin:0 !important; }
@media (max-width:1000px){ ul.products{ grid-template-columns: repeat(2,1fr) !important; } }

li.product.ec-product-card{
  background: var(--ec-card); border: 1px solid var(--ec-card-border); border-radius: var(--ec-radius);
  overflow:hidden; transition: border-color .25s ease, transform .25s ease; text-align:center; padding-bottom: 20px !important;
}
li.product.ec-product-card:hover{ border-color: var(--ec-gold-dim); transform: translateY(-4px); }
li.product.ec-product-card > a.woocommerce-loop-product__link{ display:block; }
li.product.ec-product-card img{ width:100%; aspect-ratio: 1/1; object-fit:cover; display:block; background:#0f0e11; }
li.product.ec-product-card .ec-product-cat{ display:block; margin-top:16px; color: var(--ec-gold); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; }
li.product.ec-product-card .woocommerce-loop-product__title{ font-family: var(--ec-font-display); font-size:1.02rem; margin: 8px 20px 6px; color: var(--ec-white); }
li.product.ec-product-card .price{ display:block; color: var(--ec-muted); font-size:.92rem; }
li.product.ec-product-card .price ins{ color: var(--ec-gold); text-decoration:none; }
li.product.ec-product-card > a.button{
  display:block; margin: 16px 20px 0; background:transparent !important; border:1px solid var(--ec-gold);
  color: var(--ec-gold) !important; border-radius: var(--ec-radius); padding:11px; font-size:.72rem !important;
  letter-spacing:.16em; text-transform:uppercase;
}
li.product.ec-product-card > a.button:hover{ background: var(--ec-gold) !important; color:#0b0b0d !important; }
.ec-empty-state{ text-align:center; padding: 70px 20px; border:1px dashed var(--ec-card-border); border-radius: var(--ec-radius); color: var(--ec-muted); }
.ec-empty-state .ec-btn{ margin-top:20px; }

/* ---------- Promo banner ---------- */
.ec-promo{
  background: var(--ec-bg-alt); border-top:1px solid var(--ec-card-border); border-bottom:1px solid var(--ec-card-border);
  padding: 100px 0; text-align:center;
}
.ec-promo h2{ font-size: clamp(1.8rem,4vw,3rem); max-width:700px; margin: 0 auto 20px; }
.ec-promo p{ color: var(--ec-muted); max-width:560px; margin:0 auto 30px; line-height:1.7; }

/* ---------- Newsletter ---------- */
.ec-newsletter{ padding: 80px 0; text-align:center; }
.ec-newsletter h3{ font-size:1.7rem; margin-bottom:10px; }
.ec-newsletter p{ color: var(--ec-muted); margin-bottom: 26px; }
.ec-newsletter-form{ display:flex; max-width: 440px; margin: 0 auto; gap:10px; }
.ec-newsletter-form input[type=email]{
  flex:1; background: var(--ec-card); border:1px solid var(--ec-card-border); color: var(--ec-white);
  padding: 13px 16px; border-radius: var(--ec-radius); font-family: var(--ec-font-body);
}
.ec-newsletter-note{ color: var(--ec-muted); font-size:.7rem; margin-top:16px; }

/* ---------- Footer ---------- */
#ec-footer{ background: #08080a; border-top: 1px solid var(--ec-card-border); padding: 70px 0 24px; }
.ec-footer-grid{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 40px; margin-bottom: 50px; }
.ec-footer-brand .ec-logo{ margin-bottom: 14px; }
.ec-footer-brand p{ color: var(--ec-muted); font-size:.85rem; line-height:1.7; max-width: 320px; }
.ec-footer-col h4{ font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; color: var(--ec-gold); margin-bottom: 18px; }
.ec-footer-col ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.ec-footer-col a{ color: var(--ec-muted); font-size:.85rem; }
.ec-footer-col a:hover{ color: var(--ec-gold); }
.ec-footer-bottom{
  border-top: 1px solid var(--ec-card-border); padding-top: 22px; display:flex; justify-content:space-between;
  align-items:center; flex-wrap:wrap; gap:12px; color: var(--ec-muted); font-size:.72rem; letter-spacing:.05em;
}
@media (max-width: 900px){ .ec-footer-grid{ grid-template-columns: 1fr 1fr; } }

/* ---------- WooCommerce global overrides ---------- */
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price, .woocommerce div.product span.price{ color: var(--ec-gold); }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, a.added_to_cart{
  background: var(--ec-gold) !important; color:#0b0b0d !important; border-radius: var(--ec-radius) !important;
  letter-spacing:.1em; text-transform:uppercase; font-size:.75rem !important; border:none !important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover{ background: var(--ec-gold-light) !important; }
.woocommerce-page, .woocommerce-cart, .woocommerce-checkout{ background: var(--ec-bg); color: var(--ec-white); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea,
.woocommerce-checkout select{ background: var(--ec-card); border:1px solid var(--ec-card-border); color: var(--ec-white); }
.woocommerce table.shop_table{ border-color: var(--ec-card-border); }
.woocommerce-message, .woocommerce-info{ background: var(--ec-card) !important; border-top-color: var(--ec-gold) !important; color: var(--ec-white) !important; }

/* ---------- Shop / archivo de productos ---------- */
.woocommerce-products-header{ padding: 60px 0 20px; text-align:center; }
.woocommerce-products-header__title{ font-family: var(--ec-font-display); font-size: clamp(1.8rem,3vw,2.6rem); }
.woocommerce-breadcrumb{ color: var(--ec-muted) !important; font-size:.78rem; }
.woocommerce-breadcrumb a{ color: var(--ec-muted); }
.woocommerce-breadcrumb a:hover{ color: var(--ec-gold); }
.woocommerce-ordering select, .woocommerce-result-count{ color: var(--ec-muted); }
.woocommerce-ordering select{ background: var(--ec-card); border:1px solid var(--ec-card-border); }
nav.woocommerce-pagination ul{ border-color: var(--ec-card-border) !important; }
nav.woocommerce-pagination ul li{ border-color: var(--ec-card-border) !important; }
nav.woocommerce-pagination ul li a, nav.woocommerce-pagination ul li span{ background: var(--ec-bg) !important; color: var(--ec-white) !important; }
nav.woocommerce-pagination ul li a:hover, nav.woocommerce-pagination ul li span.current{ color: var(--ec-gold) !important; }

/* ---------- Ficha de producto individual ---------- */
.single-product div.product{ padding: 50px 0; }
.single-product div.product .product_title{ font-family: var(--ec-font-display); font-size: clamp(1.6rem,3vw,2.3rem); }
.single-product div.product p.price{ font-size:1.3rem; margin: 14px 0; }
.single-product div.product .woocommerce-product-details__short-description{ color: var(--ec-muted); line-height:1.7; }
.single-product .woocommerce-tabs{ border-top:1px solid var(--ec-card-border); margin-top: 40px; padding-top: 30px; }
.single-product .woocommerce-tabs ul.tabs.wc-tabs li{ background:transparent !important; }
.single-product .woocommerce-tabs ul.tabs.wc-tabs li:not(.active) a{ color: var(--ec-muted) !important; }
.single-product .woocommerce-tabs ul.tabs.wc-tabs li.active a{ color: var(--ec-gold) !important; }
.single-product .woocommerce-tabs .panel h2{ font-family: var(--ec-font-display); color: var(--ec-white); }
.woocommerce-product-gallery__image, .woocommerce-product-gallery__image img{ background: var(--ec-card); border-radius: var(--ec-radius); }
.single-product table.variations select, .single-product .quantity input{
  background: var(--ec-card); border:1px solid var(--ec-card-border); color: var(--ec-white);
}
.related.products{ border-top:1px solid var(--ec-card-border); margin-top: 60px; padding-top: 50px; }
.related.products > h2{ font-family: var(--ec-font-display); text-align:center; margin-bottom: 40px; }

/* ---------- Páginas de contenido (legales, contacto, nosotros) ---------- */
.ec-page-hero{ padding: 70px 0 44px; text-align:center; border-bottom:1px solid var(--ec-card-border); background: var(--ec-bg-alt); }
.ec-page-hero .ec-section-eyebrow{ display:block; margin-bottom:12px; }
.ec-page-hero h1{ font-size: clamp(2rem,4vw,2.8rem); }
.ec-page-hero p{ color: var(--ec-muted); margin-top:12px; max-width:520px; margin-left:auto; margin-right:auto; }

.ec-prose-wrap{ padding: 70px 24px 90px; }
.ec-prose{ max-width: 760px; margin: 0 auto; }
.ec-prose h2{ font-size:1.25rem; color: var(--ec-gold); margin: 44px 0 14px; font-family: var(--ec-font-display); }
.ec-prose h2:first-child{ margin-top:0; }
.ec-prose p{ color: var(--ec-muted); line-height:1.85; margin-bottom:16px; }
.ec-prose ul{ color: var(--ec-muted); line-height:1.85; padding-left:22px; margin-bottom:16px; }
.ec-prose li{ margin-bottom:6px; }
.ec-prose strong{ color: var(--ec-white); }
.ec-prose a{ color: var(--ec-gold); text-decoration:underline; }
.ec-prose .ec-note{ border:1px solid var(--ec-card-border); border-radius:var(--ec-radius); padding:18px 22px; color: var(--ec-muted); font-size:.85rem; background: var(--ec-card); }

/* Sobre nosotros: pilares */
.ec-pillars{ display:grid; grid-template-columns: repeat(3,1fr); gap:24px; margin: 20px 0 10px; }
.ec-pillar{ border:1px solid var(--ec-card-border); border-radius: var(--ec-radius); padding: 30px 24px; text-align:center; background: var(--ec-card); }
.ec-pillar-icon{ font-size:1.5rem; color: var(--ec-gold); margin-bottom:14px; }
.ec-pillar h3{ font-family: var(--ec-font-display); font-size:1.05rem; margin-bottom:10px; color: var(--ec-white); }
.ec-pillar p{ color: var(--ec-muted); font-size:.88rem; line-height:1.7; margin:0; }
@media (max-width: 800px){ .ec-pillars{ grid-template-columns: 1fr; } }

/* Contacto */
.ec-contact-grid{ display:grid; grid-template-columns: 1.1fr .9fr; gap: 50px; max-width: 1080px; margin: 0 auto; padding: 70px 24px 90px; align-items:start; }
.ec-contact-info{ border:1px solid var(--ec-card-border); border-radius: var(--ec-radius); padding: 32px; background: var(--ec-card); }
.ec-contact-info h3{ font-family: var(--ec-font-display); margin-bottom: 18px; }
.ec-contact-info ul{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:16px; }
.ec-contact-info li{ color: var(--ec-muted); font-size:.92rem; }
.ec-contact-info li strong{ display:block; color: var(--ec-gold); font-size:.7rem; letter-spacing:.15em; text-transform:uppercase; margin-bottom:4px; }
.ec-contact-form-wrap .wpforms-container{ margin:0 !important; }
.ec-contact-form-wrap label.wpforms-field-label{ color: var(--ec-white) !important; }
.ec-contact-form-wrap input, .ec-contact-form-wrap textarea{
  background: var(--ec-card) !important; border:1px solid var(--ec-card-border) !important; color: var(--ec-white) !important;
  border-radius: var(--ec-radius) !important;
}
.ec-contact-form-wrap button.wpforms-submit{
  background: var(--ec-gold) !important; color:#0b0b0d !important; border-radius: var(--ec-radius) !important;
  letter-spacing:.1em; text-transform:uppercase; font-size:.75rem !important; border:none !important; padding: 12px 30px !important;
}
@media (max-width: 900px){ .ec-contact-grid{ grid-template-columns: 1fr; } }

/* fade in */
.ec-fade{ opacity:0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.ec-fade.ec-visible{ opacity:1; transform:none; }
