:root {
    --chocolate: #3b2418;
    --leather: #815233;
    --cream: #f4eee4;
    --paper: #fffdf9;
    --ink: #241a14;
    --line: rgba(59, 36, 24, 0.18);
}

* { box-sizing: border-box; }

html { background: var(--paper); color: var(--ink); }

body {
    margin: 0;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    background: var(--paper);
}
.skip-link { position:fixed; z-index:100; top:.5rem; left:.5rem; padding:.75rem 1rem; transform:translateY(-150%); background:var(--paper); color:var(--chocolate); border:2px solid currentColor; }
.skip-link:focus { transform:none; }
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible { outline:3px solid var(--leather); outline-offset:3px; }
.request-reference { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.85rem; }

.site-header, .site-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem clamp(1.25rem, 5vw, 5rem);
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 10;
    border-bottom: 1px solid var(--line);
    background: color-mix(in srgb, var(--paper) 92%, transparent);
    backdrop-filter: blur(12px);
}

.brand {
    color: var(--chocolate);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem;
    letter-spacing: 0.16em;
    text-decoration: none;
}
.brand-logo { display:block; width:clamp(5.8rem,7vw,7rem); height:auto; aspect-ratio:1432/858; object-fit:contain; }
.brand-logo--footer { width:8.5rem; }
.auth-logo { display:block; width:min(11rem,52%); height:auto; aspect-ratio:1432/858; object-fit:contain; margin:0 auto 1.25rem; }

