/*
Theme Name: Lunela
Theme URI: https://lunelabrand.shop
Author: Lunela
Description: Tienda de lencería y corsetería femenina — tallas grandes. Tema a medida.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Text Domain: lunela
*/

/* ============ Reset & tokens ============ */
*,*::before,*::after{box-sizing:border-box}
:root{
  --ink:#141414;
  --body:#5b5b5b;
  --bg:#ffffff;
  --soft:#f6efeb;
  --soft2:#faf6f4;
  --accent:#b76e79;
  --accent-dk:#96545f;
  --bar:#241f21;
  --line:#e7e3e1;
  --maxw:1280px;
  --serif:"Playfair Display",Georgia,serif;
  --sans:"Montserrat",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);font-size:14px;line-height:1.5;color:var(--body);background:var(--bg);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--ink);text-decoration:none}
a:hover{color:var(--accent)}
h1,h2,h3,h4{margin:0;color:var(--ink);font-weight:700}
ul{margin:0;padding:0;list-style:none}
button{font-family:inherit;cursor:pointer}
.container{max-width:var(--maxw);margin:0 auto;padding:0 20px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

/* ============ Announcement bar ============ */
.announce{background:var(--bar);color:#fff;text-align:center;font-size:12px;letter-spacing:.06em;text-transform:uppercase;height:38px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.announce__track{position:relative;height:38px;width:100%}
.announce__item{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .6s ease;padding:0 16px}
.announce__item.is-active{opacity:1}

/* ============ Header ============ */
.header{background:#fff;border-bottom:1px solid var(--line)}
.header__row{display:flex;align-items:center;gap:24px;height:96px}
.brand{font-family:var(--serif);font-size:34px;font-weight:500;letter-spacing:.14em;color:var(--ink);text-transform:uppercase;line-height:1;flex:0 0 auto}
.brand small{display:block;font-family:var(--sans);font-size:9px;letter-spacing:.42em;color:var(--accent);margin-top:4px;text-transform:uppercase;font-weight:600}
.search{flex:1 1 auto;max-width:520px;margin:0 auto;position:relative}
.search input{width:100%;height:44px;border:1px solid var(--line);border-radius:999px;padding:0 48px 0 20px;font-size:13px;color:var(--ink);outline:none}
.search input:focus{border-color:var(--accent)}
.search button{position:absolute;right:6px;top:6px;height:32px;width:32px;border:0;background:var(--accent);color:#fff;border-radius:999px;font-size:14px}
.header__actions{display:flex;align-items:center;gap:22px;flex:0 0 auto}
.header__actions a{display:flex;align-items:center;gap:7px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink)}
.ic{width:22px;height:22px;stroke:var(--ink);fill:none;stroke-width:1.6}
.cart-count{background:var(--accent);color:#fff;font-size:11px;border-radius:999px;padding:1px 7px;font-weight:600}

/* ============ Nav ============ */
.nav{border-bottom:1px solid var(--line);background:#fff}
.nav__list{display:flex;justify-content:center;flex-wrap:wrap;gap:30px;height:48px;align-items:center}
.nav__list a{font-size:12.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--ink);position:relative}
.nav__list a::after{content:"";position:absolute;left:0;right:100%;bottom:-14px;height:2px;background:var(--accent);transition:right .25s}
.nav__list a:hover::after{right:0}
.nav__list a.is-hot{color:var(--accent)}

/* ============ Hero slider ============ */
.hero{position:relative;overflow:hidden;background:var(--soft)}
.hero__slides{position:relative}
.hero__slide{position:absolute;inset:0;opacity:0;transition:opacity .8s ease}
.hero__slide.is-active{opacity:1;position:relative}
.hero__slide img{width:100%;height:auto;object-fit:cover}
.hero__dots{position:absolute;left:0;right:0;bottom:16px;display:flex;justify-content:center;gap:10px;z-index:3}
.hero__dot{width:10px;height:10px;border-radius:50%;background:rgba(20,20,20,.28);border:0;cursor:pointer}
.hero__dot.is-active{background:var(--ink)}
.hero__arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.72);border:0;font-size:20px;color:var(--ink);display:flex;align-items:center;justify-content:center}
.hero__arrow--prev{left:18px}.hero__arrow--next{right:18px}

/* ============ Brand marquee ============ */
.brands{border-bottom:1px solid var(--line);padding:26px 0;overflow:hidden}
.brands__track{display:flex;gap:52px;align-items:center;width:max-content;animation:marquee 46s linear infinite}
.brands:hover .brands__track{animation-play-state:paused}
.brands__track img{height:44px;width:auto;filter:grayscale(1) opacity(.72);transition:.3s}
.brands__track img:hover{filter:none}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ============ Section / carousels ============ */
.section{padding:52px 0}
.section--tint{background:var(--soft2)}
.section__head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:26px;gap:16px}
.section__title{font-family:var(--sans);font-size:24px;font-weight:700;text-transform:uppercase;letter-spacing:.02em;color:var(--ink)}
.section__title span{display:block;font-family:var(--serif);font-style:italic;font-weight:500;font-size:16px;color:var(--accent);text-transform:none;letter-spacing:0;margin-top:4px}
.section__more{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink);white-space:nowrap;border-bottom:1px solid var(--ink);padding-bottom:2px}
.section__more:hover{color:var(--accent);border-color:var(--accent)}

