:root {
  --ink: #382129;
  --deep-rose: #7d3e4c;
  --rose: #d9929d;
  --blush: #f7dfe1;
  --petal: #fff7f5;
  --pearl: #fffdfb;
  --champagne: #e8c9af;
  --gold: #b66d62;
  --line: rgba(87, 45, 54, .16);
  --muted: #8b666e;
  --shadow: 0 20px 55px rgba(102, 52, 64, .13);
}

* { box-sizing: border-box; }
html { background: var(--petal); }
body { min-width: 320px; margin: 0; color: var(--ink); background: var(--petal); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
button, input, select, textarea { font: inherit; }
button, select { cursor: pointer; }
a { color: inherit; }

.site-nav { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 14px clamp(20px, 5vw, 76px); border-bottom: 1px solid var(--line); background: rgba(255, 253, 251, .72); backdrop-filter: blur(15px); }
.brand { display: inline-flex; align-items: center; gap: 10px; font-family: Georgia, "Times New Roman", serif; font-size: 1.24rem; text-decoration: none; letter-spacing: -.06em; }
.brand img { width: 36px; height: 36px; object-fit: contain; filter: drop-shadow(0 4px 8px rgba(154, 77, 91, .24)); }
.nav-links { display: flex; align-items: center; gap: clamp(15px, 2.6vw, 38px); }
.nav-links a, .cart-button { border: 0; padding: 0; background: none; font-size: .74rem; font-weight: 750; letter-spacing: .14em; text-decoration: none; text-transform: uppercase; }
.cart-button { display: inline-flex; align-items: center; gap: 8px; }
.cart-count { display: grid; place-items: center; min-width: 24px; height: 24px; padding: 0 6px; border: 1px solid var(--rose); border-radius: 999px; color: var(--deep-rose); background: rgba(255,255,255,.8); }

.button { display: inline-flex; justify-content: center; align-items: center; min-height: 48px; padding: 0 22px; border: 1px solid var(--deep-rose); border-radius: 999px; color: var(--pearl); background: var(--deep-rose); box-shadow: 0 9px 22px rgba(125, 62, 76, .2); font-size: .78rem; font-weight: 800; letter-spacing: .13em; line-height: 1; text-decoration: none; text-transform: uppercase; transition: transform .25s ease, box-shadow .25s ease, background .25s ease; }
.button:hover { background: #5f2d39; box-shadow: 0 14px 32px rgba(125, 62, 76, .28); transform: translateY(-2px); }
.button.secondary { color: var(--deep-rose); background: transparent; box-shadow: none; }
.button.secondary:hover { color: var(--pearl); background: var(--deep-rose); }
.button:disabled { cursor: not-allowed; opacity: .58; box-shadow: none; transform: none; }
.eyebrow { margin: 0; color: var(--gold); font-size: .76rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; }

.landing { min-height: 100svh; overflow: hidden; background: radial-gradient(circle at 10% 25%, rgba(255,255,255,.94) 0 8%, transparent 26%), radial-gradient(circle at 76% 58%, rgba(239, 180, 187, .48), transparent 31%), linear-gradient(145deg, #fff9f7, #f6dde0 58%, #eec3c7); }
.landing .site-nav { position: relative; z-index: 5; }
.hero { min-height: calc(100svh - 76px); position: relative; display: grid; align-content: center; justify-items: center; overflow: hidden; padding: 48px 24px 85px; text-align: center; isolation: isolate; }
.hero::before { content: ""; position: absolute; z-index: -2; width: min(88vw, 1100px); aspect-ratio: 1.1; border-radius: 50%; background: conic-gradient(from 220deg, transparent, rgba(255, 255, 255, .75), transparent 15%, rgba(224, 152, 162, .31), transparent 43%, rgba(255, 251, 243, .84), transparent 72%); filter: blur(7px); animation: bloom 14s linear infinite; }
.hero::after { content: ""; position: absolute; z-index: -1; inset: 0; pointer-events: none; opacity: .33; background-image: radial-gradient(circle, rgba(150, 67, 87, .3) 1px, transparent 1.5px); background-size: 30px 30px; mask-image: radial-gradient(ellipse at center, black 0%, transparent 67%); }
.hero .eyebrow { margin-bottom: 14px; animation: floatIn .8s .05s both; }
.rose-logo { position: relative; width: min(920px, 102vw); line-height: 0; animation: floatIn 1s .12s both; }
.rose-logo img { width: 100%; height: auto; display: block; filter: drop-shadow(0 24px 20px rgba(107, 45, 58, .13)) saturate(1.1); }
.spark { position: absolute; z-index: 2; width: 16px; height: 16px; background: linear-gradient(135deg, #fff, var(--champagne), #fff); clip-path: polygon(50% 0, 59% 41%, 100% 50%, 59% 59%, 50% 100%, 41% 59%, 0 50%, 41% 41%); filter: drop-shadow(0 1px 5px rgba(166,85,91,.58)); animation: twinkle 3s ease-in-out infinite; }
.spark.one { top: 28%; left: 13%; animation-delay: -.4s; }.spark.two { top: 49%; right: 12%; width: 24px; height: 24px; animation-delay: -1.5s; }.spark.three { bottom: 20%; left: 26%; width: 11px; height: 11px; animation-delay: -2.2s; }.spark.four { top: 17%; right: 27%; width: 10px; height: 10px; animation-delay: -.9s; }
.hero-actions { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: clamp(15px, 2vw, 28px); transform: translateY(-34px); animation: floatIn .85s .3s both; }
.hero-note { position: absolute; bottom: 26px; left: clamp(20px, 5vw, 76px); max-width: 210px; color: var(--muted); font-size: .77rem; letter-spacing: .08em; line-height: 1.55; text-align: left; }.hero-mark { position: absolute; right: clamp(20px, 5vw, 76px); bottom: 28px; color: var(--muted); font: italic 1rem Georgia, serif; }

.catalog { min-height: 100svh; background: linear-gradient(145deg, var(--petal), #f9e7e8); }.catalog-head { display: grid; grid-template-columns: 1fr auto; gap: 28px; padding: clamp(52px, 9vw, 110px) clamp(20px, 5vw, 76px) clamp(28px, 4vw, 52px); }.catalog-head h1 { max-width: 720px; margin: 10px 0 0; font: 400 clamp(3.1rem, 8.5vw, 8rem)/.83 Georgia, "Times New Roman", serif; letter-spacing: -.085em; }.catalog-head h1 em { color: var(--rose); font-style: italic; }.catalog-summary { align-self: end; max-width: 250px; margin: 0; color: var(--muted); font-size: .92rem; line-height: 1.6; }
.filter-panel { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: 10px; padding: 0 clamp(20px, 5vw, 76px) 34px; }.filter-select { width: 100%; height: 47px; padding: 0 38px 0 15px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); background: rgba(255,255,255,.73); font-size: .86rem; appearance: none; background-image: linear-gradient(45deg, transparent 50%, var(--gold) 50%), linear-gradient(135deg, var(--gold) 50%, transparent 50%); background-position: calc(100% - 18px) 20px, calc(100% - 13px) 20px; background-size: 5px 5px, 5px 5px; background-repeat: no-repeat; }.filter-reset { align-self: stretch; border: 0; color: var(--deep-rose); background: transparent; font-size: .78rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; border-top: 1px solid var(--line); background: var(--line); }.product-card { position: relative; min-width: 0; padding: clamp(14px, 2.3vw, 32px); background: var(--petal); cursor: pointer; }.product-stage { position: relative; display: grid; min-height: 420px; place-items: center; overflow: hidden; border-radius: 18px; background: var(--background, linear-gradient(135deg, #f7dfe1, #e8c9af)); }.product-stage::before { content: ""; position: absolute; width: 112%; height: 38%; bottom: -15%; border-radius: 50%; background: rgba(255,255,255,.65); filter: blur(16px); }.product-stage::after { content: "✦"; position: absolute; top: 20px; right: 20px; color: rgba(255,255,255,.82); font-size: 1.25rem; text-shadow: 0 1px 9px rgba(111,48,63,.4); }.product-stage img { position: relative; z-index: 1; width: 90%; height: 90%; object-fit: contain; filter: drop-shadow(0 18px 13px rgba(72,32,42,.2)); transition: transform .5s cubic-bezier(.16,1,.3,1); }.product-card:hover .product-stage img { transform: scale(1.035); }.product-meta { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-top: 14px; }.product-meta h2 { margin: 0; font: 400 clamp(1.35rem, 2vw, 1.8rem)/1 Georgia, serif; letter-spacing: -.045em; }.product-meta span, .product-type { color: var(--muted); font-size: .76rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }.product-type { display: block; margin-top: 8px; color: var(--gold); }
.catalog-empty { grid-column: 1 / -1; display: grid; min-height: 45vh; place-content: center; padding: 48px 24px; background: var(--petal); color: var(--muted); text-align: center; }.catalog-empty strong { display: block; color: var(--ink); font: 400 clamp(2rem, 5vw, 4rem)/.9 Georgia, serif; letter-spacing: -.07em; }.catalog-empty p { max-width: 360px; margin: 16px auto 0; font-size: .95rem; line-height: 1.6; }
.product-dialog { width: min(850px, calc(100% - 26px)); padding: 0; border: 1px solid var(--line); border-radius: 18px; color: var(--ink); background: var(--pearl); box-shadow: 0 30px 90px rgba(96,38,54,.28); }.product-dialog::backdrop { background: rgba(69, 29, 40, .35); backdrop-filter: blur(9px); }.dialog-layout { display: grid; grid-template-columns: 1.15fr .85fr; }.dialog-stage { min-height: 500px; display: grid; place-items: center; overflow: hidden; background: var(--dialog-background); }.dialog-stage img { width: 92%; height: 92%; object-fit: contain; filter: drop-shadow(0 22px 18px rgba(72,32,42,.22)); }.dialog-copy { display: flex; flex-direction: column; padding: 26px; }.dialog-close { align-self: end; width: 38px; height: 38px; border: 1px solid var(--line); border-radius: 50%; color: var(--deep-rose); background: transparent; font-size: 1.3rem; }.dialog-copy h2 { margin: 54px 0 10px; font: 400 clamp(2.5rem, 5vw, 4rem)/.86 Georgia, serif; letter-spacing: -.08em; }.dialog-copy p { color: var(--muted); font-size: .93rem; line-height: 1.6; }.dialog-price { margin-top: 14px; font-size: 1.1rem; font-weight: 800; }.dialog-copy .button { width: 100%; margin-top: auto; }

.studio { min-height: 100svh; color: var(--ink); background: linear-gradient(155deg, #fff8f7, #f4dce0); }.studio-nav { position: sticky; top: 0; z-index: 10; }.studio-shell { max-width: 1420px; margin: auto; padding: clamp(26px, 4vw, 60px); }.studio-top { display: flex; align-items: end; justify-content: space-between; gap: 22px; margin-bottom: 28px; }.studio-top h1 { margin: 7px 0 0; font: 400 clamp(2.7rem, 5vw, 5.4rem)/.85 Georgia, serif; letter-spacing: -.085em; }.studio-top p { max-width: 320px; margin: 0; color: var(--muted); font-size: .93rem; line-height: 1.55; }.studio-statbar { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 24px; }.studio-stat { padding: 17px 19px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.62); }.studio-stat span { display: block; color: var(--muted); font-size: .72rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }.studio-stat strong { display: block; margin-top: 6px; font: 400 1.9rem Georgia, serif; }
.studio-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(340px, .9fr); gap: 20px; align-items: start; }.studio-card { padding: clamp(20px, 3vw, 34px); border: 1px solid rgba(130,70,80,.15); border-radius: 22px; background: rgba(255, 253, 251, .76); box-shadow: var(--shadow); }.studio-card h2 { margin: 0; font: 400 clamp(1.8rem, 3vw, 2.55rem)/.9 Georgia, serif; letter-spacing: -.065em; }.studio-card > p { color: var(--muted); font-size: .9rem; line-height: 1.55; }.studio-form { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; margin-top: 24px; }.field { display: grid; gap: 7px; }.field.full { grid-column: 1 / -1; }.field label { color: var(--deep-rose); font-size: .75rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }.field input, .field select, .field textarea { min-height: 47px; width: 100%; padding: 11px 13px; border: 1px solid var(--line); border-radius: 11px; outline: none; color: var(--ink); background: rgba(255,255,255,.82); font-size: .94rem; }.field textarea { min-height: 92px; resize: vertical; }.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--rose); box-shadow: 0 0 0 4px rgba(217,146,157,.16); }.color-control { display: flex; gap: 8px; }.color-control input[type="color"] { min-width: 55px; padding: 3px; }.upload-zone { display: grid; min-height: 130px; place-content: center; gap: 7px; border: 1px dashed rgba(125,62,76,.4); border-radius: 14px; color: var(--muted); text-align: center; background: linear-gradient(145deg, rgba(255,255,255,.8), rgba(252,228,230,.6)); }.upload-zone input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }.upload-zone label { cursor: pointer; color: var(--deep-rose); font-size: .85rem; font-weight: 800; }.upload-zone small { font-size: .75rem; }.preview-card { position: sticky; top: 100px; overflow: hidden; }.preview-stage { min-height: 440px; display: grid; place-items: center; overflow: hidden; border-radius: 17px; background: var(--preview-background, linear-gradient(135deg, #f7dfe1, #e8c9af)); }.preview-stage img { max-width: 88%; max-height: 390px; object-fit: contain; filter: drop-shadow(0 20px 14px rgba(72,32,42,.2)); }.preview-placeholder { width: 72%; padding: 30px; border: 1px dashed rgba(255,255,255,.7); border-radius: 14px; color: rgba(255,255,255,.92); text-align: center; }.recipe-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }.recipe { min-height: 45px; border: 1px solid var(--line); border-radius: 10px; color: var(--deep-rose); background: rgba(255,255,255,.6); font-size: .76rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }.recipe.active { color: var(--pearl); border-color: var(--deep-rose); background: var(--deep-rose); }.studio-inventory { margin-top: 20px; }.studio-inventory-header { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 13px; }.studio-inventory h2 { margin: 0; font: 400 2rem Georgia, serif; letter-spacing: -.06em; }.inventory-list { display: grid; gap: 9px; }.inventory-row { display: grid; grid-template-columns: 54px 1fr auto; align-items: center; gap: 13px; padding: 10px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.68); }.inventory-row img { width: 54px; height: 54px; object-fit: contain; border-radius: 9px; background: var(--blush); }.inventory-row strong { font-size: .95rem; }.inventory-row small { display: block; margin-top: 4px; color: var(--muted); font-size: .76rem; }.delete-product { border: 0; color: var(--deep-rose); background: transparent; font-size: .78rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }.empty-inventory { padding: 25px 0; color: var(--muted); font-size: .92rem; }

@keyframes bloom { to { transform: rotate(1turn); } } @keyframes twinkle { 0%,100% { opacity: .35; transform: scale(.65) rotate(0); } 50% { opacity: 1; transform: scale(1.1) rotate(45deg); } } @keyframes floatIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@media (max-width: 820px) { .catalog-head { grid-template-columns: 1fr; }.catalog-summary { max-width: 430px; }.filter-panel { grid-template-columns: 1fr 1fr; }.filter-panel .filter-reset { min-height: 45px; }.product-grid { grid-template-columns: 1fr 1fr; }.studio-grid { grid-template-columns: 1fr; }.preview-card { position: static; }.studio-top { align-items: start; flex-direction: column; }.dialog-layout { grid-template-columns: 1fr; }.dialog-stage { min-height: 360px; }.dialog-copy { min-height: 380px; }.dialog-copy h2 { margin-top: 30px; } }
@media (max-width: 560px) { .site-nav { min-height: 67px; padding: 11px 18px; }.nav-links a { display: none; }.hero { min-height: calc(100svh - 67px); padding: 38px 15px 78px; }.rose-logo { width: 124vw; }.hero-note { max-width: 150px; bottom: 18px; font-size: .68rem; }.hero-mark { right: 20px; bottom: 18px; }.spark.one { left: 8%; }.spark.two { right: 5%; }.catalog-head { padding-top: 55px; }.filter-panel { grid-template-columns: 1fr; }.product-grid { grid-template-columns: 1fr; }.product-stage { min-height: 112vw; max-height: 530px; }.studio-shell { padding: 26px 16px; }.studio-statbar { gap: 7px; }.studio-stat { padding: 14px 12px; }.studio-stat strong { font-size: 1.55rem; }.studio-form { grid-template-columns: 1fr; }.field.full { grid-column: auto; }.recipe-list { grid-template-columns: 1fr; }.preview-stage { min-height: 360px; }.inventory-row { grid-template-columns: 45px 1fr auto; }.inventory-row img { width: 45px; height: 45px; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } }

/* NEVAÉ — premium motion pass */
.site-nav .brand { width: 42px; height: 42px; justify-content: center; }
.site-nav .brand img { width: 42px; height: 42px; object-fit: contain; object-position: center; border-radius: 0; filter: drop-shadow(0 4px 9px rgba(169, 80, 102, .34)); }
.hero::before { width: min(94vw, 1180px); height: min(58vw, 730px); aspect-ratio: auto; border-radius: 48% 52% 64% 36% / 42% 38% 62% 58%; background: radial-gradient(ellipse at 52% 42%, rgba(255,255,255,.74) 0 10%, transparent 43%), radial-gradient(ellipse at 25% 70%, rgba(234,151,169,.4), transparent 49%), radial-gradient(ellipse at 84% 22%, rgba(255,242,224,.74), transparent 44%); filter: blur(28px); opacity: .9; animation: auroraDrift 13s ease-in-out infinite alternate; }
.hero::after { opacity: .42; background-image: radial-gradient(circle, rgba(171, 83, 107, .46) 1.1px, transparent 1.7px); background-size: 26px 26px; mask-image: radial-gradient(ellipse at center, black 0%, transparent 72%); }
.hero { background: radial-gradient(ellipse 62% 46% at 48% 48%, rgba(255,255,255,.68), transparent 70%), radial-gradient(ellipse 36% 34% at 22% 64%, rgba(234,151,169,.24), transparent 78%), radial-gradient(ellipse 32% 35% at 85% 22%, rgba(255,238,220,.42), transparent 76%); }
.hero::before, .hero::after { display: none; }
.hero > .eyebrow, .hero > .hero-slogan, .hero > .rose-logo, .hero > .hero-actions { position: relative; z-index: 3; }
.hero > .hero-note, .hero > .hero-mark { position: absolute; z-index: 3; }
.rose-logo { z-index: 3; isolation: isolate; height: auto; overflow: visible; filter: drop-shadow(0 30px 23px rgba(102,40,61,.12)); }
.rose-logo img { position: relative; z-index: 1; top: auto; left: auto; width: 100%; height: auto; }
.rose-logo { --logo-x: 0deg; --logo-y: 0deg; cursor: pointer; touch-action: manipulation; transform: perspective(1000px) rotateY(var(--logo-x)) rotateX(var(--logo-y)); transition: transform .45s cubic-bezier(.16,1,.3,1), filter .45s ease; will-change: transform; }
.rose-logo:hover { filter: drop-shadow(0 34px 25px rgba(123,51,72,.17)) saturate(1.04); }
.rose-logo.logo-pressed { transform: perspective(1000px) rotateY(-2.4deg) rotateX(2deg) scale(1.018); filter: drop-shadow(0 38px 29px rgba(123,51,72,.22)) saturate(1.09); transition-duration: .14s; }
.rose-logo.logo-awake { animation: logoAwake .75s cubic-bezier(.16,1,.3,1); }
.rose-logo.logo-awake .logo-spark { animation: sparkBurst .72s cubic-bezier(.16,1,.3,1) both; }
.rose-logo::before { content: ""; position: absolute; inset: 24% 8% 19%; z-index: -1; border-radius: 48% 52% 44% 56%; background: rgba(255, 255, 255, .46); filter: blur(34px); transform: rotate(-6deg); }
.logo-spark { position: absolute; z-index: 3; display: grid; width: clamp(16px, 2vw, 27px); aspect-ratio: 1; place-items: center; pointer-events: none; opacity: .2; color: #fff6d7; font: 400 clamp(1rem, 2vw, 1.7rem)/1 Georgia, serif; text-shadow: 0 0 5px #fff, 0 0 13px rgba(255,219,155,.98), 0 0 21px rgba(188,91,108,.6); animation: letterTwinkle 8s ease-in-out infinite; }
.letter-one { top: 52%; left: 19%; animation-delay: -.3s; }.letter-two { top: 43%; left: 36%; width: clamp(9px, 1.1vw, 15px); animation-delay: -1.8s; }.letter-three { top: 58%; left: 51%; animation-delay: -3.2s; }.letter-four { top: 41%; left: 67%; width: clamp(8px, 1vw, 14px); animation-delay: -4.7s; }.letter-five { top: 55%; left: 82%; animation-delay: -6.1s; }
.spark { z-index: 3; width: 22px; height: 22px; background: radial-gradient(circle, #fff 0 9%, #fff8dc 20%, var(--champagne) 37%, #fff 58%, transparent 70%); filter: drop-shadow(0 0 7px rgba(255,241,181,.92)) drop-shadow(0 1px 7px rgba(166,85,91,.55)); }
.spark.one { top: 28%; left: 15%; }.spark.two { top: 47%; right: 11%; width: 32px; height: 32px; }.spark.three { bottom: 22%; left: 25%; width: 17px; height: 17px; }.spark.four { top: 19%; right: 28%; width: 15px; height: 15px; }
.hero-actions .button { position: relative; overflow: hidden; min-width: 230px; gap: 12px; isolation: isolate; }
.hero-actions .button::before { content: ""; position: absolute; z-index: -1; inset: 0; transform: translateX(-115%) skewX(-24deg); background: linear-gradient(90deg, transparent, rgba(255, 227, 210, .78), transparent); transition: transform .58s cubic-bezier(.16,1,.3,1); }
.hero-actions .button::after { content: "✦"; color: #ffd9bc; font-size: .92rem; transition: transform .3s ease; }
.hero-actions .button:hover { letter-spacing: .17em; }.hero-actions .button:hover::before { transform: translateX(115%) skewX(-24deg); }.hero-actions .button:hover::after { transform: rotate(90deg) scale(1.2); }
.hero-note { max-width: 260px; color: var(--deep-rose); font: 400 1.05rem/1.15 Georgia, "Times New Roman", serif; letter-spacing: -.035em; }
.hero-slogan { margin: 0 0 15px; color: var(--deep-rose); font: 400 clamp(1.05rem, 1.8vw, 1.38rem)/1.1 Georgia, "Times New Roman", serif; letter-spacing: -.025em; text-shadow: 0 2px 10px rgba(194,105,127,.13); }
.catalog { position: relative; overflow-x: hidden; overflow-y: visible; background: radial-gradient(ellipse at 90% 0%, rgba(255,255,255,.85), transparent 34%), linear-gradient(145deg, #fff8f7, #f4d7dc 120%); }.catalog::before { content: ""; position: fixed; z-index: 0; width: 55vw; height: 55vw; right: -28vw; bottom: -25vw; border-radius: 44% 56% 62% 38%; background: rgba(232, 159, 176, .18); filter: blur(38px); pointer-events: none; }.catalog > * { position: relative; z-index: 1; }
.catalog-head { position: relative; min-height: min(48vw, 610px); overflow: hidden; align-content: end; background: linear-gradient(110deg, rgba(255,255,255,.46), rgba(255,236,237,.2)); }.catalog-head::before { content: ""; position: absolute; width: min(58vw, 680px); height: min(58vw, 680px); top: -45%; left: 37%; border: 1px solid rgba(194,112,135,.16); border-radius: 47% 53% 44% 56%; box-shadow: inset 0 0 60px rgba(255,255,255,.4), 0 0 85px rgba(226,154,170,.16); transform: rotate(18deg); }.catalog-head h1, .catalog-head .eyebrow, .catalog-summary { position: relative; z-index: 2; }.catalog-summary { padding: 18px; border-left: 1px solid rgba(165,78,99,.28); background: linear-gradient(90deg, rgba(255,255,255,.2), transparent); }
.catalog-petal { position: absolute; z-index: 2; color: #e7b18a; text-shadow: 0 0 18px rgba(255,253,214,.9); animation: petalFloat 5.5s ease-in-out infinite alternate; }.petal-a { top: 24%; right: 18%; font-size: 2.2rem; }.petal-b { right: 6%; bottom: 17%; color: #d67d98; font-size: 1.15rem; animation-delay: -2s; }
.catalog-ribbon { overflow: hidden; padding: 13px 0; color: var(--deep-rose); background: rgba(255,253,251,.67); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); white-space: nowrap; }.ribbon-track { display: flex; align-items: center; gap: 25px; width: max-content; padding-right: 25px; font-size: .7rem; font-weight: 850; letter-spacing: .18em; text-transform: uppercase; animation: ribbonSlide 26s linear infinite; will-change: transform; }.catalog-ribbon i { color: var(--gold); font-size: 1rem; }
.catalog-head .eyebrow { color: var(--deep-rose); font: 400 clamp(.85rem, 1.2vw, 1.08rem)/1.1 Georgia, "Times New Roman", serif; letter-spacing: .015em; text-transform: none; }.catalog-head h1 { text-shadow: 0 8px 22px rgba(161,80,105,.13); }.catalog-head h1 em { display: inline-block; background: linear-gradient(112deg, #aa655e 0%, #e6a5ae 30%, #f2c0bc 48%, #c86f86 69%, #7d3e4c 100%); -webkit-background-clip: text; background-clip: text; color: transparent; font-weight: 500; filter: drop-shadow(0 4px 8px rgba(168,79,101,.1)); }.catalog-head h1 .collection-mark { display: block; width: fit-content; margin: .32em 0 0 .3em; padding: .48em .72em; border: 1px solid rgba(182,109,98,.35); border-radius: 999px; color: var(--gold); background: rgba(255,255,255,.42); box-shadow: 0 8px 25px rgba(172,91,104,.08); font: 800 clamp(.58rem, .85vw, .78rem)/1 Inter, sans-serif; letter-spacing: .18em; text-transform: uppercase; }
.filter-panel { position: sticky; z-index: 5; top: 0; padding-top: 24px; background: linear-gradient(180deg, rgba(255,248,247,.94), rgba(255,248,247,.78)); backdrop-filter: blur(15px); }.filter-select { transition: border-color .25s, box-shadow .25s, transform .25s; }.filter-select:hover, .filter-select:focus { border-color: var(--rose); box-shadow: 0 10px 25px rgba(155,75,97,.12); transform: translateY(-1px); }
.product-grid { padding: 1px; background: rgba(160,80,99,.14); }.product-card { overflow: hidden; background: linear-gradient(160deg, #fffdfb, #fff5f5); }.product-card::before { content: ""; position: absolute; z-index: 3; inset: 0; pointer-events: none; opacity: 0; background: linear-gradient(130deg, transparent 42%, rgba(255,255,255,.78) 49%, transparent 57%); transform: translateX(-120%); transition: opacity .25s, transform .75s cubic-bezier(.16,1,.3,1); }.product-card:hover::before { opacity: 1; transform: translateX(120%); }.product-stage { border: 1px solid rgba(255,255,255,.6); box-shadow: inset 0 0 0 1px rgba(167,84,105,.08); }.product-stage::after { content: none; }.product-card:hover { z-index: 2; box-shadow: 0 24px 45px rgba(112,45,64,.14); }.product-meta h2 { transition: color .25s ease; }.product-card:hover .product-meta h2 { color: var(--deep-rose); }
@keyframes auroraDrift { 0% { transform: translate(-2%, -3%) rotate(-7deg) scale(.94); } 100% { transform: translate(3%, 2%) rotate(6deg) scale(1.06); } }
@keyframes letterTwinkle { 0%, 8%, 100% { opacity: .16; transform: scale(.45) rotate(0); } 12% { opacity: .82; transform: scale(1.18) rotate(18deg); } 15% { opacity: 1; transform: scale(.86) rotate(30deg); } 19% { opacity: .16; transform: scale(1.55) rotate(48deg); } }
@keyframes logoAwake { 0%, 100% { transform: perspective(1000px) rotateY(0) rotateX(0) scale(1); } 42% { transform: perspective(1000px) rotateY(-1.8deg) rotateX(1.2deg) scale(1.012); filter: drop-shadow(0 34px 27px rgba(123,51,72,.2)) saturate(1.08); } }
@keyframes sparkBurst { 0% { opacity: .18; transform: scale(.5) rotate(0); } 48% { opacity: 1; transform: scale(1.65) rotate(55deg); } 100% { opacity: .2; transform: scale(.8) rotate(110deg); } }
@keyframes petalFloat { from { transform: translate3d(0, 0, 0) rotate(0); } to { transform: translate3d(13px, -18px, 0) rotate(42deg); } }
@keyframes ribbonSlide { from { transform: translateX(0); } to { transform: translateX(-22%); } }
@media (max-width: 820px) { .catalog-head { min-height: 420px; }.catalog-ribbon { animation-duration: 16s; }.catalog-summary { border-left: 0; padding: 0; background: none; }.petal-a { right: 10%; } }
@media (max-width: 560px) { .site-nav .brand { width: 36px; height: 36px; }.site-nav .brand img { width: 36px; height: 36px; }.hero::before { width: 125vw; height: 105vw; filter: blur(24px); }.hero-note { max-width: 185px; font-size: .95rem; }.spark.one { left: 7%; }.spark.two { right: 3%; }.catalog-head { min-height: 390px; }.catalog-head::before { width: 105vw; height: 105vw; top: -15%; left: 20%; }.catalog-ribbon { gap: 18px; font-size: .6rem; }.filter-panel { top: 0; }.product-card { padding: 14px; } }

/* Studio fusion: photo-derived color, ambient echo, and a contact shadow. */
.product-stage .product-image { position: relative; z-index: 2; width: 90%; height: 90%; object-fit: contain; filter: drop-shadow(0 18px 13px rgba(72,32,42,.2)); transition: transform .5s cubic-bezier(.16,1,.3,1); }
.product-stage .product-echo { position: absolute; z-index: 0; inset: -11%; width: 122%; height: 122%; object-fit: cover; opacity: .18; filter: blur(25px) saturate(1.25); transform: scale(1.06); mix-blend-mode: soft-light; }
.product-card:hover .product-image { transform: scale(1.035); }
.preview-stage { position: relative; isolation: isolate; }
.preview-stage::before { content: ""; position: absolute; z-index: 1; width: 72%; height: 24%; bottom: 8%; border-radius: 50%; background: rgba(84,32,46,.18); filter: blur(22px); }
.preview-stage img { position: relative; z-index: 2; }
.scene-note { margin: -1px 0 3px; color: var(--muted); font-size: .82rem; line-height: 1.45; }

/* A soft floral passage connects the landing to the collection. */
.petal-transition { position: fixed; z-index: 30; inset: 0; display: grid; grid-template-columns: repeat(7, 1fr); place-items: center; pointer-events: none; opacity: 0; overflow: hidden; background: radial-gradient(circle at center, rgba(255,255,255,.35), rgba(224,156,175,.22) 45%, rgba(116,49,68,.34)); transition: opacity .2s ease; }
.petal-transition i { color: #fff8f0; font: 400 clamp(3rem, 9vw, 8rem)/1 Georgia, serif; text-shadow: 0 0 24px rgba(255,238,210,.95), 0 0 45px rgba(201,102,130,.55); opacity: 0; }
.leaving-for-collection .petal-transition { opacity: 1; }.leaving-for-collection .petal-transition i { animation: petalPass .72s cubic-bezier(.16,1,.3,1) both; }.leaving-for-collection .petal-transition i:nth-child(2) { animation-delay: .04s; }.leaving-for-collection .petal-transition i:nth-child(3) { animation-delay: .11s; }.leaving-for-collection .petal-transition i:nth-child(4) { animation-delay: .18s; }.leaving-for-collection .petal-transition i:nth-child(5) { animation-delay: .08s; }.leaving-for-collection .petal-transition i:nth-child(6) { animation-delay: .23s; }.leaving-for-collection .petal-transition i:nth-child(7) { animation-delay: .14s; }
.catalog-head, .catalog-ribbon, .filter-panel, .product-grid { animation: collectionEnter .7s cubic-bezier(.16,1,.3,1) both; }.catalog-ribbon { animation-delay: .08s; }.filter-panel { animation-delay: .14s; }.product-grid { animation-delay: .21s; }

.cart-dialog { width: min(520px, calc(100% - 28px)); max-height: min(720px, calc(100svh - 28px)); padding: 26px; border: 1px solid var(--line); border-radius: 22px; color: var(--ink); background: var(--pearl); box-shadow: 0 30px 90px rgba(96,38,54,.3); }.cart-dialog::backdrop { background: rgba(69,29,40,.32); backdrop-filter: blur(8px); }.cart-head { display: flex; align-items: start; justify-content: space-between; gap: 16px; }.cart-head h2 { margin: 6px 0 0; font: 400 2.6rem/.9 Georgia, serif; letter-spacing: -.07em; }.cart-items { display: grid; gap: 10px; max-height: 390px; margin: 24px 0; overflow: auto; }.cart-item { display: grid; grid-template-columns: 70px 1fr auto; align-items: center; gap: 13px; padding: 9px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,248,247,.7); }.cart-item img { width: 70px; height: 70px; object-fit: contain; border-radius: 9px; background: var(--blush); }.cart-item strong, .cart-item small, .cart-item span { display: block; }.cart-item small { margin-top: 3px; color: var(--muted); }.cart-item span { margin-top: 7px; color: var(--deep-rose); font-weight: 800; }.cart-item button { width: 34px; height: 34px; border: 1px solid var(--line); border-radius: 50%; color: var(--deep-rose); background: transparent; font-size: 1.25rem; }.cart-empty { padding: 35px 5px; color: var(--muted); text-align: center; line-height: 1.5; }.cart-foot { display: grid; gap: 13px; padding-top: 17px; border-top: 1px solid var(--line); }.cart-foot strong { color: var(--deep-rose); font-size: .88rem; letter-spacing: .05em; }.cart-foot .button { width: 100%; }
@keyframes petalPass { 0% { opacity: 0; transform: translateY(72vh) rotate(-30deg) scale(.4); } 48% { opacity: 1; } 100% { opacity: 0; transform: translateY(-72vh) rotate(70deg) scale(1.3); } }
@keyframes collectionEnter { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .catalog-head, .catalog-ribbon, .filter-panel, .product-grid, .ribbon-track { animation: none !important; } }

/* iPhone / Safari guardrails: keep the landing inside the visual viewport. */
@media (max-width: 600px) {
  html, body { width: 100%; overflow-x: hidden; }
  .landing { min-height: 100vh; min-height: 100dvh; overflow-x: hidden; overflow-y: auto; }
  .landing .site-nav { min-height: 67px; padding-left: max(18px, env(safe-area-inset-left)); padding-right: max(18px, env(safe-area-inset-right)); }
  .hero { min-height: calc(100vh - 67px); min-height: calc(100dvh - 67px); padding: 30px max(16px, env(safe-area-inset-left)) calc(34px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-right)); }
  .rose-logo { width: min(100%, 540px); max-width: calc(100vw - 32px); }
  .hero-slogan { margin-bottom: 12px; font-size: 1.08rem; }
  .hero-actions { width: 100%; margin-top: 5px; transform: translateY(-22px); }
  .hero-actions .button { min-width: 0; width: min(100%, 290px); }
  .hero-mark { right: max(18px, env(safe-area-inset-right)); bottom: calc(17px + env(safe-area-inset-bottom)); }
  .spark.two { right: 5%; }.spark.one { left: 7%; }
}

.studio-feedback { margin: 2px 0 0; color: #3d775f; font-size: .86rem; font-weight: 700; }
.studio-feedback[data-type="error"] { color: #a33e4b; }
.studio-access { position: fixed; z-index: 30; inset: 0; display: grid; place-items: center; padding: 22px; background: rgba(73,35,48,.32); backdrop-filter: blur(10px); }.studio-access-card { width: min(480px, 100%); padding: clamp(25px,5vw,42px); border: 1px solid var(--line); border-radius: 22px; background: var(--pearl); box-shadow: 0 30px 90px rgba(74,30,45,.28); }.studio-access-card h1 { margin: 7px 0 12px; font: 400 clamp(2.2rem, 6vw, 3.4rem)/.9 Georgia, serif; letter-spacing: -.065em; }.studio-access-card p:not(.eyebrow) { color: var(--muted); line-height: 1.55; }
.studio-settings { margin: 20px 0; }.settings-form { display: grid; gap: 9px; margin-top: 20px; }.settings-form > label { color: var(--deep-rose); font-size: .75rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }.settings-form > div { display: flex; gap: 9px; }.settings-form input { min-height: 47px; flex: 1; width: 100%; padding: 11px 13px; border: 1px solid var(--line); border-radius: 11px; color: var(--ink); background: rgba(255,255,255,.82); font-size: .94rem; }.settings-form input:focus { outline: none; border-color: var(--rose); box-shadow: 0 0 0 4px rgba(217,146,157,.16); }.cart-payment-note { margin: 0; color: var(--muted); font-size: .82rem; line-height: 1.45; }

.stock-badge { position: absolute; z-index: 4; top: 14px; left: 14px; padding: 7px 9px; border-radius: 999px; font-size: .64rem; font-weight: 850; letter-spacing: .09em; text-transform: uppercase; backdrop-filter: blur(8px); }.stock-badge.low-stock { color: #6d2636; background: rgba(255,238,219,.93); }.stock-badge.sold-out { color: #fff; background: rgba(86,49,55,.84); }.stock-badge.in-stock { color: #5d3850; background: rgba(255,255,255,.78); }.stock-note { min-height: 1.4em; margin: 12px 0 0; font-size: .82rem !important; font-weight: 700; }.stock-note.low-stock { color: #9e4d3c; }.stock-note.sold-out { color: #a33e4b; }.quantity-picker { display: inline-grid; grid-template-columns: 42px 46px 42px; align-items: center; margin: 14px 0 18px; border: 1px solid var(--line); border-radius: 999px; overflow: hidden; }.quantity-picker button { min-height: 42px; border: 0; color: var(--deep-rose); background: rgba(255,255,255,.72); font-size: 1.25rem; }.quantity-picker button:disabled, .dialog-copy .button:disabled { cursor: not-allowed; opacity: .48; }.quantity-picker output { color: var(--ink); font-weight: 800; text-align: center; }
.catalog-search { position: relative; min-width: 0; }.catalog-search::before { content: "⌕"; position: absolute; z-index: 1; top: 50%; left: 15px; color: var(--deep-rose); font: 1.25rem/1 Georgia, serif; transform: translateY(-53%); pointer-events: none; }.catalog-search input { width: 100%; height: 47px; padding: 0 15px 0 39px; border: 1px solid var(--line); border-radius: 12px; outline: 0; color: var(--ink); background: rgba(255,255,255,.83); box-sizing: border-box; font: .9rem/1.2 Georgia, serif; transition: border-color .25s, box-shadow .25s, transform .25s; }.catalog-search input::placeholder { color: #a68188; }.catalog-search input:focus { border-color: var(--rose); box-shadow: 0 10px 25px rgba(155,75,97,.12); transform: translateY(-1px); }.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.dialog-action { padding: 16px 26px 24px; border-top: 1px solid var(--line); background: var(--pearl); }.dialog-action .button { width: 100%; }.product-dialog { overflow: hidden; }
@media (max-width: 820px) { .filter-panel { grid-template-columns: 1fr 1fr; }.catalog-search { grid-column: 1 / -1; } }
@media (max-width: 560px) { .product-dialog { width: calc(100% - 18px); height: calc(100dvh - 18px); max-height: none; display: grid; grid-template-rows: minmax(0,1fr) auto; overscroll-behavior: contain; }.product-dialog .dialog-layout { overflow: auto; -webkit-overflow-scrolling: touch; }.dialog-stage { min-height: min(82vw, 340px); }.dialog-copy { min-height: 0; padding: 18px; }.dialog-copy h2 { margin-top: 25px; }.dialog-action { position: relative; z-index: 3; padding: 12px 18px calc(12px + env(safe-area-inset-bottom)); box-shadow: 0 -10px 22px rgba(255,249,248,.95); }.cart-dialog { width: calc(100% - 18px); max-height: calc(100dvh - 18px); padding: 20px 18px calc(20px + env(safe-area-inset-bottom)); overflow: auto; -webkit-overflow-scrolling: touch; }.cart-items { max-height: 42dvh; }.filter-panel { grid-template-columns: 1fr; }.catalog-search { grid-column: auto; } }

/* Ficha propia: evita las inconsistencias de <dialog> en Safari móvil. */
body.product-sheet-open { overflow: hidden; }
.product-sheet { position: fixed; z-index: 50; inset: 0; display: grid; place-items: center; padding: 18px; background: rgba(69,29,40,.35); backdrop-filter: blur(9px); -webkit-backdrop-filter: blur(9px); }
.product-sheet[hidden] { display: none; }
.sheet-panel { width: min(850px, 100%); max-height: calc(100dvh - 36px); display: grid; grid-template-rows: minmax(0,1fr) auto; overflow: hidden; border: 1px solid var(--line); border-radius: 18px; color: var(--ink); background: var(--pearl); box-shadow: 0 30px 90px rgba(96,38,54,.28); }
.sheet-panel .dialog-layout { overflow: auto; min-height: 0; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; }
.sheet-panel .dialog-copy { min-height: 0; }
.sheet-panel .dialog-action { position: relative; z-index: 2; padding: 16px 26px 24px; box-shadow: 0 -10px 22px rgba(255,249,248,.95); }
@media (max-width: 560px) { .product-sheet { padding: 16px 10px; place-items: center; }.sheet-panel { width: 100%; height: min(760px, calc(100dvh - 88px)); max-height: calc(100dvh - 88px); border-radius: 16px; }.sheet-panel .dialog-layout { display: block; }.sheet-panel .dialog-stage { min-height: 0; height: clamp(210px, 33dvh, 300px); }.sheet-panel .dialog-stage img { width: 88%; height: 88%; }.sheet-panel .dialog-copy { min-height: 0; padding: 16px 18px 20px; }.sheet-panel .dialog-copy h2 { margin: 14px 0 8px; font-size: clamp(2rem, 10vw, 2.65rem); }.sheet-panel .dialog-copy p { margin-bottom: 0; }.sheet-panel .dialog-action { padding: 12px 18px calc(12px + env(safe-area-inset-bottom)); } }

/* La ficha de producto toma el acabado de rose-gold, perla y destellos de NEVAÉ. */
.product-sheet { background: radial-gradient(circle at 16% 14%, rgba(255,245,236,.72), transparent 24%), radial-gradient(circle at 86% 83%, rgba(216,137,155,.32), transparent 32%), rgba(77,42,52,.46); }
.sheet-panel { position: relative; border-color: rgba(255,255,255,.72); background: linear-gradient(145deg, #fffefd, #fff8f7 60%, #f7e5e5); box-shadow: 0 32px 95px rgba(78,36,50,.38), inset 0 1px 0 rgba(255,255,255,.9); }
.sheet-panel::before { content: "✦"; position: absolute; z-index: 3; top: 22px; left: 24px; color: var(--champagne); font-size: 1rem; text-shadow: 0 1px 7px rgba(187,104,101,.3); animation: twinkle 3.6s ease-in-out infinite; pointer-events: none; }
.sheet-panel .dialog-stage { position: relative; isolation: isolate; background: radial-gradient(ellipse at 50% 22%, rgba(255,255,255,.76), transparent 44%), var(--dialog-background); }
.sheet-panel .dialog-stage::before { content: ""; position: absolute; z-index: -1; inset: 6%; border: 1px solid rgba(255,255,255,.58); border-radius: 18px; background: linear-gradient(135deg, rgba(255,255,255,.17), transparent 45%, rgba(255,225,218,.24)); box-shadow: inset 0 0 34px rgba(255,255,255,.24); }
.sheet-panel .dialog-stage::after { content: "NEVAÉ · LA SELECCIÓN"; position: absolute; right: 17px; bottom: 14px; color: rgba(94,49,61,.58); font-size: .58rem; font-weight: 800; letter-spacing: .15em; }
.sheet-panel .dialog-stage img { filter: drop-shadow(0 24px 20px rgba(92,41,56,.24)) saturate(1.04); }
.sheet-panel .dialog-copy { background: linear-gradient(180deg, rgba(255,255,255,.7), rgba(255,248,247,.92)); }
.sheet-panel .dialog-close { border-color: rgba(190,119,130,.38); background: linear-gradient(145deg, #fff, #f7e5e5); box-shadow: 0 6px 16px rgba(126,67,81,.1); transition: transform .22s ease, background .22s ease; }
.sheet-panel .dialog-close:hover { background: #f8e0e2; transform: rotate(8deg) scale(1.05); }
.sheet-panel .product-type { color: var(--gold); letter-spacing: .13em; }
.sheet-panel .dialog-price { color: var(--deep-rose); font-size: 1.25rem; letter-spacing: -.02em; }
.sheet-panel .quantity-picker { border-color: rgba(190,119,130,.3); background: rgba(255,255,255,.58); box-shadow: inset 0 1px 0 rgba(255,255,255,.8); }
.sheet-panel .quantity-picker button:not(:disabled):hover { color: var(--pearl); background: var(--deep-rose); }
.sheet-panel .dialog-action { border-top-color: rgba(190,119,130,.22); background: linear-gradient(120deg, #fffdfb, #f9e8e8); }
.sheet-panel .dialog-action .button { min-height: 54px; background: linear-gradient(105deg, #7d3e4c, #a45c6d 49%, #7d3e4c); box-shadow: 0 12px 28px rgba(125,62,76,.24), inset 0 1px 0 rgba(255,255,255,.2); }
@media (max-width: 560px) { .sheet-panel::before { top: 12px; left: 15px; }.sheet-panel .dialog-stage::before { inset: 5%; border-radius: 13px; }.sheet-panel .dialog-stage::after { right: 14px; bottom: 10px; font-size: .5rem; }.sheet-panel .dialog-copy { border-top: 1px solid rgba(190,119,130,.14); }.sheet-panel .dialog-price { font-size: 1.2rem; } }

/* Compra móvil: menos recorrido, datos esenciales a la vista. */
.sheet-panel .quantity-picker { align-self: flex-start; grid-template-columns: 38px 42px 38px; margin: 13px 0 16px; }
.sheet-panel .quantity-picker button { min-height: 38px; font-size: 1.12rem; }
.sheet-panel .quantity-picker output { font-size: .95rem; }
@media (max-width: 560px) { .catalog .product-grid { gap: 10px; padding: 10px; border: 0; background: rgba(160,80,99,.1); }.catalog .product-card { padding: 12px; border: 1px solid rgba(162,81,101,.12); border-radius: 18px; box-shadow: 0 10px 24px rgba(114,52,68,.07); }.catalog .product-stage { min-height: 0; height: min(74vw, 390px); max-height: none; border-radius: 13px; }.catalog .product-stage .product-image { width: 86%; height: 86%; }.catalog .product-meta { align-items: start; margin: 12px 2px 0; }.catalog .product-meta h2 { max-width: 65%; font-size: clamp(1.55rem, 7vw, 2rem); line-height: .98; }.catalog .product-meta span { padding-top: 3px; color: var(--deep-rose); font-size: .82rem; white-space: nowrap; }.catalog .product-type { margin: 7px 2px 2px; font-size: .68rem; line-height: 1.35; }.catalog .stock-badge { top: 10px; left: 10px; } }

/* Filtros mínimos: una categoría y una búsqueda que aparece solo al pedirla. */
.catalog .filter-panel { grid-template-columns: auto minmax(0, 1fr); align-items: center; }
.catalog-search-toggle { display: grid; width: 47px; height: 47px; place-items: center; border: 1px solid var(--line); border-radius: 50%; color: var(--deep-rose); background: rgba(255,255,255,.82); box-shadow: 0 7px 18px rgba(130,65,81,.08); font: 1.65rem/1 Georgia, serif; transition: transform .22s ease, background .22s ease; }
.catalog-search-toggle:hover, .catalog-search-toggle[aria-expanded="true"] { color: var(--pearl); background: var(--deep-rose); transform: translateY(-1px); }
.catalog .catalog-search { display: none; grid-column: 1 / -1; }
.catalog .filter-panel.search-open .catalog-search { display: block; }
.catalog .filter-panel.search-open .catalog-search::before { content: none; }
.catalog .filter-panel.search-open .catalog-search input { padding-left: 15px; }
@media (max-width: 560px) { .catalog .filter-panel { grid-template-columns: auto minmax(0, 1fr); gap: 12px; padding-bottom: 24px; }.catalog-search-toggle { width: 46px; height: 46px; }.catalog .filter-panel.search-open .catalog-search { grid-column: 1 / -1; } }
