/* JL Ropa Americana — Design System
 * Basado en JL_Homepage_Mockup.html */

:root{
  --rosa:#FF4FA3;
  --rosa-deep:#E23E90;
  --ink:#141212;
  --cream:#FBF6F3;
  --stone:#EFE7E2;
  --stone-2:#E3D9D2;
  --grey:#7A7370;
  --line:#DED4CD;
}
*{box-sizing:border-box; margin:0; padding:0;}
body{
  background:var(--cream);
  color:var(--ink);
  font-family:'Jost',Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
}
.serif{ font-family:'Playfair Display', Georgia, serif; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; height:auto; display:block; }
.wrap{ max-width:1240px; margin:0 auto; padding:0 40px; }

/* ANNOUNCEMENT */
.announce{
  background:var(--ink); color:var(--cream);
  text-align:center; font-size:12.5px; letter-spacing:.08em;
  padding:9px 0; font-weight:500;
}

/* NAV */
header{ padding:26px 0 22px; border-bottom:1px solid var(--line); }
.navrow{ display:flex; align-items:center; justify-content:space-between; }
.logomark{ display:flex; align-items:center; gap:12px; text-decoration:none; }
.brandtype{ line-height:1; }
.brandtype .name{ font-family:'Playfair Display',serif; font-size:19px; font-weight:700; letter-spacing:.02em; }
.brandtype .desc{ font-size:10px; letter-spacing:.16em; color:var(--grey); margin-top:2px; }
nav.links{ display:flex; gap:36px; font-size:14px; letter-spacing:.02em; }
nav.links a{ position:relative; padding-bottom:3px; }
nav.links a.active{ border-bottom:1.5px solid var(--rosa); }
.navicons{ display:flex; gap:22px; align-items:center; font-size:13.5px; }
.navicons .bag{ display:flex; align-items:center; gap:6px; }
.nav-link{ cursor:pointer; }
.dot{ width:5px; height:5px; border-radius:50%; background:var(--rosa); display:inline-block; }
.user-menu{ display:flex; gap:12px; }

/* HERO */
.hero{ padding:78px 0 90px; }
.hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:64px; align-items:center; }
.hero-eyebrow{ font-size:12.5px; letter-spacing:.14em; color:var(--rosa-deep); margin-bottom:22px; }
.hero h1{
  font-family:'Playfair Display',serif; font-weight:900;
  font-size:70px; line-height:.98; letter-spacing:-.01em;
}
.hero p.lede{
  margin-top:26px; font-size:16.5px; line-height:1.65; color:var(--grey);
  max-width:420px;
}
.hero-ctas{ display:flex; gap:16px; margin-top:36px; }
.btn{
  padding:14px 26px; font-size:13.5px; letter-spacing:.04em;
  border-radius:2px; cursor:pointer; display:inline-block;
  border:none; font-family:'Jost',sans-serif;
}
.btn-primary{ background:var(--ink); color:var(--cream); }
.btn-primary:hover{ background:#2a2a2a; }
.btn-ghost{ border:1px solid var(--ink); color:var(--ink); background:transparent; }
.btn-ghost:hover{ background:var(--ink); color:var(--cream); }
.hero-visual{ position:relative; }
.hv-main{
  aspect-ratio:4/5; background:linear-gradient(155deg,var(--rosa) 0%, var(--rosa-deep) 100%);
  border-radius:2px; position:relative; overflow:hidden;
  display:flex; align-items:flex-end; padding:26px;
}
.hv-overlay{
  background:var(--cream); color:var(--ink); font-size:11.5px; letter-spacing:.06em;
  padding:9px 14px; border-radius:2px; font-weight:500;
}

/* PRINCIPLE STRIP */
.principle{ background:var(--ink); color:var(--cream); padding:56px 0; }
.principle .wrap{ display:flex; align-items:center; justify-content:space-between; gap:40px; }
.principle h2{
  font-family:'Playfair Display',serif; font-style:italic; font-weight:500;
  font-size:29px; max-width:560px; line-height:1.3;
}
.principle .sub{ font-size:13px; color:#B9B2AF; max-width:280px; line-height:1.6; }

/* PILLARS */
.pillars{ padding:90px 0 80px; }
.section-head{ display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:44px; }
.section-head h3{ font-family:'Playfair Display',serif; font-size:32px; font-weight:700; }
.section-head p{ font-size:13.5px; color:var(--grey); max-width:280px; text-align:right; }
.pillar-row{ display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); }
.pillar{ padding:30px 24px 0 0; border-right:1px solid var(--line); }
.pillar:last-child{ border-right:none; }
.pillar .ptitle{ font-family:'Playfair Display',serif; font-size:19px; font-weight:700; margin-bottom:10px; }
.pillar .ptxt{ font-size:13.5px; color:var(--grey); line-height:1.6; }

/* SELECTED GRID */
.selected{ padding:20px 0 96px; }
.prod-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--line); }
.prod{ background:var(--cream); padding:0; }
.prod-img{
  aspect-ratio:3/4; position:relative; overflow:hidden;
  display:flex; align-items:flex-start; justify-content:flex-end; padding:14px;
  background:var(--stone);
}
.prod-img img{ width:100%; height:100%; object-fit:cover; }
.prod-placeholder{ width:100%; height:100%; background:var(--stone-2); }
.prod-tag{ background:var(--ink); color:var(--cream); font-size:10px; letter-spacing:.06em; padding:5px 9px; }
.prod-info{ padding:16px 4px 0; display:flex; justify-content:space-between; font-size:13px; }
.prod-info .grey{ color:var(--grey); }

