/* CSS consolidado: estilos base antes de los estilos actuales. */
    *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
    [hidden] { display: none !important; }
    html { scroll-behavior: smooth; }
    body {
      font-family: 'Inter', sans-serif;
      background: #faf9f7;
      color: #2d2d2d;
      line-height: 1.5;
      -webkit-font-smoothing: antialiased;
      padding-bottom: 120px;
    }
    .home-arranging body{visibility:hidden}
    .container { max-width: 640px; margin: 0 auto; padding: 0 20px; }

    .hero {
      background: #FBEEDE;
      padding: 40px 20px 40px;
      text-align: center;
      position: relative;
      overflow: hidden;
    }
    .hero::after {
      content: '';
      position: absolute;
      bottom: 0; left: 0; right: 0;
      height: 30px;
      background: #faf9f7;
      border-radius: 30px 30px 0 0;
    }
    .hero-logo {
      width: 220px; max-width: 80%;
      height: auto;
      border-radius: 14px;
      border: none;
      margin: 0 auto 8px;
      background: #FBEEDE;
      display: block;
    }
    .hero-logo-link { display: block; cursor: pointer; text-decoration: none; }
    .hero h1 {
      font-family: 'Playfair Display', serif;
      font-size: 2.5rem;
      font-weight: 700;
      color: #5B5C33;
      letter-spacing: -0.5px;
    }
    .hero p {
      color: #5B5C33;
      font-size: 1rem;
      margin-top: 6px;
      font-weight: 400;
    }
    .hero-tag {
      display: inline-block;
      background: #e8e3d0;
      color: #5B5C33;
      padding: 4px 16px;
      border-radius: 20px;
      font-size: 0.85rem;
      margin-top: 10px;
    }

    .info-bar {
      display: flex;
      justify-content: center;
      gap: 24px;
      padding: 20px 0 8px;
      flex-wrap: wrap;
    }
    .info-bar a {
      color: #5B5C33;
      text-decoration: none;
      font-size: 0.9rem;
      font-weight: 500;
      display: flex;
      align-items: center;
      gap: 6px;
      transition: opacity 0.2s;
    }
    .info-bar a:hover { opacity: 0.7; }
    .info-bar svg { width: 18px; height: 18px; fill: currentColor; }

    .section { padding: 32px 0; }
    .section-title {
      font-family: 'Playfair Display', serif;
      font-size: 1.6rem;
      font-weight: 700;
      color: #5B5C33;
      margin-bottom: 4px;
      display: flex;
      align-items: center;
      gap: 8px;
      cursor: pointer;
      user-select: none;
    }
    .section-title::after {
      content: '';
      flex: 1;
      height: 1px;
      background: linear-gradient(to right, #BD852E80, transparent);
    }
    .section-toggle {
      font-size: 1.2rem;
      color: #BD852E;
      transition: transform 0.25s ease;
      display: inline-block;
      flex-shrink: 0;
    }
    .section-toggle.open { transform: rotate(45deg); }
    .section-body {
      overflow: hidden;
      max-height: 0;
      transition: max-height 0.35s ease, opacity 0.25s ease;
      opacity: 0;
    }
    .section-body.open {
      max-height: 5000px;
      opacity: 1;
    }

    .subcat { margin-bottom: 24px; }
    .subcat:last-child { margin-bottom: 0; }
    .subcat-title {
      font-size: 1.05rem;
      font-weight: 600;
      color: #BD852E;
      margin-bottom: 8px;
      display: flex;
      align-items: center;
      gap: 8px;
    }
    .subcat-title .dot {
      width: 6px; height: 6px;
      border-radius: 50%;
      background: #BD852E;
      display: inline-block;
      flex-shrink: 0;
    }

    .menu-items { display: flex; flex-direction: column; gap: 2px; }
    .menu-item {
      display: flex;
      flex-wrap: wrap;
      justify-content: space-between;
      align-items: center;
      padding: 10px 12px;
      background: #fff;
      border-radius: 10px;
      gap: 8px;
      transition: box-shadow 0.15s;
    }
    .menu-item:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.06); }
    .menu-item-info { flex: 1; min-width: 0; }
    .menu-item-name { font-weight: 500; font-size: 0.95rem; color: #2d2d2d; }
    .menu-item-desc { font-size: 0.8rem; color: #888; margin-top: 2px; }
    .item-thumb {
      width: 48px; height: 48px;
      object-fit: cover;
      border-radius: 8px;
      flex-shrink: 0;
      background: #f0f0eb;
    }
    .menu-item-nostock {
      font-size: 0.7rem; color: #c62828; font-weight: 600;
      background: #fbe9e7; padding: 2px 8px; border-radius: 10px;
      display: inline-block; margin-top: 2px;
    }
    .menu-item.out { opacity: 0.5; pointer-events: none; }

    .menu-item-actions {
      display: flex;
      align-items: center;
      gap: 6px;
      flex-shrink: 0;
    }
    .price-tag {
      font-size: 0.85rem;
      font-weight: 600;
      color: #5B5C33;
      white-space: nowrap;
      display: inline-flex;
      align-items: center;
      gap: 4px;
    }
    .price-tag small {
      font-weight: 400;
      font-size: 0.7rem;
      color: #999;
    }
    .btn-add {
      width: 28px; height: 28px;
      border: none;
      border-radius: 50%;
      background: #5B5C33;
      color: #fff;
      font-size: 1rem;
      font-weight: 600;
      cursor: pointer;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      transition: background 0.15s, transform 0.1s;
      flex-shrink: 0;
      line-height: 1;
    }
    .btn-add:active { transform: scale(0.9); }
    .btn-add:hover { background: #4a4b2a; }
    .btn-add-sm { width: 22px; height: 22px; font-size: 0.8rem; }

    .size-options {
      display: flex;
      align-items: center;
      gap: 4px;
    }
    .size-option {
      display: inline-flex;
      align-items: center;
      gap: 2px;
    }

    .pizza-builder {
      flex: 0 0 100%;
      margin-top: 8px;
      border-top: 1px solid #f0f0f0;
      padding-top: 10px;
    }
    .pizza-section { margin-bottom: 8px; }
    .pizza-section-title { font-size: 0.75rem; color: #999; margin-bottom: 4px; text-transform: uppercase; letter-spacing: 0.5px; }
    .pizza-option {
      display: flex;
      align-items: center;
      gap: 6px;
      padding: 6px 8px;
      border-radius: 8px;
      cursor: pointer;
      font-size: 0.85rem;
      transition: background 0.1s;
    }
    .pizza-option:hover { background: #f9f9f9; }
    .pizza-option input { accent-color: #5B5C33; }
    .pizza-option .pizza-price { margin-left: auto; font-weight: 600; color: #5B5C33; }
    .pizza-total {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 8px 0;
      font-size: 0.9rem;
      font-weight: 600;
    }
    .pizza-total-price { color: #5B5C33; font-size: 1rem; }
    .btn-add-pizza {
      width: 100%;
      padding: 10px;
      border: none;
      border-radius: 10px;
      background: #5B5C33;
      color: #fff;
      font-size: 0.9rem;
      font-weight: 600;
      cursor: pointer;
      transition: background 0.15s;
    }
    .btn-add-pizza:hover { background: #4a4b2a; }

    .line-item {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 10px 12px;
      background: #fff;
      border-radius: 10px;
    }
    .line-item + .line-item { margin-top: 6px; }
    .line-item-name { font-weight: 500; font-size: 0.95rem; }
    .line-item.out { opacity: 0.5; pointer-events: none; }

    .extras-row {
      display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px;
    }
    .extras-title {
      flex: 0 0 100%; margin: 3px 0 4px; color: #6b6c42;
      font-size: 0.72rem; font-weight: 750;
    }
    .extra-chip {
      display: inline-flex; align-items: center; gap: 3px;
      background: #f5f5f0; padding: 2px 10px; border-radius: 12px;
      font-size: 0.75rem; color: #5B5C33; cursor: pointer;
      border: 1px solid #e0e0d8; transition: all 0.15s; user-select: none;
    }
    .extra-chip input { display: none; }
    .extra-chip:has(input:checked) {
      background: #5B5C33; color: #fff; border-color: #5B5C33;
    }
    .extra-chip.extra-none { border-color: transparent; background: transparent; opacity: 0.4; }
    .extra-chip.extra-none:has(input:checked) { opacity: 0.7; background: #e0e0d8; color: #666; border-color: #ddd; }
    .cart-item-extras { color: #BD852E; font-size: 0.75rem; }

    .cart-overlay {
      display: none;
      position: fixed;
      top: 0; left: 0; right: 0; bottom: 0;
      background: rgba(0,0,0,0.4);
      z-index: 200;
    }
    .cart-overlay.open { display: block; }

    .cart-panel {
      position: fixed;
      bottom: 0; left: 0; right: 0;
      max-height: 80vh;
      background: #fff;
      border-radius: 20px 20px 0 0;
      z-index: 201;
      transform: translateY(100%);
      transition: transform 0.3s cubic-bezier(0.32,0.72,0,1);
      display: flex;
      flex-direction: column;
      box-shadow: 0 -8px 40px rgba(0,0,0,0.12);
    }
    .cart-panel.open { transform: translateY(0); }
    .cart-handle {
      width: 36px; height: 4px;
      background: #ddd;
      border-radius: 4px;
      margin: 10px auto 4px;
      flex-shrink: 0;
    }
    .cart-header {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 8px 20px 12px;
      border-bottom: 1px solid #f0f0f0;
      flex-shrink: 0;
    }
    .cart-header h3 {
      font-family: 'Playfair Display', serif;
      font-size: 1.2rem;
      color: #5B5C33;
    }
    .cart-close {
      background: none;
      border: none;
      font-size: 1.5rem;
      color: #999;
      cursor: pointer;
      padding: 4px;
      line-height: 1;
    }
    .cart-items {
      flex: 1;
      overflow-y: auto;
      padding: 12px 20px;
    }
    .cart-empty {
      text-align: center;
      color: #bbb;
      padding: 40px 0;
      font-size: 0.9rem;
    }
    .cart-item {
      display: flex;
      align-items: center;
      gap: 10px;
      padding: 8px 0;
      border-bottom: 1px solid #f5f5f5;
    }
    .cart-item-info { flex: 1; min-width: 0; }
    .cart-item-name { font-size: 0.9rem; font-weight: 500; }
    .cart-item-size { font-size: 0.75rem; color: #999; }
    .cart-item-price { font-size: 0.85rem; font-weight: 600; color: #5B5C33; flex-shrink: 0; }
    .cart-qty {
      display: flex;
      align-items: center;
      gap: 6px;
      flex-shrink: 0;
    }
    .cart-qty-btn {
      width: 26px; height: 26px;
      border: 1px solid #ddd;
      border-radius: 50%;
      background: #fff;
      color: #555;
      font-size: 0.85rem;
      font-weight: 600;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: background 0.15s;
    }
    .cart-qty-btn:hover { background: #f5f5f5; }
    .cart-qty-num { font-size: 0.9rem; font-weight: 600; min-width: 16px; text-align: center; }
    .cart-item-remove {
      background: none;
      border: none;
      color: #ccc;
      cursor: pointer;
      font-size: 1.1rem;
      padding: 0 2px;
      transition: color 0.15s;
    }
    .cart-item-remove:hover { color: #e74c3c; }

    .cart-footer {
      padding: 12px 20px 20px;
      border-top: 1px solid #f0f0f0;
      flex-shrink: 0;
    }
    .cart-total {
      display: flex;
      justify-content: space-between;
      font-size: 1rem;
      font-weight: 600;
      color: #2d2d2d;
      margin-bottom: 8px;
    }
    .cart-total span:last-child { color: #5B5C33; }

    .cart-form {
      display: flex;
      flex-direction: column;
      gap: 8px;
      margin-bottom: 10px;
    }
    .cart-form input {
      padding: 10px 14px;
      border: 1px solid #ddd;
      border-radius: 10px;
      font-family: 'Inter', sans-serif;
      font-size: 0.9rem;
      outline: none;
      transition: border-color 0.15s;
      background: #fafafa;
    }
    .cart-form input:focus { border-color: #5B5C33; }
    .cart-form input.error { border-color: #d32f2f; background: #fff5f5; }
    .field-error {
      font-size: 0.75rem; color: #d32f2f; margin-top: -6px; display: none;
    }
    .field-error.show { display: block; }

    .marquee-wrap {
      overflow: hidden; background: #5B5C33; padding: 12px 0; margin: 0;
    }
    .marquee-text {
      display: inline-block; white-space: nowrap;
      font-family: 'Playfair Display', serif;
      font-size: 1.1rem; color: #FBEEDE; letter-spacing: 0.02em;
      animation: marquee 10s linear infinite;
    }
    @keyframes marquee {
      0% { transform: translateX(100vw); }
      100% { transform: translateX(-100%); }
    }

    .btn-whatsapp {
      width: 100%;
      padding: 14px;
      border: none;
      border-radius: 12px;
      background: #25D366;
      color: #fff;
      font-family: 'Inter', sans-serif;
      font-size: 1rem;
      font-weight: 600;
      cursor: pointer;
      transition: background 0.15s, transform 0.1s;
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
    }
    .btn-whatsapp:hover { background: #20bd5a; }
    .btn-whatsapp:active { transform: scale(0.98); }
    .btn-whatsapp svg { width: 20px; height: 20px; fill: #fff; }
    .btn-whatsapp:disabled {
      background: #ccc;
      cursor: not-allowed;
      transform: none;
    }

    .cart-bar {
      position: fixed;
      bottom: 0; left: 0; right: 0;
      z-index: 150;
      background: #5B5C33;
      color: #fff;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 12px 20px;
      cursor: pointer;
      transition: background 0.2s;
      box-shadow: 0 -4px 20px rgba(0,0,0,0.15);
    }
    .cart-bar:active { background: #4a4b2a; }
    .cart-bar-info { display: flex; align-items: center; gap: 10px; }
    .cart-bar-icon {
      width: 36px; height: 36px;
      border-radius: 50%;
      background: rgba(255,255,255,0.15);
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
    }
    .cart-bar-icon svg { width: 20px; height: 20px; fill: #fff; }
    .cart-bar-count {
      position: absolute;
      top: -4px; right: -4px;
      background: #BD852E;
      color: #fff;
      font-size: 0.65rem;
      font-weight: 700;
      min-width: 18px; height: 18px;
      border-radius: 10px;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0 4px;
    }
    .cart-bar-text { font-size: 0.85rem; }
    .cart-bar-text strong { font-size: 0.95rem; }
    .cart-bar-total {
      font-size: 1rem;
      font-weight: 700;
      color: #BD852E;
    }

    .notification {
      position: fixed;
      top: 20px;
      left: 50%;
      transform: translateX(-50%) translateY(-80px);
      background: #5B5C33;
      color: #fff;
      padding: 10px 20px;
      border-radius: 12px;
      font-size: 0.85rem;
      font-weight: 500;
      z-index: 300;
      transition: transform 0.3s cubic-bezier(0.32,0.72,0,1);
      box-shadow: 0 4px 16px rgba(0,0,0,0.15);
      pointer-events: none;
    }
    .notification.show { transform: translateX(-50%) translateY(0); }

    .loading-menu {
      text-align: center; padding: 40px 0; color: #bbb; font-size: 0.9rem;
    }

    .page-layout {
      display: flex;
      justify-content: center;
      align-items: flex-start;
      gap: 60px;
      padding: 40px 40px 0;
      margin: 0 auto;
    }

    @media (max-width: 480px) {
      .hero { padding: 24px 0 32px; }
      .hero h1 { font-size: 2rem; }
      .hero-logo { width: 100%; max-width: 100%; border-radius: 0; }
      .section { padding: 24px 0; }
      .section-title { font-size: 1.35rem; }
      .menu-item, .line-item { padding: 10px 10px; }
      .size-options { flex-direction: column; gap: 6px; }
      .size-option { width: 100%; justify-content: space-between; }
      .price-tag { font-size: 0.85rem; }
      .price-tag small { font-size: 0.7rem; }
      .btn-add { width: 28px; height: 28px; font-size: 1rem; }
    }
.price-popup-backdrop{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:20px;background:rgba(43,44,24,.34);backdrop-filter:blur(5px);opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.price-popup-backdrop.is-visible{opacity:1;visibility:visible}.price-popup{position:relative;width:min(430px,100%);padding:34px 30px 28px;overflow:hidden;border:1px solid rgba(91,92,51,.17);border-radius:26px;background:linear-gradient(145deg,#fffaf4,#f9ead8);color:#3e4021;text-align:center;box-shadow:0 25px 70px rgba(45,46,25,.28);transform:translateY(24px) scale(.94);transition:transform .38s cubic-bezier(.2,.9,.25,1.15)}.price-popup-backdrop.is-visible .price-popup{transform:translateY(0) scale(1);animation:pricePopupShake .55s .45s ease-in-out}.price-popup:before,.price-popup:after{content:'\2726';position:absolute;color:#bd852e;opacity:.6;font-size:22px}.price-popup:before{top:20px;left:24px}.price-popup:after{right:25px;bottom:22px;font-size:15px}.price-popup-badge{display:inline-flex;align-items:center;gap:7px;margin-bottom:13px;padding:7px 13px;border-radius:999px;background:#f1e2cb;color:#704811;font-size:.72rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase}.price-popup h2{margin:0 0 9px;font:600 clamp(1.8rem,6vw,2.35rem)/1.08 'Playfair Display',serif}.price-popup p{max-width:320px;margin:0 auto 22px;color:#67684e;font-size:.98rem;line-height:1.55}.price-popup-action{display:flex;justify-content:center;align-items:center;gap:10px;width:100%;min-height:52px;border-radius:999px;background:#5b5c33;color:#fff;text-decoration:none;font-weight:700;box-shadow:0 10px 24px rgba(91,92,51,.23);transition:transform .2s ease,background .2s ease}.price-popup-action:hover{transform:translateY(-2px);background:#484a28}.price-popup-close{position:absolute;top:12px;right:12px;width:36px;height:36px;border:0;border-radius:50%;background:rgba(91,92,51,.09);color:#5b5c33;font-size:22px;cursor:pointer}@keyframes pricePopupShake{0%,100%{transform:translateX(0) scale(1)}20%{transform:translateX(-7px) rotate(-1deg)}40%{transform:translateX(6px) rotate(1deg)}60%{transform:translateX(-3px)}80%{transform:translateX(2px)}}@media(max-width:480px){.price-popup-backdrop{align-items:end;padding:12px}.price-popup{padding:30px 22px 22px;border-radius:24px}}@media(prefers-reduced-motion:reduce){.price-popup-backdrop.is-visible .price-popup{animation:none}}

.business-date-help { display:block; margin:-5px 0 10px; color:#62594d; font-size:.72rem; line-height:1.35; }
    /* Performance: only opacity and transform are animated. */
    .hero-visual::before{animation:heroLoadingPulse 1.2s ease-in-out infinite;background-position:center}
    @keyframes heroLoadingPulse{0%,100%{opacity:.35}50%{opacity:.72}}
    .price-popup-backdrop{visibility:visible;pointer-events:none;transition:opacity .3s ease}
    .price-popup-backdrop.is-visible{pointer-events:auto}
    .price-popup{transition:none;will-change:transform}
    .price-popup{background:var(--popup-background,linear-gradient(145deg,#fffaf4,#f9ead8));color:var(--popup-text,#3e4021)}
    .price-popup p{color:inherit;opacity:.78}
    .price-popup-action{background:var(--popup-button,#5b5c33)}
    .price-popup-backdrop.is-visible .price-popup{animation:pricePopupEnter .7s cubic-bezier(.2,.85,.25,1)}
    .price-popup-backdrop.no-animation.is-visible .price-popup{animation:none;transform:translateY(0) scale(1)}
    @keyframes pricePopupEnter{0%{transform:translateY(24px) scale(.94)}45%{transform:translateX(-5px) scale(1)}65%{transform:translateX(4px)}82%{transform:translateX(-2px)}100%{transform:translateX(0) scale(1)}}

/* Estilos evolutivos del sitio. */
:root {
  --olive: #5b5c33;
  --olive-dark: #3e4021;
  --cream: #f5dcc0;
  --paper: #fffaf3;
  --gold: #bd852e;
  --ink: #25251b;
  --muted: #756f64;
  --line: rgba(91, 92, 51, .17);
}

html { scroll-padding-top: 96px; }
html { touch-action: pan-x pan-y; }
body { background: var(--paper); color: var(--ink); padding-bottom: 92px; overflow-x: hidden; }
.container { max-width: 820px; padding: 0; }

.top-nav {
  height: 82px; padding: 0 clamp(22px, 5vw, 78px); display: flex; align-items: center;
  justify-content: space-between; position: sticky; top: 0; z-index: 140;
  background: #f9ead8; border-bottom: 1px solid var(--line);
}
.nav-brand img { display:block; width:112px; height:58px; object-fit:contain; object-position:center; border-radius:0; }
.nav-links { display: flex; gap: 34px; }
.nav-links a { color: var(--olive-dark); text-decoration: none; font-size: .86rem; font-weight: 600; }
.nav-links a:hover { color: var(--gold); }
.nav-actions { display:flex; align-items:center; gap:10px; }
.nav-order-status {
  display:inline-flex; align-items:center; gap:7px; padding:10px 15px; color:var(--olive-dark);
  background:rgba(255,255,255,.46); border:1px solid rgba(91,92,51,.22); border-radius:999px;
  text-decoration:none; font-size:.78rem; font-weight:700; transition:background-color .2s ease,border-color .2s ease,color .2s ease,transform .2s ease;
}
.nav-order-status span[aria-hidden="true"] { font-size:1.05rem; line-height:1; }
.nav-order-status:hover { background:#fffaf3; border-color:var(--gold); transform:translateY(-2px); }
.status-label-mobile { display:none; }
.nav-cta, .primary-cta { background: var(--hero-button, var(--olive)); color: white; text-decoration: none; border-radius: 999px; font-weight: 600; }
.nav-cta { padding: 12px 20px; font-size: .82rem; }
.nav-cta:hover, .primary-cta:hover { background: var(--olive-dark); transform: translateY(-2px); }

.hero {
  min-height: calc(100vh - 82px); background: var(--hero-bg, var(--cream)); padding: clamp(44px, 7vw, 100px) clamp(24px, 7vw, 110px);
  display: grid; grid-template-columns: minmax(0, .92fr) minmax(390px, .78fr); gap: clamp(44px, 8vw, 130px);
  align-items: center; text-align: left; overflow: visible;
}
.hero::before { content: ''; position: absolute; width: 420px; height: 420px; border: 1px solid rgba(189,133,46,.22); border-radius: 50%; left: -240px; top: 18%; }
.hero::after { display: none; }
.hero-sparkles { position:absolute; inset:0; z-index:1; overflow:hidden; pointer-events:none; }
.hero-sparkle { position:absolute; left:var(--sparkle-x); top:var(--sparkle-y); width:var(--sparkle-size); height:var(--sparkle-size); color:var(--hero-accent,var(--gold)); opacity:0; will-change:transform,opacity; animation:sparkleDrip var(--sparkle-speed) cubic-bezier(.35,.02,.48,1) var(--sparkle-delay) infinite; filter:drop-shadow(0 3px 5px rgba(189,133,46,.22)); }
.hero-sparkle::before, .hero-sparkle::after { content:''; position:absolute; left:50%; top:50%; background:currentColor; border-radius:999px; transform:translate(-50%,-50%); }
.hero-sparkle::before { width:18%; height:100%; }
.hero-sparkle::after { width:100%; height:18%; }
.hero-sparkle.sparkle-dot { border-radius:50%; background:currentColor; }
.hero-sparkle.sparkle-dot::before, .hero-sparkle.sparkle-dot::after { display:none; }
.hero-sparkle.sparkle-drop { background:currentColor; border-radius:54% 46% 58% 42% / 38% 40% 60% 62%; transform-origin:50% 75%; }
.hero-sparkle.sparkle-drop::before { display:none; }
.hero-sparkle.sparkle-drop::after { width:28%; height:28%; left:36%; top:28%; background:rgba(255,255,255,.72); border-radius:50%; }
.hero-sparkle.sparkle-star { filter:drop-shadow(0 0 7px rgba(189,133,46,.36)); }
@keyframes sparkleDrip {
  0% { opacity:0; transform:translate3d(0,-26px,0) rotate(-8deg) scale(.5,.65); }
  12% { opacity:.28; }
  28% { opacity:.78; transform:translate3d(var(--sparkle-drift-soft),2px,0) rotate(2deg) scale(.92,1.08); }
  58% { opacity:.72; transform:translate3d(var(--sparkle-drift-mid),42px,0) rotate(-3deg) scale(1,.94); }
  82% { opacity:.35; }
  100% { opacity:0; transform:translate3d(var(--sparkle-drift),86px,0) rotate(6deg) scale(.72,1.12); }
}
.hero-copy { max-width: 690px; position: relative; z-index: 2; }
.eyebrow { display: block; color: var(--hero-text-accent, #79501b); text-transform: uppercase; letter-spacing: .19em; font-size: .72rem; font-weight: 700; margin-bottom: 18px; }
.hero h1 { font-family: 'Playfair Display', serif; color: var(--hero-title, var(--olive-dark)); font-size: clamp(3.15rem, 6vw, 6.6rem); line-height: .94; letter-spacing: -.055em; max-width: 880px; }
.hero h1 em { color: var(--hero-text-accent, #79501b); font-weight: 400; }
.hero-lead { color: #5f5b50 !important; max-width: 600px; font-size: clamp(1rem, 1.25vw, 1.22rem) !important; line-height: 1.7; margin-top: 28px !important; }
.hero-actions { display: flex; align-items: center; gap: 20px; margin-top: 34px; flex-wrap: wrap; }
.primary-cta { padding: 16px 24px; display: inline-flex; gap: 24px; transition: background-color .25s ease, transform .25s ease; }
.primary-cta span { font-size: 1.1rem; }
.secondary-cta { color: var(--olive-dark); font-weight: 600; text-underline-offset: 5px; }
.hero-proof { border-top: 1px solid rgba(91,92,51,.2); margin-top: 46px; padding-top: 22px; display: flex; flex-wrap: wrap; gap: 18px 32px; color: #4d4e37; font-size: .78rem; }
.hero-proof strong { color: var(--hero-title, var(--olive-dark)); }
.hero-visual { position: relative; align-self: stretch; min-height: 570px; }
.hero-visual::before { display:none; }
.hero-visual.hero-visual-loading::before { opacity:1; }
.hero-visual.hero-visual-loading .hero-float-img { opacity:0; }
.hero-main-img,.hero-float-img { transition:opacity .45s ease; }
.category-feature-button{width:max-content;margin-top:14px;padding:11px 17px;display:inline-flex;border-radius:999px;background:#5b5c33;color:#fff!important;text-decoration:none;font-size:.78rem;font-weight:800}
@keyframes heroLoadingPulse { 0%,100%{opacity:.32} 50%{opacity:.68} }
.hero-main-img { width: 88%; height: 90%; object-fit: cover; object-position:center; border-radius: 220px 220px 24px 24px; position: absolute; left: 50%; right: auto; top: 0; transform: translateX(-50%); box-shadow: none; }
.hero-float-img { position:absolute; width:clamp(190px,20vw,320px); height:clamp(190px,20vw,320px); aspect-ratio:1/1; object-fit:cover; object-position:center; border:9px solid var(--hero-bg,var(--cream)); border-radius:50%; left:-2%; bottom:2%; box-shadow:0 16px 45px rgba(72,53,25,.22),0 0 0 1px rgba(91,92,51,.08); }
.hero-stamp { position: absolute; right: -3%; bottom: 0; width: 118px; height: 118px; border-radius: 50%; background: var(--hero-accent, var(--gold)); color: #fff8ed; display: grid; place-content: center; text-align: center; transform: rotate(8deg); font-family: 'Playfair Display', serif; line-height: 1.1; font-size: .83rem; box-shadow: 0 12px 30px rgba(130,86,27,.24); }
.hero-stamp strong { font-size: 1.05rem; }

.marquee-wrap { background: var(--olive); height: 46px; display: flex; align-items: center; overflow: hidden; }
.marquee-text { color: #fff8ed; background: transparent; padding: 0; white-space: nowrap; font-size: .7rem; letter-spacing: .2em; animation-duration: 20s; }

.story-strip { max-width: 1280px; margin: 0 auto; padding: 110px 48px 90px; display: grid; grid-template-columns: .8fr 1.2fr; gap: 100px; align-items: end; }
.story-strip,.about-section,.occasion-section,.favorites-section,.boxes-section,.build-box-section,.trust-band,.business-section,.testimonials-section,.review-submit-section{content-visibility:auto;contain-intrinsic-size:auto 680px}
.catalog-layout .section{content-visibility:auto;contain-intrinsic-size:auto 360px}
.story-intro h2, .catalog-heading h2 { font-family: 'Playfair Display', serif; color: var(--olive-dark); font-size: clamp(2.3rem, 4vw, 4.2rem); line-height: 1.05; letter-spacing: -.035em; }
.story-intro p, .catalog-heading p { color: #565348; font-size: .98rem; line-height: 1.75; margin-top: 18px; max-width: 570px; }
.steps article>span,.occasion-number,.trust-band article>span{color:#79501b!important}
.steps { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.steps article { padding: 24px 20px 0 0; display: flex; gap: 15px; }
.steps article > span { color: var(--gold); font-size: .7rem; font-weight: 700; padding-top: 4px; }
.steps h3 { color: var(--olive-dark); font-size: .95rem; margin-bottom: 7px; }
.steps p { color: var(--muted); font-size: .78rem; line-height: 1.55; }

.catalog-heading { background: var(--olive); color: white; padding: 90px max(24px, calc((100% - 1120px)/2)); text-align: center; }
.catalog-heading .eyebrow { color: #e6b96f; }
.catalog-heading h2 { color: #fffaf3; }
.catalog-heading p { color: #e6e3d8; margin-inline: auto; }
.product-search { position: relative; width: min(620px, 100%); margin: 32px auto 0; text-align: left; }
.product-search > svg { position: absolute; left: 20px; top: 50%; width: 21px; height: 21px; transform: translateY(-50%); fill: none; stroke: var(--olive); stroke-width: 2; z-index: 2; pointer-events: none; }
.product-search input { width: 100%; height: 60px; padding: 0 56px 0 54px; border: 2px solid transparent; border-radius: 18px; background: #fffaf3; color: var(--ink); font: 500 .95rem 'Inter', sans-serif; box-shadow: 0 16px 38px rgba(28,29,14,.2); outline: none; transition: border-color .2s ease, box-shadow .2s ease; }
.product-search input::placeholder { color: #928a7c; }
.product-search input:focus { border-color: #e4b366; box-shadow: 0 18px 45px rgba(28,29,14,.28); }
.search-clear { position: absolute; right: 13px; top: 12px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: var(--cream); color: var(--olive); font-size: 1.35rem; cursor: pointer; opacity: 0; visibility: hidden; transition: opacity .2s ease, background-color .2s ease; }
.search-clear.visible { opacity: 1; visibility: visible; }
.search-results { position: absolute; top: calc(100% + 9px); left: 0; right: 0; z-index: 130; padding: 8px; max-height: 390px; overflow-y: auto; background: #fffaf3; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 22px 54px rgba(28,29,14,.27); opacity: 0; visibility: hidden; transform: translateY(-6px); transition: opacity .18s ease, transform .18s ease; }
.search-results.open { opacity: 1; visibility: visible; transform: translateY(0); }
.search-result { width: 100%; display: flex; align-items: center; gap: 13px; padding: 9px; border: 0; border-radius: 12px; background: transparent; color: var(--ink); text-align: left; cursor: pointer; }
.search-result:hover, .search-result.active { background: var(--cream); }
.search-result img, .search-result-placeholder { width: 48px; height: 48px; flex: 0 0 48px; border-radius: 10px; object-fit: cover; }
.search-result-placeholder { display: grid; place-items: center; background: var(--olive); color: white; font: 600 1.2rem 'Playfair Display', serif; }
.search-result > span:nth-child(2) { min-width: 0; display: flex; flex-direction: column; }
.search-result strong { color: var(--olive-dark); font-size: .88rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.search-result small { color: var(--muted); font-size: .7rem; margin-top: 3px; }
.search-result-arrow { margin-left: auto; color: var(--gold); font-size: 1.05rem; }
.search-empty { padding: 20px 16px; color: var(--muted); font-size: .84rem; text-align: center; }
.search-highlight { animation: searchPulse 1.8s ease; }
@keyframes searchPulse { 0%, 100% { box-shadow: none; } 25%, 70% { box-shadow: 0 0 0 3px rgba(189,133,46,.38), 0 12px 28px rgba(55,50,34,.12); border-color: var(--gold); } }
.catalog-layout { max-width: 1400px; padding: 72px 48px 0; gap: 36px; }
.ordering-facts { width:min(620px,100%); margin:30px auto 0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:hidden; border:1px solid rgba(255,255,255,.18); border-radius:18px; background:rgba(255,255,255,.09); text-align:left; }
.ordering-facts article { min-width:0; padding:15px 16px; display:grid; grid-template-columns:34px minmax(0,1fr); gap:10px; align-items:center; border-right:1px solid rgba(255,255,255,.14); }
.ordering-facts article:last-child { border-right:0; }
.ordering-facts article>span { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:#f0c680; color:#3e4021; font-weight:800; }
.ordering-facts strong,.ordering-facts small { display:block; }
.ordering-facts strong { color:#fffaf3; font-size:.76rem; }
.ordering-facts small { margin-top:2px; overflow-wrap:anywhere; color:#fffaf3; font-size:.7rem; font-weight:500; line-height:1.45; }
.catalog-layout { max-width:1184px; }

.info-bar { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 18px 22px; justify-content: space-around; gap: 12px; margin-bottom: 34px; box-shadow: 0 12px 35px rgba(55,50,34,.05); }
.info-bar a { font-size: .77rem; }
.section { padding: 0; margin-bottom: 14px; background: white; border: 1px solid var(--line); border-radius: 20px; overflow: hidden; }
.section-title { padding: 22px 24px; margin: 0; font-size: 1.4rem; transition: background-color .2s ease; }
.category-toggle { width:100%; display:flex; align-items:center; gap:12px; border:0; background:transparent; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.category-toggle:focus-visible { outline:3px solid rgba(189,133,46,.38); outline-offset:5px; border-radius:8px; }
.category-toggle[aria-expanded="true"] { color:var(--olive-dark); }
.section-title:hover { background: rgba(251,238,222,.55); }
.section-title::after { background: var(--line); }
.section-toggle { width: 30px; height: 30px; background: var(--cream); border-radius: 50%; display: grid; place-content: center; font-size: 1rem; }
.section-body { padding: 0 18px; }
.section-body.open { padding-bottom: 18px; }
.category-feature { margin: 4px 0 18px; display: grid; grid-template-columns: 180px 1fr; gap: 24px; align-items: center; padding: 18px; border-radius: 16px; background: var(--cream); }
.category-feature.no-image { grid-template-columns: 1fr; }
.category-feature.theme-olive { background: var(--olive); }
.category-feature.theme-gold { background: #d6a451; }
.category-feature.theme-olive h3, .category-feature.theme-olive p, .category-feature.theme-olive strong,
.category-feature.theme-gold h3, .category-feature.theme-gold p, .category-feature.theme-gold strong { color: #fffaf3; }
.category-feature.theme-olive .category-kicker { color: #f0c680; }
.category-feature.theme-gold .category-kicker { color: var(--olive-dark); }
.category-feature.theme-olive strong, .category-feature.theme-gold strong { background: rgba(255,255,255,.14); }
.category-feature img { width: 100%; height: 205px; object-fit: cover; border-radius: 14px; }
.category-kicker { color: var(--gold); text-transform: uppercase; letter-spacing: .14em; font-size: .65rem; font-weight: 700; }
.category-feature h3 { margin-top: 8px; color: var(--olive-dark); font-family: 'Playfair Display', serif; font-size: 1.45rem; line-height: 1.15; }
.category-feature p { margin: 10px 0; color: var(--muted); font-size: .78rem; line-height: 1.6; }
.category-feature strong { display: inline-block; color: var(--olive); font-size: .78rem; padding: 6px 10px; border-radius: 999px; background: rgba(255,255,255,.58); }
.subcat-title { margin: 20px 6px 10px; text-transform: uppercase; font-size: .74rem; letter-spacing: .14em; }
.menu-items { gap: 8px; }
.menu-item, .line-item { padding: 14px; column-gap: 22px; border: 1px solid rgba(91,92,51,.1); border-radius: 14px; background: #fffdf9; }
.menu-item:hover, .line-item:hover { border-color: rgba(189,133,46,.45); box-shadow: 0 8px 22px rgba(55,50,34,.07); }
.item-thumb { width: 66px; height: 66px; border-radius: 12px; }
.menu-item-name, .line-item-name { color: var(--olive-dark); font-weight: 650; }
.menu-item-desc { color: var(--muted); }
.btn-add { background: var(--olive); width: 34px; height: 34px; box-shadow: 0 5px 13px rgba(91,92,51,.2); }
.price-tag { color: var(--olive-dark); }
.footer { border-top: 1px solid var(--line); margin-top: 46px; }
.cart-bar { left: 50%; right: auto; bottom: 18px; width: min(560px, calc(100% - 28px)); transform: translateX(-50%); border-radius: 999px; padding: 10px 14px; box-shadow: 0 12px 40px rgba(28,29,14,.28); }
.cart-bar-total { color: #f5c77e; padding-right: 10px; }
.cart-panel { border-radius: 26px 26px 0 0; }
.back-to-top {
  position: fixed; right: 24px; bottom: 24px; z-index: 145; width: 50px; height: 50px;
  display: grid; place-items: center; color: white; background: var(--gold); border: 1px solid rgba(255,255,255,.35);
  border-radius: 50%; box-shadow: 0 10px 28px rgba(80,55,20,.24); text-decoration: none;
  opacity: 0; visibility: hidden; transform: translateY(14px); transition: opacity .25s ease, transform .25s ease, background-color .2s ease;
}
.back-to-top.visible { opacity: 1; visibility: visible; transform: translateY(0); }
.back-to-top:hover { background: var(--olive); transform: translateY(-3px); }
.back-to-top svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.back-to-top:focus-visible { outline: 3px solid rgba(189,133,46,.35); outline-offset: 4px; }

.cart-recovery { max-width: 1120px; margin: 26px auto 0; padding: 17px 58px 17px 22px; position: relative; display: flex; align-items: center; gap: 24px; background: #fff; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 15px 40px rgba(55,50,34,.09); }
.cart-recovery[hidden] { display: none; }
.cart-recovery > div { display: flex; flex-direction: column; gap: 3px; flex: 1; }
.recovery-kicker { color: var(--gold); text-transform: uppercase; letter-spacing: .13em; font-size: .62rem; font-weight: 700; }
.cart-recovery strong { color: var(--olive-dark); font-family: 'Playfair Display', serif; font-size: 1.12rem; }
.cart-recovery > button:not(.recovery-close) { border: 0; border-radius: 999px; padding: 12px 18px; background: var(--olive); color: white; font-weight: 650; cursor: pointer; }
.recovery-close { position: absolute; right: 12px; top: 11px; width: 32px; height: 32px; border: 0; border-radius: 50%; background: var(--cream); color: var(--olive); font-size: 1.25rem; cursor: pointer; }

.occasion-section, .favorites-section { max-width: 1280px; margin: 0 auto; padding: 88px 48px; }
.occasion-heading { max-width: 680px; margin-bottom: 38px; }
.occasion-heading h2, .favorites-heading h2 { color: var(--olive-dark); font: 600 clamp(2.3rem,4vw,4rem)/1.04 'Playfair Display',serif; letter-spacing: -.035em; }
.occasion-heading p, .favorites-heading p { color: var(--muted); margin-top: 15px; line-height: 1.7; }
.occasion-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px; }
.occasion-card { min-height: 330px; padding: 26px; position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: flex-start; text-align: left; border: 1px solid var(--line); border-radius: 24px; color: var(--ink); background: #f9ead8; cursor: pointer; transition: transform .25s ease, box-shadow .25s ease; }
.occasion-card:hover { transform: translateY(-6px); box-shadow: 0 22px 50px rgba(55,50,34,.13); }
.occasion-compartir { background: var(--olive); color: white; }
.occasion-regalo { background: #d9a75a; }
.occasion-number { font-size: .66rem; letter-spacing: .15em; opacity: .65; }
.occasion-icon { margin: auto 0 18px; font: 400 3rem/1 'Playfair Display',serif; }
.occasion-card strong { font: 600 1.65rem/1.1 'Playfair Display',serif; }
.occasion-card small { max-width: 270px; margin-top: 12px; font-size: .8rem; line-height: 1.55; opacity: .76; }
.occasion-link { margin-top: 22px; font-size: .75rem; font-weight: 700; }

.favorites-section { padding-top: 34px; }
.favorites-heading { margin-bottom: 38px; display: grid; grid-template-columns: 1fr .65fr; gap: 50px; align-items: end; }
.favorites-heading p { margin: 0; }
.favorites-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; }
.favorites-loading { grid-column: 1/-1; padding: 40px; text-align: center; color: var(--muted); }
.favorite-card { min-width: 0; overflow: hidden; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: 20px; transition: transform .2s ease, box-shadow .2s ease; }
.favorite-card:hover { transform: translateY(-4px); box-shadow: 0 18px 40px rgba(55,50,34,.1); }
.favorite-image { height: 230px; position: relative; overflow: hidden; background: var(--cream); }
.favorite-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.favorite-card:hover img { transform: scale(1.04); }
.favorite-image span { position: absolute; left: 13px; top: 13px; padding: 6px 10px; border-radius: 999px; background: rgba(255,250,243,.92); color: var(--olive); font-size: .62rem; font-weight: 700; }
.favorite-copy { padding: 19px; display: flex; flex-direction: column; flex: 1; }
.favorite-copy > small { color: var(--gold); text-transform: uppercase; letter-spacing: .12em; font-size: .6rem; font-weight: 700; }
.favorite-copy h3 { margin-top: 7px; color: var(--olive-dark); font: 600 1.28rem/1.15 'Playfair Display',serif; }
.favorite-copy p { margin: 10px 0 18px; color: var(--muted); font-size: .74rem; line-height: 1.55; }
.favorite-copy > div { margin-top: auto; display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.favorite-copy strong { color: var(--olive-dark); font-size: .8rem; }
.favorite-copy button { border: 0; background: none; color: var(--olive); font-weight: 700; cursor: pointer; }

.trust-band { max-width: 1184px; margin: 0 auto 90px; padding: 28px 34px; display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; background: #f9ead8; border-radius: 22px; }
.trust-band article { display: flex; gap: 14px; align-items: flex-start; }
.trust-band article > span { color: var(--gold); font-size: .65rem; font-weight: 700; }
.trust-band article div { display: flex; flex-direction: column; gap: 5px; }
.trust-band strong { color: var(--olive-dark); font-size: .84rem; }
.trust-band small { color: var(--muted); font-size: .72rem; line-height: 1.45; }

.boxes-section { max-width: 1280px; margin: 0 auto; padding: 34px 48px 92px; }
.boxes-section[hidden] { display: none; }
.boxes-heading { max-width: 720px; margin-bottom: 36px; }
.boxes-heading h2 { color: var(--olive-dark); font: 600 clamp(2.3rem,4vw,4rem)/1.04 'Playfair Display',serif; letter-spacing:-.035em; }
.boxes-heading p { color:var(--muted); margin-top:15px; }
.boxes-slider-controls{display:flex;justify-content:flex-end;gap:9px;margin:-46px 0 22px}.boxes-slider-controls button{width:43px;height:43px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--olive);font-size:1.15rem;cursor:pointer;transition:.2s ease}.boxes-slider-controls button:hover{background:var(--olive);color:#fff;transform:translateY(-2px)}
.boxes-grid{display:flex;gap:18px;overflow-x:auto;padding:12px 2px 24px;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-inline:contain;touch-action:pan-x}.boxes-grid::-webkit-scrollbar{display:none}
.evergreen-box{flex:0 0 min(380px,calc((100% - 36px)/3));overflow:hidden;background:white;border:1px solid var(--line);border-radius:24px;scroll-snap-align:start;scroll-snap-stop:always}
.evergreen-box.box-featured { background:var(--olive); color:white; transform:translateY(-10px); }
.evergreen-box > img { width:100%; height:270px; object-fit:cover; }
.evergreen-box > div { padding:25px; }
.evergreen-box > div > span { color:var(--gold); text-transform:uppercase; letter-spacing:.14em; font-size:.62rem; font-weight:700; }
.box-featured > div > span { color:#f0c680; }
.evergreen-box h3 { margin-top:8px; color:var(--olive-dark); font:600 1.75rem/1.1 'Playfair Display',serif; }
.box-featured h3 { color:white; }
.evergreen-box p { min-height:58px; margin:11px 0 22px; color:var(--muted); font-size:.78rem; line-height:1.6; }
.box-featured p { color:rgba(255,255,255,.72); }
.box-action { padding-top:17px; display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid var(--line); }
.box-action strong { font-size:.8rem; color:var(--olive-dark); }
.box-featured .box-action strong { color:white; }
.box-action button { border:0; background:transparent; color:var(--gold); font-weight:700; cursor:pointer; }
.box-featured .box-action button { color:#f0c680; }

.testimonials-section { margin:0 auto 90px; padding:88px max(48px,calc((100% - 1184px)/2)); background:#f3dfc7; }
.testimonials-section[hidden] { display:none; }
.testimonials-heading { display:grid; grid-template-columns:1fr .65fr; align-items:end; gap:60px; margin-bottom:42px; }
.testimonials-heading h2 { color:var(--olive-dark); font:600 clamp(2.3rem,4vw,4rem)/1.04 'Playfair Display',serif; letter-spacing:-.035em; }
.testimonials-heading p { color:var(--muted); line-height:1.7; }
.testimonials-track { display:grid; grid-template-columns:repeat(3,1fr); gap:17px; }
.testimonial-card { min-height:300px; padding:27px; display:flex; flex-direction:column; background:#fffaf3; border:1px solid rgba(91,92,51,.14); border-radius:22px; }
.testimonial-stars { color:var(--gold); letter-spacing:.12em; font-size:.78rem; }
.testimonial-card blockquote { margin:25px 0; color:var(--olive-dark); font:500 1.22rem/1.55 'Playfair Display',serif; }
.testimonial-card footer { margin-top:auto; padding-top:18px; display:flex; align-items:center; gap:12px; border-top:1px solid var(--line); }
.testimonial-card footer img,.testimonial-avatar { width:45px; height:45px; flex:0 0 45px; border-radius:50%; object-fit:cover; }
.testimonial-avatar { display:grid; place-items:center; background:var(--olive); color:white; font:600 1.2rem 'Playfair Display',serif; }
.testimonial-card footer div { display:flex; flex-direction:column; gap:3px; }
.testimonial-card footer strong { color:var(--olive-dark); font-size:.8rem; }
.testimonial-card footer small { color:var(--muted); font-size:.68rem; }

.review-submit-section { max-width:1184px; margin:0 auto 100px; padding:60px; display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; background:var(--olive); border-radius:28px; }
.review-submit-section { scroll-margin-top:82px; }
.review-invite-banner{grid-column:1/-1;margin:-30px -30px 0;padding:17px 21px;display:flex;align-items:center;gap:14px;border-radius:18px;background:#f0c680;color:var(--olive-dark);box-shadow:0 12px 30px rgba(27,28,12,.16)}.review-invite-banner[hidden]{display:none}.review-invite-banner>span{font-size:1.7rem}.review-invite-banner>div{display:flex;flex-direction:column;gap:3px}.review-invite-banner strong{font:600 1.05rem 'Playfair Display',serif}.review-invite-banner small{font-size:.7rem}.review-invitation-mode .review-submit-section{box-shadow:0 0 0 6px rgba(189,133,46,.18),0 24px 70px rgba(55,50,34,.2)}
.review-submit-copy .eyebrow { color:#f0c680; }
.review-submit-copy h2 { color:white; font:600 clamp(2.3rem,4vw,4rem)/1.04 'Playfair Display',serif; }
.review-submit-copy > p { margin-top:17px; color:rgba(255,255,255,.7); line-height:1.7; }
.review-note { margin-top:35px; padding-top:20px; display:flex; flex-direction:column; gap:5px; border-top:1px solid rgba(255,255,255,.18); }
.review-note strong { color:#f0c680; font-size:.76rem; }
.review-note span { color:rgba(255,255,255,.58); font-size:.7rem; }
.review-form { padding:28px; background:#fffaf3; border-radius:20px; }
.review-form label { display:block; margin:13px 0 6px; color:var(--olive-dark); font-size:.75rem; font-weight:650; }
.review-form label small { color:var(--muted); font-weight:400; }
.review-form input:not([type=radio]):not([type=checkbox]),.review-form textarea { width:100%; padding:12px 13px; border:1px solid var(--line); border-radius:10px; background:white; color:var(--ink); font:400 .84rem 'Inter',sans-serif; outline:none; }
.review-form input:focus,.review-form textarea:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(189,133,46,.12); }
.review-form-row { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.rating-input { width:max-content; display:flex; flex-direction:row-reverse; }
.rating-input input { position:absolute; opacity:0; }
.rating-input label { margin:0; padding:0 3px; color:#c9c4b8; font-size:1.7rem; cursor:pointer; }
.rating-input input:checked ~ label,.rating-input label:hover,.rating-input label:hover ~ label { color:var(--gold); }
.review-consent { margin:17px 0!important; display:flex!important; align-items:flex-start; gap:9px; color:var(--muted)!important; font-weight:400!important; line-height:1.45; }
.review-consent input { margin-top:2px; accent-color:var(--olive); }
.review-form button { width:100%; padding:14px 18px; display:flex; justify-content:space-between; border:0; border-radius:999px; background:var(--olive); color:white; font-weight:700; cursor:pointer; }
.review-form button:disabled { opacity:.55; cursor:wait; }
.review-status { margin-top:12px; font-size:.76rem; text-align:center; }
.review-status.success { color:#397044; }.review-status.error { color:#b33b35; }
.review-honeypot { position:absolute!important; left:-9999px!important; width:1px!important; height:1px!important; opacity:0!important; }

.about-section { max-width:1280px; margin:20px auto 80px; padding:90px 48px; display:grid; grid-template-columns:.9fr 1.1fr; gap:90px; align-items:center; }
.about-section[hidden]{display:none}.about-visual{min-height:650px;position:relative}.about-visual>img:first-child{position:absolute;left:0;top:0;width:78%;height:82%;object-fit:cover;border-radius:220px 220px 22px 22px}.about-visual>img:nth-child(2){position:absolute;right:0;bottom:0;width:48%;aspect-ratio:1;object-fit:cover;border:9px solid var(--paper);border-radius:50%;box-shadow:0 18px 45px rgba(55,50,34,.2)}.about-visual>span{position:absolute;right:2%;top:6%;width:115px;height:115px;display:grid;place-content:center;text-align:center;border-radius:50%;background:var(--gold);color:white;font:600 1.2rem 'Playfair Display',serif;transform:rotate(8deg)}.about-visual>span small{font:500 .62rem 'Inter',sans-serif}.about-content h2{color:var(--olive-dark);font:600 clamp(2.6rem,4.5vw,4.8rem)/.98 'Playfair Display',serif;letter-spacing:-.045em}.about-intro{margin:20px 0 30px;color:var(--muted);font-size:1rem;line-height:1.75}.about-points{border-top:1px solid var(--line)}.about-points article{padding:19px 0;display:grid;grid-template-columns:34px 1fr;gap:9px;border-bottom:1px solid var(--line)}.about-points article>span{padding-top:3px;color:var(--gold);font-size:.65rem;font-weight:700}.about-points h3{color:var(--olive-dark);font-size:.88rem}.about-points p{margin-top:6px;color:var(--muted);font-size:.76rem;line-height:1.6;white-space:pre-line}.about-content blockquote{margin-top:26px;padding-left:20px;border-left:3px solid var(--gold);color:var(--olive);font:italic 500 1.2rem/1.5 'Playfair Display',serif}

.promotion-ribbon{position:relative;z-index:150;padding:11px max(48px,calc((100% - 1184px)/2));display:flex;align-items:center;justify-content:center;gap:22px;text-align:center}.promotion-ribbon[hidden]{display:none}.promotion-ribbon div{display:flex;gap:8px;align-items:center}.promotion-ribbon strong{font-size:.78rem}.promotion-ribbon span{font-size:.72rem;opacity:1}.promotion-ribbon a{padding:7px 12px;border:1px solid currentColor;border-radius:999px;color:inherit;text-decoration:none;font-size:.68rem;font-weight:700}.promotion-ribbon>button{position:absolute;right:18px;border:0;background:none;color:inherit;font-size:1.2rem;cursor:pointer}
.pwa-prompt{position:fixed;left:50%;bottom:22px;z-index:270;width:min(620px,calc(100% - 28px));padding:12px 52px 12px 13px;display:grid;grid-template-columns:52px 1fr auto;gap:12px;align-items:center;transform:translateX(-50%);border:1px solid rgba(91,92,51,.16);border-radius:18px;background:#fffaf3;box-shadow:0 20px 55px rgba(44,43,26,.2)}.pwa-prompt[hidden]{display:none}.pwa-prompt img,.pwa-update-icon{width:52px;height:52px;border-radius:13px;object-fit:cover}.pwa-prompt div{display:flex;flex-direction:column;gap:3px}.pwa-prompt strong{color:var(--olive-dark);font-size:.83rem}.pwa-prompt span{color:var(--muted);font-size:.7rem;line-height:1.4}.pwa-prompt>button:not(.pwa-close){padding:11px 16px;border:0;border-radius:999px;background:var(--olive);color:white;font-weight:700;cursor:pointer}.pwa-close{position:absolute;right:10px;top:8px;width:30px;height:30px;border:0;border-radius:50%;background:var(--cream);color:var(--olive);font-size:1.1rem;cursor:pointer}.pwa-update{grid-template-columns:52px 1fr auto;padding-right:13px}.pwa-update-icon{display:grid;place-items:center;background:var(--cream);color:var(--olive)!important;font-size:1.5rem!important}
.build-box-section{max-width:1184px;margin:0 auto 90px;padding:58px;display:grid;grid-template-columns:1.1fr .9fr;gap:70px;align-items:center;background:#f9ead8;border-radius:28px}.build-box-section h2,.business-copy h2{color:var(--olive-dark);font:600 clamp(2.3rem,4vw,4rem)/1.02 'Playfair Display',serif}.build-box-section p{margin:16px 0 25px;color:var(--muted);line-height:1.7}.build-box-section button{padding:14px 20px;border:0;border-radius:999px;background:var(--olive);color:white;font-weight:700;cursor:pointer}.build-box-art{min-height:250px;position:relative;display:grid;place-content:center;text-align:center;border:1px solid rgba(91,92,51,.18);border-radius:22px;background:#fffaf3;overflow:hidden}.build-box-art span{position:absolute;width:52px;height:52px;display:grid;place-content:center;border-radius:50%;background:var(--gold);color:white;font-weight:700}.build-box-art span:nth-child(1){left:12%;top:15%}.build-box-art span:nth-child(2){right:13%;top:28%}.build-box-art span:nth-child(3){left:24%;bottom:12%}.build-box-art strong{color:var(--olive-dark);font:600 1.8rem/1.2 'Playfair Display',serif}
.builder-overlay{display:none;position:fixed;inset:0;z-index:240;background:rgba(25,25,15,.56);backdrop-filter:blur(4px)}.builder-overlay.open{display:block}.box-builder-modal{position:fixed;z-index:245;left:50%;top:50%;width:min(760px,calc(100% - 30px));max-height:88vh;padding:30px;overflow:auto;transform:translate(-50%,-45%) scale(.97);opacity:0;visibility:hidden;background:#fffaf3;border-radius:24px;transition:.22s ease}.box-builder-modal.open{transform:translate(-50%,-50%) scale(1);opacity:1;visibility:visible}.builder-close{position:absolute;right:16px;top:15px;width:36px;height:36px;border:0;border-radius:50%;background:var(--cream);color:var(--olive);font-size:1.3rem}.box-builder-modal h2{color:var(--olive-dark);font:600 2.3rem 'Playfair Display',serif}.box-builder-modal>p{margin:8px 0 20px;color:var(--muted);font-size:.82rem}.builder-products{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.builder-product{padding:11px;display:grid;grid-template-columns:50px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;background:white;cursor:pointer}.builder-product.selected{border-color:var(--gold);background:#fff8ed}.builder-product img{width:50px;height:50px;object-fit:cover;border-radius:9px}.builder-product strong{display:block;color:var(--olive-dark);font-size:.76rem}.builder-product small{color:var(--muted);font-size:.66rem}.builder-product input{accent-color:var(--olive)}.builder-footer{position:sticky;bottom:-30px;margin:22px -30px -30px;padding:16px 30px;display:flex;align-items:center;justify-content:space-between;background:#fffaf3;border-top:1px solid var(--line)}.builder-footer div{display:flex;flex-direction:column}.builder-footer strong{color:var(--olive-dark);font-size:1.3rem}.builder-footer button{padding:12px 18px;border:0;border-radius:999px;background:var(--olive);color:white;font-weight:700}.builder-footer button:disabled{opacity:.45}
.cart-form-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.cart-form select,.cart-form textarea{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:9px;background:white;font-family:inherit}.marketing-consent{display:flex!important;align-items:flex-start;gap:7px;font-size:.68rem!important;color:var(--muted)!important}.marketing-consent input{width:auto!important;margin-top:2px}.btn-save-cart{width:100%;margin:9px 0;padding:10px;border:1px solid var(--olive);border-radius:999px;background:white;color:var(--olive);font-weight:700;cursor:pointer}
.business-section{max-width:1184px;margin:0 auto 100px;padding:70px 58px;display:grid;grid-template-columns:1fr 1fr;gap:75px;background:#f2dfc7;border-radius:28px}.business-copy p{margin:18px 0;color:var(--muted);line-height:1.7}.business-copy ul{display:grid;grid-template-columns:1fr 1fr;gap:10px;list-style:none}.business-copy li{font-size:.76rem;color:var(--olive);font-weight:650}.business-copy li::before{content:'✦';margin-right:7px;color:var(--gold)}.business-form{padding:25px;background:#fffaf3;border-radius:20px}.business-form input,.business-form select,.business-form textarea{width:100%;margin-bottom:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:white;font-family:inherit}.business-form button{width:100%;padding:14px 18px;display:flex;justify-content:space-between;border:0;border-radius:999px;background:var(--olive);color:white;font-weight:700}
.business-form,.business-form .review-form-row,.business-form .review-form-row>*{min-width:0;max-width:100%}.business-form input[type="date"]{display:block;min-width:0;max-width:100%;box-sizing:border-box;-webkit-appearance:none;appearance:none}
#productos{scroll-margin-top:90px}

@media (max-width: 1000px) {
  .hero { grid-template-columns: 1fr 420px; gap: 30px; padding-inline: 40px; }
  .hero-visual { min-height: 500px; }
  .story-strip { gap: 50px; }
}

@media (max-width: 760px) {
  html { scroll-padding-top:78px; }
  body { padding-bottom:calc(94px + env(safe-area-inset-bottom)); }
  input, textarea, select { font-size:16px !important; }
  button, a { -webkit-tap-highlight-color:transparent; }
  .top-nav { height:68px; padding:0 14px; gap:8px; background:rgba(249,234,216,.98); backdrop-filter:none; box-shadow:0 4px 14px rgba(55,50,34,.05); }
  .hero-sparkle,.hero-sparkle.sparkle-star { filter:none; }
  .story-strip,.about-section,.occasion-section,.favorites-section,.boxes-section,.build-box-section,.trust-band,.business-section,.testimonials-section,.review-submit-section { contain-intrinsic-size:auto 560px; }
  .catalog-layout .section { contain:paint style; contain-intrinsic-size:auto 280px; }
  .nav-brand img { width:94px; height:46px; }
  .nav-links { display: none; }
  .nav-actions { gap:7px; }
  .nav-order-status { padding:9px 11px; font-size:.72rem; }
  .status-label-full { display:none; }
  .status-label-mobile { display:inline; }
  .nav-cta { padding: 10px 13px; font-size:.74rem; }
  .hero { min-height:auto; grid-template-columns:1fr; padding:38px 18px 52px; gap:34px; }
  .hero h1 { font-size:clamp(2.75rem,13vw,4.1rem); line-height:.98; }
  .hero-lead { font-size: .98rem !important; }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .primary-cta { justify-content: space-between; }
  .secondary-cta { text-align: center; padding: 8px; }
  .hero-proof { justify-content: space-between; gap: 12px; }
  .hero-proof span { width: 29%; line-height: 1.45; }
  .hero-visual { min-height:310px; max-width:430px; width:100%; margin:0 auto; }
  .hero-main-img { width:84%; height:295px; border-radius:140px 140px 18px 18px; }
  .hero-float-img { width:clamp(118px,34vw,145px); height:clamp(118px,34vw,145px); max-width:none; left:1%; border-width:6px; }
  .hero-stamp { right: 0; width: 94px; height: 94px; font-size: .7rem; }
  .story-strip { padding: 74px 22px 68px; display: block; }
  .steps { grid-template-columns: 1fr; margin-top: 42px; }
  .steps article { border-bottom: 1px solid var(--line); padding: 18px 0; }
  .catalog-heading { padding:58px 18px; }
  .ordering-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ordering-facts article { min-height:70px; border-bottom:0; }
  .ordering-facts article:nth-child(2) { border-right:0; }
  .ordering-facts article:nth-child(n+3) { border-bottom:0; }
  .product-search { margin-top: 26px; }
  .product-search input { height: 56px; font-size: 16px; border-radius: 15px; padding-left: 50px; }
  .product-search > svg { left: 17px; }
  .catalog-layout { padding:28px 12px 0; }
  .back-to-top { right: 16px; bottom: calc(108px + env(safe-area-inset-bottom)); width: 44px; height: 44px; }
  .info-bar { flex-direction: column; align-items: flex-start; padding: 17px 20px; }
  .section-title { padding: 19px 17px; font-size: 1.2rem; }
  .section { margin-bottom:12px; border-radius:16px; }
  .section-body { padding-inline:8px; }
  .section-body.open { padding-bottom:10px; }
  .menu-item, .line-item { column-gap:11px; padding:11px 9px; border-radius:12px; }
  .menu-item-info { min-width:0; }
  .menu-item-name, .line-item-name { font-size:.88rem; line-height:1.25; }
  .menu-item-desc { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:.72rem; line-height:1.35; }
  .menu-item-actions { margin-left:auto; }
  .category-feature { grid-template-columns: 1fr; gap: 16px; padding: 12px; }
  .category-feature img { height: 190px; border-radius:12px; }
  .cart-recovery { margin: 16px; padding: 16px 44px 16px 17px; align-items: stretch; flex-direction: column; gap: 13px; }
  .cart-recovery > button:not(.recovery-close) { width: 100%; }
  .occasion-section, .favorites-section { padding: 68px 18px; }
  .occasion-heading { margin-bottom: 28px; }
  .occasion-grid { grid-template-columns: 1fr; }
  .occasion-card { min-height:225px; padding:25px; }
  .favorites-section { padding-top: 10px; }
  .favorites-heading { display: block; }
  .favorites-heading p { margin-top: 14px; }
  .favorites-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding: 2px 2px 20px; }
  .favorite-card { flex:0 0 min(82%,310px); scroll-snap-align:center; }
  .favorite-image { height: 185px; }
  .trust-band { margin: 0 18px 68px; padding: 25px 20px; grid-template-columns: 1fr; }
  .boxes-section { padding:10px 18px 70px; }
  .boxes-slider-controls{margin:0 0 12px}.boxes-slider-controls button{width:40px;height:40px}.boxes-grid{margin:0 -18px;padding:8px 18px 22px;scroll-padding-inline:18px}.evergreen-box{flex:0 0 min(84vw,310px)}
  .evergreen-box.box-featured { transform:none; }
  .evergreen-box > img { height:190px; }
  .testimonials-section { margin-bottom:68px; padding:68px 18px; }
  .testimonials-heading { display:block; }
  .testimonials-heading p { margin-top:15px; }
  .testimonials-track { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:16px; }
  .testimonial-card { flex:0 0 min(86%,330px); min-height:245px; scroll-snap-align:center; }
  .review-submit-section { margin:0 18px 70px; padding:34px 20px; grid-template-columns:1fr; gap:30px; border-radius:22px; }
  .review-submit-section { scroll-margin-top:68px; }
  .review-invite-banner{margin:-18px -5px 0}
  .review-form { padding:20px 16px; }
  .review-form-row { grid-template-columns:1fr; gap:0; }
  .about-section{margin:0 auto 55px;padding:65px 18px;grid-template-columns:1fr;gap:38px}.about-visual{min-height:330px;max-width:430px;width:100%;margin:0 auto}.about-visual>img:first-child{width:82%;height:310px;border-radius:145px 145px 18px 18px}.about-visual>img:nth-child(2){width:38%;max-width:145px;border-width:6px}.about-visual>span{width:76px;height:76px;font-size:.88rem}.about-content h2{font-size:3rem}
  .item-thumb { width:54px; height:54px; border-radius:10px; }
  .promotion-ribbon{padding:10px 42px 10px 14px;align-items:flex-start;text-align:left}.promotion-ribbon div{align-items:flex-start;flex-direction:column;gap:2px}.promotion-ribbon a{white-space:nowrap}.build-box-section,.business-section{margin:0 12px 60px;padding:32px 18px;grid-template-columns:1fr;gap:25px;border-radius:20px}.build-box-section h2,.business-copy h2{font-size:clamp(2.25rem,11vw,3.15rem)}.build-box-art{min-height:190px}.builder-products{grid-template-columns:1fr}.box-builder-modal{width:calc(100% - 16px);max-height:92dvh;padding:24px 14px;border-radius:20px}.builder-footer{bottom:-24px;margin:18px -14px -24px;padding:14px;padding-bottom:calc(14px + env(safe-area-inset-bottom))}.cart-form-row{grid-template-columns:1fr}.business-copy ul{grid-template-columns:1fr}.business-form{width:100%;padding:16px 12px;overflow:hidden}.business-form input[type="date"]{width:100%;font-size:16px}.business-form button{min-height:48px}.cart-panel{max-height:92dvh;border-radius:22px 22px 0 0;padding-bottom:env(safe-area-inset-bottom)}.cart-items{padding-inline:14px}.cart-footer{padding-inline:14px}.cart-bar{bottom:calc(10px + env(safe-area-inset-bottom));width:calc(100% - 20px);padding:10px 12px}.cart-bar-text{font-size:.76rem}.cart-bar-text strong{font-size:.86rem}.cart-bar-total{font-size:.9rem;padding-right:2px}
  .pwa-prompt{bottom:calc(10px + env(safe-area-inset-bottom));padding:10px 43px 10px 10px;grid-template-columns:44px 1fr;border-radius:16px}.pwa-prompt img,.pwa-update-icon{width:44px;height:44px;border-radius:11px}.pwa-prompt>button:not(.pwa-close){grid-column:2;width:100%;padding:10px}.pwa-update{padding-right:10px}.pwa-update>button:not(.pwa-close){grid-column:2}.pwa-prompt strong{font-size:.78rem}.pwa-prompt span{font-size:.66rem}
}

/* Las transiciones se limitan a propiedades fluidas para evitar repintados costosos. */
.nav-order-status { transition:background-color .2s ease,transform .2s ease; }
.product-search input { transition:none; }
.box-builder-modal { transition:opacity .22s ease,transform .22s ease; }
.order-success-overlay{position:fixed;inset:0;z-index:1300;padding:18px;display:grid;place-items:center;background:rgba(35,35,20,.56);backdrop-filter:blur(6px)}.order-success-overlay[hidden]{display:none}.order-success-modal{width:min(500px,100%);padding:38px;text-align:center;border-radius:28px;background:#fffaf3;box-shadow:0 30px 90px rgba(25,25,12,.32)}.order-success-icon{width:58px;height:58px;margin:0 auto 17px;display:grid;place-items:center;border-radius:50%;background:#5b5c33;color:#fff;font-size:1.7rem}.order-success-modal h2{margin:5px 0 10px;color:#3e4021;font:600 2.2rem/1.08 'Playfair Display',serif}.order-success-modal p{color:#656153;line-height:1.6}.order-success-code{margin:20px auto;display:block;color:#79501b;font-size:1.25rem;letter-spacing:.08em}.order-success-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.order-success-actions a,.order-success-close{min-height:48px;padding:0 15px;display:flex;align-items:center;justify-content:center;border:0;border-radius:999px;text-decoration:none;font-weight:750}.order-success-actions a:first-child{background:#5b5c33;color:#fff}.order-success-actions a:last-child{background:#e6f4e9;color:#236f3d}.order-success-close{width:100%;margin-top:10px;background:#f9ead8;color:#3e4021}.btn-whatsapp{background:#5b5c33!important}
@media(max-width:520px){.order-success-modal{padding:30px 20px;border-radius:22px}.order-success-modal h2{font-size:1.8rem}.order-success-actions{grid-template-columns:1fr}}
.order-success-actions{grid-template-columns:1fr}
.cart-panel{height:min(92dvh,800px);height:min(92svh,800px);max-height:none;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.cart-panel.open{bottom:0}
.cart-header{position:sticky;top:0;z-index:2;background:#fff}
.cart-items{flex:0 0 auto;max-height:min(28dvh,230px);max-height:min(28svh,230px);min-height:90px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.cart-footer{flex:0 0 auto;min-width:0;padding-bottom:calc(18px + env(safe-area-inset-bottom))}
.cart-form input,.cart-form select,.cart-form textarea{min-width:0;max-width:100%;font-size:16px}
.cart-form input[type="date"]{width:100%;box-sizing:border-box}
.cart-form-row{min-width:0}
.cart-form-row>*{min-width:0}
@media(max-width:600px){.cart-panel{height:calc(100dvh - 8px);height:calc(100svh - 8px);border-radius:20px 20px 0 0}.cart-items{max-height:min(25dvh,190px);max-height:min(25svh,190px)}.cart-footer{padding-top:10px}.cart-form{gap:7px}}
.catalog-quick-nav{position:sticky;top:78px;z-index:90;width:min(960px,100%);margin:22px auto 0;padding:7px;display:flex;gap:6px;overflow-x:auto;border-radius:999px;background:rgba(255,250,243,.94);box-shadow:0 12px 32px rgba(28,29,14,.18);scrollbar-width:none}.catalog-quick-nav::-webkit-scrollbar{display:none}.catalog-quick-nav button{flex:0 0 auto;padding:10px 15px;border:0;border-radius:999px;background:transparent;color:#3e4021;font-weight:750;cursor:pointer}.catalog-quick-nav button:hover,.catalog-quick-nav button:focus-visible{background:#f5dcc0;outline:none}.menu-item-name,.line-item-name,.item-thumb{cursor:pointer}
.category-deferred{height:110px;padding:20px;display:grid;gap:10px;align-content:center;contain:layout paint}.category-deferred span{display:block;height:12px;border-radius:99px;background:#f4eadb}.category-deferred span:nth-child(2){width:76%}.category-deferred span:nth-child(3){width:58%}
.product-detail-overlay{position:fixed;inset:0;z-index:1280;padding:18px;display:grid;place-items:center;background:rgba(35,35,20,.55);backdrop-filter:blur(6px)}.product-detail-overlay[hidden]{display:none}.product-detail-modal{position:relative;width:min(820px,100%);max-height:92dvh;overflow:auto;display:grid;grid-template-columns:minmax(260px,.9fr) minmax(320px,1.1fr);border-radius:28px;background:#fffaf3;box-shadow:0 30px 90px rgba(25,25,12,.32)}.product-detail-modal>img{width:100%;height:100%;min-height:480px;object-fit:cover;background:#f5dcc0}.product-detail-copy{padding:42px}.product-detail-copy h2{margin:7px 0 13px;color:#3e4021;font:600 2.65rem/1.02 'Playfair Display',serif}.product-detail-copy>p{color:#656153;line-height:1.7}.product-detail-trust{margin:24px 0;display:grid;gap:8px;color:#5b5c33;font-size:.75rem}.product-detail-options{display:grid;gap:8px}.product-detail-options button{min-height:50px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border:0;border-radius:13px;background:#5b5c33;color:#fff;font-weight:750}.product-detail-options .extras-row{margin:0 0 8px;padding:14px;border:1px solid #e9dccb;border-radius:14px;background:#fff}.product-detail-options .extra-chip{padding:8px 12px;font-size:.82rem}.product-detail-close{position:absolute;right:14px;top:14px;z-index:2;width:38px;height:38px;border:0;border-radius:50%;background:#fff;color:#3e4021;font-size:1.35rem;box-shadow:0 5px 18px rgba(25,25,12,.16)}
@media(max-width:700px){.catalog-quick-nav{top:68px;border-radius:14px}.product-detail-modal{display:block}.product-detail-modal>img{height:270px;min-height:0}.product-detail-copy{padding:28px 20px}.product-detail-copy h2{font-size:2rem}}

/* Estabilidad y contraste: evita saltos cuando llegan datos del administrador. */
.promotion-ribbon[hidden] {
  display:flex;
  visibility:hidden;
  min-height:44px;
}

.about-section[hidden] {
  display:grid;
  visibility:hidden;
}

.boxes-section[hidden],
.testimonials-section[hidden] {
  display:block;
  visibility:hidden;
  min-height:430px;
}

.catalog-heading .eyebrow { color:#f4d7a8; }
.about-visual>span { color:#20210e; }
.occasion-card small { color:#565348; opacity:1; }
.favorite-copy small,
.evergreen-box>div>span,
.about-points article>span { color:#79501b; }
.build-box-section p,
.business-copy p,
.testimonials-heading p,
.trust-band small { color:#565348; }
.review-submit-copy>p { color:#f0ede3; }
.review-note span { color:#ebe8dc; }
.cart-bar-total { color:#fff1d8; }
.occasion-compartir .occasion-number { color:#f4d7a8 !important; }
.occasion-compartir small { color:#f3f0e7; }
.occasion-regalo .occasion-number { color:#3e4021 !important; }
.occasion-number { opacity:1; }
.occasion-regalo small { color:#3e4021; }
.box-action button { color:#79501b; }
.box-featured>div>span,.box-featured .box-action button { color:#f4d7a8; }
.review-submit-copy .eyebrow,.review-note strong { color:#f4d7a8; }

@media (max-width: 390px) {
  .top-nav { padding:0 10px; }
  .nav-brand img { width:78px; }
  .nav-order-status { padding:9px 10px; }
  .nav-order-status span[aria-hidden="true"] { display:none; }
  .nav-cta { padding:10px 11px; }
}

@media (max-width: 600px) {
  .build-box-art { min-height:220px; padding:58px 54px; }
  .build-box-art span { width:40px; height:40px; font-size:.82rem; z-index:2; }
  .build-box-art span:nth-child(1) { top:16px; left:18px; right:auto; bottom:auto; }
  .build-box-art span:nth-child(2) { top:16px; right:18px; left:auto; bottom:auto; }
  .build-box-art span:nth-child(3) { left:50%; bottom:16px; top:auto; right:auto; transform:translateX(-50%); }
  .build-box-art strong { position:relative; z-index:1; max-width:170px; font-size:1.55rem; }
}

@media (max-width: 420px) {
  .hero-visual { min-height:300px; }
  .hero-main-img { height:285px; }
  .hero-float-img { width:clamp(112px,32vw,136px); height:clamp(112px,32vw,136px); }
  .category-feature img { height:170px; }
  .favorite-card { flex-basis:82%; }
  .favorite-image,.evergreen-box > img { height:175px; }
  .about-visual { min-height:295px; }
  .about-visual>img:first-child { height:278px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; }
  .hero-sparkles { display:none; }
}

/* La fotografía principal de Quiénes somos conserva siempre una forma circular. */
.about-visual>img:first-child {
  left:7%;
  top:5%;
  width:76%;
  height:auto;
  aspect-ratio:1/1;
  object-fit:cover;
  object-position:center;
  border-radius:50%;
  box-shadow:0 22px 55px rgba(55,50,34,.16);
}

.about-visual>img:nth-child(2) {
  width:48%;
  height:auto;
  aspect-ratio:1/1;
  object-fit:cover;
  object-position:center;
  border-radius:50%;
}

@media (max-width: 760px) {
  .about-visual>img:first-child {
    left:5%;
    top:0;
    width:78%;
    height:auto;
    aspect-ratio:1/1;
    border-radius:50%;
  }

  .about-visual>img:nth-child(2) {
    width:38%;
    height:auto;
    aspect-ratio:1/1;
    object-fit:cover;
    object-position:center;
    border-radius:50%;
  }
}

/* Storefront navigation, also present in critical CSS to keep first paint stable. */
.nav-commerce{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:9px 13px;border:1px solid #5b5c3340;border-radius:999px;color:#3e4021;text-decoration:none;font:600 .76rem Inter,Arial,sans-serif;background:#fffaf380;white-space:nowrap}.commerce-status{margin:0;padding:12px 22px;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;background:#e8ecd9;color:#3e4021;font-size:.83rem;text-align:center}.commerce-status a{color:inherit;font-weight:700}.commerce-status[hidden]{display:none!important}.commerce-label-mobile{display:none}@media(max-width:760px){.nav-commerce{font-size:.68rem;padding:7px 9px;min-height:36px}.top-nav{flex-wrap:wrap;height:auto;min-height:68px;padding-top:8px;padding-bottom:8px}.nav-actions{flex-wrap:wrap;justify-content:flex-end;max-width:calc(100% - 104px)}.commerce-label-full{display:none}.commerce-label-mobile{display:inline}}@media(max-width:380px){.nav-brand img{width:76px}.nav-actions{gap:4px;max-width:calc(100% - 84px)}.nav-order-status{gap:4px;padding:7px 8px;font-size:.65rem}.nav-cta{padding:9px 10px;font-size:.68rem}.nav-commerce{padding:7px 8px;font-size:.65rem}}
.product-detail-options>.size-option{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%}.product-detail-options>.size-option>button{width:42px;min-width:42px;min-height:42px;padding:8px}.product-detail-options>.size-option .price-tag{white-space:normal}