.stage-badge, .eyebrow {
    color: var(--leather);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.hero {
    display: grid;
    min-height: calc(100vh - 132px);
    place-items: center;
    padding: 3rem clamp(1.25rem, 8vw, 8rem);
    background:
        linear-gradient(120deg, rgba(59, 36, 24, 0.86), rgba(59, 36, 24, 0.28)),
        radial-gradient(circle at 80% 20%, #bb8a62, var(--chocolate));
    color: white;
}

.hero-content { width: min(720px, 100%); margin-right: auto; }
.hero .eyebrow { color: var(--cream); }
a:focus-visible { outline: 3px solid currentColor; outline-offset: 5px; }

h1 {
    max-width: 12ch;
    margin: 0.3em 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(3rem, 9vw, 7.5rem);
    font-weight: 400;
    line-height: 0.92;
}

.intro { max-width: 54ch; font-size: clamp(1rem, 2vw, 1.2rem); line-height: 1.65; }

.primary-action {
    display: inline-block;
    margin-top: 1.25rem;
    padding: 0.9rem 1.15rem;
    border: 1px solid rgba(255, 255, 255, 0.72);
    color: white;
    text-decoration: none;
    transition: background 180ms ease, color 180ms ease;
}

.primary-action:hover { background: white; color: var(--chocolate); }

.site-footer { background: var(--cream); color: var(--chocolate); font-size: 0.85rem; }

@media (max-width: 640px) {
    .stage-badge { display: none; }
    .site-footer { align-items: flex-start; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
    .primary-action { transition: none; }
}

.auth-card { max-width: 34rem; margin: 3rem auto; padding: 1.5rem; overflow-wrap: anywhere; }
.auth-card h1 { font-size: clamp(1.8rem, 6vw, 2.5rem); line-height: 1.2; }
.auth-card form { display: grid; gap: .75rem; margin: 1.5rem 0; }
.auth-card input:not([type=hidden]) { min-height: 44px; padding: .65rem; width: 100%; box-sizing: border-box; font: inherit; border: 1px solid #765e50; border-radius: .25rem; }
.auth-card input[type=submit] { background: #3b2418; color: #fff; cursor: pointer; margin-top: .5rem; }
.auth-card a { color: #3b2418; display: inline-block; padding: .75rem 0; }
.auth-card :focus-visible { outline: 3px solid #8b542e; outline-offset: 3px; }
.auth-card [role=status] { overflow-wrap: anywhere; }

/* Catálogo público */
:root { --cream-deep:#eadcc9; --cocoa:#4a2c20; --cocoa-soft:#76513e; --sage:#62694f; --shadow:0 18px 50px rgba(59,36,24,.10); --header-height:72px; }
html { scroll-behavior:smooth; }
body { min-width:320px; }
body.menu-open { overflow:hidden; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.site-header { min-height:var(--header-height); display:grid; grid-template-columns:minmax(44px,1fr) auto minmax(44px,1fr); padding:.8rem clamp(1rem,4vw,4rem); }
.header-actions a,.site-footer a { color:var(--chocolate); text-decoration:none; }
.site-header>.brand { grid-column:2; grid-row:1; align-self:center; }
.header-actions { grid-column:3; grid-row:1; justify-self:end; display:flex; align-items:center; gap:1rem; }
.menu-trigger { display:grid; grid-column:1; grid-row:1; justify-self:start; place-items:center; width:44px; padding:0; cursor:pointer; }
.menu-trigger__icon { display:grid; gap:5px; width:24px; }
.menu-trigger__icon span { display:block; height:1px; background:currentColor; transition:transform .2s ease; }
.bag-preview,.menu-trigger { border:0; background:transparent; color:var(--chocolate); min-height:44px; font:inherit; }
.bag-preview:disabled { opacity:.65; }
.mobile-menu { position:fixed; z-index:50; inset:0 auto 0 0; width:min(92vw,440px); height:100dvh; overflow-y:auto; overscroll-behavior:contain; padding:0 1.6rem 2rem; background:var(--paper); box-shadow:18px 0 48px rgba(38,22,13,.18); visibility:hidden; transform:translateX(-102%); transition:transform .28s cubic-bezier(.22,1,.36,1),visibility 0s linear .28s; }
.mobile-menu.is-open,.mobile-menu.is-closing { visibility:visible; transition-delay:0s; }
.mobile-menu.is-open { transform:translateX(0); }
.mobile-menu[hidden],.menu-backdrop[hidden] { display:none; }
.mobile-menu__header { position:sticky; z-index:1; top:0; display:grid; grid-template-columns:1fr auto; align-items:center; min-height:92px; padding:.85rem 0; border-bottom:1px solid var(--line); background:var(--paper); }
.mobile-menu__header .eyebrow { grid-column:1; margin:0 0 .15rem; }
.mobile-menu__header h2 { grid-column:1; margin:0; color:var(--chocolate); font:400 1.5rem Georgia,"Times New Roman",serif; letter-spacing:.12em; }
.mobile-menu__header button { grid-column:2; grid-row:1/3; min-width:44px; min-height:44px; border:0; background:transparent; color:var(--chocolate); font:300 2rem/1 sans-serif; cursor:pointer; }
.mobile-menu nav { display:grid; }
.mobile-menu__group { display:grid; padding:1rem 0; border-bottom:1px solid var(--line); }
.mobile-menu__group:last-child { border-bottom:0; }
.mobile-menu__group .eyebrow { margin:.35rem 0 .6rem; }
.mobile-menu a { display:flex; align-items:center; min-height:46px; padding:.25rem 0; color:var(--chocolate); font:400 1.12rem/1.3 Georgia,"Times New Roman",serif; text-decoration:none; }
.mobile-menu__categories a,.mobile-menu__information a { min-height:42px; font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:.94rem; }
.mobile-menu a:hover { color:var(--leather); }
.menu-backdrop { position:fixed; z-index:49; inset:0; background:rgba(36,26,20,.48); opacity:0; transition:opacity .28s cubic-bezier(.22,1,.36,1); }
.menu-backdrop.is-open { opacity:1; }
.campaign { min-height:min(780px,calc(100vh - var(--header-height))); position:relative; display:grid; overflow:hidden; background:var(--chocolate); color:white; }
.campaign picture,.campaign picture img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.campaign::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(35,20,14,.82),rgba(35,20,14,.12) 70%); }
.campaign__copy { position:relative; z-index:1; align-self:end; width:min(680px,calc(100% - 2rem)); margin:0 clamp(1rem,8vw,8rem) clamp(3rem,8vw,7rem); }
.campaign h1,.catalog-heading h1,.product-summary h1,.page-state h1 { font-family:Georgia,"Times New Roman",serif; font-weight:400; }
.campaign h1 { font-size:clamp(3.3rem,8vw,7rem); line-height:.95; }
.campaign__copy>p:not(.eyebrow) { max-width:44ch; font-size:clamp(1rem,2vw,1.25rem); line-height:1.6; }
.primary-action,.secondary-action { min-height:46px; display:inline-flex; align-items:center; justify-content:center; padding:.8rem 1.25rem; text-decoration:none; }
.home-section,.category-section,.related-section { padding:clamp(3.5rem,8vw,7rem) clamp(1rem,5vw,5rem); }
.home-sections { display:flex; flex-direction:column; }
.category-section,.promotion-section { background:var(--cream); }
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:2rem; }
.section-heading h2 { margin:.2rem 0 0; font-family:Georgia,"Times New Roman",serif; font-size:clamp(2rem,4vw,3.8rem); font-weight:400; }
.section-heading>a { color:var(--chocolate); text-underline-offset:.3rem; min-height:44px; display:flex; align-items:center; }
.product-grid { display:grid; gap:clamp(1rem,2vw,2rem); grid-template-columns:repeat(4,minmax(0,1fr)); }
.product-card { min-width:0; }
.product-card__image { display:block; position:relative; aspect-ratio:1; overflow:hidden; background:var(--cream); }
.product-card__image img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:opacity .35s ease,transform .55s ease; }
.product-card__secondary { opacity:0; }
.product-card__image:hover .product-card__primary { opacity:0; }
.product-card__image:hover .product-card__secondary { opacity:1; transform:scale(1.02); }
.product-card__body { display:grid; grid-template-columns:1fr auto; gap:.4rem 1rem; padding:.9rem .15rem 0; align-items:start; }
.product-card h3 { margin:.2rem 0; font-family:Georgia,"Times New Roman",serif; font-weight:400; font-size:clamp(1.05rem,1.6vw,1.35rem); }
.product-card h3 a { color:var(--ink); text-decoration:none; }
.product-card__availability { margin:0; color:var(--sage); font-size:.76rem; letter-spacing:.05em; text-transform:uppercase; }
.product-price { display:flex; gap:.5rem; align-items:baseline; margin:.15rem 0; white-space:nowrap; }
.product-price strong { color:var(--chocolate); }
.previous-price { color:var(--cocoa-soft); text-decoration:line-through; font-size:.88em; }
.quick-add { grid-column:1/-1; justify-self:start; border:0; border-bottom:1px solid currentColor; padding:.45rem 0; background:transparent; color:var(--chocolate); font:inherit; }
.quick-add:disabled { opacity:.6; }
.editorial-grid .product-card:nth-child(1),.editorial-grid .product-card:nth-child(6) { grid-column:span 2; grid-row:span 2; }
.category-grid { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); }
.category-grid a { display:flex; justify-content:space-between; gap:1rem; padding:1.4rem .2rem; border-bottom:1px solid var(--line); color:var(--chocolate); font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.25rem,2vw,2rem); text-decoration:none; }
.empty-state,.page-state { max-width:52rem; margin:2rem auto; padding:clamp(2rem,6vw,5rem); text-align:center; background:var(--cream); }
.empty-state h2,.empty-state h3 { font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.5rem,3vw,2.4rem); font-weight:400; }
.catalog-shell { padding:clamp(2rem,6vw,5rem) clamp(1rem,5vw,5rem); }
.catalog-heading { display:grid; grid-template-columns:1fr auto; align-items:end; margin-bottom:2rem; }
.catalog-heading .eyebrow { grid-column:1/-1; }.catalog-heading h1 { margin:0; font-size:clamp(3rem,7vw,6rem); }.catalog-heading>p:last-child { margin:0 0 .7rem; }
.catalog-filter-form { display:grid; grid-template-columns:1.5fr repeat(4,1fr) auto auto; align-items:end; gap:.75rem; padding:1rem 0; border-block:1px solid var(--line); }
.catalog-filter-form>div { display:grid; gap:.35rem; }.catalog-filter-form label,.catalog-filter-form .price-filter>span { font-size:.78rem; font-weight:700; letter-spacing:.04em; }
.catalog-filter-form input,.catalog-filter-form select,.catalog-filter-form button { min-height:46px; width:100%; padding:.65rem; border:1px solid var(--line); background:var(--paper); color:var(--ink); font:inherit; }
.catalog-filter-form button { background:var(--chocolate); color:white; }.price-filter { grid-template-columns:1fr 1fr; }.price-filter>span { grid-column:1/-1; }.filter-reset { min-height:46px; display:flex; align-items:center; color:var(--chocolate); }
.filter-trigger { display:none; }.active-filters { display:flex; flex-wrap:wrap; gap:.5rem; min-height:3rem; padding:.75rem 0; }.active-filters a { color:var(--chocolate); background:var(--cream); border-radius:999px; padding:.55rem .8rem; text-decoration:none; }
.catalog-grid { margin-top:1rem; }.loading-state { padding:3rem; text-align:center; }
.pagination { min-height:70px; display:flex; justify-content:center; align-items:center; gap:2rem; margin-top:3rem; }.pagination a { color:var(--chocolate); min-height:44px; display:flex; align-items:center; }
.product-detail { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(320px,.7fr); gap:clamp(2rem,5vw,6rem); padding:clamp(1rem,4vw,4rem); max-width:100rem; margin:auto; }
.product-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.8rem; }.product-gallery a:first-child { grid-column:1/-1; }.product-gallery a { aspect-ratio:1; background:var(--cream); }.product-gallery img { width:100%; height:100%; object-fit:cover; display:block; }
.gallery-position { display:none; }.product-summary { align-self:start; position:sticky; top:calc(var(--header-height) + 2rem); }.product-summary h1 { max-width:none; font-size:clamp(2.5rem,5vw,5rem); line-height:1; }.product-summary .product-price { font-size:1.25rem; }.availability { color:var(--sage); font-weight:700; }
.product-category-link,.product-category-link:visited{display:inline-flex;align-items:center;gap:.35rem;padding:.38rem .62rem;border:1px solid var(--chocolate);background:var(--cream);color:var(--chocolate);font:700 .72rem/1.2 Inter,ui-sans-serif,system-ui,sans-serif;letter-spacing:.08em;text-decoration:none;transition:background-color .18s ease,color .18s ease}.product-category-link:hover{background:var(--chocolate);color:var(--cream)}.product-category-link:focus-visible{color:var(--chocolate);outline:3px solid var(--leather);outline-offset:3px}
.product-description { line-height:1.7; margin:2rem 0; }.product-description img { max-width:100%; height:auto; }.product-facts { border-top:1px solid var(--line); }.product-facts div { display:grid; grid-template-columns:1fr 2fr; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--line); }.product-facts dt { font-weight:700; }.product-facts dd { margin:0; }
.product-actions { display:grid; gap:.7rem; margin-top:2rem; }.product-actions button,.mobile-product-actions button { min-height:50px; padding:.8rem; border:1px solid var(--chocolate); background:var(--chocolate); color:white; font:inherit; }.product-actions button:last-child { background:transparent; color:var(--chocolate); }.product-actions button:disabled,.mobile-product-actions button:disabled { opacity:.55; }
.related-grid { grid-template-columns:repeat(4,1fr); }.mobile-product-actions { display:none; }
.mobile-share { display:none; }
.site-footer { min-height:200px; justify-content:center; flex-direction:column; text-align:center; gap:.35rem; }.site-footer p { margin:.1rem; }.whatsapp-float { position:fixed; right:1.2rem; bottom:1.2rem; z-index:8; width:52px; height:52px; border-radius:50%; border:0; background:var(--sage); color:white; font:bold 1rem Georgia,serif; box-shadow:var(--shadow); }.whatsapp-float:disabled { opacity:.72; }.public-status { position:fixed; left:50%; bottom:1rem; transform:translateX(-50%); z-index:20; }
.page-state { min-height:55vh; display:flex; flex-direction:column; justify-content:center; align-items:center; }.page-state h1 { max-width:18ch; font-size:clamp(2.5rem,6vw,5rem); }.secondary-action { color:white; background:var(--chocolate); }
.admin-header { display:flex; justify-content:space-between; }

