/* ==========================================================
   CS · Creaciones y detalles con Amor
   Paleta tomada del logo: rosa empolvado, oro rosado y vino.
   ========================================================== */
:root{
  --wine:#3a1b26;
  --wine-2:#5b2b3d;
  --rose:#a4566a;
  --rose-dark:#86394f;
  --rosegold:#d19a92;
  --blush:#f8e6e3;
  --blush-2:#f1d3d1;
  --pearl:#fffaf8;
  --champagne:#e6c98f;
  --ink:#3a1b26;
  --muted:#6b4f58;
  --line:#ecd3d0;
  --wa:#1b9c52;
  --wa-dark:#13803f;
  --radius:22px;
  --shadow:0 24px 60px -24px rgba(90,43,61,.35);
  --shadow-sm:0 10px 28px -14px rgba(90,43,61,.35);
  --serif:"Fraunces","Iowan Old Style","Palatino Linotype",Georgia,serif;
  --sans:"Figtree","Segoe UI",system-ui,-apple-system,sans-serif;
  --script:"Great Vibes","Segoe Script",cursive;
  --header-h:88px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 12px);scrollbar-gutter:stable;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--pearl);color:var(--ink);font:400 1.125rem/1.65 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body.is-locked{overflow:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,p{margin:0}
[hidden]{display:none!important}

.icon{width:1.25em;height:1.25em;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.icon-fill{fill:currentColor;stroke:none}

:focus-visible{outline:3px solid var(--rose);outline-offset:3px;border-radius:6px}
.on-dark:focus-visible,.lightbox :focus-visible,#contacto :focus-visible,.custom-banner :focus-visible{outline-color:var(--champagne)}
.skip-link{position:absolute;left:12px;top:-60px;background:var(--wine);color:#fff;padding:12px 18px;border-radius:12px;z-index:200;font-weight:600}
.skip-link:focus{top:12px}

/* ---------- Botones ---------- */
.button{display:inline-flex;align-items:center;justify-content:center;gap:.7em;min-height:56px;padding:.95rem 1.8rem;border-radius:999px;border:2px solid transparent;font-weight:700;font-size:1.05rem;line-height:1.2;letter-spacing:.01em;transition:transform .2s,box-shadow .2s,background .2s,color .2s,border-color .2s;text-align:center}
.button:active{transform:scale(.98)}
.button-primary{background:linear-gradient(135deg,#a24e64,#6f3045);color:#fff;box-shadow:0 14px 28px -12px rgba(111,48,69,.7)}
.button-primary:hover{transform:translateY(-2px);box-shadow:0 18px 32px -12px rgba(111,48,69,.8)}
.button-outline{border-color:var(--rose-dark);color:var(--rose-dark);background:rgba(255,255,255,.55)}
.button-outline:hover{background:#fff;transform:translateY(-2px)}
.button-light{background:#fff;color:var(--wine);box-shadow:0 14px 30px -14px rgba(0,0,0,.5)}
.button-light:hover{transform:translateY(-2px)}
.button-wa{background:var(--wa);color:#fff;box-shadow:0 14px 28px -12px rgba(27,156,82,.75)}
.button-wa:hover{background:var(--wa-dark);transform:translateY(-2px)}
.button-block{width:100%}
.icon-button{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--line);background:#fff;color:var(--wine);transition:background .2s,transform .2s}
.icon-button:hover{background:var(--blush);transform:rotate(90deg)}
.icon-button.on-dark{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.3);color:#fff}
.icon-button.on-dark:hover{background:rgba(255,255,255,.22);transform:none}
.link-button{background:none;border:0;padding:.4rem .2rem;font-weight:600;font-size:1rem;color:var(--rose-dark);text-decoration:underline;text-underline-offset:4px}
.link-button:hover{color:var(--wine)}
.link-button.danger{color:#9a3a3a}
.opt{font-weight:400;color:var(--muted);font-size:.92em}

/* ---------- Cabecera ---------- */
.site-header{position:sticky;top:0;z-index:50;height:var(--header-h);padding:0 clamp(18px,4vw,56px);display:flex;align-items:center;justify-content:space-between;gap:20px;background:rgba(255,250,248,.92);backdrop-filter:saturate(1.4) blur(16px);-webkit-backdrop-filter:saturate(1.4) blur(16px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.site-header.scrolled{border-bottom-color:var(--line);box-shadow:0 10px 30px -22px rgba(90,43,61,.5)}
.brand{display:flex;align-items:center;gap:14px;flex:none}
.brand img{width:60px;height:60px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px #fff,0 6px 18px -4px rgba(164,86,106,.55)}
.brand-text strong{display:block;font:700 1.9rem/1 var(--serif);letter-spacing:.06em;color:var(--wine)}
.brand-text small{display:block;font:1.5rem/1.1 var(--script);color:var(--rose);margin-top:2px}
.main-nav{display:flex;gap:clamp(18px,2.6vw,38px)}
.main-nav a{position:relative;font-weight:600;font-size:1.05rem;color:var(--wine-2);padding:8px 0}
.main-nav a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:2px;background:var(--rose);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.main-nav a:hover::after,.main-nav a[aria-current="true"]::after{transform:scaleX(1)}
.main-nav a[aria-current="true"]{color:var(--rose-dark)}
.header-actions{display:flex;align-items:center;gap:10px}
.cart-button{position:relative;display:inline-flex;align-items:center;gap:.6rem;min-height:52px;padding:0 1.15rem 0 1rem;border-radius:999px;border:2px solid var(--rose-dark);background:#fff;color:var(--rose-dark);font-weight:700;font-size:1.05rem;transition:background .2s,color .2s,transform .2s}
.cart-button:hover{background:var(--rose-dark);color:#fff}
.cart-button .icon{width:1.45em;height:1.45em}
.cart-badge{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 7px;border-radius:999px;background:var(--rose-dark);color:#fff;font-size:.9rem;font-weight:700;transition:background .2s,color .2s}
.cart-button:hover .cart-badge{background:#fff;color:var(--rose-dark)}
.cart-badge.bump,.cart-button.bump{animation:bump .5s cubic-bezier(.3,1.6,.5,1)}
.cart-button.has-items .cart-badge{background:var(--rose-dark)}
@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.28)}100%{transform:scale(1)}}
.menu-toggle{display:none;width:52px;height:52px;border-radius:50%;border:2px solid var(--line);background:#fff;padding:0;place-items:center;align-content:center;gap:5px}
.menu-toggle i{display:block;width:22px;height:2.5px;border-radius:2px;background:var(--rose-dark);transition:transform .25s,opacity .25s}
.menu-toggle[aria-expanded="true"] i:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] i:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] i:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;min-height:calc(100svh - var(--header-h));padding:clamp(40px,6vw,80px) clamp(20px,6vw,96px);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center;gap:clamp(24px,3vw,48px);background:
  radial-gradient(60% 50% at 88% 8%,rgba(255,255,255,.95),transparent 70%),
  radial-gradient(45% 40% at 5% 95%,rgba(209,154,146,.35),transparent 70%),
  linear-gradient(135deg,#fbeceA 0%,var(--blush) 55%,var(--blush-2) 100%)}
.hero-copy{position:relative;z-index:2;max-width:52rem}
.hero h1{font:600 clamp(2.9rem,5.2vw,5rem)/1.04 var(--serif);letter-spacing:-.025em;color:var(--wine);font-variation-settings:"opsz" 144}
.hero h1 span{display:block}
.hero h1 em{display:block;font-style:italic;font-weight:500;background:linear-gradient(100deg,#8a3a50,#c27b78 55%,#a4566a);-webkit-background-clip:text;background-clip:text;color:transparent;padding-bottom:.12em}
.script{font:clamp(2.3rem,3.6vw,3.2rem)/1.1 var(--script);color:var(--rose);margin:.8rem 0 .8rem}
.intro{max-width:34rem;font-size:clamp(1.2rem,1.7vw,1.4rem);line-height:1.6;color:var(--muted);margin-bottom:2rem}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px}
.hero-points{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:2.2rem;font-weight:600;color:var(--wine-2);font-size:1.05rem}
.hero-points li{display:flex;align-items:center;gap:.55rem}
.hero-points .icon{color:var(--rose)}

.hero-art{position:relative;z-index:1;display:flex;justify-content:center;align-items:flex-start;gap:clamp(12px,2vw,26px);padding-bottom:42px}
.hero-photo{position:relative;display:block;width:clamp(150px,17vw,260px);padding:clamp(6px,.8vw,11px);border:0;border-radius:24px;background:#fff;box-shadow:var(--shadow);transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.hero-photo img{width:100%;height:auto;border-radius:16px}
.hero-photo-a{margin-top:clamp(40px,6vw,90px);transform:rotate(-2.5deg)}
.hero-photo-b{transform:rotate(2deg)}
.hero-photo:hover{transform:rotate(0) translateY(-8px) scale(1.02);box-shadow:0 34px 70px -24px rgba(90,43,61,.55)}
.hero-badge{position:absolute;left:50%;bottom:34px;translate:-50% 0;width:clamp(88px,10vw,128px);aspect-ratio:1;border-radius:50%;padding:5px;background:#fff;box-shadow:var(--shadow-sm);z-index:2}
.hero-badge img{width:100%;height:100%;border-radius:50%;object-fit:cover}
.hero-hint{position:absolute;left:50%;bottom:0;translate:-50% 0;display:flex;align-items:center;gap:.5rem;white-space:nowrap;font-size:.98rem;font-weight:600;color:var(--rose-dark)}
.hero-copy>*{animation:rise .8s cubic-bezier(.2,.8,.2,1) backwards}
.hero-copy>*:nth-child(2){animation-delay:.1s}.hero-copy>*:nth-child(3){animation-delay:.2s}.hero-copy>*:nth-child(4){animation-delay:.3s}.hero-copy>*:nth-child(5){animation-delay:.4s}
@keyframes rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}

/* ---------- Franja de características ---------- */
.trust-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:34px clamp(20px,6vw,96px);background:#fff;border-bottom:1px solid var(--line)}
.trust-strip>div{display:flex;align-items:center;gap:16px;justify-content:center}
.trust-strip .icon{width:2.6rem;height:2.6rem;padding:.6rem;border-radius:50%;background:var(--blush);color:var(--rose-dark);stroke-width:1.7}
.trust-strip b{display:block;font:600 1.3rem/1.2 var(--serif)}
.trust-strip small{display:block;font-size:1rem;color:var(--muted);line-height:1.35}

/* ---------- Secciones ---------- */
.section{padding:clamp(72px,9vw,128px) clamp(18px,5vw,72px)}
.section-heading{text-align:center;max-width:46rem;margin:0 auto clamp(36px,5vw,64px)}
.section-heading h2,.custom-banner h2{font:600 clamp(2.4rem,5vw,4.2rem)/1.08 var(--serif);letter-spacing:-.02em;color:var(--wine);font-variation-settings:"opsz" 144}
.section-heading p{font-size:clamp(1.15rem,1.6vw,1.35rem);color:var(--muted);margin-top:1rem;line-height:1.55}

/* ---------- Catálogo ---------- */
.catalog{background:linear-gradient(180deg,var(--pearl),var(--blush) 100%)}
.product-grid{max-width:1360px;margin:0 auto;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(18px,2vw,30px)}
.product-card{display:flex;flex-direction:column;overflow:hidden;border-radius:var(--radius);background:#fff;box-shadow:var(--shadow-sm);border:1px solid rgba(236,211,208,.7);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.product-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.shape-tall{grid-row:span 2}
.shape-wide{grid-column:span 2}

.product-media{position:relative;display:block;width:100%;padding:0;border:0;overflow:hidden;background:var(--blush);cursor:zoom-in;isolation:isolate}
.shape-tall .product-media{flex:1;min-height:560px}
.shape-wide .product-media{aspect-ratio:1536/679}
.product-media::before{content:"";position:absolute;inset:-30px;z-index:-1;background:var(--bg) center/cover;filter:blur(26px) saturate(1.2);opacity:.9}
.product-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.product-media:hover img{transform:scale(1.035)}
.tag{position:absolute;top:16px;left:16px;z-index:2;padding:.45rem .95rem;border-radius:999px;background:rgba(255,255,255,.94);color:var(--rose-dark);font-weight:700;font-size:.92rem;box-shadow:0 6px 16px -8px rgba(58,27,38,.5)}
.zoom-hint{position:absolute;right:14px;bottom:14px;z-index:2;display:inline-flex;align-items:center;gap:.45rem;padding:.55rem .95rem;border-radius:999px;background:rgba(58,27,38,.82);color:#fff;font-weight:600;font-size:.95rem;backdrop-filter:blur(6px);transition:background .2s}
.product-media:hover .zoom-hint{background:var(--rose-dark)}

.product-info{display:flex;flex-direction:column;padding:clamp(22px,2vw,30px)}
.product-kicker{font:600 1rem/1.3 var(--sans);color:var(--rose);margin-bottom:.35rem}
.product-info h3{font:600 clamp(1.7rem,2.2vw,2.1rem)/1.15 var(--serif);letter-spacing:-.01em;color:var(--wine);margin-bottom:.6rem}
.product-desc{font-size:1.1rem;line-height:1.55;color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:1.1rem 0 1.4rem}
.chips li{padding:.3rem .8rem;border-radius:999px;background:var(--blush);color:var(--wine-2);font-size:.95rem;font-weight:600}
.product-bottom{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:auto;padding-top:1.1rem;border-top:1px solid var(--line)}
.price{display:flex;flex-direction:column;line-height:1.1}
.price small{font-size:.95rem;color:var(--muted)}
.price strong{font:600 2rem/1.1 var(--serif);color:var(--rose-dark);letter-spacing:-.01em}
.add-cart{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:54px;padding:.8rem 1.4rem;border:0;border-radius:999px;background:linear-gradient(135deg,#a24e64,#6f3045);color:#fff;font-weight:700;font-size:1.05rem;box-shadow:0 12px 24px -12px rgba(111,48,69,.75);transition:transform .2s,box-shadow .2s,background .3s}
.add-cart:hover{transform:translateY(-2px);box-shadow:0 16px 28px -12px rgba(111,48,69,.85)}
.add-cart:active{transform:scale(.97)}
.add-cart.added{background:linear-gradient(135deg,#2f8a5b,#1f6b44)}
.in-cart{display:flex;align-items:center;gap:.45rem;margin-top:.9rem;font-weight:600;font-size:1rem;color:#1f6b44}
.in-cart .icon{width:1.1em;height:1.1em;stroke-width:2.4}
.price-note{text-align:center;max-width:40rem;margin:2.2rem auto 0;font-size:1rem;color:var(--muted)}

/* ---------- Pasos ---------- */
.process{padding:clamp(72px,9vw,128px) clamp(18px,5vw,72px);background:#fff}
.steps{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;position:relative;counter-reset:s}
.steps::before{content:"";position:absolute;top:42px;left:16.6%;right:16.6%;border-top:2px dashed var(--blush-2)}
.step{position:relative;text-align:center;padding:0 clamp(8px,2vw,28px)}
.step-num{position:relative;display:inline-grid;place-items:center;width:84px;height:84px;border-radius:50%;background:linear-gradient(135deg,#a24e64,#6f3045);color:#fff;font:600 2.2rem/1 var(--serif);box-shadow:0 0 0 8px #fff,0 14px 28px -12px rgba(111,48,69,.7);margin-bottom:1.4rem}
.step h3{font:600 1.7rem/1.2 var(--serif);color:var(--wine);margin-bottom:.6rem}
.step p{font-size:1.1rem;color:var(--muted);line-height:1.55}

/* ---------- Banner ---------- */
.custom-banner{display:flex;align-items:center;justify-content:space-between;gap:40px;padding:clamp(56px,7vw,96px) clamp(20px,8vw,120px);color:#fff;background:
  radial-gradient(50% 120% at 100% 0%,rgba(209,154,146,.38),transparent 70%),
  linear-gradient(120deg,var(--wine),var(--wine-2))}
.custom-banner h2{color:#fff;max-width:20ch}
.custom-banner p{max-width:36rem;margin-top:1.2rem;font-size:clamp(1.15rem,1.5vw,1.3rem);color:#f4dedb;line-height:1.55}
.custom-banner .button{flex:none}

/* ---------- Formulario ---------- */
.configurator{background:linear-gradient(180deg,var(--blush),var(--pearl))}
.custom-form{max-width:900px;margin:0 auto;padding:clamp(24px,4vw,48px);background:#fff;border-radius:28px;box-shadow:var(--shadow);border:1px solid rgba(236,211,208,.7)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.form-grid label,.swatch-field legend{display:flex;flex-direction:column;gap:9px;font-weight:700;font-size:1.05rem;color:var(--wine)}
.form-grid .full{grid-column:1/-1}
.form-grid input,.form-grid select,.form-grid textarea{width:100%;min-height:56px;padding:.85rem 1.05rem;border:2px solid var(--line);border-radius:14px;background:var(--pearl);font-size:1.08rem;font-weight:400;outline:none;transition:border-color .2s,box-shadow .2s,background .2s}
.form-grid textarea{resize:vertical;min-height:120px}
.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--rose);background:#fff;box-shadow:0 0 0 4px rgba(164,86,106,.15)}
.form-grid .invalid{border-color:#c0392b!important;box-shadow:0 0 0 4px rgba(192,57,43,.12)!important}
.swatch-field{border:0;margin:0;padding:0;min-width:0}
.swatch-field legend{padding:0;margin-bottom:12px;flex-direction:row;align-items:baseline;gap:12px;flex-wrap:wrap}
.swatch-field legend span{font-weight:400;color:var(--muted);font-size:.98rem}
.swatches{display:flex;flex-wrap:wrap;gap:10px}
.swatches button{display:inline-flex;align-items:center;gap:.6rem;min-height:50px;padding:.45rem 1.1rem .45rem .55rem;border:2px solid var(--line);border-radius:999px;background:var(--pearl);font-weight:600;font-size:1.02rem;color:var(--wine);transition:border-color .2s,background .2s,transform .2s}
.swatches button:hover{border-color:var(--rosegold);transform:translateY(-1px)}
.swatches button i{width:30px;height:30px;border-radius:50%;background:var(--sw);box-shadow:inset 0 0 0 1px rgba(0,0,0,.18),inset 0 -6px 10px rgba(0,0,0,.12);display:grid;place-items:center;color:#fff;font-style:normal;font-size:1rem}
.swatches button[aria-pressed="true"]{border-color:var(--rose-dark);background:var(--blush)}
.swatches button[aria-pressed="true"] i::after{content:"✓";color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6);font-weight:700}
.swatches button[data-color="Blanco"][aria-pressed="true"] i::after,.swatches button[data-color="Champagne"][aria-pressed="true"] i::after,.swatches button[data-color="Amarillo"][aria-pressed="true"] i::after,.swatches button[data-color="Rosa"][aria-pressed="true"] i::after{color:var(--wine);text-shadow:none}
.file-label small{font-weight:400;font-size:.98rem;color:var(--muted)}
.file-label input{padding:.7rem 1rem;min-height:0}
.submit-button{width:100%;margin-top:30px;min-height:64px;font-size:1.15rem}
.form-privacy{margin-top:16px;text-align:center;font-size:.98rem;color:var(--muted)}

/* ---------- Pie ---------- */
#contacto{background:linear-gradient(180deg,#2e1520,#241019);color:#ecd5d1;padding:clamp(56px,7vw,88px) clamp(20px,6vw,80px) 28px}
.footer-main{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding-bottom:44px}
.footer-logo{width:110px;height:110px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 4px rgba(255,255,255,.12),0 16px 34px -10px rgba(0,0,0,.6);margin-bottom:10px}
.footer-script{font:clamp(2.4rem,5vw,3.6rem)/1.1 var(--script);color:#f6d7d2}
.footer-text{font-size:1.15rem;color:#d9bfba;margin-bottom:14px}
.footer-bottom{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:22px;border-top:1px solid rgba(255,255,255,.14);font-size:.98rem;color:#c9aaa5}

.wa-float{position:fixed;right:20px;bottom:20px;z-index:40;width:64px;height:64px;display:grid;place-items:center;border-radius:50%;background:var(--wa);color:#fff;box-shadow:0 14px 30px -8px rgba(27,156,82,.8),0 0 0 4px #fff;transition:transform .2s}
.wa-float .icon{width:34px;height:34px}
.wa-float:hover{transform:scale(1.08)}

/* ---------- Capa oscura ---------- */
.scrim{position:fixed;inset:0;z-index:70;background:rgba(36,16,25,.55);backdrop-filter:blur(3px);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
.scrim.is-open{opacity:1;visibility:visible}

/* ---------- Carrito (panel lateral) ---------- */
.drawer{position:fixed;top:0;right:0;bottom:0;z-index:80;width:min(480px,100vw);display:flex;flex-direction:column;background:var(--pearl);box-shadow:-30px 0 80px -30px rgba(36,16,25,.55);transform:translateX(104%);visibility:hidden;transition:transform .4s cubic-bezier(.2,.8,.2,1),visibility 0s .4s;outline:none}
.drawer.is-open{transform:none;visibility:visible;transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 22px;background:#fff;border-bottom:1px solid var(--line)}
.drawer-head h2{font:600 1.9rem/1.1 var(--serif);color:var(--wine)}
.drawer-count{display:inline-block;margin-left:.3rem;padding:.1rem .65rem;border-radius:999px;background:var(--blush);color:var(--rose-dark);font:700 1rem/1.5 var(--sans);vertical-align:middle}
.drawer-count:empty{display:none}
.drawer-body{flex:1;overflow-y:auto;padding:8px 22px;overscroll-behavior:contain}
.cart-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:60px 10px}
.cart-empty-icon{display:grid;place-items:center;width:108px;height:108px;border-radius:50%;background:var(--blush);color:var(--rose);margin-bottom:10px}
.cart-empty-icon .icon{width:48px;height:48px;stroke-width:1.5}
.cart-empty h3{font:600 1.7rem/1.2 var(--serif);color:var(--wine)}
.cart-empty p{color:var(--muted);font-size:1.1rem;margin-bottom:12px}
.cart-item{display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);animation:itemIn .35s cubic-bezier(.2,.8,.2,1)}
@keyframes itemIn{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}
.ci-thumb{position:relative;display:block;width:92px;height:116px;padding:0;border:0;border-radius:14px;overflow:hidden;background:var(--blush);box-shadow:inset 0 0 0 1px var(--line);cursor:zoom-in}.ci-thumb img{width:100%;height:100%;object-fit:cover}.ci-thumb::after{content:"";position:absolute;inset:0;background:rgba(58,27,38,0);transition:background .2s}.ci-thumb:hover::after{background:rgba(58,27,38,.18)}
.ci-main{min-width:0;display:flex;flex-direction:column;gap:4px}
.ci-name{font:600 1.22rem/1.25 var(--serif);color:var(--wine)}
.ci-unit{font-size:.98rem;color:var(--muted)}
.qty{display:inline-flex;align-items:center;align-self:flex-start;margin-top:auto;border:2px solid var(--line);border-radius:999px;background:#fff}
.qty button{width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:50%;background:none;color:var(--rose-dark);transition:background .2s}
.qty button:hover{background:var(--blush)}
.qty button:disabled{opacity:.35;cursor:not-allowed}
.qty output{min-width:30px;text-align:center;font-weight:700;font-size:1.1rem}
.ci-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:space-between}
.ci-total{font:600 1.35rem/1.1 var(--serif);color:var(--rose-dark);white-space:nowrap}
.ci-remove{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:none;color:#8d6b72;transition:background .2s,color .2s}
.ci-remove:hover{background:#fbe3e1;color:#a52a2a}
.drawer-foot{padding:18px 22px 22px;background:#fff;border-top:1px solid var(--line);box-shadow:0 -18px 30px -24px rgba(90,43,61,.35)}
.order-extra{margin-bottom:14px;border:2px solid var(--line);border-radius:14px;background:var(--pearl)}.order-extra summary{display:flex;align-items:center;gap:.6rem;padding:.75rem 1rem;font-weight:700;font-size:1.02rem;color:var(--rose-dark);cursor:pointer;list-style:none;border-radius:12px}.order-extra summary::-webkit-details-marker{display:none}.order-extra summary .icon{transition:transform .25s}.order-extra[open] summary .icon{transform:rotate(45deg)}.order-extra summary:hover{background:var(--blush)}.order-fields{display:grid;gap:12px;padding:4px 14px 14px}
.order-fields label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:1rem}
.order-fields input,.order-fields textarea{width:100%;padding:.7rem .9rem;border:2px solid var(--line);border-radius:12px;background:#fff;font-size:1.02rem;font-weight:400;resize:none;outline:none}
.order-fields input:focus,.order-fields textarea:focus{border-color:var(--rose);background:#fff}
.cart-summary{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-top:6px}
.cart-summary span{font-weight:600;color:var(--muted)}
.cart-summary strong{font:600 2.1rem/1.1 var(--serif);color:var(--wine)}
.cart-disclaimer{margin:6px 0 16px;font-size:.95rem;line-height:1.45;color:var(--muted)}
.foot-links{display:flex;justify-content:space-between;gap:12px;margin-top:10px}

/* ---------- Visor de fotos ---------- */
.lightbox{position:fixed;inset:0;z-index:90;display:grid;grid-template-rows:auto minmax(0,1fr) auto;color:#fff;background:radial-gradient(80% 70% at 50% 40%,rgba(91,43,61,.97),rgba(28,12,19,.98));opacity:0;visibility:hidden;transition:opacity .3s,visibility 0s .3s;outline:none}
.lightbox.is-open{opacity:1;visibility:visible;transition:opacity .3s}
.lb-top{display:flex;align-items:center;justify-content:space-between;padding:14px clamp(14px,3vw,32px)}
.lb-count{font-weight:600;font-size:1.05rem;color:#f0d6d2}
.lb-tools{display:flex;gap:10px}
.lb-stage{display:flex;min-height:0;overflow:hidden;padding:4px clamp(56px,7vw,110px) 20px;cursor:zoom-in;touch-action:pan-y}
.lb-stage img{margin:auto;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:14px;box-shadow:0 30px 80px -20px rgba(0,0,0,.7);user-select:none;-webkit-user-drag:none;transition:opacity .25s}
.lb-stage img.swap{opacity:0}
.lb-stage.zoomed{overflow:auto;cursor:grab;touch-action:auto;padding:0}
.lb-stage.zoomed img{max-width:none;max-height:none;border-radius:0;margin:auto}
.lb-stage.dragging{cursor:grabbing}
.lb-nav{position:absolute;top:50%;translate:0 -50%;z-index:2;width:58px;height:58px;display:grid;place-items:center;border-radius:50%;border:1.5px solid rgba(255,255,255,.35);background:rgba(255,255,255,.12);color:#fff;transition:background .2s,transform .2s}
.lb-nav:hover{background:rgba(255,255,255,.28)}
.lb-nav .icon{width:28px;height:28px}
.lb-prev{left:clamp(8px,2vw,28px)}.lb-next{right:clamp(8px,2vw,28px)}
.lightbox.is-zoomed .lb-nav{display:none}
.lb-bar{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:18px clamp(16px,4vw,48px) 22px;background:rgba(255,255,255,.06);border-top:1px solid rgba(255,255,255,.12)}
.lb-meta{min-width:0;flex:1 1 320px}
.lb-meta h3{font:600 clamp(1.5rem,2.6vw,2rem)/1.15 var(--serif)}
.lb-meta p{color:#e8cfcb;font-size:1.08rem;margin-top:4px;max-width:46rem}
.lb-buy{display:flex;align-items:center;gap:22px}
.lb-buy .price small{color:#e8cfcb}
.lb-buy .price strong{color:#fff}

/* ---------- Animación de vuelo al carrito ---------- */
.fly{position:fixed;z-index:200;object-fit:cover;border-radius:14px;box-shadow:0 14px 30px -8px rgba(58,27,38,.6);pointer-events:none;border:3px solid #fff}

/* ---------- Aviso ---------- */
.toast{position:fixed;left:50%;bottom:26px;z-index:120;translate:-50% 20px;max-width:min(92vw,560px);display:flex;align-items:center;gap:18px;padding:.95rem 1.2rem;border-radius:16px;background:var(--wine);color:#fff;font-weight:600;font-size:1.05rem;box-shadow:0 24px 50px -16px rgba(36,16,25,.7);opacity:0;visibility:hidden;transition:opacity .3s,translate .3s,visibility 0s .3s}
.toast.show{opacity:1;visibility:visible;translate:-50% 0;transition:opacity .3s,translate .3s}
.toast button{flex:none;padding:.5rem .9rem;border:0;border-radius:999px;background:rgba(255,255,255,.16);color:var(--champagne);font-weight:700;font-size:1rem;transition:background .2s}
.toast button:hover{background:rgba(255,255,255,.28)}

/* ==========================================================
   Responsive
   ========================================================== */
@media (max-width:1180px){
  .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .shape-tall{grid-row:auto}
  .shape-tall .product-media{flex:none;min-height:0;aspect-ratio:4/5}
  .shape-wide{grid-column:1/-1}
  .shape-wide .product-info{padding-bottom:30px}
}
@media (max-width:1000px){
  :root{--header-h:80px}
  .brand img{width:54px;height:54px}
  .menu-toggle{display:grid}
  .main-nav{position:fixed;top:var(--header-h);left:0;right:0;flex-direction:column;gap:0;padding:8px 22px 22px;background:rgba(255,250,248,.98);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);box-shadow:0 30px 40px -30px rgba(90,43,61,.5);transform:translateY(-12px);opacity:0;visibility:hidden;transition:opacity .25s,transform .25s,visibility 0s .25s}
  .main-nav.open{opacity:1;transform:none;visibility:visible;transition:opacity .25s,transform .25s}
  .main-nav a{font-size:1.25rem;padding:16px 4px;border-bottom:1px solid var(--line)}
  .main-nav a::after{display:none}
  .hero{grid-template-columns:1fr;text-align:center;min-height:0;gap:20px;padding-top:44px}
  .hero-copy{max-width:40rem;margin:0 auto}
  .intro{margin-left:auto;margin-right:auto}
  .hero-actions,.hero-points{justify-content:center}
  .hero-photo{width:clamp(150px,34vw,260px)}
  .trust-strip{grid-template-columns:1fr 1fr;gap:26px 14px}
  .trust-strip>div{justify-content:flex-start}
  .custom-banner{flex-direction:column;align-items:flex-start}
}
@media (max-width:720px){
  html{scroll-padding-top:90px}
  body{font-size:1.1rem}
  .brand-text small{display:none}
  .brand-text strong{font-size:1.7rem}
  .cart-button-label{display:none}
  .cart-button{padding:0 .9rem}
  .hero-actions .button{width:100%}
  .hero-points{flex-direction:column;align-items:center;gap:10px}
  .product-grid{grid-template-columns:1fr}
  .shape-tall .product-media{aspect-ratio:1/1.35}
  .steps{grid-template-columns:1fr;gap:40px}
  .steps::before{display:none}
  .form-grid{grid-template-columns:1fr}
  .footer-bottom{flex-direction:column;align-items:center;text-align:center}
  .wa-float{width:58px;height:58px;right:14px;bottom:14px}
  .toast{bottom:90px}
  .cart-item{grid-template-columns:76px minmax(0,1fr) auto;gap:12px}
  .ci-thumb{width:76px;height:98px}
  .lb-stage{padding:4px 12px 16px}
  .lb-nav{top:auto;bottom:150px;translate:0;width:52px;height:52px}
  .lb-bar{gap:14px;padding-bottom:calc(18px + env(safe-area-inset-bottom))}
  .lb-buy{width:100%;justify-content:space-between}
  .lb-meta p{display:none}
}
@media (max-width:420px){
  .hero h1{font-size:2.85rem}
  .trust-strip small{font-size:.92rem}
  .trust-strip>div{gap:10px}
  .trust-strip .icon{width:2.3rem;height:2.3rem}
  .drawer-body,.drawer-head,.drawer-foot{padding-left:16px;padding-right:16px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important}
}

/* ==========================================================
   AJUSTES DE TEXTO: palabras bien alineadas y sin cortes raros
   ========================================================== */
h1,h2,h3,.script,.footer-script,.trust-strip b,.product-info h3,.step h3{text-wrap:balance}
p,li,small,figcaption,.chips li,.lb-meta p{text-wrap:pretty}
body{hyphens:none;overflow-wrap:break-word;word-break:normal}
.intro{max-width:36rem}
.section-heading h2{max-width:20ch;margin-inline:auto}
.section-heading p{max-width:38rem;margin-inline:auto}
.custom-banner h2{max-width:17ch}
.product-info h3,.product-kicker,.product-desc{text-align:left}
.chips li{white-space:nowrap}
.trust-strip>div{align-items:center}
.trust-strip p{text-align:left}
.step h3,.step p{margin-inline:auto;max-width:22rem}
.form-grid{align-items:end}
.form-grid label,.swatch-field legend{align-self:end;line-height:1.3}
.form-grid select{appearance:none;-webkit-appearance:none;padding-right:2.8rem;background:var(--pearl) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2386394f' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 1rem center/20px}
.form-grid select:focus{background-color:#fff}
.order-fields select{width:100%;min-height:50px;padding:.7rem .9rem;border:2px solid var(--line);border-radius:12px;background:#fff;font-size:1.02rem;outline:none}
.order-fields select:focus{border-color:var(--rose)}

/* ==========================================================
   TOQUE ÚNICO CS: costura, oro rosado y cinta
   Inspirado en el logo: círculo cosido con puntadas y brillo oro rosado.
   ========================================================== */
:root{--gold-grad:linear-gradient(100deg,#b8736f 0%,#e9b7ac 28%,#f7dcd2 46%,#d49a92 64%,#a4566a 100%)}

/* Etiquetas en forma de cinta con cola */
.tag{padding:.5rem 1.5rem .5rem 1rem;border-radius:6px 0 0 6px;background:linear-gradient(135deg,#fff,#fbe9e5);clip-path:polygon(0 0,100% 0,calc(100% - 12px) 50%,100% 100%,0 100%);box-shadow:none;filter:drop-shadow(0 6px 8px rgba(58,27,38,.25));left:0;top:18px}
.tag::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--gold-grad)}

/* Puntadas alrededor de tarjetas, formulario y banner */
.product-card,.custom-form{position:relative}
.product-card::after{content:"";position:absolute;inset:7px;border:1.5px dashed rgba(209,154,146,.75);border-radius:calc(var(--radius) - 7px);pointer-events:none;z-index:3;opacity:0;transition:opacity .35s}
.product-card:hover::after{opacity:1}
.custom-form::before{content:"";position:absolute;inset:10px;border:2px dashed rgba(209,154,146,.55);border-radius:20px;pointer-events:none}
.custom-form>*{position:relative}
.custom-banner{position:relative;overflow:hidden}
.custom-banner::before{content:"";position:absolute;inset:14px;border:2px dashed rgba(246,215,210,.35);border-radius:28px;pointer-events:none}
.custom-banner>*{position:relative}

/* Adorno bajo los títulos de sección */
.section-heading h2::after{content:"";display:block;width:170px;height:14px;margin:18px auto 0;background:
  radial-gradient(circle at 50% 50%,#c27b78 0 4px,transparent 5px),
  linear-gradient(90deg,transparent,#d49a92) left center/calc(50% - 14px) 2px no-repeat,
  linear-gradient(90deg,#d49a92,transparent) right center/calc(50% - 14px) 2px no-repeat}
.custom-banner h2::after{content:none}

/* Insignia del hero: anillo cosido que gira despacio */
.hero-badge{overflow:visible}
.hero-badge::before{content:"";position:absolute;inset:-12px;border-radius:50%;border:2px dashed var(--rosegold);animation:stitch 40s linear infinite}
@keyframes stitch{to{transform:rotate(360deg)}}

/* Precios con brillo oro rosado */
.price strong{background:linear-gradient(100deg,#7d3248 0%,#a4566a 45%,#c0706f 65%,#86394f 100%);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:shine 6s ease-in-out infinite alternate}
.lb-buy .price strong{background:none;-webkit-text-fill-color:#fff;color:#fff;animation:none}
@keyframes shine{to{background-position:100% 0}}

/* Franja de eventos */
.event-strip{padding:clamp(36px,5vw,60px) clamp(18px,5vw,72px);text-align:center;background:linear-gradient(180deg,#fff,var(--pearl))}
.event-title{font:1.9rem/1.1 var(--script);color:var(--rose);margin-bottom:18px}
.event-list{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;max-width:1000px;margin:0 auto}
.event-list li{position:relative;padding:.55rem 1.25rem .55rem 2.1rem;border-radius:999px;background:#fff;border:1.5px dashed var(--rosegold);color:var(--wine-2);font-weight:700;font-size:1.02rem;transition:transform .25s,background .25s,color .25s}
.event-list li::before{content:"";position:absolute;left:.95rem;top:50%;width:8px;height:8px;translate:0 -50%;rotate:45deg;background:var(--gold-grad)}
.event-list li:hover{transform:translateY(-3px) rotate(-1.5deg);background:var(--blush);color:var(--rose-dark)}

/* Taller: foto y video */
.studio{background:linear-gradient(180deg,var(--blush),var(--pearl))}
.studio-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,.8fr);gap:clamp(22px,3.5vw,48px);align-items:center}
.studio-grid:has(>[hidden]){grid-template-columns:minmax(0,640px);justify-content:center}
.studio-card{margin:0;padding:12px 12px 0;background:#fff;border-radius:26px;box-shadow:var(--shadow);border:1.5px dashed var(--rosegold);outline:6px solid #fff;outline-offset:-6px;transition:transform .35s}
.studio-card:nth-child(odd){transform:rotate(-1deg)}.studio-card:nth-child(even){transform:rotate(1deg)}
.studio-card:hover{transform:rotate(0) translateY(-4px)}
.studio-card img{display:block;width:100%;height:auto;object-fit:cover;border-radius:16px}
.studio-card video{display:block;width:100%;height:auto;max-height:78svh;aspect-ratio:478/850;object-fit:contain;border-radius:16px;background:var(--wine)}
.studio-card figcaption{padding:16px 8px 18px;text-align:center;font:1.9rem/1.1 var(--script);color:var(--rose-dark)}

/* Aviso de compartir y vista previa de foto */
.share-hint{margin:12px 0 0;font-size:.98rem;line-height:1.5;color:var(--muted);text-align:center}
.share-hint b{color:var(--wine)}
.share-hint .link-button{font-size:.98rem}
.drawer-foot .share-hint{margin:0 0 12px;text-align:left}
.file-preview{display:flex;align-items:center;gap:14px;margin-top:6px;padding:8px 14px 8px 8px;border:2px solid var(--line);border-radius:16px;background:var(--pearl);font-weight:600;font-size:1rem;min-width:0}
.file-preview img{width:60px;height:60px;border-radius:12px;object-fit:cover;flex:none}
.file-preview #file-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media (max-width:860px){
  .studio-grid,.studio-grid:has(>[hidden]){grid-template-columns:minmax(0,1fr);max-width:520px}
}
@media (max-width:720px){
  .hero-badge::before{inset:-8px}
  .event-list li{font-size:.98rem}
  .studio-card:nth-child(odd),.studio-card:nth-child(even){transform:none}
}
@media (prefers-reduced-motion:reduce){
  .hero-badge::before,.price strong{animation:none}
}
