@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,600&family=Manrope:wght@400;500;600;700;800&display=swap');

:root { --ink:#17352e; --muted:#65756f; --paper:#f4f6f2; --surface:#fff; --line:#dce4dd; --accent:#d37b45; --deep:#173f35; --radius:18px; }
* { box-sizing:border-box; }
.icon-sprite { position:absolute; width:0; height:0; overflow:hidden; pointer-events:none; }
.ui-icon { width:1em; height:1em; display:inline-block; flex:0 0 auto; overflow:visible; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; vertical-align:-.14em; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:'DM Sans',sans-serif; }
a { color:inherit; text-decoration:none; }
button,input { font:inherit; }
button { cursor:pointer; }
.site-header { position:sticky; top:0; z-index:10; background:rgba(244,246,242,.9); backdrop-filter:blur(16px); border-bottom:1px solid rgba(220,228,221,.8); }
.nav-shell { max-width:1240px; height:76px; margin:auto; padding:0 28px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.brand { display:flex; align-items:center; gap:11px; letter-spacing:-.02em; }
.brand-mark { display:grid; place-items:center; width:35px; height:35px; border-radius:50%; color:#fff; background:var(--deep); font-family:Manrope,sans-serif; font-weight:800; }
.brand strong { display:block; font:800 19px Manrope,sans-serif; line-height:1; }.brand small { display:block; margin-top:3px; color:var(--muted); font-size:8px; letter-spacing:.2em; }
.nav-links { display:flex; gap:32px; color:#64736d; font-size:14px; }.nav-links a:hover { color:var(--deep); }
.order-button,.primary-button { border:0; border-radius:999px; padding:13px 19px; font-weight:700; transition:transform .2s,background .2s; }.order-button { color:var(--deep); background:#e1e9e1; }.order-button span { display:inline-grid; place-items:center; min-width:21px; height:21px; margin-left:6px; color:#fff; background:var(--deep); border-radius:50%; font-size:11px; }.primary-button { display:inline-flex; align-items:center; gap:18px; color:#fff; background:var(--deep); }.primary-button:hover,.order-button:hover { transform:translateY(-2px); }.primary-button span { font-size:18px; }
.hero { max-width:1240px; min-height:610px; margin:auto; padding:82px 28px 74px; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:60px; }.eyebrow { margin:0 0 18px; color:#b76a3c; font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }.hero h1 { max-width:570px; margin:0; font:800 clamp(44px,6vw,76px)/.98 Manrope,sans-serif; letter-spacing:-.075em; }.hero h1 em { color:#b76a3c; font-style:normal; }.hero-text { max-width:400px; margin:25px 0 30px; color:var(--muted); font-size:17px; line-height:1.6; }
.hero-art { position:relative; min-height:430px; overflow:hidden; border-radius:var(--radius); background:#dce8df; }.art-orbit { position:absolute; border:1px solid rgba(23,63,53,.16); border-radius:50%; }.orbit-one { width:550px;height:550px;left:-55px;top:-60px; }.orbit-two { width:370px;height:370px;right:-72px;bottom:-50px; }.jar { position:absolute; display:grid; place-items:center; text-align:center; background:#f3eee4; box-shadow:22px 24px 0 rgba(23,63,53,.12),0 24px 38px rgba(23,63,53,.17); transform:rotate(-8deg); }.jar-main { width:195px;height:245px; left:50%;top:50%; transform:translate(-50%,-50%) rotate(-8deg); border-radius:18px 18px 28px 28px; color:#9a633c; font:700 13px/1.35 Manrope,sans-serif; letter-spacing:.13em; }.jar-main:before { content:''; position:absolute; width:215px;height:38px; top:-18px; border-radius:10px; background:#ba8354; }.seed { position:absolute; width:45px;height:28px; border-radius:100% 0 100% 0; background:#b77a43; }.seed-a { left:15%;top:22%; transform:rotate(-25deg); }.seed-b { right:16%;top:25%; transform:rotate(45deg); background:#a3aa71; }.seed-c { right:19%;bottom:19%; transform:rotate(-18deg); background:#d38b52; }.art-note { position:absolute; color:var(--deep); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }.note-top { top:31px;left:32px; }.note-bottom { right:30px;bottom:30px; }
.catalog-section { max-width:1240px; margin:auto; padding:78px 28px 104px; }.section-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; }.section-heading h2,.how-section h2 { margin:0; font:800 clamp(30px,4vw,49px)/1.04 Manrope,sans-serif; letter-spacing:-.06em; }.sync-status { margin:0; color:var(--muted); font-size:13px; }.catalog-tools { display:flex; align-items:center; gap:14px; margin:38px 0 28px; }.search-box { display:flex; align-items:center; gap:9px; width:290px; padding:13px 15px; background:#fff; border:1px solid var(--line); border-radius:11px; color:#7b8983; }.search-box input { width:100%; border:0; outline:0; background:transparent; color:var(--ink); font-size:14px; }.category-list { display:flex; gap:8px; flex-wrap:wrap; }.category-filter { border:1px solid var(--line); border-radius:999px; padding:10px 14px; color:#718079; background:transparent; font-size:12px; }.category-filter.active,.category-filter:hover { color:#fff; background:var(--deep); border-color:var(--deep); }
.product-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }.product-card { min-height:265px; padding:16px; display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); transition:transform .2s,box-shadow .2s; }.product-card:hover { transform:translateY(-4px); box-shadow:0 14px 32px rgba(23,63,53,.09); }.product-visual { height:108px; margin-bottom:17px; display:flex; align-items:end; justify-content:space-between; padding:13px; border-radius:13px; background:#e7eee6; color:var(--deep); }.product-visual span { max-width:80%; font:700 13px Manrope,sans-serif; letter-spacing:.04em; }.product-category { align-self:start; margin:0 0 8px; color:#b76a3c; font-size:10px; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }.product-name { min-height:39px; margin:0; font-size:15px; line-height:1.3; }.product-meta { display:flex; justify-content:space-between; align-items:end; gap:8px; margin-top:auto; padding-top:15px; }.product-price { font:800 18px Manrope,sans-serif; }.product-price small { display:block; color:var(--muted); font:400 10px 'DM Sans',sans-serif; }.add-button { border:0; width:33px;height:33px; border-radius:50%; color:#fff; background:var(--deep); font-size:21px; line-height:1; }.add-button:active { transform:scale(.94); }.loading-card { height:265px; border-radius:var(--radius); background:linear-gradient(100deg,#e8ede8 20%,#f5f7f4 40%,#e8ede8 60%); background-size:200% 100%; animation:shimmer 1.4s infinite; }.empty-state { margin:50px 0; color:var(--muted); text-align:center; } @keyframes shimmer { to { background-position:-200% 0; } }
.how-section { max-width:1240px; margin:auto; padding:90px 28px 110px; display:grid; grid-template-columns:.9fr 1.4fr; gap:100px; border-top:1px solid var(--line); }.how-intro h2 { max-width:380px; }.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }.steps article { border-top:2px solid var(--deep); padding-top:17px; }.steps span { color:#b76a3c; font:700 12px Manrope,sans-serif; }.steps h3 { margin:43px 0 10px; font:700 22px Manrope,sans-serif; }.steps p { margin:0; color:var(--muted); font-size:14px; line-height:1.55; }.site-footer { max-width:1240px; margin:auto; padding:25px 28px 35px; display:flex; justify-content:space-between; color:var(--muted); font-size:12px; border-top:1px solid var(--line); }
.order-drawer { position:fixed; z-index:30; top:0; right:0; width:min(430px,100%); height:100dvh; padding:29px; display:flex; flex-direction:column; background:#fff; transform:translateX(105%); transition:transform .3s ease; box-shadow:-15px 0 45px rgba(23,63,53,.12); }.order-drawer.open { transform:translateX(0); }.drawer-backdrop { position:fixed; z-index:20; inset:0; background:rgba(23,53,46,.25); opacity:0; pointer-events:none; transition:opacity .3s; }.drawer-backdrop.open { opacity:1; pointer-events:auto; }.drawer-head { display:flex; justify-content:space-between; align-items:start; padding-bottom:24px; border-bottom:1px solid var(--line); }.drawer-head h2 { margin:0; font:800 32px Manrope,sans-serif; letter-spacing:-.06em; }.close-button { border:0; color:var(--ink); background:transparent; font-size:30px; }.order-items { flex:1; overflow:auto; padding:10px 0; }.order-row { display:grid; grid-template-columns:1fr auto; gap:10px; padding:17px 0; border-bottom:1px solid var(--line); }.order-row h3 { margin:0 0 5px; font-size:14px; }.order-row p { margin:0; color:var(--muted); font-size:12px; }.order-controls { display:flex; align-items:center; gap:9px; }.quantity-button { width:25px;height:25px; border:1px solid var(--line); border-radius:50%; color:var(--ink); background:#fff; }.drawer-foot { padding-top:18px; }.total-line { display:flex; justify-content:space-between; align-items:center; margin-bottom:17px; }.total-line strong { font:800 23px Manrope,sans-serif; }.whatsapp-button { width:100%; justify-content:center; border-radius:11px; }.text-button { width:100%; margin-top:12px; padding:8px; border:0; color:var(--muted); background:none; font-size:12px; }.empty-order { padding-top:50px; color:var(--muted); text-align:center; font-size:14px; }
.close-button { width:36px; height:36px; padding:0; display:grid; place-items:center; }
.close-button .ui-icon { width:21px; height:21px; }
@media (max-width:900px) { .hero { grid-template-columns:1fr; gap:30px; padding-top:60px; }.hero-art { min-height:350px; }.product-grid { grid-template-columns:repeat(3,1fr); }.how-section { grid-template-columns:1fr; gap:40px; } }
@media (max-width:650px) { .nav-shell { height:68px; padding:0 17px; }.nav-links { display:none; }.order-button { padding:10px 13px; font-size:12px; }.hero,.catalog-section,.how-section { padding-left:17px; padding-right:17px; }.hero { min-height:auto; padding-top:54px; }.hero h1 { font-size:49px; }.hero-text { font-size:15px; }.hero-art { min-height:285px; }.jar-main { width:145px;height:180px; font-size:10px; }.jar-main:before { width:160px; height:30px; }.orbit-one { width:390px;height:390px; }.section-heading { display:block; }.sync-status { margin-top:16px; }.catalog-tools { display:block; margin-top:28px; }.search-box { width:100%; }.category-list { margin-top:12px; flex-wrap:nowrap; overflow:auto; padding-bottom:3px; }.category-filter { white-space:nowrap; }.product-grid { grid-template-columns:repeat(2,1fr); gap:10px; }.product-card { min-height:247px; padding:11px; border-radius:14px; }.product-visual { height:92px; padding:10px; }.product-name { font-size:13px; }.product-price { font-size:15px; }.how-section { padding-top:65px; padding-bottom:70px; }.steps { grid-template-columns:1fr; gap:29px; }.steps h3 { margin-top:20px; }.site-footer { padding-left:17px; padding-right:17px; display:block; }.site-footer span { display:block; margin-top:7px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; } }
/* Estados del catálogo completo */
.product-card.unavailable { background:#f8faf8; }
.product-card.unavailable .product-visual { filter:grayscale(.35); opacity:.72; }
.product-price.missing { color:#7d8984; font-size:15px; }
.sold-out-tag { padding:8px 9px; border:1px solid var(--line); border-radius:999px; color:#7d8984; font-size:10px; font-weight:700; }
.product-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.product-card { min-width:0; }
@media (max-width:900px) { .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:650px) { .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Selector de presentación y cantidad */
.product-card.expanded { grid-column:span 2; }
.choose-button { border:0; border-radius:999px; padding:9px 13px; color:#fff; background:var(--deep); font-size:11px; font-weight:700; }
.choose-button:active,.tier-option:active,.custom-purchase button:active { transform:scale(.97); }
.purchase-panel { margin-top:18px; padding-top:8px; border-top:1px solid var(--line); }
.purchase-variant { padding:13px 0 5px; }
.purchase-variant + .purchase-variant { border-top:1px dashed var(--line); }
.variant-title { margin:0 0 10px; color:var(--muted); font-size:11px; font-weight:700; line-height:1.45; }
.tier-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
.tier-option { min-width:0; padding:10px 8px; display:flex; flex-direction:column; align-items:flex-start; gap:3px; border:1px solid var(--line); border-radius:11px; color:var(--ink); background:#f7f9f6; text-align:left; transition:border-color .2s,background .2s,transform .2s; }
.tier-option:hover { border-color:var(--deep); background:#eef3ee; }
.tier-option strong { font-size:11px; line-height:1.25; }
.tier-option span { font-size:12px; font-weight:700; }
.tier-option small { color:var(--muted); font-size:9px; line-height:1.25; }
.custom-purchase { margin-top:10px; padding:10px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:9px; border-radius:11px; background:#edf2ed; }
.custom-purchase label { color:var(--muted); font-size:10px; font-weight:700; }
.custom-purchase label span { float:right; font-weight:500; }
.custom-purchase input { width:100%; margin-top:5px; padding:9px 10px; border:1px solid #ced9d0; border-radius:8px; color:var(--ink); background:#fff; outline:none; }
.custom-purchase input:focus { border-color:var(--deep); box-shadow:0 0 0 2px rgba(23,63,53,.12); }
.custom-purchase button { height:36px; padding:0 13px; border:0; border-radius:8px; color:#fff; background:var(--deep); font-size:11px; font-weight:700; }
.purchase-feedback { min-height:16px; margin:7px 2px 0; color:var(--deep); font-size:10px; font-weight:700; }
.purchase-feedback.error { color:#a24635; }
.order-row strong { display:block; margin-top:6px; font-size:13px; }
@media (max-width:650px) {
  .product-card.expanded { grid-column:span 2; }
  .product-card.expanded .product-visual { height:105px; }
  .tier-options { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .tier-option { padding:9px 6px; }
  .tier-option span { font-size:11px; }
}

/* Hoja de compra: una decisión por vez */
body.modal-open { overflow:hidden; }
.product-card.reveal-ready { opacity:0; transform:translateY(16px) scale(.985); }
.product-card.reveal-ready.is-visible { opacity:1; transform:none; transition:opacity .48s cubic-bezier(.16,1,.3,1) var(--reveal-delay),transform .48s cubic-bezier(.16,1,.3,1) var(--reveal-delay),box-shadow .2s; }
.product-card.reveal-ready.is-visible:hover { transform:translateY(-4px); }
.reveal-delay-0 { --reveal-delay:0ms; }.reveal-delay-1 { --reveal-delay:35ms; }.reveal-delay-2 { --reveal-delay:70ms; }.reveal-delay-3 { --reveal-delay:105ms; }.reveal-delay-4 { --reveal-delay:140ms; }.reveal-delay-5 { --reveal-delay:175ms; }.reveal-delay-6 { --reveal-delay:210ms; }.reveal-delay-7 { --reveal-delay:245ms; }
.product-tone-0 { --product-tone:#e5eee2; }.product-tone-1 { --product-tone:#f0e7d9; }.product-tone-2 { --product-tone:#e8e9d4; }.product-tone-3 { --product-tone:#e2eceb; }.product-tone-4 { --product-tone:#f1dfd2; }.product-tone-5 { --product-tone:#e8e1ed; }
.photo-position-0 { --photo-position:center; }.photo-position-1 { --photo-position:20% 24%; }.photo-position-2 { --photo-position:80% 24%; }.photo-position-3 { --photo-position:22% 76%; }.photo-position-4 { --photo-position:78% 76%; }
.choose-button { position:relative; overflow:hidden; min-width:62px; transition:transform .2s cubic-bezier(.16,1,.3,1),background .2s; }
.choose-button:hover { background:#235447; transform:translateY(-2px); }
.choose-button:focus-visible,.preset-choice:focus-visible,.variant-choice:focus-visible,.sheet-close:focus-visible,.quantity-stepper button:focus-visible,.confirm-purchase:focus-visible { outline:3px solid rgba(211,123,69,.34); outline-offset:2px; }

.purchase-overlay { position:fixed; z-index:40; inset:0; padding:24px; display:grid; place-items:center; background:rgba(16,43,36,.34); backdrop-filter:blur(8px); opacity:0; transition:opacity .24s ease; }
.purchase-overlay[hidden] { display:none; }
.purchase-overlay.open { opacity:1; }
.purchase-sheet { width:min(720px,100%); max-height:calc(100dvh - 48px); overflow:auto; border:1px solid rgba(255,255,255,.72); border-radius:22px; background:#fbfcfa; box-shadow:0 26px 80px rgba(23,63,53,.24),inset 0 1px 0 rgba(255,255,255,.9); transform:translateY(20px) scale(.97); opacity:0; transition:transform .32s cubic-bezier(.16,1,.3,1),opacity .22s ease; }
.purchase-overlay.open .purchase-sheet { transform:none; opacity:1; }
.sheet-handle { display:none; }
.purchase-sheet-head { position:sticky; z-index:1; top:0; padding:24px 26px 20px; display:flex; justify-content:space-between; align-items:flex-start; gap:20px; background:rgba(251,252,250,.94); backdrop-filter:blur(14px); border-bottom:1px solid var(--line); }
.purchase-sheet-head p { margin:0 0 6px; color:#b76a3c; font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.purchase-sheet-head h2 { margin:0; max-width:530px; font:800 clamp(24px,4vw,34px)/1.05 Manrope,sans-serif; letter-spacing:-.055em; }
.sheet-close { flex:0 0 auto; border:1px solid var(--line); border-radius:999px; padding:9px 13px; color:var(--ink); background:#fff; font-size:11px; font-weight:700; transition:transform .2s,background .2s; }
.sheet-close:hover { background:#edf2ed; transform:translateY(-1px); }
.purchase-sheet-body { padding:22px 26px 26px; }
.variant-picker,.presentation-picker { margin-bottom:22px; }
.variant-picker > p,.presentation-picker > p,.quantity-picker > div:first-child p { margin:0 0 9px; color:var(--ink); font-size:12px; font-weight:800; }
.variant-picker > div { display:flex; gap:8px; overflow-x:auto; padding:2px 2px 5px; scroll-snap-type:x proximity; }
.variant-choice { flex:0 0 auto; min-width:135px; padding:11px 12px; display:flex; flex-direction:column; align-items:flex-start; gap:2px; border:1px solid var(--line); border-radius:12px; color:var(--ink); background:#fff; text-align:left; scroll-snap-align:start; transition:transform .2s,border-color .2s,background .2s; }
.variant-choice:hover { transform:translateY(-2px); border-color:#9eb1a6; }
.variant-choice.selected { color:#fff; border-color:var(--deep); background:var(--deep); box-shadow:0 8px 20px rgba(23,63,53,.16); }
.variant-choice.unavailable { cursor:not-allowed; opacity:.48; filter:grayscale(.5); }
.variant-choice.unavailable:hover { transform:none; border-color:var(--line); }
.variant-choice strong { font-size:12px; }.variant-choice span { color:var(--muted); font-size:10px; }.variant-choice.selected span { color:#dbe7df; }
.preset-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.preset-choice { min-width:0; min-height:82px; padding:12px; display:flex; flex-direction:column; justify-content:space-between; align-items:flex-start; border:1px solid var(--line); border-radius:12px; color:var(--ink); background:#fff; text-align:left; transition:transform .22s cubic-bezier(.16,1,.3,1),border-color .2s,background .2s,box-shadow .2s; }
.preset-choice:hover { transform:translateY(-3px); border-color:#96aa9e; box-shadow:0 8px 20px rgba(23,63,53,.08); }
.preset-choice.selected { color:#fff; border-color:var(--deep); background:var(--deep); box-shadow:0 10px 24px rgba(23,63,53,.18); }
.preset-choice strong { font-size:13px; line-height:1.25; }.preset-choice span { color:var(--muted); font-size:10px; line-height:1.35; }.preset-choice.selected span { color:#dbe7df; }
.quantity-picker { margin:4px 0 18px; padding:14px; display:flex; justify-content:space-between; align-items:center; gap:16px; border-radius:14px; background:#edf2ed; }
.quantity-picker > div:first-child p { margin-bottom:2px; }.quantity-picker > div:first-child span { color:var(--muted); font-size:10px; }
.quantity-stepper { display:grid; grid-template-columns:38px minmax(105px,135px) 38px; align-items:center; border:1px solid #cad7ce; border-radius:12px; background:#fff; overflow:hidden; }
.quantity-stepper button { height:42px; border:0; color:var(--deep); background:#fff; font-size:20px; transition:background .2s,transform .15s; }
.quantity-stepper button:hover { background:#e7eee8; }.quantity-stepper button:active { transform:scale(.9); }
.quantity-stepper label { height:42px; display:flex; align-items:center; border-left:1px solid #dce4dd; border-right:1px solid #dce4dd; }
.quantity-stepper input { min-width:0; width:100%; border:0; outline:0; color:var(--ink); background:transparent; text-align:right; font-weight:800; appearance:textfield; }
.quantity-button .ui-icon,.quantity-stepper button .ui-icon { width:13px; height:13px; }
.quantity-stepper input::-webkit-outer-spin-button,.quantity-stepper input::-webkit-inner-spin-button { appearance:none; margin:0; }
.quantity-stepper label span { padding:0 10px 0 5px; color:var(--muted); font-size:11px; }
.purchase-summary { margin-bottom:12px; padding:16px 17px; display:grid; grid-template-columns:1fr auto; align-items:end; gap:18px; border-radius:14px; color:#fff; background:var(--deep); }
.purchase-summary > div { display:flex; flex-direction:column; gap:3px; }.purchase-summary > div:last-child { align-items:flex-end; }
.purchase-summary span { color:#dce8e1; font-size:11px; }.purchase-summary small { color:#b8cbc0; font-size:10px; }.purchase-summary strong { font:800 26px Manrope,sans-serif; letter-spacing:-.04em; }
.purchase-summary strong.price-change { animation:price-pop .28s cubic-bezier(.16,1,.3,1); }
.confirm-purchase { width:100%; min-height:48px; border:0; border-radius:12px; color:#fff; background:#b86739; font-weight:800; box-shadow:0 9px 22px rgba(184,103,57,.2); transition:transform .2s cubic-bezier(.16,1,.3,1),background .2s,box-shadow .2s; }
.confirm-purchase:hover { background:#a95d34; transform:translateY(-2px); box-shadow:0 12px 26px rgba(184,103,57,.28); }.confirm-purchase:active { transform:scale(.985); }.confirm-purchase:disabled { cursor:not-allowed; color:#6e7e77; background:#dfe5e0; box-shadow:none; transform:none; }
.cart-toast { position:fixed; z-index:50; left:50%; bottom:26px; max-width:calc(100% - 34px); padding:12px 18px; border-radius:999px; color:#fff; background:var(--deep); box-shadow:0 14px 36px rgba(23,63,53,.24); font-size:12px; font-weight:700; opacity:0; pointer-events:none; transform:translate(-50%,18px) scale(.96); transition:opacity .24s,transform .32s cubic-bezier(.16,1,.3,1); }
.cart-toast.show { opacity:1; transform:translate(-50%,0) scale(1); }
#cart-count.bump { animation:cart-bump .42s cubic-bezier(.16,1,.3,1); }
@keyframes cart-bump { 45% { transform:scale(1.35); background:#b86739; } }
@keyframes price-pop { 45% { transform:translateY(-2px) scale(1.055); opacity:.82; } }

@media (max-width:650px) {
  .purchase-overlay { padding:0; place-items:end center; background:rgba(16,43,36,.38); }
  .purchase-sheet { width:100%; max-height:88dvh; border-radius:20px 20px 0 0; border-bottom:0; transform:translateY(100%); }
  .purchase-overlay.open .purchase-sheet { transform:translateY(0); }
  .sheet-handle { position:sticky; z-index:2; top:0; display:block; width:42px; height:4px; margin:8px auto -4px; border-radius:999px; background:#b9c6be; }
  .purchase-sheet-head { padding:20px 17px 16px; }.purchase-sheet-head h2 { font-size:25px; }.purchase-sheet-body { padding:18px 17px 24px; }
  .preset-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.preset-choice { min-height:76px; }
  .quantity-picker { align-items:flex-start; flex-direction:column; }.quantity-stepper { width:100%; grid-template-columns:42px minmax(0,1fr) 42px; }
  .purchase-summary { padding:14px; }.purchase-summary strong { font-size:23px; }
  .cart-toast { bottom:18px; width:max-content; }
}

@media (prefers-reduced-motion:reduce) {
  .product-card.reveal-ready,.product-card.reveal-ready.is-visible,.purchase-sheet,.purchase-overlay,.cart-toast { opacity:1; transform:none; }
  #cart-count.bump,.purchase-summary strong.price-change { animation:none; }
}

/* Datos reales del catálogo */
.admin-button { margin-left:auto; border:1px solid var(--line); border-radius:999px; padding:11px 15px; color:var(--deep); background:#fff; font-size:12px; font-weight:700; transition:transform .2s,background .2s; }
.admin-button:hover { transform:translateY(-2px); background:#edf2ed; }
.catalog-facts { min-height:430px; padding:26px; display:grid; grid-template-columns:1.2fr .8fr; grid-template-rows:1fr 1fr; gap:12px; background:#dce8df; }
.catalog-fact { padding:22px; display:flex; flex-direction:column; justify-content:flex-end; border:1px solid rgba(23,63,53,.12); border-radius:14px; background:rgba(255,255,255,.5); }
.catalog-fact strong { font:800 clamp(32px,5vw,62px)/1 Manrope,sans-serif; letter-spacing:-.06em; }.catalog-fact span { margin-top:7px; color:var(--muted); font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.fact-products { grid-row:span 2; background:var(--deep); color:#fff; }.fact-products span { color:#c8d9cf; }.fact-date strong { font-size:clamp(23px,3vw,35px); }

/* Panel de administración local */
.admin-overlay { position:fixed; z-index:45; inset:0; padding:20px; display:grid; place-items:center; background:rgba(16,43,36,.4); backdrop-filter:blur(9px); opacity:0; transition:opacity .24s ease; }
.admin-overlay[hidden] { display:none; }.admin-overlay.open { opacity:1; }
.admin-sheet { width:min(1100px,100%); height:min(880px,calc(100dvh - 40px)); display:flex; flex-direction:column; overflow:hidden; border:1px solid rgba(255,255,255,.7); border-radius:20px; background:#f7f9f6; box-shadow:0 28px 90px rgba(23,63,53,.28); opacity:0; transform:translateY(18px) scale(.98); transition:opacity .22s,transform .32s cubic-bezier(.16,1,.3,1); }
.admin-overlay.open .admin-sheet { opacity:1; transform:none; }
.admin-head { flex:0 0 auto; padding:22px 24px; display:flex; justify-content:space-between; align-items:flex-start; gap:20px; border-bottom:1px solid var(--line); background:#fff; }
.admin-head p { margin:0 0 5px; color:#b76a3c; font-size:10px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }.admin-head h2 { margin:0; font:800 30px Manrope,sans-serif; letter-spacing:-.055em; }.admin-head span { display:block; margin-top:5px; color:var(--muted); font-size:11px; }
.admin-body { flex:1; min-height:0; overflow:auto; padding:20px 24px; }
.admin-global { padding:18px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.admin-section-title { margin-bottom:15px; }.admin-section-title h3,.admin-products-head h3 { margin:0; font:800 18px Manrope,sans-serif; }.admin-section-title p,.admin-products-head p { margin:4px 0 0; color:var(--muted); font-size:11px; }
.admin-global-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.admin-global-grid > label,.admin-products-head label,.admin-individual-margin { color:var(--muted); font-size:10px; font-weight:700; }
.admin-global-grid input,.admin-products-head input,.admin-individual-margin input { width:100%; margin-top:6px; padding:10px 11px; border:1px solid #ccd8d0; border-radius:9px; color:var(--ink); background:#fff; outline:none; }
.admin-global-grid input:focus,.admin-products-head input:focus,.admin-individual-margin input:focus { border-color:var(--deep); box-shadow:0 0 0 3px rgba(23,63,53,.1); }
.admin-check { min-height:42px; display:flex; align-items:center; gap:9px; color:var(--ink)!important; }.admin-check input,.admin-visible input { width:17px; height:17px; accent-color:var(--deep); }
.admin-local-note { margin:13px 0 0; color:#6d7b75; font-size:10px; }
.admin-products-section { margin-top:18px; }
.admin-products-head { margin-bottom:10px; display:flex; justify-content:space-between; align-items:end; gap:20px; }.admin-products-head label { width:min(280px,45%); }
.admin-product-list { border:1px solid var(--line); border-radius:14px; background:#fff; overflow:hidden; }
.admin-result-count { margin:0; padding:10px 14px; color:var(--muted); background:#edf2ed; font-size:10px; font-weight:700; }
.admin-product-row { padding:11px 14px; display:grid; grid-template-columns:minmax(0,1fr) 88px 150px; align-items:center; gap:16px; border-top:1px solid #e7ece8; }
.admin-product-info { min-width:0; }.admin-product-info strong { display:block; overflow:hidden; color:var(--ink); font-size:12px; text-overflow:ellipsis; white-space:nowrap; }.admin-product-info span { display:block; margin-top:3px; color:var(--muted); font-size:10px; }
.admin-visible { display:flex; align-items:center; gap:7px; color:var(--ink); font-size:11px; font-weight:700; }.admin-individual-margin input { margin-top:3px; padding:8px 9px; }
.admin-footer { flex:0 0 auto; padding:14px 24px; display:flex; justify-content:flex-end; gap:9px; border-top:1px solid var(--line); background:#fff; }
.admin-footer button { border-radius:10px; padding:11px 16px; font-size:12px; font-weight:800; }.admin-reset { margin-right:auto; border:1px solid #d8c7c1; color:#914d3d; background:#fff; }.admin-save { border:0; color:#fff; background:var(--deep); }
.admin-save:hover { background:#235447; }.admin-footer button:active { transform:scale(.98); }

@media (max-width:900px) {
  .admin-global-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:650px) {
  .nav-shell { gap:8px; }.brand { margin-right:auto; }.admin-button { margin-left:0; padding:9px 10px; font-size:10px; }.order-button { padding:9px 10px; }
  .catalog-facts { min-height:310px; padding:12px; grid-template-columns:1fr 1fr; }.catalog-fact { padding:14px; }.catalog-fact strong { font-size:32px; }.fact-date strong { font-size:20px; }
  .admin-overlay { padding:0; place-items:end center; }.admin-sheet { width:100%; height:94dvh; border-radius:18px 18px 0 0; border-bottom:0; transform:translateY(100%); }.admin-overlay.open .admin-sheet { transform:translateY(0); }
  .admin-head { padding:18px 17px 14px; }.admin-head h2 { font-size:25px; }.admin-head span { max-width:230px; }.admin-body { padding:14px 12px 18px; }
  .admin-global { padding:14px; }.admin-global-grid { grid-template-columns:1fr; }.admin-products-head { align-items:stretch; flex-direction:column; }.admin-products-head label { width:100%; }
  .admin-product-row { grid-template-columns:minmax(0,1fr) 76px; gap:10px; }.admin-individual-margin { grid-column:1 / -1; }.admin-footer { padding:12px; }
}
@media (prefers-reduced-motion:reduce) { .admin-overlay,.admin-sheet { opacity:1; transform:none; } }

/* Identidad Granumo */
:root {
  --ink:#17201d;
  --muted:#68716c;
  --paper:#f4ebdd;
  --surface:#fffaf2;
  --line:#dcd2c3;
  --accent:#c76d4d;
  --deep:#173d32;
  --sage:#a6b2a5;
  --radius:12px;
}

body {
  color:var(--ink);
  background:
    radial-gradient(circle at 8% 3%,rgba(199,109,77,.08),transparent 26rem),
    var(--paper);
  font-family:Manrope,sans-serif;
}

::selection { color:#fff; background:var(--accent); }
.skip-link { position:fixed; z-index:100; top:10px; left:10px; padding:10px 14px; color:#fff; background:var(--deep); transform:translateY(-150%); }
.skip-link:focus { transform:none; }
button:focus-visible,a:focus-visible,input:focus-visible { outline:3px solid rgba(199,109,77,.38); outline-offset:3px; }

.site-header { background:rgba(244,235,221,.86); border-color:rgba(23,61,50,.14); }
.nav-shell { max-width:1320px; height:82px; padding:0 40px; gap:18px; }
.brand { gap:13px; }
.brand-mark { width:42px; height:42px; border-radius:11px; background:var(--deep); box-shadow:inset 0 0 0 1px rgba(255,255,255,.08); }
.brand-mark { color:var(--paper); }
.brand-mark svg { width:31px; height:31px; }
.granumo-ring { fill:none; stroke:currentColor; stroke-width:15; stroke-linecap:round; stroke-linejoin:round; }
.granumo-grain { fill:var(--accent); }
.granumo-vein { fill:none; stroke:var(--deep); stroke-width:3; stroke-linecap:round; }
.brand strong { color:var(--deep); font:600 25px/1 Fraunces,serif; letter-spacing:-.045em; }
.brand small { margin-top:5px; color:#7a7167; font:700 7px/1 Manrope,sans-serif; letter-spacing:.18em; }
.nav-links { margin-left:auto; gap:28px; color:#5d655f; font-size:12px; font-weight:700; }
.nav-links a { position:relative; padding:10px 0; }
.nav-links a::after { content:''; position:absolute; left:0; right:100%; bottom:4px; height:1px; background:var(--accent); transition:right .25s ease; }
.nav-links a:hover::after { right:0; }
.admin-button { margin-left:18px; border-color:rgba(23,61,50,.22); border-radius:8px; color:var(--deep); background:transparent; }
.admin-button:hover { color:#fff; background:var(--deep); }
.account-button { min-width:94px; padding:11px 14px; display:inline-flex; align-items:center; justify-content:center; gap:7px; border:1px solid rgba(23,61,50,.22); border-radius:8px; color:var(--deep); background:#fffdf8; font-size:11px; font-weight:800; transition:transform .2s,background .2s; }
.account-button:hover { transform:translateY(-2px); background:#edf2ed; }
.account-button .ui-icon { width:15px; height:15px; }
.order-button { border-radius:8px; color:#fff; background:var(--deep); }
.order-button:hover { background:#245346; }
.order-button span { color:var(--deep); background:var(--paper); }

.hero { max-width:1320px; min-height:690px; padding:68px 40px 86px; grid-template-columns:.9fr 1.1fr; gap:74px; }
.hero-copy { position:relative; z-index:1; animation:granumo-rise .7s cubic-bezier(.16,1,.3,1) both; }
.eyebrow { margin-bottom:16px; color:var(--accent); font-size:10px; letter-spacing:.19em; }
.hero h1 { max-width:650px; color:var(--deep); font:600 clamp(58px,7vw,94px)/.86 Fraunces,serif; letter-spacing:-.065em; }
.hero h1 em { display:inline-block; color:var(--accent); font-style:italic; font-weight:500; }
.hero-text { max-width:480px; margin:30px 0 31px; color:#525d57; font-size:16px; line-height:1.72; }
.hero-actions { display:flex; align-items:center; gap:22px; }
.hero-actions p { max-width:210px; margin:0; color:#6d746f; font-size:10px; line-height:1.55; }
.hero-actions p strong { color:var(--deep); }
.primary-button { border-radius:8px; padding:15px 19px; background:var(--deep); box-shadow:0 12px 30px rgba(23,61,50,.14); }
.primary-button:hover { background:#245346; }

.catalog-facts { position:relative; min-height:520px; padding:0; display:block; overflow:hidden; border-radius:4px 34px 4px 4px; color:var(--paper); background:var(--deep); box-shadow:24px 24px 0 rgba(199,109,77,.12); animation:granumo-rise .8s .08s cubic-bezier(.16,1,.3,1) both; }
.catalog-facts::before { content:''; position:absolute; inset:0; opacity:.17; background-image:radial-gradient(rgba(244,235,221,.7) 1px,transparent 1px); background-size:19px 19px; mask-image:linear-gradient(to bottom,#000,transparent 78%); }
.catalog-facts::after { content:''; position:absolute; width:260px; height:260px; top:-70px; right:-80px; border:1px solid rgba(244,235,221,.17); border-radius:50%; box-shadow:0 0 0 50px rgba(244,235,221,.035),0 0 0 100px rgba(244,235,221,.025); }
.hero-emblem { position:absolute; top:53px; right:54px; width:260px; height:260px; }
.hero-emblem { color:var(--paper); }
.hero-emblem svg { width:100%; height:100%; filter:drop-shadow(0 18px 28px rgba(0,0,0,.15)); }
.hero-art-copy { position:absolute; z-index:1; top:64px; left:48px; display:flex; flex-direction:column; }
.hero-art-copy span { color:#c8d1ca; font-size:9px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; }
.hero-art-copy strong { max-width:155px; margin-top:10px; font:500 28px/1.08 Fraunces,serif; }
.facts-row { position:absolute; z-index:2; right:0; bottom:0; left:0; display:grid; grid-template-columns:1fr 1fr 1.25fr; border-top:1px solid rgba(244,235,221,.18); background:rgba(10,38,30,.44); backdrop-filter:blur(10px); }
.catalog-fact { min-width:0; min-height:132px; padding:24px 25px; justify-content:flex-end; border:0; border-right:1px solid rgba(244,235,221,.16); border-radius:0; color:var(--paper); background:transparent; }
.catalog-fact:last-child { border-right:0; }
.catalog-fact strong { color:var(--paper); font:600 clamp(28px,4vw,45px)/1 Fraunces,serif; letter-spacing:-.04em; }
.catalog-fact span,.fact-products span { color:#b9c8bf; font-size:8px; line-height:1.35; }
.fact-products { grid-row:auto; background:transparent; }
.fact-date strong { font-size:clamp(18px,2.7vw,29px); }

.photo-frutos { --category-image:url('assets/frutos-secos.jpg'); }
.photo-semillas { --category-image:url('assets/semillas-cereales.jpg'); }
.photo-legumbres { --category-image:url('assets/legumbres-harinas.jpg'); }
.photo-frutas { --category-image:url('assets/frutas-miel.jpg'); }
.photo-hierbas { --category-image:url('assets/hierbas-especias.jpg'); }
.photo-mix { --category-image:url('assets/mix-snacks.jpg'); }

.visual-categories { max-width:1320px; margin:auto; padding:28px 40px 42px; }
.visual-categories-head { margin-bottom:27px; display:flex; align-items:end; justify-content:space-between; gap:40px; }
.visual-categories-head .eyebrow { margin-bottom:9px; }
.visual-categories-head h2 { margin:0; color:var(--deep); font:500 clamp(38px,4vw,56px)/.95 Fraunces,serif; letter-spacing:-.05em; }
.visual-categories-head > p { max-width:390px; margin:0; color:#68716c; font-size:10px; line-height:1.65; text-wrap:pretty; }
.visual-category-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-auto-rows:minmax(190px,1fr); gap:10px; }
.visual-category-card { position:relative; min-height:190px; overflow:hidden; padding:20px; display:flex; align-items:flex-end; justify-content:space-between; border:0; border-radius:6px; color:#fff; background-image:linear-gradient(to top,rgba(10,31,25,.78),rgba(10,31,25,.06) 65%),var(--category-image); background-position:center; background-size:cover; box-shadow:inset 0 0 0 1px rgba(255,255,255,.16); text-align:left; isolation:isolate; transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s,background-size .6s cubic-bezier(.16,1,.3,1); }
.visual-category-card:first-child,.visual-category-card:last-child { grid-column:span 2; }
.visual-category-card::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(120deg,rgba(199,109,77,.12),transparent 55%); opacity:0; transition:opacity .3s; }
.visual-category-card:hover { transform:translateY(-5px); box-shadow:0 20px 40px rgba(23,61,50,.18),inset 0 0 0 1px rgba(255,255,255,.2); background-size:106%; }
.visual-category-card:hover::before { opacity:1; }
.visual-category-card span { display:flex; flex-direction:column; }
.visual-category-card small { margin-bottom:4px; color:#ddd9cb; font-size:8px; font-weight:800; letter-spacing:.15em; text-transform:uppercase; }
.visual-category-card strong { max-width:230px; font:500 clamp(24px,2.8vw,36px)/.95 Fraunces,serif; letter-spacing:-.035em; text-wrap:balance; }
.visual-category-card i { width:36px; height:36px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.5); border-radius:50%; background:rgba(23,61,50,.24); font-size:17px; font-style:normal; backdrop-filter:blur(8px); transition:transform .3s,background .3s; }
.visual-category-card i .ui-icon { width:16px; height:16px; }
.visual-category-card:hover i { background:var(--accent); transform:rotate(-45deg); }

.catalog-section { max-width:1320px; padding:72px 40px 112px; }
.section-heading { align-items:end; border-bottom:1px solid rgba(23,61,50,.2); padding-bottom:26px; }
.section-heading .eyebrow { margin-bottom:10px; }
.section-heading h2,.how-section h2 { color:var(--deep); font:500 clamp(41px,5vw,62px)/.95 Fraunces,serif; letter-spacing:-.05em; }
.catalog-status { display:flex; align-items:center; justify-content:flex-end; gap:9px; }
.sync-status { padding:7px 10px; border-radius:999px; color:#59645e; background:rgba(255,250,242,.62); font-size:10px; font-weight:700; }
.sync-status::before { content:''; display:inline-block; width:6px; height:6px; margin-right:7px; border-radius:50%; background:var(--sage); }
.refresh-button { padding:7px 10px; display:inline-flex; align-items:center; gap:6px; border:1px solid rgba(23,61,50,.17); border-radius:7px; color:var(--deep); background:transparent; font-size:9px; font-weight:800; transition:color .2s,background .2s,transform .2s; }
.refresh-button:hover { color:var(--paper); background:var(--deep); transform:translateY(-1px); }
.refresh-button:disabled { cursor:wait; opacity:.6; transform:none; }
.refresh-button.loading span { animation:granumo-spin .8s linear infinite; }
.refresh-button span { display:inline-flex; }
.catalog-tools { display:block; margin:28px 0 31px; }
.catalog-tool-row { display:flex; align-items:center; gap:8px; }
.search-box { width:390px; flex:0 1 390px; padding:12px 14px; border-color:rgba(23,61,50,.18); border-radius:8px; background:rgba(255,250,242,.72); }
.search-box:focus-within { border-color:var(--deep); box-shadow:0 0 0 3px rgba(23,61,50,.08); }
.search-box input:focus-visible { outline:none; }
.search-box input::-webkit-search-cancel-button { appearance:none; -webkit-appearance:none; }
.clear-search { flex:0 0 auto; width:24px; height:24px; padding:0; display:grid; place-items:center; border:0; border-radius:5px; color:#6c746f; background:#e9e0d3; font-size:17px; line-height:1; }
.clear-search .ui-icon { width:13px; height:13px; }
.clear-search:hover { color:#fff; background:var(--accent); }
.clear-search[hidden] { display:none; }
.availability-filter { padding:11px 13px; display:inline-flex; align-items:center; gap:8px; border:1px solid rgba(23,61,50,.18); border-radius:8px; color:#59645e; background:rgba(255,250,242,.48); font-size:10px; font-weight:800; transition:color .2s,background .2s,border-color .2s,transform .2s; }
.availability-filter span { width:15px; height:15px; border:1px solid rgba(23,61,50,.35); border-radius:4px; background:transparent; box-shadow:inset 0 0 0 3px transparent; }
.availability-filter:hover { border-color:rgba(23,61,50,.4); transform:translateY(-1px); }
.availability-filter.active { color:var(--paper); border-color:var(--deep); background:var(--deep); }
.availability-filter.active span { border-color:var(--paper); background:var(--accent); box-shadow:inset 0 0 0 3px var(--deep); }
.category-list { gap:6px; margin-top:12px; }
.category-filter { border-color:rgba(23,61,50,.18); border-radius:7px; padding:10px 13px; color:#5f6963; background:transparent; font-size:10px; font-weight:700; }
.category-filter.active { color:var(--paper); background:var(--deep); border-color:var(--deep); }
.category-filter:not(.active) { color:#5f6963; background:transparent; border-color:rgba(23,61,50,.18); }
@media (hover:hover) { .category-filter:not(.active):hover { color:var(--paper); background:var(--deep); border-color:var(--deep); } }
.catalog-result-line { min-height:22px; margin-top:13px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.catalog-result-line p { margin:0; color:#69716c; font-size:10px; font-variant-numeric:tabular-nums; }
.catalog-result-line button { padding:0; border:0; border-bottom:1px solid rgba(23,61,50,.4); color:var(--deep); background:transparent; font-size:9px; font-weight:800; }
.catalog-result-line button:hover { color:var(--accent); border-color:var(--accent); }
.catalog-result-line button[hidden] { display:none; }

.product-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:13px; }
.product-card { min-height:292px; padding:12px; border-color:rgba(23,61,50,.14); border-radius:9px; background:rgba(255,250,242,.82); box-shadow:0 1px 0 rgba(255,255,255,.8); transition:transform .3s cubic-bezier(.16,1,.3,1),box-shadow .3s,border-color .3s; }
.product-card { content-visibility:auto; contain-intrinsic-size:auto 292px; }
.product-card:hover { border-color:rgba(23,61,50,.35); transform:translateY(-6px); box-shadow:0 20px 42px rgba(23,61,50,.11); }
.product-visual { position:relative; height:126px; margin-bottom:19px; overflow:hidden; padding:14px; border-radius:5px; color:var(--deep); background:linear-gradient(135deg,rgba(244,235,221,.16),rgba(23,61,50,.08)),var(--product-tone,#d8dfd5); }
.product-visual::before,.product-visual::after { content:''; position:absolute; border:1px solid rgba(23,61,50,.14); border-radius:50%; }
.product-visual::before { width:125px; height:125px; right:-37px; top:-54px; box-shadow:0 0 0 22px rgba(23,61,50,.035),0 0 0 44px rgba(23,61,50,.025); }
.product-visual::after { width:55px; height:55px; right:22px; bottom:-27px; background:rgba(255,250,242,.23); }
.product-card:hover .product-visual::before { transform:translate(-5px,7px) scale(1.06); }
.product-visual::before { transition:transform .5s cubic-bezier(.16,1,.3,1); }
.product-visual span { position:relative; z-index:2; max-width:70%; font:700 12px/1.25 Manrope,sans-serif; letter-spacing:.02em; }
.product-visual i { position:absolute; z-index:2; right:14px; bottom:14px; width:14px; height:22px; border:1px solid rgba(23,61,50,.45); border-radius:100% 0 100% 0; transform:rotate(28deg); }
.product-visual.has-photo { align-items:flex-end; color:#fff; background-image:var(--category-image); background-position:var(--photo-position,center); background-size:cover; }
.product-visual.has-photo::before { inset:0; width:auto; height:auto; border:0; border-radius:0; background:linear-gradient(to top,rgba(10,34,27,.82),rgba(10,34,27,.04) 72%); box-shadow:none; transform:none; }
.product-card:hover .product-visual.has-photo::before { transform:none; }
.product-visual.has-photo::after { display:none; }
.product-visual.has-photo span { max-width:78%; color:#fff; text-shadow:0 1px 8px rgba(0,0,0,.25); }
.product-visual.has-photo b { position:absolute; z-index:2; top:9px; right:9px; padding:4px 5px; border-radius:3px; color:#f4ebdd; background:rgba(23,61,50,.62); font-size:6px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; backdrop-filter:blur(6px); }
.product-category { margin-bottom:9px; color:var(--accent); font-size:8px; letter-spacing:.13em; }
.product-name { min-height:42px; color:var(--deep); font-size:14px; line-height:1.42; }
.product-meta { padding-top:17px; border-top:1px solid rgba(23,61,50,.1); }
.product-price { color:var(--ink); font:700 17px Manrope,sans-serif; letter-spacing:-.035em; }
.product-price small { margin-top:3px; font-family:Manrope,sans-serif; font-size:8px; line-height:1.35; }
.choose-button { min-width:66px; border-radius:6px; padding:9px 12px; background:var(--deep); }
.choose-button:hover { background:var(--accent); }
.loading-card { height:292px; border-radius:9px; background:linear-gradient(100deg,#e9dfd0 20%,#f9f3e9 40%,#e9dfd0 60%); background-size:200% 100%; }
.load-more { margin:30px auto 0; min-width:210px; padding:13px 18px; display:block; border:1px solid rgba(23,61,50,.28); border-radius:7px; color:var(--deep); background:rgba(255,250,242,.6); font-size:10px; font-weight:800; transition:color .2s,background .2s,transform .2s,box-shadow .2s; }
.load-more:hover { color:var(--paper); background:var(--deep); transform:translateY(-2px); box-shadow:0 10px 24px rgba(23,61,50,.12); }
.load-more:active { transform:translateY(0) scale(.98); }
.load-more[hidden] { display:none; }
.empty-state { margin:58px auto 10px; max-width:480px; padding:45px 24px; display:flex; flex-direction:column; align-items:center; border:1px dashed rgba(23,61,50,.25); border-radius:12px; color:#69716c; background:rgba(255,250,242,.45); text-align:center; }
.empty-state[hidden] { display:none; }
.empty-state strong { color:var(--deep); font:500 29px Fraunces,serif; }
.empty-state span { margin-top:7px; font-size:11px; line-height:1.6; }
.empty-state button { margin-top:19px; padding:10px 13px; border:0; border-radius:6px; color:#fff; background:var(--deep); font-size:10px; font-weight:800; }

.how-section { max-width:1320px; padding:90px 40px 105px; gap:90px; border-color:rgba(23,61,50,.2); }
.steps { gap:14px; }
.steps article { min-height:240px; padding:20px; display:flex; flex-direction:column; border:1px solid rgba(23,61,50,.17); border-top:3px solid var(--accent); border-radius:4px; background:rgba(255,250,242,.55); }
.steps span { color:var(--accent); font-size:10px; }
.steps h3 { margin:auto 0 10px; color:var(--deep); font:500 29px Fraunces,serif; }
.steps p { font-size:12px; line-height:1.65; }
.site-footer { max-width:1320px; padding:27px 40px 38px; border-color:rgba(23,61,50,.2); font-size:10px; }
.site-footer strong { color:var(--deep); font:600 17px Fraunces,serif; }
.back-to-top { position:fixed; z-index:9; right:24px; bottom:24px; padding:10px 13px; display:flex; align-items:center; gap:7px; border:1px solid rgba(244,235,221,.25); border-radius:8px; color:var(--paper); background:rgba(23,61,50,.94); box-shadow:0 12px 30px rgba(23,61,50,.2); font-size:9px; font-weight:800; opacity:0; pointer-events:none; transform:translateY(12px); transition:opacity .25s,transform .3s cubic-bezier(.16,1,.3,1),background .2s; }
.back-to-top.visible { opacity:1; pointer-events:auto; transform:none; }
.back-to-top:hover { background:var(--accent); }

.order-drawer,.purchase-sheet,.admin-sheet { background:var(--surface); }
.order-drawer { box-shadow:-20px 0 60px rgba(23,61,50,.18); }
.order-product { min-width:0; display:flex; align-items:flex-start; gap:11px; }
.order-product > div { min-width:0; }
.order-thumb { flex:0 0 48px; width:48px; height:48px; border-radius:6px; background-image:linear-gradient(to top,rgba(10,34,27,.2),transparent 70%),var(--category-image); background-position:var(--photo-position,center); background-size:cover; box-shadow:inset 0 0 0 1px rgba(23,61,50,.12); }
.drawer-head h2,.purchase-sheet-head h2,.admin-head h2 { color:var(--deep); font-family:Fraunces,serif; font-weight:600; letter-spacing:-.04em; }
.purchase-overlay,.admin-overlay { background:rgba(11,34,28,.45); }
.purchase-sheet,.admin-sheet { border-radius:16px; }
.purchase-sheet-head,.admin-head,.admin-footer { background:rgba(255,250,242,.94); }
.purchase-sheet-head p,.admin-head p { color:var(--accent); }
.purchase-title-group { min-width:0; display:flex; align-items:center; gap:14px; }
.purchase-title-group > div:last-child { min-width:0; }
.purchase-photo { flex:0 0 64px; width:64px; height:64px; border-radius:7px; background-image:linear-gradient(to top,rgba(10,34,27,.25),transparent 65%),var(--category-image); background-position:var(--photo-position,center); background-size:cover; box-shadow:inset 0 0 0 1px rgba(23,61,50,.12); }
.variant-choice,.preset-choice,.admin-global,.admin-product-list { border-color:rgba(23,61,50,.17); border-radius:8px; background:#fffdf8; }
.variant-choice.selected,.preset-choice.selected,.purchase-summary { background:var(--deep); }
.quantity-picker,.admin-result-count { background:#eee5d8; }
.confirm-purchase { border-radius:7px; background:var(--accent); box-shadow:0 9px 22px rgba(199,109,77,.22); }
.confirm-purchase:hover { background:#ad593d; }
.admin-global-grid input,.admin-products-head input,.admin-individual-margin input { border-radius:6px; border-color:rgba(23,61,50,.2); background:#fffdf8; }
.admin-footer button { border-radius:6px; }
.admin-reset.armed { color:#fff; border-color:#9c4e39; background:#9c4e39; animation:reset-pulse 1s ease-in-out infinite alternate; }

@keyframes granumo-rise {
  from { opacity:0; transform:translateY(22px); }
  to { opacity:1; transform:none; }
}
@keyframes granumo-spin { to { transform:rotate(360deg); } }
@keyframes reset-pulse { to { box-shadow:0 0 0 4px rgba(156,78,57,.12); } }

@media (max-width:1000px) {
  .nav-shell { padding:0 24px; }
  .hero { padding-inline:24px; gap:40px; }
  .hero-emblem { right:30px; width:215px; height:215px; }
  .hero-art-copy { left:30px; }
  .catalog-section,.how-section { padding-left:24px; padding-right:24px; }
  .visual-categories { padding-left:24px; padding-right:24px; }
  .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}

@media (max-width:760px) {
  .nav-shell { height:72px; padding:0 16px; gap:8px; }
  .brand { margin-right:auto; gap:9px; }
  .brand-mark { width:36px; height:36px; border-radius:9px; }
  .brand-mark svg { width:25px; height:25px; }
  .brand strong { font-size:20px; }
  .brand small,.nav-links { display:none; }
  .admin-button { margin-left:0; padding:9px 10px; font-size:9px; }
  .account-button { min-width:auto; padding:9px; }
  .account-button span { display:none; }
  .order-button { padding:9px 10px; font-size:10px; }
  .order-button span { min-width:18px; height:18px; }
  .hero { min-height:auto; padding:50px 17px 68px; grid-template-columns:1fr; gap:40px; }
  .hero h1 { font-size:clamp(53px,15vw,72px); }
  .hero-text { margin:24px 0 27px; font-size:14px; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:14px; }
  .hero-actions p { max-width:260px; }
  .catalog-facts { min-height:430px; padding:0; border-radius:3px 24px 3px 3px; box-shadow:12px 12px 0 rgba(199,109,77,.12); }
  .hero-emblem { top:47px; right:25px; width:190px; height:190px; }
  .hero-art-copy { top:48px; left:24px; }
  .hero-art-copy strong { max-width:115px; font-size:22px; }
  .facts-row { grid-template-columns:1fr 1fr; }
  .catalog-fact { min-height:107px; padding:17px; }
  .fact-date { grid-column:1 / -1; min-height:76px; border-top:1px solid rgba(244,235,221,.16); }
  .catalog-fact strong { font-size:31px; }
  .fact-date strong { font-size:21px; }
  .catalog-section { padding:50px 17px 82px; }
  .visual-categories { padding:5px 17px 28px; }
  .visual-categories-head { margin-bottom:20px; align-items:flex-start; flex-direction:column; gap:12px; }
  .visual-categories-head h2 { font-size:44px; }
  .visual-categories-head > p { max-width:330px; }
  .visual-category-grid { margin-right:-17px; padding-right:17px; display:flex; gap:9px; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; }
  .visual-category-grid::-webkit-scrollbar { display:none; }
  .visual-category-card,.visual-category-card:first-child,.visual-category-card:last-child { flex:0 0 76%; min-height:230px; grid-column:auto; scroll-snap-align:start; }
  .visual-category-card strong { font-size:31px; }
  .section-heading { display:block; }
  .section-heading h2 { font-size:46px; }
  .catalog-status { margin-top:16px; justify-content:flex-start; flex-wrap:wrap; }
  .sync-status { display:inline-block; margin:0; }
  .catalog-tools { display:block; margin-top:24px; }
  .catalog-tool-row { align-items:stretch; flex-direction:column; }
  .search-box { width:100%; flex-basis:auto; }
  .availability-filter { align-self:flex-start; }
  .category-list { margin-top:12px; flex-wrap:nowrap; overflow:auto; padding-bottom:5px; scrollbar-width:none; }
  .category-list::-webkit-scrollbar { display:none; }
  .category-filter { white-space:nowrap; }
  .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .product-card { min-height:260px; padding:9px; }
  .product-visual { height:100px; margin-bottom:14px; padding:10px; }
  .product-visual span { max-width:78%; font-size:10px; }
  .product-category { font-size:7px; }
  .product-name { min-height:41px; font-size:12px; }
  .product-meta { align-items:stretch; flex-direction:column; padding-top:12px; }
  .product-price { font-size:15px; }
  .product-price small { min-height:22px; }
  .choose-button { width:100%; }
  .load-more { width:100%; margin-top:20px; }
  .how-section { padding:70px 17px 78px; gap:34px; }
  .how-section h2 { font-size:44px; }
  .steps { grid-template-columns:1fr; }
  .steps article { min-height:190px; }
  .site-footer { padding:23px 17px 32px; }
  .back-to-top { right:14px; bottom:14px; width:42px; height:42px; padding:0; justify-content:center; border-radius:50%; font-size:0; }
  .back-to-top span { font-size:16px; }
  .purchase-sheet,.admin-sheet { border-radius:18px 18px 0 0; }
  .purchase-title-group { align-items:flex-start; gap:10px; }
  .purchase-photo { flex-basis:48px; width:48px; height:48px; }
}

@media (max-width:350px) {
  .brand-copy { display:none; }
  .hero h1 { font-size:51px; }
}

/* Tienda publicable: confianza, checkout y administración protegida */
.consumer-strip { max-width:1320px; min-height:31px; margin:auto; padding:0 40px 7px; display:flex; align-items:center; justify-content:flex-end; gap:12px; color:#66706a; font-size:8px; letter-spacing:.04em; }
.consumer-strip button { padding:4px 8px; border:1px solid rgba(23,61,50,.28); border-radius:5px; color:var(--deep); background:transparent; font-size:8px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; transition:color .2s,background .2s; }
.consumer-strip button:hover { color:var(--paper); background:var(--deep); }

.trust-section { max-width:1320px; margin:auto; padding:20px 40px 100px; border-top:1px solid rgba(23,61,50,.2); }
.trust-heading { max-width:650px; padding:72px 0 36px; }
.trust-heading h2 { margin:0; color:var(--deep); font:500 clamp(38px,5vw,60px)/.96 Fraunces,serif; letter-spacing:-.05em; }
.trust-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid rgba(23,61,50,.18); background:rgba(255,250,242,.48); }
.trust-grid article { min-height:220px; padding:24px; display:flex; flex-direction:column; border-right:1px solid rgba(23,61,50,.16); }
.trust-grid article:last-child { border-right:0; }
.trust-grid article > span { color:var(--accent); font-size:9px; font-weight:800; letter-spacing:.12em; }
.trust-grid h3 { margin:auto 0 10px; color:var(--deep); font:500 27px Fraunces,serif; }
.trust-grid p { margin:0; color:var(--muted); font-size:11px; line-height:1.7; }

.site-footer > div:first-child { display:flex; flex-direction:column; gap:6px; }
.footer-links { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:12px; }
.footer-links button { padding:0; border:0; border-bottom:1px solid rgba(23,61,50,.35); color:var(--deep); background:transparent; font-size:9px; font-weight:700; }
.footer-links button:hover { color:var(--accent); border-color:var(--accent); }
.order-readiness { min-height:16px; margin:0 0 10px; color:var(--muted); font-size:9px; line-height:1.45; }

.checkout-form { padding:24px 26px 28px; display:grid; gap:17px; }
.checkout-form[hidden],.checkout-success[hidden] { display:none; }
.checkout-form > label,.checkout-delivery-fields label,.checkout-grid label { display:grid; gap:6px; color:var(--muted); font-size:10px; font-weight:800; }
.checkout-form input,.checkout-form select,.checkout-form textarea { width:100%; padding:12px 13px; border:1px solid rgba(23,61,50,.22); border-radius:7px; color:var(--ink); background:#fffdf8; outline:0; resize:vertical; }
.checkout-form input:focus,.checkout-form select:focus,.checkout-form textarea:focus { border-color:var(--deep); box-shadow:0 0 0 3px rgba(23,61,50,.08); }
.checkout-grid,.checkout-delivery-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.checkout-delivery-fields[hidden] { display:none; }
.checkout-form fieldset { min-width:0; margin:0; padding:0; border:0; }
.checkout-form legend { margin-bottom:9px; color:var(--ink); font-size:11px; font-weight:800; }
.checkout-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.checkout-option { position:relative; cursor:pointer; }
.checkout-option input { position:absolute; width:1px; height:1px; opacity:0; }
.checkout-option span { min-height:68px; padding:12px; display:flex; flex-direction:column; justify-content:center; gap:4px; border:1px solid rgba(23,61,50,.2); border-radius:8px; background:#fffdf8; transition:border-color .2s,background .2s,transform .2s; }
.checkout-option strong { color:var(--deep); font-size:12px; }.checkout-option small { color:var(--muted); font-size:9px; line-height:1.45; }
.checkout-option input:checked + span { color:#fff; border-color:var(--deep); background:var(--deep); box-shadow:0 9px 24px rgba(23,61,50,.14); transform:translateY(-2px); }
.checkout-option input:checked + span strong { color:#fff; }.checkout-option input:checked + span small { color:#dbe7df; }
.checkout-policy { padding:12px 13px; display:flex; align-items:flex-start; gap:10px; border:1px solid rgba(23,61,50,.18); border-radius:8px; color:var(--deep); background:#edf2ec; }
.checkout-policy .ui-icon { flex:0 0 auto; width:18px; height:18px; margin-top:1px; }
.checkout-policy p { margin:0; display:grid; gap:3px; }.checkout-policy strong { font-size:10px; }.checkout-policy span { color:var(--muted); font-size:9px; line-height:1.5; }
.checkout-policy.cash-available { color:#765127; border-color:#e0c38f; background:#fff5d9; }
.consent-check { grid-template-columns:auto 1fr!important; align-items:flex-start; gap:9px!important; color:var(--ink)!important; font-weight:500!important; line-height:1.5; }
.consent-check input { width:17px; height:17px; margin:1px 0 0; padding:0; accent-color:var(--deep); }
.consent-check button { padding:0; border:0; border-bottom:1px solid currentColor; color:var(--deep); background:transparent; font-size:inherit; }
.checkout-summary { padding:15px 16px; display:flex; align-items:center; justify-content:space-between; border-radius:8px; color:#fff; background:var(--deep); }
.checkout-summary span { color:#cfe0d5; font-size:10px; }.checkout-summary strong { font:600 25px Fraunces,serif; }
.form-feedback { min-height:18px; margin:0; color:#a04c37; font-size:10px; font-weight:700; line-height:1.5; }
.checkout-form .confirm-purchase { margin-top:-4px; }
.checkout-success { padding:32px 28px 30px; text-align:center; animation:granumo-rise .35s both; }
.checkout-success-mark { width:52px; height:52px; margin:0 auto 16px; display:grid; place-items:center; border-radius:13px; color:#fff; background:var(--deep); box-shadow:0 13px 28px rgba(23,61,50,.18); }
.checkout-success-mark .ui-icon { width:24px; height:24px; }
.checkout-success h3 { margin:5px 0 11px; color:var(--deep); font:600 28px Fraunces,serif; font-variant-numeric:tabular-nums; }
.checkout-success > p:not(.eyebrow):not(.checkout-payment-help) { max-width:440px; margin:0 auto; color:var(--muted); font-size:11px; line-height:1.65; }
.checkout-success-facts { margin:22px 0 14px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid rgba(23,61,50,.14); border-radius:8px; overflow:hidden; text-align:left; }
.checkout-success-facts span { min-height:82px; padding:12px; display:flex; flex-direction:column; justify-content:space-between; border-right:1px solid rgba(23,61,50,.12); }.checkout-success-facts span:last-child { border-right:0; }
.checkout-success-facts small { color:var(--muted); font-size:8px; font-weight:800; }.checkout-success-facts strong { color:var(--deep); font-size:11px; line-height:1.45; }
.checkout-payment-detail { margin:12px 0; padding:13px; display:grid; grid-template-columns:1fr auto; gap:4px 12px; align-items:center; border-radius:8px; color:#fff; background:var(--deep); text-align:left; }
.checkout-payment-detail span { color:#cfe0d5; font-size:8px; }.checkout-payment-detail strong { grid-column:1; font-size:15px; font-variant-numeric:tabular-nums; }.checkout-payment-detail button { grid-column:2; grid-row:1 / span 2; padding:8px 9px; display:inline-flex; align-items:center; gap:5px; border:1px solid rgba(255,255,255,.25); border-radius:6px; color:#fff; background:rgba(255,255,255,.08); font-size:8px; font-weight:800; }.checkout-payment-detail button .ui-icon { width:13px; height:13px; }
.checkout-payment-link,.checkout-whatsapp-link { margin:12px 0 0; display:flex; align-items:center; justify-content:center; text-decoration:none; }
.checkout-payment-help { margin:13px 0 0; padding:11px; border-radius:7px; color:var(--deep); background:#fff5d9; font-size:9px; line-height:1.5; }
.checkout-success > .text-button { margin-top:12px; }
.checkout-account-note,.password-hint { margin:-5px 0 0; color:var(--muted); font-size:8px; line-height:1.5; }

.account-sheet { width:min(680px,100%); max-height:min(820px,calc(100vh - 48px)); overflow:auto; }
.account-auth { padding:24px 28px 30px; }
.account-tabs { padding:4px; display:grid; grid-template-columns:1fr 1fr; gap:4px; border-radius:9px; background:#e9e1d5; }
.account-tabs button { padding:10px; border:0; border-radius:6px; color:var(--muted); background:transparent; font-size:9px; font-weight:900; }
.account-tabs button[aria-selected="true"] { color:#fff; background:var(--deep); box-shadow:0 5px 14px rgba(23,61,50,.12); }
.account-form { padding:21px 0 0; }
.account-form[hidden],.account-content[hidden] { display:none; }
.account-intro { margin:0 0 3px; color:var(--muted); font-size:10px; line-height:1.6; }
.account-content { padding:22px 28px 30px; }
.account-profile { padding:18px; display:flex; align-items:center; justify-content:space-between; gap:16px; border-radius:10px; color:#fff; background:var(--deep); }
.account-profile p,.account-profile strong,.account-profile span { margin:0; display:block; }
.account-profile p { color:#e8b9a5; font-size:8px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.account-profile strong { margin-top:4px; font:500 24px Fraunces,serif; }
.account-profile span { margin-top:4px; color:rgba(255,255,255,.72); font-size:9px; }
.account-profile .ui-icon { flex:0 0 auto; width:38px; height:38px; color:var(--accent); }
.account-orders-head { margin-top:24px; display:flex; align-items:end; justify-content:space-between; gap:14px; }
.account-orders-head p { margin:0; color:var(--accent); font-size:8px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.account-orders-head h3 { margin:3px 0 0; color:var(--deep); font:500 25px Fraunces,serif; }
.account-orders-head button { padding:7px 0; border:0; border-bottom:1px solid rgba(23,61,50,.3); color:var(--deep); background:transparent; font-size:8px; font-weight:900; }
.account-orders { margin-top:11px; display:grid; gap:8px; }
.account-order { padding:14px; border:1px solid rgba(23,61,50,.15); border-radius:8px; background:#fffdf8; }
.account-order-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.account-order-head span,.account-order-meta { color:var(--muted); font-size:8px; }
.account-order-head strong { display:block; margin-top:3px; color:var(--deep); font-size:11px; }
.account-order-head b { color:var(--deep); font-size:11px; }
.account-order-status { margin-top:9px; display:flex; flex-wrap:wrap; gap:5px; }
.account-order-status span { padding:4px 6px; border-radius:4px; color:var(--deep); background:#e3eae3; font-size:7px; font-weight:900; text-transform:uppercase; }
.account-order-meta { margin:9px 0 0; line-height:1.5; }

.legal-sheet { width:min(700px,100%); }
.legal-intro { margin:0; color:var(--ink); font-size:13px; line-height:1.7; }
.legal-content { padding:25px 28px 30px; }
.legal-content h3 { margin:25px 0 7px; color:var(--deep); font:500 22px Fraunces,serif; }
.legal-content p { margin:0; color:var(--muted); font-size:11px; line-height:1.75; }
.legal-sources { margin-top:24px!important; display:flex; flex-wrap:wrap; gap:10px; }
.legal-sources a { padding:7px 9px; border:1px solid rgba(23,61,50,.2); border-radius:5px; color:var(--deep); font-weight:800; }

.admin-head-actions { display:flex; align-items:center; gap:7px; }
.admin-logout { border:0; border-bottom:1px solid rgba(23,61,50,.35); color:var(--deep); background:transparent; font-size:9px; font-weight:800; }
.admin-login { width:min(380px,calc(100% - 34px)); margin:auto; padding:34px; display:grid; gap:14px; border:1px solid rgba(23,61,50,.18); border-radius:12px; background:#fffdf8; box-shadow:0 20px 50px rgba(23,61,50,.1); text-align:center; }
.admin-login[hidden],#admin-content[hidden] { display:none; }
.admin-login-mark { width:56px; height:56px; margin:auto; display:grid; place-items:center; border-radius:12px; color:var(--paper); background:var(--deep); box-shadow:0 10px 24px rgba(23,61,50,.14); }
.admin-login-mark svg { width:43px; height:43px; }
.admin-login h3 { margin:2px 0 0; color:var(--deep); font:500 29px Fraunces,serif; }.admin-login p { margin:0; color:var(--muted); font-size:10px; line-height:1.55; }
.admin-login label { display:grid; gap:6px; color:var(--muted); font-size:9px; font-weight:800; text-align:left; }
.admin-login input { width:100%; padding:12px; border:1px solid rgba(23,61,50,.22); border-radius:7px; background:#fff; outline:0; }.admin-login input:focus { border-color:var(--deep); box-shadow:0 0 0 3px rgba(23,61,50,.08); }
.admin-login .admin-save { padding:12px; border-radius:7px; font-weight:800; }
#admin-content { flex:1; min-height:0; overflow:auto; display:flex; flex-direction:column; }
#admin-content .admin-body { flex:0 0 auto; overflow:visible; }
#admin-content .admin-footer { position:sticky; z-index:2; bottom:0; }
.admin-toolbar { padding:14px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid var(--line); background:#f7f1e7; }
.readiness-card div { display:flex; align-items:center; gap:8px; }.readiness-card strong { font-size:11px; }.readiness-card p { margin:5px 0 0; display:flex; flex-wrap:wrap; gap:5px 11px; color:var(--muted); font-size:8px; line-height:1.5; }
.readiness-check { display:inline-flex; align-items:center; gap:4px; }
.readiness-check .ui-icon { width:11px; height:11px; }
.readiness-check.complete { color:var(--deep); }
.readiness-dot { width:9px; height:9px; border-radius:50%; background:#c66d4d; box-shadow:0 0 0 4px rgba(198,109,77,.12); }.readiness-dot.ready { background:#4f8c6d; box-shadow:0 0 0 4px rgba(79,140,109,.12); }
.admin-toolbar-actions { display:flex; gap:7px; }
.admin-toolbar-actions button,.admin-toolbar-actions a { padding:8px 10px; border:1px solid rgba(23,61,50,.22); border-radius:6px; color:var(--deep); background:#fffdf8; font-size:8px; font-weight:800; }
.admin-operations { padding:18px 24px 0; }
.admin-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.admin-metrics article { padding:13px; display:flex; align-items:flex-end; justify-content:space-between; border:1px solid rgba(23,61,50,.17); border-radius:7px; background:#fffdf8; }
.admin-metrics span { color:var(--muted); font-size:8px; font-weight:800; text-transform:uppercase; }.admin-metrics strong { color:var(--deep); font:500 22px Fraunces,serif; }
.admin-operation-grid { margin-top:10px; display:grid; grid-template-columns:1.35fr 1fr; gap:10px; }
.admin-operation-grid > div { overflow:hidden; border:1px solid rgba(23,61,50,.17); border-radius:8px; background:#fffdf8; }
.admin-operation-head { padding:11px 12px; display:flex; justify-content:space-between; align-items:center; background:#eee5d8; }.admin-operation-head h3 { margin:0; font-size:11px; }.admin-operation-head span { color:var(--muted); font-size:8px; }
.admin-order-row { padding:9px 11px; display:grid; grid-template-columns:minmax(0,1fr) auto 112px; align-items:center; gap:9px; border-top:1px solid rgba(23,61,50,.1); }
.admin-order-row.withdrawal { grid-template-columns:minmax(0,1fr) 112px; }.admin-order-row div { min-width:0; }.admin-order-row strong,.admin-order-row span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.admin-order-row strong { font-size:9px; }.admin-order-row span { margin-top:2px; color:var(--muted); font-size:8px; }.admin-order-row b { font-size:9px; }.admin-order-row select { min-width:0; padding:6px; border:1px solid rgba(23,61,50,.2); border-radius:5px; color:var(--deep); background:#fff; font-size:8px; }
.admin-empty,.admin-loading { margin:0; padding:20px; color:var(--muted); font-size:9px; text-align:center; }
.admin-subsection { margin-top:20px; padding-top:18px; border-top:1px solid rgba(23,61,50,.14); }.admin-subsection h4 { margin:0 0 4px; font:500 19px Fraunces,serif; }.admin-subsection > p { margin:0 0 12px; color:var(--muted); font-size:9px; }
.admin-check-row { display:flex; flex-wrap:wrap; gap:18px; }.admin-check-row .admin-check { min-height:30px; }
.admin-global-grid .admin-wide { grid-column:span 2; }
.admin-rule-card { min-height:68px; padding:11px 12px; display:flex; flex-direction:column; justify-content:center; border:1px solid rgba(23,61,50,.15); border-radius:7px; background:#edf2ec; }
.admin-rule-card span,.admin-rule-card small { color:var(--muted); font-size:8px; }.admin-rule-card strong { margin:3px 0; color:var(--deep); font:500 19px Fraunces,serif; }
.admin-warning { color:#8b4638; background:#f6ddd7; }
.admin-schedule-settings { margin-top:12px; }
.admin-schedule-settings label small,.admin-payment-fields label small { color:var(--muted); font-size:7px; font-weight:500; }
.admin-schedule-list { margin-top:12px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }
.admin-schedule-row { padding:9px; display:grid; grid-template-columns:minmax(110px,1fr) 94px 94px; align-items:end; gap:7px; border:1px solid rgba(23,61,50,.14); border-radius:7px; background:#f8f4ec; }
.admin-schedule-row > label:not(.admin-check) { display:grid; gap:4px; color:var(--muted); font-size:8px; font-weight:800; }
.admin-schedule-row input[type="time"] { min-width:0; padding:8px; border:1px solid rgba(23,61,50,.19); border-radius:5px; color:var(--ink); background:#fff; font-size:9px; }
.admin-payment-policy .admin-check.risk { color:#8b4638; }
.admin-payment-fields { margin-top:12px; }

@media (max-width:760px) {
  .consumer-strip { min-height:30px; padding:0 16px 6px; justify-content:center; }.consumer-strip span { display:none; }.consumer-strip button { width:100%; border-style:dashed; }
  .trust-section { padding:0 17px 72px; }.trust-heading { padding:58px 0 25px; }.trust-heading h2 { font-size:43px; }.trust-grid { grid-template-columns:1fr; }.trust-grid article { min-height:165px; border-right:0; border-bottom:1px solid rgba(23,61,50,.16); }.trust-grid article:last-child { border-bottom:0; }.trust-grid h3 { margin-top:36px; }
  .site-footer { gap:18px; }.footer-links { margin-top:17px; justify-content:flex-start; }
  .checkout-grid,.checkout-delivery-fields,.checkout-options { grid-template-columns:1fr; }.checkout-form { padding:19px 17px 24px; }.legal-content { padding:21px 18px 27px; }
  .account-auth,.account-content { padding:18px 17px 24px; }.account-form { padding:18px 0 0; }.account-profile { align-items:flex-start; }.account-profile strong { font-size:21px; }
  .admin-head-actions { align-items:flex-end; flex-direction:column-reverse; }.admin-login { padding:26px 20px; }
  .admin-toolbar { padding:12px; align-items:stretch; flex-direction:column; }.admin-toolbar-actions > * { flex:1; text-align:center; }
  .admin-operations { padding:12px 12px 0; }.admin-metrics { grid-template-columns:1fr 1fr; }.admin-metrics article:last-child { grid-column:1 / -1; }.admin-operation-grid { grid-template-columns:1fr; }
  .admin-order-row { grid-template-columns:minmax(0,1fr) auto; }.admin-order-row select { grid-column:1 / -1; width:100%; }.admin-order-row.withdrawal { grid-template-columns:1fr; }.admin-global-grid .admin-wide { grid-column:auto; }
}

/* Operación real: disponibilidad, entrega y seguimiento */
.product-card-kicker { min-height:19px; display:flex; align-items:flex-start; justify-content:space-between; gap:7px; }
.product-availability { flex:0 0 auto; padding:3px 5px; border-radius:4px; font-size:7px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }
.product-availability.preorder { color:#765127; background:#f4dfbd; }
.product-availability.out { color:#8b4638; background:#f1d4cd; }
.product-card.status-out_of_stock .product-visual { filter:saturate(.5); opacity:.76; }
.purchase-status { display:inline-flex; margin-top:5px; padding:4px 6px; border-radius:4px; color:#765127; background:#f4dfbd; font-size:8px; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }

.tracking-section { max-width:1320px; margin:0 auto 95px; padding:58px 40px; display:grid; grid-template-columns:.8fr 1.2fr; gap:72px; border:1px solid rgba(23,61,50,.18); border-radius:5px 36px 5px 5px; background:linear-gradient(135deg,rgba(255,250,242,.88),rgba(230,220,203,.64)); }
.tracking-copy h2 { margin:0; color:var(--deep); font:500 clamp(40px,5vw,62px)/.96 Fraunces,serif; letter-spacing:-.05em; }
.tracking-copy > p:last-child { max-width:390px; margin:20px 0 0; color:var(--muted); font-size:12px; line-height:1.75; }
.tracking-panel { padding:22px; border:1px solid rgba(23,61,50,.16); border-radius:9px; background:#fffdf8; box-shadow:0 18px 40px rgba(23,61,50,.08); }
.tracking-form { display:grid; grid-template-columns:1fr 1fr auto; align-items:end; gap:10px; }
.tracking-form label { display:grid; gap:6px; color:var(--muted); font-size:9px; font-weight:800; }
.tracking-form input { min-width:0; padding:11px 12px; border:1px solid rgba(23,61,50,.22); border-radius:6px; color:var(--ink); background:#fff; font-size:12px; }
.tracking-form .primary-button { min-height:39px; border:0; border-radius:6px; white-space:nowrap; }
.tracking-form .form-feedback { grid-column:1 / -1; }
.tracking-result { margin-top:18px; padding-top:18px; border-top:1px solid rgba(23,61,50,.14); }
.tracking-result[hidden] { display:none; }
.tracking-result-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.tracking-result-head p { margin:0; color:var(--muted); font-size:8px; font-weight:900; text-transform:uppercase; letter-spacing:.1em; }
.tracking-result-head h3 { margin:3px 0 0; color:var(--deep); font-size:16px; font-variant-numeric:tabular-nums; }
.tracking-result-head > span { padding:6px 8px; border-radius:5px; color:#fff; background:var(--deep); font-size:8px; font-weight:900; text-transform:uppercase; }
.tracking-progress { margin:22px 0 17px; display:grid; grid-template-columns:repeat(5,1fr); }
.tracking-progress div { position:relative; display:grid; justify-items:center; gap:7px; color:#949c97; font-size:8px; font-weight:800; text-align:center; }
.tracking-progress div::before { content:''; position:absolute; top:5px; left:-50%; width:100%; height:2px; background:#dfe4df; }
.tracking-progress div:first-child::before { display:none; }
.tracking-progress i { position:relative; z-index:1; width:12px; height:12px; border:2px solid #cbd3cd; border-radius:50%; background:#fffdf8; }
.tracking-progress .complete,.tracking-progress .current { color:var(--deep); }
.tracking-progress .complete::before,.tracking-progress .current::before { background:var(--deep); }
.tracking-progress .complete i,.tracking-progress .current i { border-color:var(--deep); background:var(--deep); }
.tracking-progress .current i { box-shadow:0 0 0 4px rgba(23,61,50,.13); }
.tracking-cancelled { padding:11px; border-radius:6px; color:#8b4638; background:#f6ddd7; font-size:10px; line-height:1.5; }
.tracking-payment { margin:14px 0 0; padding:9px 11px; display:flex; align-items:center; gap:8px; border-radius:6px; color:#765127; background:#fff0d2; }
.tracking-payment span { font-size:8px; font-weight:900; text-transform:uppercase; }.tracking-payment strong { font-size:9px; }.tracking-payment small { margin-left:auto; font-size:8px; }.tracking-payment.paid { color:var(--deep); background:#e2eee6; }
.tracking-meta { display:flex; justify-content:space-between; gap:12px; color:var(--muted); font-size:8px; }
.tracking-result ul { margin:15px 0 0; padding:0; list-style:none; border-top:1px solid rgba(23,61,50,.11); }
.tracking-result li { padding:10px 0; display:flex; justify-content:space-between; gap:15px; border-bottom:1px solid rgba(23,61,50,.1); font-size:9px; }
.tracking-result li small { color:var(--muted); }.tracking-total { padding-top:14px; display:flex; align-items:end; justify-content:space-between; }.tracking-total span { color:var(--muted); font-size:9px; }.tracking-total strong { color:var(--deep); font:500 24px Fraunces,serif; }

.checkout-total-breakdown { display:grid; gap:7px; }
.checkout-total-breakdown > div { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.checkout-total-breakdown > div:not(.checkout-final-total) strong { font:700 13px Manrope,sans-serif; }
.checkout-final-total { margin-top:4px; padding-top:9px; border-top:1px solid rgba(255,255,255,.2); }
.checkout-total-breakdown [hidden] { display:none; }

.admin-zones { margin-top:18px; }
.admin-zone-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.admin-zone-head p { margin:3px 0 0; color:var(--muted); font-size:9px; line-height:1.5; }
.admin-zone-head button { padding:8px 10px; border:1px solid rgba(23,61,50,.23); border-radius:6px; color:var(--deep); background:#fff; font-size:8px; font-weight:900; }
.admin-zone-list { margin-top:11px; display:grid; gap:7px; }
.admin-zone-row { padding:9px; display:grid; grid-template-columns:1fr 110px 1fr auto; align-items:end; gap:8px; border:1px solid rgba(23,61,50,.14); border-radius:7px; background:#f8f4ec; }
.admin-zone-row label,.admin-product-availability { display:grid; gap:4px; color:var(--muted); font-size:8px; font-weight:800; }
.admin-zone-row input,.admin-product-availability select { min-width:0; padding:8px; border:1px solid rgba(23,61,50,.19); border-radius:5px; color:var(--ink); background:#fff; font-size:9px; }
.admin-zone-remove { padding:8px; border:0; color:#914d3d; background:transparent; font-size:8px; font-weight:900; }
.admin-product-row { grid-template-columns:minmax(0,1fr) 78px 130px 150px; }

.admin-metrics { grid-template-columns:repeat(auto-fit,minmax(105px,1fr)); }
.admin-metrics article { min-width:0; align-items:flex-start; flex-direction:column; gap:7px; }
.admin-metrics strong { max-width:100%; overflow:hidden; font-size:18px; text-overflow:ellipsis; white-space:nowrap; }
.admin-metrics article.profit { color:#fff; background:var(--deep); }.admin-metrics article.profit span,.admin-metrics article.profit strong { color:#fff; }
.admin-order-list { max-height:440px; overflow:auto; }
.admin-order-card { border-top:1px solid rgba(23,61,50,.1); }
.admin-order-card summary { padding:11px 12px; display:flex; align-items:center; justify-content:space-between; gap:12px; cursor:pointer; list-style:none; }
.admin-order-card summary::-webkit-details-marker { display:none; }
.admin-order-card summary > div { min-width:0; display:flex; flex-direction:column; gap:2px; }
.admin-order-card summary > div:last-child { align-items:flex-end; flex:0 0 auto; }
.admin-order-code { color:var(--accent); font-size:7px; font-weight:900; letter-spacing:.05em; }.admin-order-card summary strong { overflow:hidden; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }.admin-order-card summary small { color:var(--muted); font-size:7px; }.admin-order-card summary b { font-size:10px; }
.admin-status { padding:3px 5px; border-radius:4px; color:var(--deep); background:#e2e9e3; font-size:7px; font-weight:900; text-transform:uppercase; }
.admin-order-detail { padding:12px; border-top:1px solid rgba(23,61,50,.1); background:#f7f2e9; }
.admin-order-contact { display:flex; align-items:center; justify-content:space-between; gap:12px; }.admin-order-contact span,.admin-order-facts span,.admin-order-notes span { display:block; color:var(--muted); font-size:7px; font-weight:900; text-transform:uppercase; letter-spacing:.06em; }.admin-order-contact strong { display:block; margin-top:2px; font-size:10px; }.admin-order-contact small { display:block; margin-top:3px; color:var(--muted); font-size:7px; }
.admin-order-actions { display:flex; gap:5px; }.admin-order-actions a { padding:6px 7px; border:1px solid rgba(23,61,50,.2); border-radius:5px; color:var(--deep); background:#fff; font-size:7px; font-weight:900; }
.admin-order-facts { margin-top:10px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }.admin-order-facts p { margin:0; padding:8px; border:1px solid rgba(23,61,50,.1); border-radius:5px; background:#fffdf8; }.admin-order-facts strong { display:block; margin-top:3px; font-size:8px; line-height:1.4; }.admin-order-facts select { width:100%; margin-top:3px; padding:5px; border:1px solid rgba(23,61,50,.18); border-radius:4px; background:#fff; font-size:8px; }
.admin-order-notes { margin:8px 0 0; padding:8px; border-radius:5px; background:#fff5d9; font-size:8px; line-height:1.5; }
.admin-order-items { margin:10px 0 0; padding:0; list-style:none; }.admin-order-items li { padding:8px 0; display:flex; align-items:flex-start; justify-content:space-between; gap:10px; border-top:1px solid rgba(23,61,50,.1); }.admin-order-items li > div:last-child { flex:0 0 auto; text-align:right; }.admin-order-items strong { display:block; font-size:8px; }.admin-order-items span,.admin-order-items small { display:block; margin-top:2px; color:var(--muted); font-size:7px; }
.admin-order-totals { margin-top:9px; padding-top:9px; display:grid; grid-template-columns:repeat(2,1fr); gap:6px 12px; border-top:1px solid rgba(23,61,50,.16); }.admin-order-totals span { display:flex; justify-content:space-between; gap:7px; color:var(--muted); font-size:7px; }.admin-order-totals strong { color:var(--deep); }

@media (max-width:1000px) {
  .tracking-section { margin-inline:24px; padding-inline:30px; gap:38px; }
  .admin-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .admin-product-row { grid-template-columns:minmax(0,1fr) 78px 125px; }.admin-individual-margin { grid-column:2 / -1; }
  .admin-zone-row { grid-template-columns:1fr 110px; }.admin-zone-row .admin-zone-remove { justify-self:end; }
  .admin-schedule-list { grid-template-columns:1fr; }
}

@media (max-width:760px) {
  .tracking-section { margin:0 17px 72px; padding:39px 18px 20px; grid-template-columns:1fr; gap:28px; border-radius:4px 25px 4px 4px; }
  .tracking-form { grid-template-columns:1fr; }.tracking-form .form-feedback { grid-column:auto; }.tracking-form .primary-button { width:100%; justify-content:center; }
  .tracking-meta { align-items:flex-start; flex-direction:column; }
  .checkout-total-breakdown { display:grid; }
  .checkout-success { padding:27px 17px 25px; }.checkout-success-facts { grid-template-columns:1fr; }.checkout-success-facts span { min-height:62px; border-right:0; border-bottom:1px solid rgba(23,61,50,.12); }.checkout-success-facts span:last-child { border-bottom:0; }.checkout-payment-detail { grid-template-columns:1fr; text-align:center; }.checkout-payment-detail strong,.checkout-payment-detail button { grid-column:1; grid-row:auto; }.checkout-payment-detail button { justify-self:center; }
  .admin-product-row { grid-template-columns:minmax(0,1fr) 72px; }.admin-product-availability,.admin-individual-margin { grid-column:1 / -1; }
  .admin-zone-head { align-items:stretch; flex-direction:column; }.admin-zone-head button { width:100%; }.admin-zone-row { grid-template-columns:1fr; }.admin-zone-row .admin-zone-remove { justify-self:start; }
  .admin-schedule-row { grid-template-columns:1fr 1fr; }.admin-schedule-row .admin-check { grid-column:1 / -1; }
  .admin-metrics { grid-template-columns:1fr 1fr; }.admin-metrics article:last-child { grid-column:auto; }
  .admin-order-facts,.admin-order-totals { grid-template-columns:1fr; }
}