/* MANIFESTO */
.manifesto{ padding:110px 0; text-align:center; position:relative; }
.manifesto blockquote{
  font-family:'Playfair Display',serif; font-style:italic; font-weight:500;
  font-size:27px; line-height:1.55; max-width:760px; margin:0 auto;
}
.manifesto .close{ margin-top:30px; font-size:12.5px; letter-spacing:.1em; color:var(--rosa-deep); }

/* B2B/B2C SPLIT */
.split{ display:grid; grid-template-columns:1fr 1fr; }
.split-panel{ padding:70px 56px; min-height:320px; display:flex; flex-direction:column; justify-content:space-between; }
.split-panel.shop{ background:var(--rosa); color:var(--ink); }
.split-panel.wholesale{ background:var(--stone); color:var(--ink); }
.split-panel h4{ font-family:'Playfair Display',serif; font-size:30px; font-weight:700; max-width:320px; line-height:1.15; }
.split-panel p{ font-size:13.5px; margin-top:16px; max-width:320px; line-height:1.6; }
.split-panel .arrow{ margin-top:34px; font-size:13.5px; display:flex; align-items:center; gap:8px; }

/* JOURNAL */
.journal{ padding:96px 0; }
.journal-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-top:44px; }
.jcard .jimg{ aspect-ratio:16/11; background:var(--stone); margin-bottom:18px; position:relative; }
.jcard .jkicker{ font-size:11px; letter-spacing:.1em; color:var(--rosa-deep); margin-bottom:8px; }
.jcard h5{ font-family:'Playfair Display',serif; font-size:19px; font-weight:700; line-height:1.3; }

