/* GHYRAZ MODA — Components */

/* Promo Banner */
.promo-banner { background:var(--color-text);color:var(--color-pearl);text-align:center;padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wide); }
.promo-banner span { color:var(--color-gold); }

/* Header */
.site-header { position:sticky;top:0;z-index:var(--z-sticky);background:rgba(248,244,236,0.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);transition:box-shadow var(--duration-base) var(--ease-out); }
.site-header.scrolled { box-shadow:var(--shadow-md); }
.header-inner { display:flex;align-items:center;justify-content:space-between;height:80px; }
.logo { display:flex;align-items:center;gap:var(--space-3);font-family:var(--font-serif);font-size:var(--text-xl);font-weight:var(--weight-medium);color:var(--color-text); }
.logo img { height:62px;width:auto;object-fit:contain; }
.logo-text { display:flex;flex-direction:column;line-height:1.2; }
.logo-text small { font-family:var(--font-sans);font-size:9px;letter-spacing:0.13em;font-weight:var(--weight-medium);color:var(--color-text-muted);text-transform:uppercase;margin-top:5px; }
.nav-links { display:flex;align-items:center;gap:var(--space-8); }
.nav-links a { font-size:var(--text-sm);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text);position:relative;padding-bottom:2px;transition:color var(--duration-fast) var(--ease-out); }
.nav-links a::after { content:'';position:absolute;bottom:-2px;left:0;width:0;height:1.5px;background:var(--color-accent);transition:width var(--duration-base) var(--ease-out); }
.nav-links a:hover { color:var(--color-accent); }
.nav-links a:hover::after { width:100%; }
.header-actions { display:flex;align-items:center;gap:var(--space-4); }
.btn-icon { display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:var(--radius-full);color:var(--color-text);transition:background var(--duration-fast),color var(--duration-fast); }
.btn-icon:hover { background:var(--color-rose);color:var(--color-accent); }
.btn-icon svg { width:20px;height:20px;stroke-width:1.5; }
.hamburger { display:none;flex-direction:column;gap:5px;padding:var(--space-2);cursor:pointer; }
.hamburger span { display:block;width:22px;height:1.5px;background:var(--color-text);transition:all var(--duration-base) var(--ease-out);transform-origin:center; }
.hamburger.open span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.hamburger.open span:nth-child(2) { opacity:0;transform:scaleX(0); }
.hamburger.open span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }
.mobile-nav { display:none;flex-direction:column;background:var(--color-pearl);border-top:1px solid var(--color-border);padding:var(--space-6) var(--container-pad);gap:var(--space-5); }
.mobile-nav.open { display:flex; }
.mobile-nav a { font-size:var(--text-base);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text);transition:color var(--duration-fast); }
.mobile-nav a:hover { color:var(--color-accent); }

