*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
  :root {
    --cream: #FAF6F1; --blush: #E8C4B0; --terracotta: #C4714F;
    --deep: #2A1F1A; --mid: #6B4E3D; --light: #F2E8E0;
  }
  html { scroll-behavior: smooth; }
  body { font-family: 'Jost', sans-serif; background: var(--cream); color: var(--deep); overflow-x: hidden; cursor: none; }
  .cursor { position:fixed;width:10px;height:10px;background:var(--terracotta);border-radius:50%;pointer-events:none;z-index:9999;transition:transform 0.15s ease;transform:translate(-50%,-50%); }
  .cursor-ring { position:fixed;width:36px;height:36px;border:1px solid var(--terracotta);border-radius:50%;pointer-events:none;z-index:9998;transition:transform 0.35s ease,width 0.3s,height 0.3s,opacity 0.3s;transform:translate(-50%,-50%);opacity:0.5; }
  nav { position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:16px 60px;background:rgba(250,246,241,0.9);backdrop-filter:blur(12px);border-bottom:1px solid rgba(196,113,79,0.15); }
  .nav-logo { text-decoration:none; }
  .nav-links { display:flex;gap:40px;list-style:none; }
  .nav-links a { font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:var(--mid);text-decoration:none;position:relative;font-weight:300;transition:color 0.3s; }
  .nav-links a::after { content:'';position:absolute;bottom:-3px;left:0;width:0;height:1px;background:var(--terracotta);transition:width 0.4s ease; }
  .nav-links a:hover { color:var(--terracotta); }
  .nav-links a:hover::after { width:100%; }
  .nav-phone { font-size:12px;letter-spacing:0.1em;color:var(--mid);text-decoration:none;font-weight:300;display:flex;align-items:center;gap:8px;transition:color 0.3s; }
  .nav-phone:hover { color:var(--terracotta); }
  .hero { min-height:100vh;display:grid;grid-template-columns:1fr 1fr;padding-top:80px;position:relative;overflow:hidden; }
  .hero-left { display:flex;flex-direction:column;justify-content:center;padding:80px 60px;position:relative;z-index:2; }
  .hero-eyebrow { font-size:10px;letter-spacing:0.35em;text-transform:uppercase;color:var(--terracotta);font-weight:400;margin-bottom:28px;animation:fadeUp 1s ease both; }
  .hero-title { font-family:'Cormorant Garamond',serif;font-size:clamp(58px,7vw,96px);font-weight:300;line-height:0.95;color:var(--deep);animation:fadeUp 1s 0.15s ease both; }
  .hero-title em { font-style:italic;color:var(--terracotta);display:block; }
  .hero-desc { margin-top:36px;font-size:14px;line-height:1.9;color:var(--mid);max-width:340px;font-weight:300;animation:fadeUp 1s 0.3s ease both; }
  .hero-cta { margin-top:48px;display:flex;gap:20px;align-items:center;animation:fadeUp 1s 0.45s ease both; }
  .btn-primary { background:var(--deep);color:var(--cream);padding:16px 40px;font-size:11px;letter-spacing:0.2em;text-transform:uppercase;text-decoration:none;font-family:'Jost',sans-serif;font-weight:400;transition:background 0.35s,color 0.35s;border:1px solid var(--deep); }
  .btn-primary:hover { background:var(--terracotta);border-color:var(--terracotta); }
  .btn-secondary { font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:var(--mid);text-decoration:none;display:flex;align-items:center;gap:10px;font-weight:300;transition:color 0.3s; }
  .btn-secondary:hover { color:var(--terracotta); }
  .btn-secondary::after { content:'→';transition:transform 0.3s; }
  .btn-secondary:hover::after { transform:translateX(6px); }
  .hero-right { position:relative;overflow:hidden;background:var(--light);animation:fadeIn 1.2s 0.2s ease both; }
  .hero-img-placeholder { width:100%;height:100%;min-height:100%;display:flex;align-items:center;justify-content:center;position:relative;background:#1A110D;overflow:hidden; }
  .shoe-visual { position:absolute;width:85%;height:85%;display:flex;align-items:center;justify-content:center; }
  .shoe-svg { width:100%;max-width:520px;filter:drop-shadow(0 40px 60px rgba(42,31,26,0.25));animation:float 4s ease-in-out infinite; }
  @keyframes float { 0%,100% { transform:translateY(0px) rotate(-3deg); } 50% { transform:translateY(-18px) rotate(-3deg); } }
  @keyframes floatVideo { 0%,100% { transform:translateY(0px); } 50% { transform:translateY(-14px); } }
  .hero-tag { position:absolute;bottom:48px;right:48px;background:var(--deep);color:var(--cream);padding:18px 24px;animation:fadeUp 1s 0.6s ease both; }
  .hero-tag-num { font-family:'Cormorant Garamond',serif;font-size:36px;font-weight:300;display:block;line-height:1;color:var(--blush); }
  .hero-tag-text { font-size:9px;letter-spacing:0.25em;text-transform:uppercase;color:rgba(250,246,241,0.6);font-weight:300; }
  .deco-line { position:absolute;left:60px;top:50%;transform:translateY(-50%);width:1px;height:120px;background:linear-gradient(to bottom,transparent,var(--terracotta),transparent);opacity:0.4; }
  .marquee-section { background:var(--deep);padding:18px 0;overflow:hidden; }
  .marquee-track { display:flex;animation:marquee 25s linear infinite;white-space:nowrap; }
  .marquee-item { font-family:'Cormorant Garamond',serif;font-size:16px;font-style:italic;color:var(--blush);letter-spacing:0.05em;padding:0 40px;font-weight:300; }
  .marquee-dot { color:var(--terracotta);margin-right:40px;font-style:normal; }
  @keyframes marquee { from { transform:translateX(0); } to { transform:translateX(-50%); } }
  .featured { padding:120px 60px;position:relative; }
  .section-header { display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:70px; }
  .section-eyebrow { font-size:10px;letter-spacing:0.35em;text-transform:uppercase;color:var(--terracotta);margin-bottom:12px;font-weight:400; }
  .section-title { font-family:'Cormorant Garamond',serif;font-size:clamp(36px,4vw,56px);font-weight:300;line-height:1.1;color:var(--deep); }
  .section-title em { font-style:italic;color:var(--terracotta); }
  .see-all { font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:var(--mid);text-decoration:none;font-weight:300;transition:color 0.3s;display:flex;align-items:center;gap:8px;padding-bottom:4px;border-bottom:1px solid var(--blush); }
  .see-all:hover { color:var(--terracotta);border-color:var(--terracotta); }
  .products-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:30px; }
  .product-card { position:relative;cursor:none; }
  .product-img { aspect-ratio:3/4;overflow:hidden;position:relative;background:var(--light);margin-bottom:20px; }
  .product-img-inner { width:100%;height:100%;display:flex;align-items:center;justify-content:center;transition:transform 0.6s cubic-bezier(0.25,0.46,0.45,0.94); }
  .product-card:hover .product-img-inner { transform:scale(1.06); }
  .product-badge { position:absolute;top:16px;left:16px;background:var(--terracotta);color:white;font-size:9px;letter-spacing:0.2em;text-transform:uppercase;padding:5px 10px;font-weight:400;z-index:2; }
  .product-fav { position:absolute;top:14px;right:14px;width:32px;height:32px;border:1px solid rgba(42,31,26,0.2);background:rgba(250,246,241,0.9);display:flex;align-items:center;justify-content:center;cursor:none;z-index:2;transition:all 0.3s;opacity:0; }
  .product-card:hover .product-fav { opacity:1; }
  .product-fav:hover { background:var(--terracotta);border-color:var(--terracotta); }
  .product-fav svg { width:14px;height:14px; }
  .product-name { font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:400;color:var(--deep);margin-bottom:5px;letter-spacing:0.02em; }
  .product-cat { font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--mid);font-weight:300;margin-bottom:10px; }
  .product-price { font-size:15px;color:var(--deep);font-weight:400;letter-spacing:0.05em; }
  .product-price .old { font-size:12px;color:var(--blush);text-decoration:line-through;margin-right:8px;font-weight:300; }
  .banner { margin:0 60px 120px;background:var(--deep);display:grid;grid-template-columns:1fr 1fr;overflow:hidden; }
  .banner-left { padding:80px 70px;display:flex;flex-direction:column;justify-content:center; }
  .banner-tag { display:inline-block;font-size:10px;letter-spacing:0.3em;text-transform:uppercase;color:var(--terracotta);border:1px solid var(--terracotta);padding:6px 14px;font-weight:400;margin-bottom:30px; }
  .banner-title { font-family:'Cormorant Garamond',serif;font-size:clamp(42px,5vw,68px);color:var(--cream);font-weight:300;line-height:1;margin-bottom:24px; }
  .banner-title em { font-style:italic;color:var(--blush); }
  .banner-desc { font-size:13px;line-height:1.9;color:rgba(250,246,241,0.55);font-weight:300;max-width:320px;margin-bottom:44px; }
  .btn-light { display:inline-block;border:1px solid rgba(250,246,241,0.4);color:var(--cream);padding:15px 38px;font-size:11px;letter-spacing:0.2em;text-transform:uppercase;text-decoration:none;font-family:'Jost',sans-serif;font-weight:300;width:fit-content;transition:all 0.35s; }
  .btn-light:hover { background:var(--terracotta);border-color:var(--terracotta); }
  .banner-right { background:linear-gradient(135deg,#3A2A22 0%,#1A120E 100%);display:flex;align-items:center;justify-content:center;padding:60px;position:relative;overflow:hidden; }
  .banner-circle { position:absolute;width:300px;height:300px;border:1px solid rgba(196,113,79,0.2);border-radius:50%; }
  .banner-circle:nth-child(2) { width:450px;height:450px;opacity:0.6; }
  .banner-circle:nth-child(3) { width:600px;height:600px;opacity:0.3; }
  .banner-shoe { position:relative;z-index:2;font-family:'Cormorant Garamond',serif;font-size:120px;line-height:1;animation:float 5s ease-in-out infinite; }
  .services { padding:100px 60px;background:var(--light);display:grid;grid-template-columns:repeat(3,1fr);gap:1px; }
  .service-item { padding:60px 50px;background:var(--light);position:relative;overflow:hidden;transition:background 0.4s; }
  .service-item::before { content:'';position:absolute;top:0;left:0;width:3px;height:0;background:var(--terracotta);transition:height 0.4s; }
  .service-item:hover::before { height:100%; }
  .service-item:hover { background:white; }
  .service-icon { font-size:32px;margin-bottom:24px;display:block; }
  .service-title { font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:400;color:var(--deep);margin-bottom:14px;letter-spacing:0.02em; }
  .service-desc { font-size:13px;line-height:1.85;color:var(--mid);font-weight:300; }
  .testimonials { padding:120px 60px;text-align:center; }
  .testimonials-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:70px; }
  .testimonial-card { padding:48px 40px;border:1px solid rgba(196,113,79,0.2);text-align:left;position:relative;transition:border-color 0.3s,transform 0.3s; }
  .testimonial-card:hover { border-color:var(--terracotta);transform:translateY(-4px); }
  .testimonial-quote { font-family:'Cormorant Garamond',serif;font-size:64px;line-height:0.5;color:var(--blush);margin-bottom:20px;font-weight:300; }
  .testimonial-text { font-family:'Cormorant Garamond',serif;font-size:18px;line-height:1.7;color:var(--deep);font-style:italic;margin-bottom:28px;font-weight:300; }
  .testimonial-author { font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:var(--terracotta);font-weight:400; }
  .stars { color:var(--terracotta);letter-spacing:3px;font-size:12px;margin-bottom:18px; }
  .newsletter { background:var(--deep);padding:100px 60px;display:flex;align-items:center;justify-content:space-between;gap:60px; }
  .newsletter-left { flex:1; }
  .newsletter-title { font-family:'Cormorant Garamond',serif;font-size:clamp(36px,3.5vw,52px);color:var(--cream);font-weight:300;line-height:1.1;margin-bottom:16px; }
  .newsletter-title em { font-style:italic;color:var(--blush); }
  .newsletter-desc { font-size:13px;color:rgba(250,246,241,0.5);font-weight:300;line-height:1.7; }
  .newsletter-form { flex:1;display:flex;gap:0;max-width:520px; }
  .newsletter-input { flex:1;background:rgba(250,246,241,0.08);border:1px solid rgba(250,246,241,0.15);border-right:none;padding:18px 24px;font-size:13px;color:var(--cream);font-family:'Jost',sans-serif;font-weight:300;outline:none; }
  .newsletter-input::placeholder { color:rgba(250,246,241,0.3); }
  .newsletter-btn { background:var(--terracotta);color:white;border:1px solid var(--terracotta);padding:18px 30px;font-size:11px;letter-spacing:0.2em;text-transform:uppercase;font-family:'Jost',sans-serif;font-weight:400;cursor:none; }
  footer { background:#1A110D;padding:80px 60px 40px; }
  .footer-top { display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:60px;padding-bottom:60px;border-bottom:1px solid rgba(250,246,241,0.1);margin-bottom:40px; }
  .footer-desc { font-size:12px;line-height:1.9;color:rgba(250,246,241,0.4);font-weight:300;max-width:260px; }
  .footer-col-title { font-size:10px;letter-spacing:0.3em;text-transform:uppercase;color:var(--blush);font-weight:400;margin-bottom:24px; }
  .footer-links { list-style:none; }
  .footer-links li { margin-bottom:12px; }
  .footer-links a { font-size:12px;color:rgba(250,246,241,0.45);text-decoration:none;font-weight:300;transition:color 0.3s;letter-spacing:0.05em; }
  .footer-links a:hover { color:var(--blush); }
  .footer-social { display:flex;gap:14px;align-items:center;flex-wrap:wrap; }
  .footer-social a { display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid rgba(250,246,241,0.15);color:rgba(250,246,241,0.55);border-radius:50%;transition:color 0.3s, border-color 0.3s, background 0.3s; }
  .footer-social a:hover { color:var(--blush);border-color:var(--blush);background:rgba(250,246,241,0.04); }
  .footer-social svg { display:block; }
  .footer-bottom { display:flex;align-items:center;justify-content:space-between; }
  .footer-copy { font-size:11px;color:rgba(250,246,241,0.25);font-weight:300;letter-spacing:0.05em; }
  .social-links { display:flex;gap:20px; }
  .social-link { width:36px;height:36px;border:1px solid rgba(250,246,241,0.15);display:flex;align-items:center;justify-content:center;text-decoration:none;color:rgba(250,246,241,0.4);font-size:12px;transition:all 0.3s;font-family:'Cormorant Garamond',serif;font-style:italic; }
  .social-link:hover { border-color:var(--terracotta);color:var(--terracotta); }
  @keyframes fadeUp { from { opacity:0;transform:translateY(28px); } to { opacity:1;transform:translateY(0); } }
  @keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
  .reveal { opacity:0;transform:translateY(30px);transition:opacity 0.8s ease,transform 0.8s ease; }
  .reveal.visible { opacity:1;transform:translateY(0); }
  @media (max-width:1024px) {
    nav { padding:16px 20px; }
    .nav-links { display:none; }
    .hero { grid-template-columns:1fr; }
    .hero-right { height:60vh; }
    .hero-left { padding:60px 30px; }
    .featured,.testimonials { padding:80px 30px; }
    .products-grid { grid-template-columns:repeat(2,1fr); }
    .testimonials-grid { grid-template-columns:1fr; }
    .banner { margin:0 30px 80px;grid-template-columns:1fr; }
    .banner-right { display:none; }
    .services { grid-template-columns:1fr;padding:60px 30px; }
    .newsletter { flex-direction:column;padding:80px 30px; }
    .newsletter-form { max-width:100%;width:100%; }
    footer { padding:60px 30px 30px; }
    .footer-top { grid-template-columns:1fr 1fr;gap:40px; }
    .banner-left { padding:60px 40px; }
  }

  /* ============================================================
     Nav: cart button + badge
     ============================================================ */
  .nav-actions { display:flex;align-items:center;gap:24px; }
  .nav-cart {
    position:relative; width:38px;height:38px;
    background:none;border:1px solid rgba(42,31,26,0.15);color:var(--deep);
    display:flex;align-items:center;justify-content:center;cursor:pointer;
    transition:border-color 0.25s,color 0.25s,background 0.25s;
  }
  .nav-cart:hover { border-color:var(--terracotta);color:var(--terracotta);background:rgba(196,113,79,0.05); }
  .nav-cart-badge {
    position:absolute;top:-7px;right:-7px;
    background:var(--terracotta);color:var(--cream);
    font-size:10px;font-weight:500;letter-spacing:0;
    min-width:18px;height:18px;border-radius:9px;
    display:inline-flex;align-items:center;justify-content:center;
    padding:0 5px;line-height:1;
  }

  /* ============================================================
     Catalog page
     ============================================================ */
  .catalog-hero { padding:120px 60px 40px;text-align:center; }
  .catalog-hero-inner { max-width:900px;margin:0 auto; }
  .catalog-title {
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(48px,5.5vw,76px);font-weight:300;color:var(--deep);
    line-height:1.05;margin:8px 0 16px;
  }
  .catalog-title em { font-style:italic;color:var(--terracotta); }
  .catalog-count { font-size:12px;letter-spacing:0.18em;text-transform:uppercase;color:var(--mid); }

  .catalog-shell {
    display:grid;grid-template-columns:280px 1fr;gap:60px;
    padding:30px 60px 100px;align-items:start;
  }

  .catalog-sidebar { position:sticky;top:100px; }
  .catalog-sidebar-close { display:none; }
  .catalog-filter-toggle { display:none; }

  .catalog-filters { display:flex;flex-direction:column;gap:30px; }
  .filter-block { display:flex;flex-direction:column;gap:10px; }
  .filter-label {
    font-size:10px;letter-spacing:0.28em;text-transform:uppercase;
    color:var(--terracotta);font-weight:400;
  }
  .filter-input {
    width:100%;padding:11px 14px;
    border:1px solid rgba(42,31,26,0.18);background:white;
    font-family:'Jost',sans-serif;font-size:13px;color:var(--deep);font-weight:300;
    outline:none;transition:border-color 0.2s;
  }
  .filter-input:focus { border-color:var(--terracotta); }
  .filter-input-small { padding:10px 12px;font-size:13px; }

  .filter-chips { display:flex;flex-direction:column;gap:6px; }
  .filter-chip {
    display:flex;align-items:center;gap:10px;cursor:pointer;
    padding:9px 14px;border:1px solid transparent;
    font-size:13px;color:var(--mid);font-weight:300;
    transition:all 0.2s;
  }
  .filter-chip input { display:none; }
  .filter-chip:hover { color:var(--terracotta); }
  .filter-chip.active {
    background:var(--deep);color:var(--cream);border-color:var(--deep);
  }

  .filter-price-range { display:flex;align-items:center;gap:8px; }
  .filter-price-sep { color:var(--mid);font-size:14px; }

  .filter-actions { display:flex;flex-direction:column;gap:12px;margin-top:8px; }
  .filter-submit { width:100%; }
  .filter-clear {
    text-align:center;font-size:11px;letter-spacing:0.2em;text-transform:uppercase;
    color:var(--mid);text-decoration:none;font-weight:300;padding:10px;
    transition:color 0.2s;
  }
  .filter-clear:hover { color:var(--terracotta); }

  .catalog-content { min-width:0; }
  .catalog-grid { grid-template-columns:repeat(3,1fr) !important; }
  .catalog-empty { text-align:center;padding:100px 30px;background:var(--light); }

  .catalog-pagination {
    display:flex;align-items:center;justify-content:center;gap:8px;
    margin-top:60px;flex-wrap:wrap;
  }
  .page-link {
    padding:10px 16px;
    border:1px solid rgba(42,31,26,0.15);
    font-family:'Jost',sans-serif;font-size:12px;font-weight:300;
    color:var(--deep);text-decoration:none;letter-spacing:0.05em;
    transition:all 0.2s;
  }
  .page-link:hover { border-color:var(--terracotta);color:var(--terracotta); }
  .page-link.is-active {
    background:var(--deep);color:var(--cream);border-color:var(--deep);
  }
  .page-sep { color:var(--mid);font-size:12px;padding:0 4px; }

  /* ============================================================
     Product detail
     ============================================================ */
  .product-detail { padding:120px 60px 80px; }

  .product-breadcrumb {
    font-size:11px;letter-spacing:0.12em;color:var(--mid);font-weight:300;
    margin-bottom:30px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;
  }
  .product-breadcrumb a { color:var(--mid);text-decoration:none;transition:color 0.2s; }
  .product-breadcrumb a:hover { color:var(--terracotta); }
  .product-breadcrumb .sep { opacity:0.5; }
  .product-breadcrumb .current { color:var(--deep); }

  .product-detail-grid {
    display:grid;grid-template-columns:1.2fr 1fr;gap:60px;
    max-width:1280px;margin:0 auto;
  }

  .product-gallery { display:grid;grid-template-columns:90px 1fr;gap:18px;align-items:start; }
  .product-thumbs { display:flex;flex-direction:column;gap:12px; }
  .product-thumb {
    width:90px;aspect-ratio:1;background:var(--light);
    border:1px solid rgba(42,31,26,0.1);padding:0;cursor:pointer;
    overflow:hidden;transition:border-color 0.2s,opacity 0.2s;opacity:0.7;
  }
  .product-thumb img { width:100%;height:100%;object-fit:cover;display:block; }
  .product-thumb:hover { opacity:1;border-color:var(--terracotta); }
  .product-thumb.active { opacity:1;border-color:var(--terracotta); }

  .product-main-image {
    position:relative;background:var(--light);
    border:1px solid rgba(42,31,26,0.05);overflow:hidden;
    aspect-ratio:4/5;
  }
  .product-main-image img { width:100%;height:100%;object-fit:cover;display:block; }
  .product-placeholder { width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--light); }
  .product-detail-badge {
    position:absolute;top:18px;left:18px;background:var(--terracotta);color:var(--cream);
    font-size:10px;letter-spacing:0.2em;text-transform:uppercase;padding:6px 12px;font-weight:400;
  }
  .product-out-overlay {
    position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    background:rgba(42,31,26,0.5);color:var(--cream);
    font-family:'Cormorant Garamond',serif;font-size:42px;letter-spacing:0.1em;
    font-style:italic;font-weight:300;
  }

  .product-info { padding-top:10px; }
  .product-detail-cat {
    font-size:11px;letter-spacing:0.28em;text-transform:uppercase;color:var(--terracotta);
    font-weight:400;margin-bottom:14px;
  }
  .product-detail-name {
    font-family:'Cormorant Garamond',serif;
    font-size:clamp(34px,3.6vw,48px);font-weight:300;color:var(--deep);
    line-height:1.05;margin-bottom:24px;letter-spacing:0.01em;
  }
  .product-detail-price {
    display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;
    margin-bottom:30px;
  }
  .product-detail-price .current {
    font-family:'Jost',sans-serif;font-size:32px;font-weight:400;
    color:var(--deep);letter-spacing:0.02em;
  }
  .product-detail-price .old {
    font-size:18px;color:var(--blush);text-decoration:line-through;font-weight:300;
  }
  .product-detail-price .discount {
    font-size:11px;letter-spacing:0.18em;text-transform:uppercase;
    background:#fef3c7;color:#92400e;padding:5px 10px;font-weight:400;
  }
  .product-detail-desc {
    font-size:14px;line-height:1.85;color:var(--mid);font-weight:300;margin-bottom:34px;
    white-space:pre-line;
  }

  .product-sizes { margin-bottom:32px; }
  .product-sizes-label {
    font-size:11px;letter-spacing:0.22em;text-transform:uppercase;color:var(--terracotta);
    font-weight:400;margin-bottom:14px;
  }
  .product-sizes-grid { display:flex;gap:10px;flex-wrap:wrap; }
  .size-chip {
    width:54px;height:54px;
    border:1px solid rgba(42,31,26,0.18);background:white;
    font-family:'Jost',sans-serif;font-size:14px;color:var(--deep);font-weight:300;
    cursor:pointer;transition:all 0.18s;
    display:flex;align-items:center;justify-content:center;
  }
  .size-chip:hover:not(.is-disabled):not(.is-active) {
    border-color:var(--terracotta);color:var(--terracotta);
  }
  .size-chip.is-active {
    background:var(--deep);border-color:var(--deep);color:var(--cream);
  }
  .size-chip.is-disabled {
    color:var(--blush);cursor:not-allowed;text-decoration:line-through;opacity:0.55;
  }
  .size-chip.is-low::after {
    content:''; position:absolute; /* low marker is via hint text instead */
  }
  .product-stock-hint {
    margin-top:12px;font-size:12px;color:var(--terracotta);font-weight:400;
    letter-spacing:0.05em;min-height:18px;
  }

  .product-actions {
    display:flex;align-items:stretch;gap:14px;margin-bottom:30px;
  }
  .qty-group {
    display:flex;align-items:center;border:1px solid rgba(42,31,26,0.18);background:white;
  }
  .qty-btn {
    width:42px;height:48px;background:none;border:none;
    font-size:18px;color:var(--deep);cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    transition:background 0.2s,color 0.2s;
  }
  .qty-btn:hover { background:var(--light);color:var(--terracotta); }
  .qty-input {
    width:54px;height:48px;border:none;background:none;text-align:center;
    font-family:'Jost',sans-serif;font-size:14px;color:var(--deep);
    border-left:1px solid rgba(42,31,26,0.12);border-right:1px solid rgba(42,31,26,0.12);
    outline:none;-moz-appearance:textfield;
  }
  .qty-input::-webkit-outer-spin-button, .qty-input::-webkit-inner-spin-button {
    -webkit-appearance:none;margin:0;
  }
  .qty-group-sm .qty-btn { width:32px;height:34px;font-size:14px; }
  .qty-group-sm .qty-input { width:42px;height:34px;font-size:13px; }

  .product-add-btn { flex:1;display:flex;align-items:center;justify-content:center;gap:10px; }
  .product-add-btn:disabled { background:var(--mid);border-color:var(--mid);cursor:not-allowed; }

  .product-add-msg {
    font-size:13px;font-weight:400;letter-spacing:0.02em;min-height:20px;margin-bottom:30px;
  }
  .product-add-msg.is-success { color:#166534; }
  .product-add-msg.is-error { color:#991b1b; }

  .product-meta-list {
    list-style:none;padding:24px;background:var(--light);border-left:3px solid var(--terracotta);
  }
  .product-meta-list li {
    display:flex;align-items:flex-start;gap:12px;font-size:13px;color:var(--mid);
    font-weight:300;line-height:1.6;padding:8px 0;
  }
  .product-meta-list li span { font-size:18px;flex-shrink:0; }

  .product-related { max-width:1280px;margin:100px auto 0;padding-top:60px;border-top:1px solid rgba(42,31,26,0.1); }

  /* ============================================================
     Cart drawer (offcanvas right)
     ============================================================ */
  .cart-drawer {
    position:fixed;inset:0;z-index:1500;
    background:rgba(42,31,26,0);
    pointer-events:none;
    transition:background 0.3s;
  }
  .cart-drawer.is-open { background:rgba(42,31,26,0.5);pointer-events:auto;backdrop-filter:blur(4px); }

  .cart-drawer-panel {
    position:absolute;top:0;right:0;height:100%;width:460px;max-width:92vw;
    background:var(--cream);
    transform:translateX(100%);transition:transform 0.35s cubic-bezier(0.25,0.46,0.45,0.94);
    display:flex;flex-direction:column;
  }
  .cart-drawer.is-open .cart-drawer-panel { transform:translateX(0); }

  .cart-drawer-head {
    padding:32px 32px 20px;border-bottom:1px solid rgba(42,31,26,0.08);position:relative;
  }
  .cart-drawer-eyebrow {
    font-size:10px;letter-spacing:0.3em;text-transform:uppercase;color:var(--terracotta);font-weight:400;
  }
  .cart-drawer-title {
    font-family:'Cormorant Garamond',serif;font-size:32px;font-weight:300;color:var(--deep);
    margin-top:6px;letter-spacing:0.01em;
  }
  .cart-drawer-close {
    position:absolute;top:24px;right:24px;background:none;border:none;
    font-size:20px;color:var(--mid);cursor:pointer;width:36px;height:36px;
    display:flex;align-items:center;justify-content:center;transition:color 0.2s;
  }
  .cart-drawer-close:hover { color:var(--terracotta); }

  .cart-drawer-body { flex:1;overflow-y:auto;padding:24px 32px; }

  .cart-drawer-empty {
    text-align:center;padding:60px 30px;
    font-family:'Cormorant Garamond',serif;font-size:20px;font-style:italic;
    color:var(--mid);font-weight:300;line-height:1.5;
  }

  .cart-list { list-style:none;display:flex;flex-direction:column;gap:24px; }
  .cart-item { display:grid;grid-template-columns:80px 1fr auto;gap:14px;align-items:flex-start; }
  .cart-item-img {
    width:80px;aspect-ratio:1;background:var(--light);
    display:flex;align-items:center;justify-content:center;
    border:1px solid rgba(42,31,26,0.08);overflow:hidden;text-decoration:none;
  }
  .cart-item-img img { width:100%;height:100%;object-fit:cover; }
  .cart-item-info { display:flex;flex-direction:column;gap:6px;min-width:0; }
  .cart-item-name {
    font-family:'Cormorant Garamond',serif;font-size:17px;font-weight:400;color:var(--deep);
    text-decoration:none;line-height:1.2;
  }
  .cart-item-meta { font-size:11px;letter-spacing:0.15em;text-transform:uppercase;color:var(--mid); }
  .cart-item-controls { display:flex;align-items:center;gap:10px;margin-top:6px; }
  .cart-remove {
    background:none;border:none;color:var(--mid);font-size:14px;cursor:pointer;
    width:28px;height:28px;display:flex;align-items:center;justify-content:center;
    transition:color 0.2s;
  }
  .cart-remove:hover { color:#c0392b; }
  .cart-item-total {
    font-size:14px;color:var(--deep);font-weight:400;letter-spacing:0.02em;white-space:nowrap;
  }

  .cart-drawer-foot {
    padding:24px 32px 32px;border-top:1px solid rgba(42,31,26,0.08);background:var(--cream);
  }
  .cart-subtotal-row {
    display:flex;justify-content:space-between;align-items:baseline;
    font-size:13px;letter-spacing:0.12em;color:var(--mid);text-transform:uppercase;font-weight:400;
    margin-bottom:6px;
  }
  .cart-subtotal-row strong {
    font-family:'Cormorant Garamond',serif;font-size:28px;color:var(--deep);font-weight:400;letter-spacing:0;
  }
  .cart-drawer-note { font-size:11px;color:var(--mid);font-weight:300;line-height:1.5;margin-bottom:18px; }
  .cart-checkout-btn { width:100%;display:block;text-align:center;text-decoration:none;margin-bottom:10px; }
  .cart-continue-btn {
    width:100%;background:none;border:1px solid rgba(42,31,26,0.18);
    padding:14px;font-family:'Jost',sans-serif;
    font-size:11px;letter-spacing:0.2em;text-transform:uppercase;color:var(--mid);
    cursor:pointer;transition:all 0.25s;
  }
  .cart-continue-btn:hover { color:var(--terracotta);border-color:var(--terracotta); }

  /* ============================================================
     Cart page (/carrito)
     ============================================================ */
  .cart-page { padding:120px 60px 80px;max-width:1100px;margin:0 auto; }
  .cart-page-header {
    display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:40px;flex-wrap:wrap;gap:20px;
  }
  .cart-page-title {
    font-family:'Cormorant Garamond',serif;font-size:clamp(36px,4vw,56px);font-weight:300;color:var(--deep);
  }
  .cart-page-title em { font-style:italic;color:var(--terracotta); }
  .cart-page-grid { display:grid;grid-template-columns:1.5fr 1fr;gap:50px;align-items:start; }

  .cart-page-list { list-style:none;display:flex;flex-direction:column; }
  .cart-page-list li {
    display:grid;grid-template-columns:120px 1fr auto auto;gap:24px;align-items:center;
    padding:24px 0;border-bottom:1px solid rgba(42,31,26,0.08);
  }
  .cart-page-list .cart-item-img { width:120px; }

  .cart-summary {
    background:var(--cream);border:1px solid rgba(196,113,79,0.15);padding:32px;position:sticky;top:100px;
  }
  .cart-summary h2 {
    font-family:'Cormorant Garamond',serif;font-weight:300;font-size:24px;color:var(--deep);
    margin-bottom:24px;
  }
  .cart-summary-row {
    display:flex;justify-content:space-between;font-size:13px;color:var(--mid);font-weight:300;
    padding:10px 0;
  }
  .cart-summary-row.total {
    border-top:1px solid rgba(42,31,26,0.1);margin-top:10px;padding-top:18px;
    font-size:18px;color:var(--deep);font-weight:400;letter-spacing:0.05em;
  }
  .cart-summary-row.total strong {
    font-family:'Cormorant Garamond',serif;font-size:30px;font-weight:400;letter-spacing:0;
  }

  /* ============================================================
     Mobile / responsive
     ============================================================ */
  @media (max-width:980px) {
    .catalog-hero { padding:100px 24px 24px; }
    .catalog-shell { grid-template-columns:1fr;gap:24px;padding:20px 24px 80px; }
    .catalog-grid { grid-template-columns:repeat(2,1fr) !important; }

    .catalog-filter-toggle {
      display:inline-flex;align-items:center;gap:8px;
      margin:0 24px;padding:12px 24px;
      background:var(--deep);color:var(--cream);
      font-family:'Jost',sans-serif;font-size:11px;letter-spacing:0.18em;text-transform:uppercase;
      border:none;cursor:pointer;font-weight:400;align-self:flex-start;
    }
    .catalog-sidebar {
      position:fixed;inset:0;z-index:1300;
      background:rgba(42,31,26,0);pointer-events:none;
      transition:background 0.3s;
    }
    .catalog-sidebar.open {
      background:rgba(42,31,26,0.55);pointer-events:auto;
    }
    .catalog-sidebar form {
      position:absolute;top:0;left:0;height:100%;width:88%;max-width:380px;
      background:var(--cream);padding:80px 28px 40px;overflow-y:auto;
      transform:translateX(-100%);transition:transform 0.3s;
    }
    .catalog-sidebar.open form { transform:translateX(0); }
    .catalog-sidebar-close {
      display:flex;align-items:center;justify-content:center;
      position:absolute;top:18px;right:18px;width:36px;height:36px;
      background:none;border:1px solid rgba(42,31,26,0.15);font-size:14px;color:var(--mid);cursor:pointer;
      z-index:2;
    }

    .product-detail { padding:90px 20px 40px; }
    .product-detail-grid { grid-template-columns:1fr;gap:30px; }
    .product-gallery { grid-template-columns:1fr; }
    .product-thumbs { flex-direction:row;overflow-x:auto;order:2; }
    .product-thumb { width:64px;flex-shrink:0; }
    .product-main-image { order:1; }

    .product-related { margin-top:60px;padding-top:40px; }

    .cart-page { padding:100px 20px 40px; }
    .cart-page-grid { grid-template-columns:1fr;gap:30px; }
    .cart-summary { position:static; }
    .cart-page-list li { grid-template-columns:80px 1fr;grid-template-areas: 'img info' 'img controls' 'img total'; }
    .cart-page-list .cart-item-img { grid-area:img;width:80px; }

    .nav-actions .nav-phone { display:none; }
  }

  @media (max-width:600px) {
    .catalog-grid { grid-template-columns:1fr !important; }
    .product-detail-grid { gap:24px; }
    .size-chip { width:48px;height:48px;font-size:13px; }
    .cart-drawer-panel { width:100%; }
    .cart-drawer-head, .cart-drawer-body, .cart-drawer-foot { padding-left:20px;padding-right:20px; }
  }

  /* ============================================================
     WhatsApp Floating Action Button
     ============================================================ */
  .wa-fab {
    position: fixed; bottom: 26px; right: 26px; z-index: 1200;
    width: 60px; height: 60px;
    background: #25D366; color: #fff;
    display: flex; align-items: center; justify-content: center;
    border-radius: 50%; text-decoration: none;
    box-shadow: 0 8px 24px rgba(37,211,102,0.4), 0 4px 12px rgba(0,0,0,0.15);
    transition: transform 0.25s, box-shadow 0.25s, background 0.25s;
    cursor: pointer;
  }
  .wa-fab:hover {
    transform: scale(1.08);
    box-shadow: 0 12px 32px rgba(37,211,102,0.5), 0 4px 16px rgba(0,0,0,0.2);
    background: #128C7E;
  }
  .wa-fab::before {
    content: ''; position: absolute; inset: 0; border-radius: 50%;
    background: rgba(37,211,102,0.6);
    animation: waPulse 2.4s ease-out infinite; z-index: -1;
  }
  @keyframes waPulse {
    0%   { transform: scale(1);   opacity: 0.6; }
    70%  { transform: scale(1.5); opacity: 0;   }
    100% { transform: scale(1.5); opacity: 0;   }
  }
  .wa-fab-tooltip {
    position: absolute; right: calc(100% + 14px);
    background: var(--deep); color: var(--cream);
    padding: 8px 14px; font-family: 'Jost', sans-serif;
    font-size: 11px; letter-spacing: 0.15em; text-transform: uppercase;
    white-space: nowrap; opacity: 0; pointer-events: none;
    transform: translateX(8px);
    transition: opacity 0.25s, transform 0.25s;
  }
  .wa-fab-tooltip::after {
    content: ''; position: absolute; right: -6px; top: 50%; transform: translateY(-50%);
    border-left: 6px solid var(--deep);
    border-top: 6px solid transparent; border-bottom: 6px solid transparent;
  }
  .wa-fab:hover .wa-fab-tooltip {
    opacity: 1; transform: translateX(0);
  }

  @media (max-width: 600px) {
    .wa-fab { bottom: 20px; right: 20px; width: 54px; height: 54px; }
    .wa-fab svg { width: 24px; height: 24px; }
    .wa-fab-tooltip { display: none; }
  }

  /* ============================================================
     Checkout form
     ============================================================ */
  .checkout-grid { grid-template-columns:1.4fr 1fr; }
  .checkout-form-col { display:flex;flex-direction:column;gap:20px; }
  .checkout-section-title {
    font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:300;color:var(--deep);
    margin-top:14px;margin-bottom:6px;padding-bottom:10px;
    border-bottom:1px solid rgba(196,113,79,0.15);
  }
  .checkout-section-title:first-child { margin-top:0; }
  .checkout-row { display:grid;grid-template-columns:1fr 1fr;gap:16px; }
  .checkout-row.checkout-row-3 { grid-template-columns:2fr 2fr 1fr; }
  .checkout-field { display:flex;flex-direction:column;gap:6px; }
  .checkout-field textarea.filter-input { resize:vertical;min-height:80px;line-height:1.5; }

  .checkout-summary { padding:28px; }
  .checkout-mini-list { list-style:none;padding:0;margin:0; }

  @media (max-width:980px) {
    .checkout-grid { grid-template-columns:1fr;gap:24px; }
    .checkout-row, .checkout-row.checkout-row-3 { grid-template-columns:1fr; }
  }

/* ============ PROMO POPUP (cartelito de oferta en home) ============ */
.promo-popup {
  position:fixed; right:24px; bottom:24px; z-index:9000;
  width:340px; max-width:calc(100vw - 48px);
  padding:24px 26px 22px;
  color:var(--promo-fg, #2A1F1A);
  font-family:'Jost',sans-serif;
  border:1px solid rgba(0,0,0,0.08);
  box-shadow:0 22px 60px -22px rgba(26,17,13,0.45);
  border-radius:2px;
  opacity:0; transform:translateY(24px);
  transition:opacity 0.55s ease, transform 0.55s ease;
  overflow:hidden;
}
.promo-popup--visible { opacity:1; transform:translateY(0); }
.promo-popup-close {
  position:absolute; top:8px; right:10px;
  background:none; border:none; color:inherit;
  font-size:22px; line-height:1; cursor:pointer;
  opacity:0.55; padding:4px 8px; z-index:2;
  transition:opacity 0.2s;
}
.promo-popup-close:hover { opacity:1; }
.promo-popup-eyebrow {
  position:relative; z-index:1;
  font-size:9px; letter-spacing:0.32em; text-transform:uppercase;
  opacity:0.7; margin-bottom:10px; font-weight:500;
}
.promo-popup-title {
  position:relative; z-index:1;
  font-family:'Cormorant Garamond',serif; font-weight:400;
  font-size:24px; line-height:1.12; margin-bottom:10px;
}
.promo-popup-body {
  position:relative; z-index:1;
  font-size:13px; font-weight:300; line-height:1.55;
  opacity:0.92; margin-bottom:16px;
}
.promo-popup-cta {
  position:relative; z-index:1;
  display:inline-block; font-size:11px; font-weight:400;
  letter-spacing:0.2em; text-transform:uppercase;
  border-bottom:1px solid currentColor; padding-bottom:3px;
  text-decoration:none; color:inherit;
  transition:opacity 0.2s;
}
.promo-popup-cta:hover { opacity:0.7; }

/* Backgrounds */
.promo-bg-solid           { background:var(--promo-bg); }
.promo-bg-gradient-linear { background:linear-gradient(135deg, var(--promo-bg) 0%, var(--promo-bg2) 100%); }
.promo-bg-gradient-radial { background:radial-gradient(circle at 30% 30%, var(--promo-bg2) 0%, var(--promo-bg) 75%); }
.promo-bg-stripes-anim {
  background:repeating-linear-gradient(45deg, var(--promo-bg) 0 20px, var(--promo-bg2) 20px 40px);
  animation:promoStripes 6s linear infinite;
}
.promo-bg-dots-anim {
  background-color:var(--promo-bg);
  background-image:radial-gradient(var(--promo-bg2) 1.8px, transparent 1.8px);
  background-size:18px 18px;
  animation:promoDots 8s linear infinite;
}
.promo-bg-shimmer { background:var(--promo-bg); }
.promo-bg-shimmer::before {
  content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(120deg, transparent 30%, rgba(255,255,255,0.28) 50%, transparent 70%);
  animation:promoShimmer 3.2s ease-in-out infinite;
}

@keyframes promoStripes { from { background-position:0 0; }      to { background-position:56px 0; } }
@keyframes promoDots    { from { background-position:0 0; }      to { background-position:36px 36px; } }
@keyframes promoShimmer { 0% { transform:translateX(-100%); }   100% { transform:translateX(100%); } }

@media (max-width:640px) {
  .promo-popup { right:12px; left:12px; bottom:12px; width:auto; padding:20px 22px 18px; }
  .promo-popup-title { font-size:21px; }
}

/* ============ Páginas legales (Términos, Privacidad) ============ */
.legal-page { max-width:760px; margin:0 auto; padding:80px 32px 100px; }
.legal-title { font-family:'Cormorant Garamond',serif; font-weight:300; font-size:54px; line-height:1; color:var(--deep); margin:14px 0 18px; }
.legal-title em { color:var(--terracotta); font-style:italic; }
.legal-updated { font-size:12px; color:var(--mid); letter-spacing:0.05em; margin-bottom:48px; }
.legal-content { font-family:'Jost',sans-serif; font-size:14px; font-weight:300; line-height:1.85; color:var(--deep); }
.legal-content h2 { font-family:'Cormorant Garamond',serif; font-weight:400; font-size:24px; color:var(--deep); margin:36px 0 14px; letter-spacing:0; }
.legal-content h3 { font-family:'Cormorant Garamond',serif; font-weight:400; font-size:19px; color:var(--deep); margin:26px 0 10px; letter-spacing:0; }
.legal-content p,
.legal-content ul,
.legal-content ol { margin-bottom:18px; }
.legal-content ul, .legal-content ol { padding-left:22px; }
.legal-content li { margin-bottom:6px; }
.legal-content li > ul { margin:8px 0 0; }
.legal-content a { color:var(--terracotta); text-decoration:underline; text-underline-offset:3px; }
.legal-content strong { color:var(--deep); font-weight:500; }

/* Footer · barra inferior con links legales inline */
.footer-bottom-links { font-size:11px; color:rgba(250,246,241,0.4); font-weight:300; letter-spacing:0.05em; margin:0; }
.footer-bottom-links a { color:inherit; text-decoration:none; margin-left:18px; transition:color 0.3s; }
.footer-bottom-links a:hover { color:var(--blush); }

/* Newsletter · disclaimer chico */
.newsletter-disclaimer { font-size:11px; color:rgba(250,246,241,0.5); font-weight:300; letter-spacing:0.03em; line-height:1.7; margin-top:14px; }
.newsletter-disclaimer a { color:var(--blush); text-decoration:none; }
.newsletter-disclaimer a:hover { text-decoration:underline; }

@media (max-width:640px) {
  .legal-page { padding:48px 20px 60px; }
  .legal-title { font-size:38px; }
  .legal-content { font-size:13.5px; }
  .legal-content h2 { font-size:21px; }
  .footer-bottom-links a { margin-left:0; margin-right:14px; }
}