:root {
  color-scheme: light;
  --ink: #332622;
  --muted: #766965;
  --paper: #fffaf3;
  --cream: #f4e8db;
  --cream-deep: #ebd8c7;
  --wine: #83364c;
  --wine-deep: #47212d;
  --terracotta: #ce7655;
  --sage: #73826d;
  --line: #dfd0c1;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; color: var(--ink); background: var(--paper); background-image: radial-gradient(circle at 9% 8%, rgba(131,54,76,.045) 0 2px, transparent 2.5px); background-size: 28px 28px; }
button, input { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  width: 100%;
  height: 82px;
  padding-inline: max(20px, calc((100% - 1200px) / 2));
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 24px;
  border-bottom: 1px solid rgba(131,54,76,.08);
  background: rgba(255,250,243,.9);
  backdrop-filter: blur(16px);
}

.brand { display: inline-flex; align-items: center; gap: 10px; width: max-content; color: inherit; text-decoration: none; }
.brand-mark { width: 60px; height: 60px; display: grid; place-items: center; flex: none; }
.brand-mark img { display: block; width: 100%; height: 100%; object-fit: contain; }
.brand strong { display: block; font: 600 20px/1 Georgia, serif; letter-spacing: 0.08em; }
.brand small { display: block; color: var(--muted); font-size: 11px; margin-top: 4px; }
nav { display: flex; gap: 32px; }
nav a { position: relative; color: var(--muted); font-size: 13px; font-weight: 700; text-decoration: none; }
nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -7px; height: 2px; background: var(--terracotta); transition: right .2s ease; }
nav a:hover::after { right: 0; }
nav a:hover { color: var(--wine); }
.header-actions { justify-self: end; display: flex; align-items: center; gap: 8px; }
.favorites-pill { display: flex; align-items: center; gap: 6px; padding: 9px 13px; color: var(--wine); background: #f2dfe2; border-radius: 999px; font-size: 12px; }
.cart-button { min-width: 47px; height: 38px; display: flex; align-items: center; justify-content: center; gap: 5px; border: 1px solid rgba(131,54,76,.12); border-radius: 999px; color: var(--wine); background: #fff9f3; cursor: pointer; }
.cart-button b { min-width: 16px; height: 16px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--wine); font-size: 9px; }

main { overflow: hidden; }
.hero, .collection, .how-to, footer { width: min(1200px, calc(100% - 40px)); margin-inline: auto; }
.hero { min-height: 660px; display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: clamp(48px, 7vw, 96px); padding: 58px 0 92px; }
.eyebrow { margin: 0 0 15px; color: var(--wine); font-size: 11px; font-weight: 850; letter-spacing: 0.18em; }
.hero h1 { max-width: 650px; margin: 0; font: 500 clamp(50px, 6.5vw, 80px)/0.96 Georgia, serif; letter-spacing: -0.05em; }
.hero h1 em { color: var(--wine); font-weight: inherit; }
.hero-copy > p:not(.eyebrow):not(.maker-note) { max-width: 585px; margin: 26px 0 30px; color: var(--muted); font-size: 18px; line-height: 1.65; }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
.hero-copy button { padding: 15px 22px; border: 0; border-radius: 999px; background: var(--wine); color: #fff; font-weight: 800; cursor: pointer; box-shadow: 0 12px 28px rgba(131,54,76,.23); transition: transform .18s ease, box-shadow .18s ease; }
.hero-copy button:hover { transform: translateY(-2px); box-shadow: 0 15px 34px rgba(131,54,76,.28); }
.hero-copy button span { margin-left: 15px; }
.hero-actions a { color: var(--wine); font-size: 13px; font-weight: 800; text-decoration: none; border-bottom: 1px solid rgba(131,54,76,.35); padding-bottom: 4px; }
.hero-actions a span { margin-left: 6px; }
.hero-copy .maker-note { display: flex; align-items: center; gap: 8px; margin: 22px 0 0; color: var(--sage); font-size: 11px; font-weight: 750; letter-spacing: .03em; }

.hero-art { position: relative; aspect-ratio: 4 / 3; width: 100%; border: 10px solid #f8eee4; border-radius: 34px 34px 34px 9px; background: #e7d7c7; box-shadow: 18px 20px 0 var(--cream-deep), 0 28px 70px rgba(71,33,45,.18); overflow: hidden; transform: rotate(1.2deg); }
.hero-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(45,18,28,.18)); pointer-events: none; }
.hero-art > img { width: 100%; height: 100%; display: block; object-fit: cover; transform: scale(1.015); }
.photo-caption { position: absolute; left: 20px; bottom: 20px; z-index: 2; padding: 8px 11px; color: #fff; background: rgba(71,33,45,.66); backdrop-filter: blur(8px); border-radius: 999px; font-size: 10px; font-weight: 800; letter-spacing: .05em; }
.hero-badge { position: absolute; right: 22px; top: 22px; z-index: 2; width: 104px; height: 104px; display: grid; place-content: center; text-align: center; background: #fffaf3; border: 1px solid rgba(131,54,76,.1); border-radius: 50%; box-shadow: 0 12px 30px rgba(70,32,46,.12); }
.hero-badge strong { color: var(--wine); font: 500 33px/1 Georgia, serif; }.hero-badge small { margin-top: 5px; color: var(--muted); font-size: 10px; }

.collection { position: relative; z-index: 1; padding: 98px 0 110px; }
.collection::before { content: ""; position: absolute; z-index: -1; top: 0; bottom: 0; left: 50%; width: 100vw; translate: -50%; background: linear-gradient(180deg, #f4e8dc, #f8f0e7); }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; }
.section-heading h2, .how-to h2 { margin: 0; font: 500 clamp(36px, 5vw, 54px)/1 Georgia, serif; letter-spacing: -0.035em; }
.section-intro { max-width: 550px; margin: 15px 0 0; color: var(--muted); font-size: 14px; line-height: 1.55; }
.search-box { width: min(320px, 100%); height: 50px; display: flex; align-items: center; gap: 8px; border: 1px solid rgba(131,54,76,.13); border-radius: 16px; padding: 0 16px; background: rgba(255,255,255,.72); box-shadow: 0 7px 20px rgba(71,33,45,.05); }
.search-box span { color: var(--muted); font-size: 20px; }
.search-box input { width: 100%; border: 0; outline: 0; color: var(--ink); background: transparent; }
.collection-lines { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; margin: 38px 0 42px; }
.line-card { position: relative; min-height: 246px; display: grid; grid-template-columns: .88fr 1.12fr; padding: 0; overflow: hidden; border: 2px solid transparent; border-radius: 26px 26px 26px 8px; color: var(--ink); background: rgba(255,253,248,.86); text-align: left; cursor: pointer; box-shadow: 0 14px 34px rgba(71,33,45,.07); transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.line-card:hover { transform: translateY(-3px); box-shadow: 0 19px 44px rgba(71,33,45,.12); }
.line-card.active { border-color: var(--wine); box-shadow: 0 17px 44px rgba(131,54,76,.14); }
.line-photo { min-height: 100%; overflow: hidden; }
.line-photo img { width: 100%; height: 100%; display: block; object-fit: cover; }
.selection-visual { position: relative; min-height: 100%; display: grid; place-items: center; color: #fff; background: linear-gradient(145deg, #744457, #ad6c72 58%, #d39a7a); overflow: hidden; }
.selection-visual::before { content: ""; position: absolute; width: 145px; aspect-ratio: 1; border: 26px solid rgba(255,255,255,.08); border-radius: 50%; }
.selection-visual i { position: absolute; font-style: normal; font-size: 54px; filter: drop-shadow(0 8px 15px rgba(71,33,45,.2)); }
.selection-visual i:nth-child(1) { translate: -38px -33px; }.selection-visual i:nth-child(2) { translate: 42px 31px; font-size: 42px; }.selection-visual i:nth-child(3) { translate: -53px 61px; font-size: 33px; opacity: .72; }
.line-copy { display: flex; flex-direction: column; align-items: flex-start; padding: 28px 26px 24px; }
.line-copy small { color: var(--terracotta); font-size: 9px; font-weight: 900; letter-spacing: .15em; }
.line-copy strong { margin: 11px 0 12px; font: 500 27px/1.08 Georgia, serif; }
.line-copy > span { color: var(--muted); font-size: 12px; line-height: 1.55; }
.line-copy em { margin-top: auto; padding-top: 18px; color: var(--wine); font-size: 11px; font-style: normal; font-weight: 850; }
.line-copy em span { margin-left: 5px; }
.catalog-tools { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin: 0 0 24px; }
.filters { display: flex; flex-wrap: wrap; gap: 8px; }
.filters button { padding: 10px 15px; border: 1px solid rgba(131,54,76,.14); border-radius: 999px; color: var(--muted); background: rgba(255,255,255,.45); font-size: 12px; font-weight: 750; cursor: pointer; }
.filters button.active { color: #fff; border-color: var(--wine); background: var(--wine); }
#results-count { flex: 0 0 auto; color: var(--muted); font-size: 12px; }
.line-heading { display: flex; align-items: baseline; gap: 14px; margin: 0 0 20px; padding-top: 22px; border-top: 1px solid rgba(131,54,76,.12); }
.line-heading span { font: 500 28px/1 Georgia, serif; }
.line-heading small { color: var(--muted); font-size: 11px; }

.product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; min-height: 200px; }
.product-card { position: relative; overflow: hidden; border: 1px solid rgba(131,54,76,.08); border-radius: 24px 24px 24px 7px; background: rgba(255,253,248,.94); box-shadow: 0 13px 34px rgba(70,32,46,.065); transition: translate .2s ease, box-shadow .2s ease; }
.product-card:hover { translate: 0 -4px; box-shadow: 0 18px 40px rgba(70,32,46,.11); }
.product-art { position: relative; aspect-ratio: 4 / 3; margin: 10px 10px 0; display: grid; place-items: center; overflow: hidden; border-radius: 16px 16px 16px 4px; background: var(--art-bg); }
.product-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 66%, rgba(33,15,21,.16)); pointer-events: none; }
.product-art img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .35s ease; }
.product-card:hover .product-art img { transform: scale(1.035); }
.selection-art { background: linear-gradient(145deg, var(--art-bg), #fff7ef); }
.selection-art::before { content: ""; position: absolute; width: 155px; aspect-ratio: 1; border: 24px solid rgba(131,54,76,.07); border-radius: 50%; }
.selection-symbol { position: relative; z-index: 1; font-size: 72px; filter: drop-shadow(0 9px 15px rgba(71,33,45,.14)); }
.selection-art-label { position: absolute; left: 13px; bottom: 13px; z-index: 2; padding: 6px 9px; border-radius: 999px; color: var(--wine); background: rgba(255,250,243,.88); font-size: 9px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.art-terracotta { --art-bg: #edc9b9; --art-ink: #8b402c; }.art-sage { --art-bg: #dce3d5; --art-ink: #53684e; }.art-rose { --art-bg: #efd5d7; --art-ink: #874b59; }.art-mustard { --art-bg: #ead7a7; --art-ink: #806523; }.art-lavender { --art-bg: #dcd3e6; --art-ink: #66507c; }.art-ocean { --art-bg: #c8dfe0; --art-ink: #41686a; }.art-sand { --art-bg: #e8dcc8; --art-ink: #756048; }
.favorite { position: absolute; right: 20px; top: 20px; z-index: 3; width: 40px; height: 40px; display: grid; place-items: center; border: 0; border-radius: 50%; background: rgba(255,250,243,.92); color: var(--wine); font-size: 22px; cursor: pointer; box-shadow: 0 7px 18px rgba(70,32,46,.11); }.favorite.is-favorite { background: var(--wine); color: #fff; }
.product-info { padding: 20px 21px 21px; }.category { margin: 0 0 7px; color: var(--terracotta); font-size: 9px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }.product-info h3 { margin: 0; font: 500 24px/1.15 Georgia, serif; }.product-meta { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 17px 0 10px; color: var(--muted); font-size: 11px; }.product-meta strong { color: var(--ink); font-size: 13px; }.availability { padding: 5px 8px; border-radius: 999px; color: #5c684f; background: #e4eadf; font-size: 9px; font-weight: 850; text-transform: uppercase; letter-spacing: .06em; }.availability-seleccion { color: #7b5b31; background: #f2e3c8; }.variants { min-height: 32px; margin: 0 0 15px; color: var(--muted); font-size: 10px; line-height: 1.45; }.product-actions { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding-top: 13px; border-top: 1px solid #eadccf; }.details { display: flex; justify-content: space-between; padding: 10px 11px; border: 0; border-radius: 10px; color: var(--wine); background: #f7ece9; font-weight: 850; font-size: 11px; cursor: pointer; }.add-button { padding: 10px 12px; border: 1px solid var(--wine); border-radius: 10px; color: #fff; background: var(--wine); font-size: 10px; font-weight: 850; cursor: pointer; }
.add-button:disabled, .dialog-add:disabled { border-style: dashed; border-color: rgba(131,54,76,.22); color: #8c7f7a; background: #f4ece6; cursor: not-allowed; }
.add-button.is-loading, .dialog-add.is-loading { opacity: .64; cursor: wait; }
.empty-state { grid-column: 1 / -1; padding: 70px 20px; text-align: center; border: 1px dashed var(--line); border-radius: 22px; }.empty-state > span { color: var(--wine); font-size: 38px; }.empty-state h3 { margin: 7px 0; font: 500 25px Georgia, serif; }.empty-state p { color: var(--muted); }.empty-state button { border: 0; color: var(--wine); background: transparent; font-weight: 800; cursor: pointer; }

.how-to { position: relative; margin-top: 90px; margin-bottom: 70px; padding: 72px; display: grid; grid-template-columns: .78fr 1.22fr; gap: 80px; color: #fffaf3; background: linear-gradient(135deg, var(--wine-deep), #652f40); border-radius: 34px 34px 34px 10px; box-shadow: 0 24px 65px rgba(71,33,45,.18); overflow: hidden; }
.how-to::after { content: ""; position: absolute; width: 260px; aspect-ratio: 1; right: -105px; top: -120px; border: 36px solid rgba(255,255,255,.035); border-radius: 50%; }
.eyebrow-light { color: #e2a997; }.how-to h2 { max-width: 390px; }.how-to ol { margin: 0; padding: 0; list-style: none; }.how-to li { display: grid; grid-template-columns: 52px 1fr; gap: 12px; padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.13); }.how-to li:first-child { padding-top: 0; }.how-to li > span { color: #e2a997; font: 500 25px Georgia, serif; }.how-to strong { font-size: 14px; }.how-to li p { margin: 5px 0 0; color: rgba(255,250,243,.62); font-size: 12px; line-height: 1.5; }
footer { display: flex; justify-content: space-between; gap: 20px; padding: 0 0 34px; color: var(--muted); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }

dialog { width: min(930px, calc(100% - 30px)); padding: 0; border: 0; border-radius: 28px 28px 28px 8px; color: var(--ink); background: var(--paper); box-shadow: 0 28px 90px rgba(30,12,20,.32); }
dialog::backdrop { background: rgba(35,19,25,.66); backdrop-filter: blur(4px); }
.dialog-close { position: absolute; right: 15px; top: 15px; z-index: 4; width: 40px; height: 40px; border: 0; border-radius: 50%; color: var(--wine); background: rgba(255,255,255,.9); font-size: 27px; line-height: 1; cursor: pointer; }
.dialog-layout { display: grid; grid-template-columns: 1fr 1fr; min-height: 520px; }.dialog-art { display: flex; padding: 10px; }.dialog-art .product-art { flex: 1; aspect-ratio: auto; margin: 0; border-radius: 20px 20px 20px 5px; }.dialog-copy { padding: 54px 48px 42px; }.dialog-copy h2 { margin: 8px 0 16px; font: 500 42px/1 Georgia, serif; letter-spacing: -.03em; }.dialog-description { color: var(--muted); line-height: 1.65; font-size: 14px; }.dialog-copy dl { margin: 23px 0; }.dialog-copy dl > div { display: flex; justify-content: space-between; gap: 20px; padding: 11px 0; border-bottom: 1px solid var(--line); font-size: 11px; }.dialog-copy dt { color: var(--muted); }.dialog-copy dd { margin: 0; text-align: right; font-weight: 750; }.dialog-add { width: 100%; display: flex; justify-content: space-between; margin-bottom: 9px; padding: 14px 16px; border: 1px solid var(--wine); border-radius: 13px; color: #fff; background: var(--wine); font-weight: 850; font-size: 12px; cursor: pointer; }.whatsapp-button { display: flex; justify-content: space-between; padding: 15px 17px; border-radius: 13px; color: #fff; background: #28734b; text-decoration: none; font-weight: 800; font-size: 13px; box-shadow: 0 10px 24px rgba(40,115,75,.17); }.dialog-copy > small { display: block; margin-top: 11px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.variant-picker { display: grid; gap: 7px; margin: -8px 0 14px; color: var(--muted); font-size: 11px; font-weight: 750; }
.variant-picker select { width: 100%; padding: 12px 38px 12px 13px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: #fffaf3; font: inherit; }
.toast { position: fixed; z-index: 50; left: 50%; bottom: 24px; translate: -50% 20px; padding: 12px 17px; border-radius: 999px; color: #fff; background: var(--wine-deep); box-shadow: 0 14px 34px rgba(35,18,24,.24); font-size: 11px; font-weight: 750; opacity: 0; pointer-events: none; transition: opacity .2s ease, translate .2s ease; }.toast.show { opacity: 1; translate: -50% 0; }

@media (max-width: 900px) {
  .site-header { grid-template-columns: 1fr auto; }.site-header nav { display: none; }.hero { min-height: auto; grid-template-columns: 1fr; gap: 54px; padding-top: 70px; }.hero-art { width: min(650px, calc(100% - 18px)); justify-self: center; }.collection-lines { grid-template-columns: 1fr; }.product-grid { grid-template-columns: repeat(2, 1fr); }.how-to { grid-template-columns: 1fr; gap: 45px; padding: 50px; }
}

@media (max-width: 620px) {
  .site-header { height: 72px; padding-inline: 12px; }.hero, .collection, .how-to, footer { width: min(100% - 24px, 1200px); }.brand small { display: none; }.favorites-pill { padding: 8px 10px; }.hero { padding: 52px 0 70px; }.hero h1 { font-size: 48px; }.hero-copy > p:not(.eyebrow):not(.maker-note) { font-size: 16px; }.hero-art { width: calc(100% - 13px); max-height: 390px; border-width: 7px; border-radius: 25px 25px 25px 7px; box-shadow: 12px 14px 0 var(--cream-deep), 0 20px 48px rgba(71,33,45,.16); }.hero-badge { width: 88px; height: 88px; right: 13px; top: 13px; }.photo-caption { left: 12px; bottom: 12px; }.section-heading { align-items: stretch; flex-direction: column; }.search-box { width: 100%; }.collection-lines { gap: 14px; margin: 30px 0 34px; }.line-card { min-height: 330px; grid-template-columns: 1fr; }.line-photo, .selection-visual { min-height: 145px; }.line-copy { padding: 20px; }.line-copy strong { font-size: 25px; }.catalog-tools { align-items: flex-start; }.filters { gap: 6px; }.filters button { padding: 8px 11px; }.line-heading { align-items: flex-start; flex-direction: column; gap: 5px; }.product-grid { grid-template-columns: 1fr; }.collection { padding: 74px 0 82px; }.product-card { border-radius: 22px 22px 22px 6px; }.how-to { padding: 40px 24px; margin-top: 56px; margin-bottom: 42px; }.dialog-layout { grid-template-columns: 1fr; }.dialog-art { min-height: 270px; }.dialog-copy { padding: 34px 24px; }.dialog-copy h2 { font-size: 34px; }footer { flex-direction: column; align-items: center; }.toast { width: calc(100% - 28px); text-align: center; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

.order-link { text-decoration: none; text-align: center; }
.delivery-time { color: var(--muted); font-size: 12px; margin: 0 0 14px; }
.order-conditions { width: min(100% - 24px, 1200px); margin: 0 auto 70px; padding: 24px; border: 1px solid var(--line); border-radius: 20px; }
.order-conditions h2 { font: 500 28px Georgia, serif; }
.order-conditions p { line-height: 1.65; color: var(--muted); }
.order-conditions .whatsapp-button { width: fit-content; max-width: 100%; }

.collection-lines { grid-template-columns: 1fr; }

/* Compact collection image. */
.line-card-marcela { grid-template-columns: .44fr 1.56fr; min-height: 246px; }
.line-card-marcela .line-photo { min-height: 0; height: 246px; align-self: center; }
@media (max-width: 620px) {
  .line-card-marcela { grid-template-columns: 1fr; min-height: 0; }
  .line-card-marcela .line-photo { width: 50%; height: 145px; justify-self: center; }
}

.product-art.has-gallery { aspect-ratio: 3 / 4; }
.product-art.has-gallery img { object-fit: contain; }
.dialog-art.gallery-layout { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.dialog-art.gallery-layout .product-art { flex: none; width: 100%; aspect-ratio: 3 / 4; }
.gallery-thumbnails { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.gallery-thumbnails button { padding: 3px; background: var(--paper); border: 2px solid transparent; border-radius: 9px; cursor: pointer; }
.gallery-thumbnails button[aria-pressed="true"] { border-color: var(--wine); }
.gallery-thumbnails img { width: 100%; aspect-ratio: 3 / 4; object-fit: contain; display: block; border-radius: 5px; }

.family-story { cursor: default; border-color: var(--wine); }
.family-story:hover { transform: none; }
.family-message { padding: 28px; }
.family-message h3 { margin: 0 0 16px; font: 500 28px/1.2 Georgia, serif; }
.family-message p { margin: 0 0 14px; font-size: 15px; line-height: 1.65; }
.family-message p:last-child { margin-bottom: 0; }
.custom-request { width: min(1200px, calc(100% - 40px)); margin: 48px auto; padding: 36px 24px; text-align: center; border: 1px solid var(--wine); border-radius: 24px; background: var(--cream-deep); }
.custom-request h2 { margin: 0 0 12px; font: 500 32px/1.2 Georgia, serif; }
.custom-request p { margin: 0 0 20px; font-size: 18px; }
@media (max-width: 620px) {
  .family-message { padding: 22px; }
  .custom-request { width: calc(100% - 24px); }
  .custom-request h2 { font-size: 27px; }
}