/* Hero */
.hero { position:relative;width:100%;height:clamp(520px,85vh,820px);overflow:hidden;background:var(--color-text); }
.carousel-slide { position:absolute;inset:0;opacity:0;transition:opacity 750ms cubic-bezier(.65,0,.35,1);will-change:opacity; }
.carousel-slide.active { opacity:1;z-index:1; }
.carousel-slide img { width:100%;height:100%;object-fit:cover;object-position:center top; }
.slide-overlay { position:absolute;inset:0;background:linear-gradient(to left,rgba(58,53,48,.60) 0%,rgba(58,53,48,.35) 38%,rgba(58,53,48,.05) 60%,transparent 75%); }
.hero-content { position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:flex-end;padding-inline:var(--container-pad);max-width:var(--container-max);margin-inline:auto;left:0;right:0; }
.hero-text { max-width:440px;animation:heroFadeIn 1s cubic-bezier(.22,1,.36,1) both; }
.hero-text .eyebrow { font-family:var(--font-sans);font-size:var(--text-xs);font-weight:var(--weight-semi);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-gold);margin-bottom:var(--space-4); }
.hero-text h1 { font-family:var(--font-serif);font-size:clamp(var(--text-3xl),6vw,var(--text-5xl));font-weight:var(--weight-medium);line-height:1.15;color:#fff;letter-spacing:var(--tracking-tight);margin-bottom:var(--space-5); }
.hero-text h1 em { font-style:italic;color:var(--color-rose); }
.hero-text p { font-size:var(--text-lg);color:rgba(248,244,236,.85);line-height:1.4;margin-bottom:var(--space-8); }

.btn-primary { display:inline-flex;align-items:center;gap:var(--space-2);background:var(--color-accent);color:#fff;font-size:var(--text-sm);font-weight:var(--weight-semi);letter-spacing:var(--tracking-wide);text-transform:uppercase;padding:var(--space-4) var(--space-8);border-radius:var(--radius-full);transition:background var(--duration-base),transform var(--duration-fast),box-shadow var(--duration-base);box-shadow:0 4px 18px rgba(217,138,122,.35); }
.btn-primary:hover { background:var(--color-accent-deep);transform:translateY(-2px);box-shadow:0 8px 28px rgba(217,138,122,.45); }
.btn-primary svg { width:16px;height:16px;transition:transform var(--duration-fast); }
.btn-primary:hover svg { transform:translateX(3px); }

.carousel-controls { position:absolute;bottom:var(--space-8);left:50%;transform:translateX(-50%);z-index:3;display:flex;align-items:center;gap:var(--space-3); }
.carousel-dot { width:8px;height:8px;border-radius:var(--radius-full);background:rgba(248,244,236,.45);border:none;cursor:pointer;transition:all var(--duration-base); }
.carousel-dot.active { background:#fff;width:28px; }
.carousel-arrow { position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:46px;height:46px;border-radius:var(--radius-full);background:rgba(248,244,236,.15);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--duration-base); }
.carousel-arrow:hover { background:rgba(248,244,236,.3); }
.carousel-arrow svg { width:20px;height:20px; }
.carousel-arrow.prev { left:var(--space-6); }
.carousel-arrow.next { right:var(--space-6); }
@keyframes heroFadeIn { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }

/* Section headers */
.section-header { text-align:center;margin-bottom:var(--space-12); }
.section-header .tag { display:inline-block;font-size:var(--text-xs);font-weight:var(--weight-semi);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-3); }
.section-header h2 { font-family:var(--font-serif);font-size:clamp(var(--text-2xl),4vw,var(--text-4xl));font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight);color:var(--color-text);line-height:1.15; }
.section-header p { margin-top:var(--space-4);color:var(--color-text-muted);font-size:var(--text-lg);max-width:480px;margin-inline:auto; }

/* Products */
.products-section { padding-block:var(--space-20);background:var(--color-white); }
.products-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6); }
.product-card { display:block;text-decoration:none;color:inherit;position:relative;border-radius:var(--radius-lg);overflow:hidden;background:var(--color-pearl);cursor:pointer;transition:transform var(--duration-base),box-shadow var(--duration-base); }
.product-card:hover { transform:translateY(-6px);box-shadow:var(--shadow-lg); }
.product-card__image-wrap { position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--color-border); }
.product-card__img { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity var(--duration-slow),transform var(--duration-slow); }
.product-card__img.secondary { opacity:0;transform:scale(1.03); }
.product-card:hover .product-card__img.primary { opacity:0; }
.product-card:hover .product-card__img.secondary { opacity:1;transform:scale(1); }
.product-card__badge { position:absolute;top:var(--space-3);left:var(--space-3);background:var(--color-accent);color:#fff;font-size:10px;font-weight:var(--weight-semi);letter-spacing:var(--tracking-wide);text-transform:uppercase;padding:3px 10px;border-radius:var(--radius-full); }
.product-card__quick { position:absolute;bottom:var(--space-4);left:50%;transform:translateX(-50%) translateY(12px);opacity:0;background:rgba(248,244,236,.95);color:var(--color-text);font-size:var(--text-xs);font-weight:var(--weight-semi);letter-spacing:var(--tracking-wide);text-transform:uppercase;padding:var(--space-2) var(--space-5);border-radius:var(--radius-full);white-space:nowrap;backdrop-filter:blur(8px);transition:opacity var(--duration-base),transform var(--duration-base); }
.product-card:hover .product-card__quick { opacity:1;transform:translateX(-50%) translateY(0); }
.product-card__info { padding:var(--space-4) var(--space-5) var(--space-5); }
.product-card__name { font-family:var(--font-serif);font-size:var(--text-lg);font-weight:var(--weight-medium);color:var(--color-text);margin-bottom:var(--space-1); }
.product-card__meta { font-size:var(--text-xs);color:var(--color-text-muted);letter-spacing:var(--tracking-wide);text-transform:uppercase;margin-bottom:var(--space-3); }
.product-card__price { font-size:var(--text-xl);font-weight:var(--weight-semi);color:var(--color-accent); }

/* Trust */
.trust-section { padding-block:var(--space-16);background:var(--color-rose); }
.trust-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8); }
.trust-item { text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--space-4); }
.trust-icon { width:64px;height:64px;border-radius:var(--radius-full);background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);transition:transform var(--duration-base); }
.trust-item:hover .trust-icon { transform:scale(1.08); }
.trust-icon svg { width:28px;height:28px;color:var(--color-accent); }
.trust-item h3 { font-family:var(--font-serif);font-size:var(--text-lg);font-weight:var(--weight-medium);color:var(--color-text); }
.trust-item p { font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.5; }