@media (max-width:1100px) {
 .product-grid,.related-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .catalog-filter-form { grid-template-columns:repeat(3,1fr); }.product-detail { grid-template-columns:1.2fr .8fr; }
}
@media (max-width:900px) and (min-width:761px) {
 .product-grid,.home-product-grid,.editorial-grid,.catalog-grid,.related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .editorial-grid .product-card:nth-child(1),.editorial-grid .product-card:nth-child(6) { grid-column:auto; grid-row:auto; }
}
@media (max-width:760px) {
 :root { --header-height:64px; }.site-header { grid-template-columns:minmax(44px,1fr) auto minmax(44px,1fr); min-height:64px; padding:.55rem .8rem; }.site-header>.brand { grid-column:2; justify-self:center; }.header-actions { grid-column:3; gap:.55rem; min-width:0; }.header-actions>a { font-size:.78rem; }.bag-preview { padding-inline:.2rem; font-size:.74rem; }.bag-preview span { font-size:.78rem; }
 .campaign { min-height:calc(88vh - var(--header-height)); }.campaign::after { background:linear-gradient(0deg,rgba(35,20,14,.8),rgba(35,20,14,.05) 75%); }.campaign__copy { margin:0 1rem 2.2rem; }.campaign h1 { font-size:clamp(3rem,16vw,5rem); }
 .home-section,.category-section,.related-section { padding:3.5rem 1rem; }.section-heading { align-items:start; }.section-heading h2 { font-size:2.25rem; }
 .product-grid,.home-product-grid,.editorial-grid,.catalog-grid,.related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem .7rem; }.editorial-grid .product-card:nth-child(1),.editorial-grid .product-card:nth-child(6) { grid-column:auto; grid-row:auto; }
 .product-card__body { grid-template-columns:1fr; gap:.2rem; }.product-card h3 { font-size:1rem; }.product-price { flex-wrap:wrap; }.category-grid { grid-template-columns:1fr; }
 .catalog-shell { padding:2rem .8rem; }.catalog-heading h1 { font-size:3.2rem; }.filter-trigger { display:block; width:100%; min-height:48px; border:1px solid var(--chocolate); background:transparent; color:var(--chocolate); font:inherit; }.catalog-filter-form { grid-template-columns:1fr; padding:1rem; background:var(--cream); }.catalog-filter-form[hidden] { display:none; }.active-filters { overflow-x:auto; flex-wrap:nowrap; }.active-filters a { flex:0 1 auto; max-width:100%; overflow-wrap:anywhere; }
 .product-detail { display:block; padding:0 0 2rem; }.product-gallery { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:0; scrollbar-width:none; }.product-gallery a,.product-gallery a:first-child { flex:0 0 100%; scroll-snap-align:start; grid-column:auto; }.product-gallery::-webkit-scrollbar { display:none; }.gallery-position { display:block; text-align:center; }.product-summary { position:static; padding:1.2rem 1rem 5rem; }.product-summary h1 { font-size:2.9rem; }.product-actions { display:none; }.mobile-share { display:block; min-height:44px; margin-top:1rem; border:0; background:transparent; color:var(--chocolate); text-decoration:underline; font:inherit; }.mobile-product-actions { position:fixed; display:grid; grid-template-columns:1fr 1fr; gap:.5rem; z-index:12; left:0; right:0; bottom:0; padding:.7rem; background:var(--paper); border-top:1px solid var(--line); }.whatsapp-float { bottom:5.5rem; }.site-footer { padding-bottom:6rem; }
}
@media (hover:none) { .product-card__secondary { display:none; } }
@media (max-width:420px) { .site-header { padding-inline:.55rem; }.brand { font-size:1.08rem; }.header-actions { gap:.3rem; }.header-actions>a { font-size:.7rem; }.bag-preview { font-size:.68rem; }.bag-preview span { min-width:1.35rem; min-height:1.35rem; font-size:.72rem; } }
@media (max-width:640px) { .site-footer { width:100%; max-width:100%; align-items:center; padding-inline:1rem; overflow:hidden; text-align:center; }.site-footer nav { display:flex; flex-wrap:wrap; justify-content:center; max-width:100%; }.site-footer a,.site-footer p { max-width:100%; overflow-wrap:anywhere; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } }

/* Interacciones compartidas */
body.boemia-dialog-open { overflow:hidden; }
.boemia-dialog-layer { position:fixed; z-index:80; inset:0; display:grid; place-items:center; padding:1rem; opacity:0; transition:opacity .26s cubic-bezier(.22,1,.36,1); }
.boemia-dialog-layer.is-open { opacity:1; }
.boemia-dialog-layer[hidden] { display:none; }
.boemia-dialog-backdrop { position:absolute; inset:0; background:rgba(36,26,20,.52); backdrop-filter:blur(2px); }
.boemia-dialog { position:relative; width:min(100%,560px); max-height:min(88dvh,720px); overflow:auto; padding:clamp(1.5rem,4vw,2.5rem); border:1px solid rgba(59,36,24,.16); background:var(--paper); color:var(--ink); box-shadow:0 26px 80px rgba(36,26,20,.28); transform:translateY(10px) scale(.988); transition:transform .26s cubic-bezier(.22,1,.36,1); }
.boemia-dialog-layer.is-open .boemia-dialog { transform:none; }
.boemia-dialog__close { position:absolute; top:.75rem; right:.75rem; display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; background:transparent; color:var(--chocolate); font:300 2rem/1 sans-serif; cursor:pointer; }
.boemia-dialog .eyebrow { margin:0 3rem .7rem 0; }
.boemia-dialog__title { margin:0 3rem .8rem 0; color:var(--chocolate); font:400 clamp(1.8rem,5vw,2.6rem)/1.05 Georgia,"Times New Roman",serif; }
.boemia-dialog__message { max-width:46ch; margin:.5rem 0 1.6rem; line-height:1.6; }
.boemia-dialog__field { display:grid; gap:.45rem; margin:1.25rem 0; font-weight:700; }
.boemia-dialog__field[hidden] { display:none; }
.boemia-dialog__field input { width:100%; min-height:48px; padding:.7rem .8rem; border:1px solid var(--cocoa-soft); background:white; color:var(--ink); font:inherit; font-weight:400; }
.boemia-dialog__error { margin:.75rem 0; color:#8a2f22; font-weight:700; }
.boemia-dialog__actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.7rem; margin-top:2rem; }
.boemia-dialog__actions button { min-height:48px; padding:.75rem 1rem; border:1px solid var(--chocolate); font:inherit; cursor:pointer; }
.boemia-dialog__secondary { background:transparent; color:var(--chocolate); }
.boemia-dialog__primary { background:var(--chocolate); color:white; }
.boemia-dialog__primary.is-danger { border-color:#79372a; background:#79372a; }
.boemia-dialog__actions button:disabled,.boemia-dialog__close:disabled { opacity:.6; cursor:wait; }
.boemia-toasts { position:fixed; z-index:90; right:1rem; bottom:1rem; display:grid; gap:.65rem; width:min(390px,calc(100vw - 2rem)); pointer-events:none; }
.boemia-toast { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:1rem; padding:.9rem 1rem; border-left:4px solid var(--sage); background:var(--paper); color:var(--ink); box-shadow:0 12px 36px rgba(36,26,20,.2); opacity:0; transform:translateY(10px); transition:opacity .26s cubic-bezier(.22,1,.36,1),transform .26s cubic-bezier(.22,1,.36,1); pointer-events:auto; }
.boemia-toast.is-visible { opacity:1; transform:none; }
.boemia-toast--error { border-left-color:#8a2f22; }.boemia-toast--warning { border-left-color:var(--leather); }
.boemia-toast button { width:36px; height:36px; border:0; background:transparent; color:var(--chocolate); font-size:1.35rem; cursor:pointer; }
@media (max-width:520px) { .boemia-dialog-layer { align-items:end; padding:0; }.boemia-dialog { width:100%; max-height:92dvh; padding:1.5rem 1rem calc(1.5rem + env(safe-area-inset-bottom)); border-inline:0; border-bottom:0; }.boemia-dialog__actions { display:grid; grid-template-columns:1fr; }.boemia-dialog__actions button { width:100%; }.boemia-dialog__secondary { order:-1; }.boemia-toasts { right:.7rem; bottom:.7rem; width:calc(100vw - 1.4rem); } }

/* Carrito y consultas de Etapa 5 */
.bag-preview { cursor:pointer; }.bag-preview span { display:inline-grid; place-items:center; min-width:1.55rem; min-height:1.55rem; padding:0 .3rem; border-radius:50%; background:var(--chocolate); color:var(--paper); }
.cart-backdrop { position:fixed; inset:0; z-index:39; background:rgba(36,26,20,.45); opacity:0; transition:opacity .28s cubic-bezier(.22,1,.36,1); }
.cart-backdrop.is-open { opacity:1; }
.cart-drawer { position:fixed; z-index:40; top:0; right:0; width:min(92vw,470px); height:100dvh; padding:1.25rem; overflow:auto; background:var(--paper); box-shadow:-12px 0 38px rgba(38,22,13,.2); visibility:hidden; transform:translateX(102%); transition:transform .28s cubic-bezier(.22,1,.36,1),visibility 0s linear .28s; }
.cart-drawer.is-open,.cart-drawer.is-closing { visibility:visible; transition-delay:0s; }.cart-drawer.is-open { transform:translateX(0); }.cart-drawer[hidden],.cart-backdrop[hidden] { display:none; }
.cart-drawer>header { display:flex; justify-content:space-between; align-items:start; border-bottom:1px solid var(--line); }.cart-drawer h2 { margin:.2rem 0 1rem; font-size:2.25rem; }.cart-drawer [data-cart-close] { border:0; background:transparent; font-size:2rem; cursor:pointer; }
body.cart-open { overflow:hidden; }.cart-lines { display:grid; gap:1rem; padding:1rem 0; }.cart-line { display:grid; grid-template-columns:88px minmax(0,1fr) auto; gap:1rem; align-items:start; padding-bottom:1rem; border-bottom:1px solid var(--line); }.cart-line img { width:88px; aspect-ratio:1; object-fit:cover; background:var(--cream); }.cart-line h3,.cart-line p { margin:.1rem 0 .45rem; }.cart-line h3 { font-size:1.1rem; }.cart-line__info>a,.cart-line h3 a { color:var(--chocolate); }.quantity-controls { display:flex; align-items:center; flex-wrap:wrap; gap:.45rem; margin-top:.65rem; }.quantity-controls button { min-width:40px; min-height:40px; border:1px solid var(--line); background:transparent; color:var(--chocolate); cursor:pointer; }.quantity-controls .link-button { min-width:auto; padding:.35rem; border:0; text-decoration:underline; }
.cart-drawer__footer { position:sticky; bottom:-1.25rem; margin:0 -1.25rem -1.25rem; padding:1rem 1.25rem 1.25rem; border-top:1px solid var(--line); background:var(--paper); }.cart-drawer__footer p,.cart-summary>p:first-of-type { display:flex; justify-content:space-between; gap:1rem; }.button-secondary { display:block; padding:.8rem 1rem; border:1px solid var(--chocolate); color:var(--chocolate); text-align:center; text-decoration:none; }
.cart-empty { padding:2rem 1rem; text-align:center; background:var(--cream); }.cart-empty h3 { font-size:1.6rem; }.cart-empty a { color:var(--chocolate); font-weight:700; }
.cart-notice { position:fixed; z-index:45; left:50%; bottom:1rem; display:flex; align-items:center; gap:.8rem; max-width:calc(100vw - 2rem); padding:.8rem 1rem; transform:translateX(-50%); background:var(--chocolate); color:white; box-shadow:var(--shadow); }.cart-notice button { border:1px solid currentColor; background:transparent; color:inherit; min-height:40px; }.cart-notice [data-cart-notice-close] { border:0; font-size:1.2rem; }
.cart-page { max-width:1240px; min-height:65vh; margin:auto; padding:4rem 1.25rem; }.cart-page>header { max-width:720px; }.cart-page h1 { margin:.2rem 0 1rem; font-size:clamp(3rem,8vw,5.5rem); }.cart-page__layout { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(280px,.7fr); gap:3rem; align-items:start; margin-top:2rem; }.cart-lines--page .cart-line { grid-template-columns:112px minmax(0,1fr) auto; }.cart-lines--page .cart-line img { width:112px; }.cart-summary { position:sticky; top:calc(var(--header-height) + 1rem); padding:1.5rem; background:var(--cream); }.cart-summary h2 { margin-top:0; }.cart-summary button:not(.link-button) { width:100%; min-height:50px; border:0; background:var(--chocolate); color:white; font:inherit; cursor:pointer; }.cart-summary .link-button { display:block; margin:1rem auto 0; border:0; background:transparent; color:var(--chocolate); text-decoration:underline; cursor:pointer; }.cart-disclaimer { line-height:1.55; }
.cart-changes { margin-top:1.5rem; padding:1.25rem; border-left:5px solid var(--sage); background:#f2eddf; }.cart-changes h2 { margin-top:0; }.cart-changes button { min-height:46px; padding:.65rem 1rem; border:0; background:var(--chocolate); color:white; }
.whatsapp-fallback { position:fixed; z-index:60; inset:0; display:grid; place-items:center; padding:1rem; background:rgba(36,26,20,.55); }.whatsapp-fallback>div { width:min(100%,620px); max-height:90dvh; overflow:auto; padding:1.5rem; background:var(--paper); box-shadow:var(--shadow); }.whatsapp-fallback textarea { width:100%; min-height:220px; resize:vertical; }.whatsapp-fallback button { min-height:44px; margin:.75rem .5rem 0 0; }
[hidden].cart-drawer,[hidden].cart-backdrop,[hidden].cart-notice,[hidden].whatsapp-fallback,[hidden].cart-changes { display:none; }
@media (max-width:760px) { .cart-page { padding:2rem .8rem 6rem; }.cart-page__layout { display:block; }.cart-summary { position:static; margin-top:1.5rem; }.cart-lines--page .cart-line,.cart-line { grid-template-columns:72px minmax(0,1fr); }.cart-line img,.cart-lines--page .cart-line img { width:72px; }.cart-line>strong { grid-column:2; }.cart-notice { left:.7rem; right:.7rem; bottom:5.5rem; transform:none; flex-wrap:wrap; }.cart-drawer { width:100vw; }.whatsapp-float { z-index:13; } }

.site-footer nav { display:flex; flex-wrap:wrap; justify-content:center; gap:.5rem 1rem; margin-top:1rem; }
.content-page { max-width:880px; min-height:65vh; margin:auto; padding:clamp(2rem,7vw,7rem) 1rem; line-height:1.7; }
.content-page h1 { margin:.2rem 0 2rem; font-family:Georgia,"Times New Roman",serif; font-size:clamp(3rem,7vw,6rem); font-weight:400; line-height:1; }
.content-page h2 { margin-top:2.5rem; font-family:Georgia,"Times New Roman",serif; font-size:2rem; font-weight:400; }
.content-page img { max-width:100%; height:auto; }.content-page__cover { display:block; width:100%; max-height:440px; object-fit:cover; margin:0 0 2rem; }.content-page__cover--after { margin:2rem 0 0; }
@media (max-width:600px) { .content-page__cover { max-height:280px; } }