.slider{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;scrollbar-width:thin}
.slider::-webkit-scrollbar{height:6px}
.slider::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}
.card{flex:0 0 auto;width:calc((100% - 4*22px)/5);min-width:210px;scroll-snap-align:start}
@media(max-width:1024px){.card{width:calc((100% - 2*22px)/3);min-width:200px}}
@media(max-width:640px){.card{width:calc((100% - 22px)/2);min-width:150px}}
.card__media{position:relative;background:var(--soft2);overflow:hidden;aspect-ratio:3/4}
.card__media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.card:hover .card__media img{transform:scale(1.05)}
.card__brand{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin:14px 0 5px}
.card__name{font-size:13px;color:var(--ink);line-height:1.45;min-height:38px}
.card__swatches{display:flex;gap:6px;margin-top:10px}
.card__swatches img{width:18px;height:18px;border-radius:50%;border:1px solid var(--line)}
.card__rating{font-size:11px;color:#c9a227;margin-top:8px;letter-spacing:1px}
.card__cta{margin-top:10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--ink);border-bottom:1px solid var(--ink);display:inline-block;padding-bottom:2px}
.card:hover .card__cta{color:var(--accent);border-color:var(--accent)}

/* ============ Destacados promo grid ============ */
.destacados{padding:52px 0}
.destacados__grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:26px}
@media(max-width:640px){.destacados__grid{grid-template-columns:1fr}}
.promo{overflow:hidden;position:relative;display:block;aspect-ratio:16/10;background:var(--soft)}
.promo img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.promo:hover img{transform:scale(1.05)}
.promo__cap{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:0 40px;color:#fff;background:linear-gradient(90deg,rgba(20,20,20,.42) 0%,rgba(20,20,20,.05) 60%,transparent 100%)}
.promo__cap h3{color:#fff;font-family:var(--serif);font-size:26px;font-weight:500;letter-spacing:.02em;line-height:1.1}
.promo__cap .off{font-size:20px;font-weight:700;margin:6px 0 16px;letter-spacing:.02em}
.promo__cap .btn{align-self:flex-start;background:#fff;color:var(--ink);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:11px 22px}
.promo:hover .promo__cap .btn{background:var(--accent);color:#fff}
@media(max-width:640px){.promo__cap{padding:0 24px}.promo__cap h3{font-size:20px}}

/* ============ About ============ */
.about{background:var(--soft);padding:56px 0}
.about__inner{max-width:860px;margin:0 auto;text-align:center}
.about__title{font-family:var(--sans);font-size:20px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}
.about__title span{display:block;font-family:var(--serif);font-style:italic;font-weight:500;font-size:15px;color:var(--accent);text-transform:none;margin-top:8px}
.about__text{color:var(--body);font-size:14px;line-height:1.8;max-height:96px;overflow:hidden;transition:max-height .4s ease}
.about__text.is-open{max-height:600px}
.about__toggle{margin-top:18px;background:none;border:1px solid var(--ink);color:var(--ink);padding:11px 30px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}
.about__toggle:hover{background:var(--ink);color:#fff}

/* ============ Guarantees ============ */
.guarantees{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 0}
.guarantees__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
@media(max-width:760px){.guarantees__grid{grid-template-columns:repeat(2,1fr);gap:22px}}
.guarantee{display:flex;align-items:center;gap:14px;justify-content:center;text-align:left}
.guarantee img{width:40px;height:40px}
.guarantee b{display:block;color:var(--ink);font-size:13px;text-transform:uppercase;letter-spacing:.03em}
.guarantee span{font-size:12px;color:var(--body)}

/* ============ Footer ============ */
.newsletter{background:var(--accent);color:#fff;padding:44px 0;text-align:center}
.newsletter h3{color:#fff;font-family:var(--serif);font-style:italic;font-weight:500;font-size:24px;margin-bottom:6px}
.newsletter p{margin:0 0 20px;font-size:13px;letter-spacing:.03em;opacity:.95}
.newsletter form{display:flex;gap:10px;max-width:480px;margin:0 auto;flex-wrap:wrap;justify-content:center}
.newsletter input[type=email]{flex:1 1 240px;height:46px;border:0;border-radius:999px;padding:0 22px;font-size:13px;color:var(--ink)}
.newsletter button{height:46px;border:0;border-radius:999px;background:var(--ink);color:#fff;padding:0 30px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.newsletter label{display:block;font-size:11px;opacity:.9;margin-top:12px}
.newsletter label a{color:#fff;text-decoration:underline}

.footer{background:#211c1e;color:#c9c2c4;padding:52px 0 0}
.footer__cols{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:34px}
@media(max-width:860px){.footer__cols{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.footer__cols{grid-template-columns:1fr}}
.footer__brand{font-family:var(--serif);font-size:26px;letter-spacing:.14em;color:#fff;text-transform:uppercase}
.footer p{font-size:13px;line-height:1.7;margin:14px 0 0}
.footer h4{color:#fff;font-size:12px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px}
.footer__cols li{margin-bottom:9px}
.footer__cols a{color:#c9c2c4;font-size:13px}
.footer__cols a:hover{color:#fff}
.footer__social{display:flex;gap:14px;margin-top:16px}
.footer__social a{width:34px;height:34px;border:1px solid #4a4245;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}
.footer__social a:hover{background:var(--accent);border-color:var(--accent)}
.footer__bar{border-top:1px solid #3a3335;margin-top:44px;padding:20px 0;font-size:12px;color:#8f878a;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
.footer__bar a{color:#8f878a}
.footer__bar a:hover{color:#fff}

/* ============ Collection page ============ */
.col-hero{background:var(--soft);padding:44px 0;text-align:center}
.col-hero h1{font-family:var(--sans);font-size:28px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink)}
.col-hero span{display:block;font-family:var(--serif);font-style:italic;font-weight:500;font-size:17px;color:var(--accent);margin-top:8px}
.col-breadcrumb{font-size:12px;color:var(--body);padding:16px 0;border-bottom:1px solid var(--line)}
.col-breadcrumb a{color:var(--body)}.col-breadcrumb a:hover{color:var(--accent)}
.col-count{font-size:12px;color:var(--body);margin:22px 0 18px;text-transform:uppercase;letter-spacing:.05em}
.col-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:26px 22px;padding-bottom:60px}
@media(max-width:1024px){.col-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.col-grid{grid-template-columns:repeat(2,1fr);gap:22px 14px}}
.card__price{margin-top:8px;display:flex;align-items:baseline;gap:8px}
.card__price .old{color:#9a9a9a;text-decoration:line-through;font-size:12px}
.card__price .now{color:var(--accent);font-weight:700;font-size:15px}

/* ============ WooCommerce ============ */
.woo-wrap{padding:34px 0 60px}
.woocommerce .woocommerce-breadcrumb{font-size:12px;color:var(--body);margin-bottom:20px}
.woocommerce .woocommerce-breadcrumb a{color:var(--body)}
.woocommerce h1.page-title,.woocommerce-products-header__title{font-family:var(--sans);font-size:28px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--ink);margin-bottom:8px}
.term-description{color:var(--body);margin-bottom:20px}
/* product grid */
.woocommerce ul.products{display:grid !important;grid-template-columns:repeat(4,1fr);gap:26px 22px;margin:0}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none}
@media(max-width:1024px){.woocommerce ul.products{grid-template-columns:repeat(3,1fr)}}
@media(max-width:680px){.woocommerce ul.products{grid-template-columns:repeat(2,1fr);gap:22px 14px}}
.woocommerce ul.products li.product{width:auto !important;margin:0 !important;float:none !important;text-align:left}
.woocommerce ul.products li.product a img{margin:0 0 12px;border-radius:0}
.woocommerce ul.products li.product .woocommerce-loop-product__title{font-size:13px;color:var(--ink);padding:0;line-height:1.45;font-weight:400}
.woocommerce ul.products li.product .price{color:var(--accent);font-weight:700;font-size:15px}
.woocommerce ul.products li.product .price del{color:#9a9a9a;font-weight:400;font-size:12px;opacity:1}
.woocommerce ul.products li.product .price ins{text-decoration:none}
.woocommerce ul.products li.product .button,.woocommerce a.button,.woocommerce button.button,.woocommerce #respond input#submit,
.woocommerce a.button.alt,.woocommerce button.button.alt,.woocommerce input.button.alt,.woocommerce #respond input#submit.alt,.woocommerce .single_add_to_cart_button{background:var(--ink);color:#fff;border-radius:0;text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600;padding:.7em 1.2em}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce a.button.alt:hover,.woocommerce button.button.alt:hover,.woocommerce input.button.alt:hover,.woocommerce .single_add_to_cart_button:hover{background:var(--accent);color:#fff}
.woocommerce span.onsale{background:var(--accent);color:#fff;border-radius:0;font-size:11px;min-height:auto;min-width:auto;padding:5px 10px;line-height:1}
/* single product */
.woocommerce div.product .product_title{font-family:var(--sans);font-size:26px;font-weight:700;color:var(--ink);text-transform:none}
.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--accent);font-weight:700;font-size:22px}
.woocommerce div.product p.price del{color:#9a9a9a;font-size:16px}
.woocommerce .quantity .qty{border:1px solid var(--line);height:44px}
.woocommerce div.product form.cart .button{padding:.8em 2em}
.woocommerce-message,.woocommerce-info{border-top-color:var(--accent)}
.woocommerce-message::before,.woocommerce-info::before{color:var(--accent)}
.woocommerce .star-rating span{color:var(--accent)}

/* ============ Mobile ============ */
@media(max-width:760px){
  .announce{font-size:10.5px;letter-spacing:.03em}
  .header__row{height:auto;flex-wrap:wrap;gap:12px;padding:12px 0}
  .brand{font-size:24px;order:1;flex:1 1 auto}
  .brand small{font-size:8px;letter-spacing:.34em}
  .header__actions{order:2;gap:18px;flex:0 0 auto}
  .header__actions a span{display:none}
  .search{order:3;flex:1 1 100%;max-width:none;margin:0}
  .search input{height:40px}
  .nav__list{justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;gap:20px;height:44px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .nav__list::-webkit-scrollbar{display:none}
  .nav__list a{white-space:nowrap;flex:0 0 auto}
  .nav__list a::after{display:none}
  .hero__arrow{width:34px;height:34px;font-size:16px}
  .section{padding:36px 0}
  .section__title{font-size:19px}
  .brands__track img{height:34px}
  .newsletter h3{font-size:20px}
}
@media(max-width:400px){
  .header__actions{gap:14px}
  .brand{font-size:21px}
}