/* FOOTER */
footer{ background:var(--ink); color:var(--cream); padding:70px 0 30px; margin-top:20px; }
.foot-grid{ display:grid; grid-template-columns:1.3fr .8fr .8fr .8fr 1fr; gap:30px; padding-bottom:60px; border-bottom:1px solid #3A3636; }
.foot-brand p{ font-size:13px; color:#B9B2AF; max-width:220px; line-height:1.6; margin-top:12px; }
.foot-col h6{ font-size:12px; letter-spacing:.08em; color:#B9B2AF; margin-bottom:16px; }
.foot-col a{ display:block; font-size:13.5px; margin-bottom:11px; color:#EDE6E1; }
.foot-col a:hover{ color:var(--rosa); }
.foot-news input{
  width:100%; background:transparent; border:none; border-bottom:1px solid #6B6462;
  color:var(--cream); padding:10px 0; font-size:13.5px; font-family:'Jost',sans-serif;
}
.foot-news input::placeholder{ color:#8A8380; }
.foot-bottom{ display:flex; justify-content:space-between; padding-top:24px; font-size:11.5px; color:#8A8380; }

/* WHATSAPP FLOAT */
.wa-float{
  position:fixed; bottom:24px; right:24px; width:56px; height:56px;
  background:#25D366; color:white; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 12px rgba(0,0,0,.25); z-index:1000;
  transition:transform .2s;
}
.wa-float:hover{ transform:scale(1.1); }

/* CATALOG */
.catalog-header{ padding:60px 0 40px; }
.catalog-header h1{ font-family:'Playfair Display',serif; font-size:36px; font-weight:700; }
.catalog-filters{ display:flex; gap:16px; margin:20px 0; flex-wrap:wrap; }
.filter-group{ display:flex; flex-direction:column; gap:4px; }
.filter-group label{ font-size:12px; letter-spacing:.08em; color:var(--grey); }
.filter-group select, .filter-group input{
  padding:8px 12px; border:1px solid var(--line); border-radius:2px;
  font-family:'Jost',sans-serif; font-size:13px; background:white;
}
.catalog-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; padding-bottom:80px; }
.catalog-empty{ grid-column:1/-1; text-align:center; padding:80px 0; color:var(--grey); font-size:15px; }
.pagination{ display:flex; justify-content:center; gap:8px; padding:40px 0; }
.pagination a, .pagination span{
  padding:8px 14px; border:1px solid var(--line); border-radius:2px; font-size:13px;
}
.pagination a:hover{ background:var(--ink); color:var(--cream); }
.pagination .current{ background:var(--ink); color:var(--cream); border-color:var(--ink); }

/* PRODUCT DETAIL */
.product-detail{ padding:60px 0 80px; display:grid; grid-template-columns:1fr 1fr; gap:60px; }
.product-gallery{ position:relative; }
.product-gallery .main-img{
  aspect-ratio:3/4; background:var(--stone); border-radius:2px; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
}
.product-gallery .main-img img{ width:100%; height:100%; object-fit:cover; }
.product-info h1{ font-family:'Playfair Display',serif; font-size:28px; font-weight:700; margin-bottom:8px; }
.product-info .price{ font-size:22px; font-weight:600; margin:16px 0; }
.product-info .price .compare{ text-decoration:line-through; color:var(--grey); font-size:16px; margin-left:8px; }
.product-info .desc{ color:var(--grey); line-height:1.7; margin:20px 0; }
.product-meta{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:20px 0; font-size:13px; }
.product-meta .meta-item{ display:flex; gap:8px; }
.product-meta .meta-label{ color:var(--grey); }
.add-to-cart{ margin-top:24px; }
.add-to-cart .btn{ width:100%; text-align:center; font-size:15px; padding:16px; }
.stock-info{ font-size:13px; color:var(--grey); margin-top:8px; }

/* CART */
.cart-page{ padding:60px 0 80px; }
.cart-page h1{ font-family:'Playfair Display',serif; font-size:32px; font-weight:700; margin-bottom:40px; }
.cart-empty{ text-align:center; padding:60px 0; color:var(--grey); }
.cart-items{ display:flex; flex-direction:column; gap:1px; background:var(--line); margin-bottom:40px; }
.cart-item{ display:grid; grid-template-columns:80px 1fr auto auto auto; gap:20px; align-items:center; background:var(--cream); padding:16px; }
.cart-item .item-img{ width:80px; height:100px; object-fit:cover; background:var(--stone); }
.cart-item .item-name{ font-weight:500; }
.cart-item .item-price{ font-size:14px; color:var(--grey); }
.cart-item input[type="number"]{ width:60px; padding:6px; border:1px solid var(--line); text-align:center; }
.cart-item .btn-remove{ background:none; border:none; color:var(--grey); cursor:pointer; font-size:13px; }
.cart-summary{ max-width:400px; margin-left:auto; }
.cart-summary .row{ display:flex; justify-content:space-between; padding:8px 0; font-size:14px; }
.cart-summary .total{ font-weight:600; font-size:18px; border-top:1px solid var(--line); padding-top:12px; margin-top:8px; }

/* AUTH FORMS */
.auth-page{ max-width:440px; margin:60px auto 80px; padding:0 20px; }
.auth-page h1{ font-family:'Playfair Display',serif; font-size:28px; font-weight:700; margin-bottom:32px; text-align:center; }
.form-group{ margin-bottom:20px; }
.form-group label{ display:block; font-size:13px; font-weight:500; margin-bottom:6px; }
.form-group input{
  width:100%; padding:12px; border:1px solid var(--line); border-radius:2px;
  font-family:'Jost',sans-serif; font-size:14px;
}
.form-group input:focus{ outline:none; border-color:var(--rosa); }
.form-error{ color:#c00; font-size:13px; margin-bottom:16px; }
.form-success{ color:#2a7d4f; font-size:13px; margin-bottom:16px; }
.btn-full{ width:100%; text-align:center; }

/* CHECKOUT */
.checkout-page{ padding:60px 0 80px; display:grid; grid-template-columns:1fr 400px; gap:60px; }
.checkout-page h1{ font-family:'Playfair Display',serif; font-size:28px; font-weight:700; margin-bottom:32px; grid-column:1/-1; }

/* WHOLESALE */
.wholesale-page{ padding:60px 0 80px; max-width:800px; margin:0 auto; }
.wholesale-page h1{ font-family:'Playfair Display',serif; font-size:36px; font-weight:700; margin-bottom:20px; }
.wholesale-page p{ color:var(--grey); line-height:1.7; margin-bottom:16px; }

/* JOURNAL PAGE */
.journal-page{ padding:60px 0 80px; }
.journal-page h1{ font-family:'Playfair Display',serif; font-size:36px; font-weight:700; margin-bottom:40px; }

/* ABOUT PAGE */
.about-page{ padding:60px 0 80px; max-width:800px; margin:0 auto; }
.about-page h1{ font-family:'Playfair Display',serif; font-size:36px; font-weight:700; margin-bottom:20px; }
.about-page p{ color:var(--grey); line-height:1.7; margin-bottom:16px; }

/* 404 */
.not-found{ text-align:center; padding:120px 0; }
.not-found h1{ font-family:'Playfair Display',serif; font-size:72px; font-weight:900; color:var(--line); }
.not-found p{ color:var(--grey); margin:20px 0 40px; }

/* ADMIN */
.admin-layout{ display:grid; grid-template-columns:260px 1fr; min-height:100vh; }
.admin-sidebar{ background:var(--ink); color:var(--cream); padding:24px; }
.admin-sidebar h2{ font-family:'Playfair Display',serif; font-size:18px; margin-bottom:32px; }
.admin-sidebar a{ display:block; padding:10px 16px; color:#B9B2AF; font-size:14px; border-radius:4px; margin-bottom:4px; }
.admin-sidebar a:hover, .admin-sidebar a.active{ background:rgba(255,79,163,.15); color:var(--rosa); }
.admin-main{ padding:32px; background:#f8f6f4; }
.admin-header{ display:flex; justify-content:space-between; align-items:center; margin-bottom:32px; }
.admin-header h1{ font-family:'Playfair Display',serif; font-size:24px; font-weight:700; }
.admin-card{ background:white; border-radius:8px; padding:24px; box-shadow:0 1px 3px rgba(0,0,0,.08); margin-bottom:24px; }
.admin-stat{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-bottom:32px; }
.stat-card{ background:white; border-radius:8px; padding:20px; box-shadow:0 1px 3px rgba(0,0,0,.08); }
.stat-card .stat-value{ font-size:28px; font-weight:700; }
.stat-card .stat-label{ font-size:13px; color:var(--grey); margin-top:4px; }
.admin-table{ width:100%; border-collapse:collapse; }
.admin-table th{ text-align:left; padding:12px; font-size:12px; letter-spacing:.06em; color:var(--grey); border-bottom:1px solid var(--line); }
.admin-table td{ padding:12px; border-bottom:1px solid #f0f0f0; font-size:14px; }
.admin-table tr:hover{ background:#faf8f6; }
.badge{ display:inline-block; padding:3px 8px; border-radius:3px; font-size:11px; font-weight:600; }
.badge-pending{ background:#FFF3CD; color:#856404; }
.badge-paid{ background:#D4EDDA; color:#155724; }
.badge-shipped{ background:#CCE5FF; color:#004085; }
.badge-completed{ background:#D4EDDA; color:#155724; }
.badge-cancelled{ background:#F8D7DA; color:#721C24; }
.btn-admin{ padding:8px 16px; border:none; border-radius:4px; cursor:pointer; font-family:'Jost',sans-serif; font-size:13px; }
.btn-admin-primary{ background:var(--rosa); color:white; }
.btn-admin-primary:hover{ background:var(--rosa-deep); }
.btn-admin-danger{ background:#dc3545; color:white; }
.btn-admin-sm{ padding:4px 10px; font-size:12px; }
.admin-login{ max-width:400px; margin:100px auto; padding:40px; background:white; border-radius:8px; box-shadow:0 2px 12px rgba(0,0,0,.08); }
.admin-login h1{ font-family:'Playfair Display',serif; font-size:24px; text-align:center; margin-bottom:32px; }

/* RESPONSIVE */
@media (max-width:900px){
  .hero-grid, .split, .pillar-row, .prod-grid, .journal-grid, .foot-grid,
  .catalog-grid, .product-detail, .checkout-page, .admin-layout{ grid-template-columns:1fr; }
  .hero h1{ font-size:44px; }
  nav.links{ display:none; }
  .admin-sidebar{ display:none; }
  .admin-stat{ grid-template-columns:repeat(2,1fr); }
}