/* Footer */
.site-footer { background:var(--color-text);color:rgba(248,244,236,.75);padding-top:var(--space-16); }
.footer-grid { display:grid;grid-template-columns:2fr 1fr 1fr;gap:var(--space-12);padding-bottom:var(--space-12);border-bottom:1px solid rgba(255,255,255,.08); }
.footer-brand .logo { color:var(--color-pearl);margin-bottom:var(--space-4); }
.footer-brand p { font-size:var(--text-sm);line-height:1.85;max-width:300px;margin-bottom:var(--space-5); }
/* Logo SVG en footer: invertido a blanco sobre fondo oscuro */
.footer-logo-img { filter:brightness(0) invert(1);opacity:.88; }
/* Dirección física */
.footer-address { font-style:normal;margin-top:var(--space-1); }
.footer-address a { display:flex;align-items:flex-start;gap:var(--space-2);font-size:var(--text-sm);color:rgba(248,244,236,.6);line-height:1.55;transition:color var(--duration-fast); }
.footer-address a:hover { color:var(--color-rose); }
.footer-address svg { width:16px;height:16px;flex-shrink:0;margin-top:2px;stroke:currentColor; }
/* Redes sociales con ícono + texto */
.footer-social-list { display:flex;flex-direction:column;gap:var(--space-3); }
.footer-social-list a { display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:rgba(248,244,236,.65);transition:color var(--duration-fast); }
.footer-social-list a:hover { color:var(--color-rose); }
.footer-social-list svg { width:18px;height:18px;flex-shrink:0; }
/* Lista de contacto */
.footer-contact-list { display:flex;flex-direction:column;gap:var(--space-4); }
/* Botón WhatsApp destacado */
.footer-wa-btn { display:inline-flex;align-items:center;gap:var(--space-2);background:#25D366;color:#fff !important;font-size:var(--text-xs);font-weight:var(--weight-semi);letter-spacing:var(--tracking-wide);text-transform:uppercase;padding:var(--space-2) var(--space-4);border-radius:var(--radius-full);transition:background var(--duration-base),transform var(--duration-fast);box-shadow:0 3px 12px rgba(37,211,102,.25); }
.footer-wa-btn:hover { background:#1ebe5d !important;color:#fff !important;transform:translateY(-1px); }
.footer-wa-btn svg { width:16px;height:16px;flex-shrink:0; }
/* Items de contacto no-clickeables (teléfono) y email */
.footer-contact-item { display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:rgba(248,244,236,.65); }
.footer-contact-item svg { width:16px;height:16px;flex-shrink:0; }
.footer-contact-item a { display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:rgba(248,244,236,.65);transition:color var(--duration-fast); }
.footer-contact-item a:hover { color:var(--color-rose); }
.footer-contact-item a svg { width:16px;height:16px;flex-shrink:0; }
.footer-col h4 { font-size:var(--text-xs);font-weight:var(--weight-semi);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-pearl);margin-bottom:var(--space-5); }
.footer-col a { color:rgba(248,244,236,.65);transition:color var(--duration-fast); }
.footer-col a:hover { color:var(--color-rose); }
.footer-bottom { text-align:center;padding-block:var(--space-6);font-size:var(--text-xs);color:rgba(248,244,236,.35);letter-spacing:var(--tracking-wide); }

/* Modal */
.modal-overlay { position:fixed;inset:0;background:rgba(58,53,48,.6);backdrop-filter:blur(6px);z-index:var(--z-modal);display:flex;align-items:center;justify-content:center;padding:var(--space-6);opacity:0;pointer-events:none;transition:opacity var(--duration-base); }
.modal-overlay.open { opacity:1;pointer-events:auto; }
.modal { background:var(--color-pearl);border-radius:var(--radius-xl);width:100%;max-width:860px;max-height:90vh;overflow-y:auto;display:grid;grid-template-columns:1fr 1fr;transform:scale(.94) translateY(16px);transition:transform var(--duration-base);box-shadow:var(--shadow-lg);position:relative; }
.modal-overlay.open .modal { transform:scale(1) translateY(0); }
.modal-gallery { position:relative;aspect-ratio:3/4;background:var(--color-border);border-radius:var(--radius-xl) 0 0 var(--radius-xl);overflow:hidden; }
.modal-gallery img { width:100%;height:100%;object-fit:cover;position:absolute;inset:0;opacity:0;transition:opacity var(--duration-base); }
.modal-gallery img.active { opacity:1; }
.modal-thumbnails { position:absolute;bottom:var(--space-4);left:50%;transform:translateX(-50%);display:flex;gap:var(--space-2); }
.modal-thumb { width:42px;height:54px;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;opacity:.55;border:2px solid transparent;transition:all var(--duration-fast);flex-shrink:0; }
.modal-thumb.active { opacity:1;border-color:#fff; }
.modal-thumb img { width:100%;height:100%;object-fit:cover; }
.modal-info { padding:var(--space-10) var(--space-8);display:flex;flex-direction:column;justify-content:center; }
.modal-close { position:absolute;top:var(--space-4);right:var(--space-4);width:36px;height:36px;border-radius:var(--radius-full);background:rgba(58,53,48,.08);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--duration-fast);z-index:1; }
.modal-close:hover { background:rgba(58,53,48,.15); }
.modal-close svg { width:18px;height:18px; }
.modal-info .eyebrow { font-size:var(--text-xs);font-weight:var(--weight-semi);letter-spacing:var(--tracking-widest);text-transform:uppercase;color:var(--color-accent);margin-bottom:var(--space-3); }
.modal-info h2 { font-family:var(--font-serif);font-size:var(--text-3xl);font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight);color:var(--color-text);margin-bottom:var(--space-2); }
.modal-price { font-size:var(--text-2xl);font-weight:var(--weight-semi);color:var(--color-accent);margin-bottom:var(--space-6); }
.modal-desc { font-size:var(--text-sm);color:var(--color-text-muted);line-height:1.85;margin-bottom:var(--space-8); }
.btn-whatsapp { display:inline-flex;align-items:center;gap:var(--space-3);background:#25D366;color:#fff;font-size:var(--text-sm);font-weight:var(--weight-semi);letter-spacing:var(--tracking-wide);text-transform:uppercase;padding:var(--space-4) var(--space-8);border-radius:var(--radius-full);transition:background var(--duration-base),transform var(--duration-fast);box-shadow:0 4px 18px rgba(37,211,102,.3); }
.btn-whatsapp:hover { background:#1ebe5d;transform:translateY(-2px); }
.btn-whatsapp svg { width:20px;height:20px; }

/* Cart Icon & Badge */
.cart-icon { position:relative; }
.cart-badge { position:absolute;top:-5px;right:-5px;background:var(--color-accent);color:#fff;font-size:10px;font-weight:var(--weight-semi);min-width:18px;height:18px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;padding:0 4px;opacity:0;transform:scale(0);transition:opacity var(--duration-fast),transform var(--duration-fast);pointer-events:none; }
.cart-badge.visible { opacity:1;transform:scale(1); }

/* Cart Overlay */
.cart-overlay { position:fixed;inset:0;background:rgba(58,53,48,.45);backdrop-filter:blur(4px);z-index:calc(var(--z-modal) - 1);opacity:0;pointer-events:none;transition:opacity var(--duration-base); }
.cart-overlay.open { opacity:1;pointer-events:auto; }

/* Cart Drawer */
.cart-drawer { position:fixed;top:0;right:0;height:100%;width:min(420px,100vw);background:var(--color-pearl);z-index:var(--z-modal);display:flex;flex-direction:column;transform:translateX(100%);transition:transform var(--duration-base) var(--ease-out);box-shadow:-8px 0 40px rgba(58,53,48,.12); }
.cart-drawer.open { transform:translateX(0); }
.cart-drawer__header { display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0; }
.cart-drawer__header h2 { font-family:var(--font-serif);font-size:var(--text-xl);font-weight:var(--weight-medium);color:var(--color-text); }
.cart-close { width:36px;height:36px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;color:var(--color-text-muted);transition:background var(--duration-fast),color var(--duration-fast); }
.cart-close:hover { background:var(--color-rose);color:var(--color-accent); }
.cart-close svg { width:18px;height:18px; }

/* Cart Items list */
.cart-items { flex:1;overflow-y:auto;padding:var(--space-4) var(--space-6); }
.cart-item { display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) 0;border-bottom:1px solid var(--color-border); }
.cart-item__img { width:64px;height:80px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0;background:var(--color-border); }
.cart-item__info { flex:1;min-width:0; }
.cart-item__name { font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);margin-bottom:var(--space-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.cart-item__price { font-size:var(--text-sm);color:var(--color-accent);font-weight:var(--weight-semi); }
.cart-item__price span { color:var(--color-text-muted);font-weight:var(--weight-normal);margin-left:var(--space-1); }
.cart-item__remove { width:30px;height:30px;border-radius:var(--radius-full);border:none;background:transparent;cursor:pointer;color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--duration-fast),color var(--duration-fast); }
.cart-item__remove:hover { background:var(--color-rose);color:var(--color-accent); }
.cart-item__remove svg { width:14px;height:14px; }

/* Empty state */
.cart-empty { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-16) var(--space-6);text-align:center;color:var(--color-text-muted); }
.cart-empty svg { width:56px;height:56px;opacity:.3; }
.cart-empty p { font-family:var(--font-serif);font-size:var(--text-lg);color:var(--color-text); }
.cart-empty span { font-size:var(--text-sm); }

/* Footer del drawer */
.cart-drawer__footer { padding:var(--space-5) var(--space-6);border-top:1px solid var(--color-border);flex-shrink:0;background:var(--color-pearl); }
.cart-subtotal { display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4);font-size:var(--text-sm);color:var(--color-text-muted); }
#cart-subtotal-val { font-size:var(--text-xl);font-weight:var(--weight-semi);color:var(--color-text); }
.cart-wa-btn { display:flex;align-items:center;justify-content:center;gap:var(--space-2);background:#25D366;color:#fff;font-size:var(--text-xs);font-weight:var(--weight-semi);letter-spacing:var(--tracking-wide);text-transform:uppercase;padding:var(--space-4) var(--space-6);border-radius:var(--radius-full);text-decoration:none;transition:background var(--duration-base),transform var(--duration-fast);box-shadow:0 4px 18px rgba(37,211,102,.3);width:100%; }
.cart-wa-btn:hover { background:#1ebe5d;transform:translateY(-2px); }
.cart-wa-btn svg { width:20px;height:20px;flex-shrink:0; }

/* Responsive */
@media(max-width:1024px){.products-grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media(max-width:768px){
  .nav-links{display:none}
  .hamburger{display:flex}
  .hero{
    height: auto;
    aspect-ratio: 2752 / 1536;
  }
  .carousel-slide img {
    object-fit: cover;
    object-position: center center;
  }
  .hero-content {
    padding-inline: var(--space-4);
  }
  .hero-text {
    max-width: 48%;
  }
  .hero-text .eyebrow {
    font-size: 8px;
    margin-bottom: 4px;
  }
  .hero-text h1 {
    font-size: clamp(1rem, 3.8vw, 1.5rem);
    margin-bottom: 6px;
    line-height: 1.2;
  }
  .hero-text p {
    display: none;
  }
  .hero-text .btn-primary {
    padding: 6px 12px;
    font-size: 9px;
    box-shadow: none;
  }
  .hero-text .btn-primary svg {
    width: 8px;
    height: 8px;
  }
  .trust-grid{grid-template-columns:1fr;gap:var(--space-6)}
  .modal{grid-template-columns:1fr;max-width:400px}
  .modal-gallery{aspect-ratio:1;border-radius:var(--radius-xl) var(--radius-xl) 0 0}
  .carousel-arrow{display:none}
}
@media(max-width:480px){.products-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-4)}.footer-grid{grid-template-columns:1fr}}
