/* Mil Sueños Personalizables — Style */
:root{
  --paper:#ffffff; --ink:#2e2a35; --ink-soft:#6b6570;
  --sky:#e8f4fd; --sky-deep:#5b9fc6; --lilac:#e8e0f7; --lilac-deep:#9b8cc4;
  --blush:#fbe3ee; --blush-deep:#db5a9e; --gold:#d9a441;
  --radius-md:16px; --radius-lg:24px;
  --shadow-soft:0 2px 12px rgba(46,42,53,.08); --shadow-card:0 4px 20px rgba(46,42,53,.12);
  --shadow-deep:0 8px 32px rgba(46,42,53,.18);
}
*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
#catalogo, #historia, #opiniones, #presupuesto{ scroll-margin-top:90px; }
body{ background:var(--paper); color:var(--ink); font-family:'Jost',sans-serif; line-height:1.6;
  cursor: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"><path d="M16 28C16 28 4 20 4 11.5 4 6.8 7.8 3 12.5 3c2 0 3.9.9 5 2.4C18.6 3.9 20.5 3 22.5 3 27.2 3 31 6.8 31 11.5 31 20 19 28 19 28l-3 1.5z" fill="%23db5a9e" stroke="white" stroke-width="1.5"/></svg>') 16 16, auto; }
img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; text-decoration:none; cursor:inherit; }
button{ cursor:inherit; border:none; font-family:inherit; background:none; }
h1,h2,h3{ font-family:'Fraunces',serif; font-weight:500; }
.container{ width:100%; max-width:1240px; margin:0 auto; padding:0 24px; }
.pad{ padding:96px 0; }
.eyebrow{ display:inline-block; color:var(--blush-deep); font-family:'Fraunces',serif; font-style:italic; font-weight:500; font-size:1.3rem; letter-spacing:.01em; margin-bottom:10px; }
.eyebrow::before{ content:'♥ '; }
.section-head{ margin-bottom:48px; }
.section-head.center{ text-align:center; }
.section-head h2{ font-size:clamp(1.9rem, 3.6vw, 2.8rem); margin:8px 0 14px; font-style:italic; }
.section-head p{ color:var(--ink-soft); max-width:560px; }
.section-head.center p{ margin:0 auto; }
[data-reveal] > *{ opacity:0; transform:translateY(24px); transition:opacity .8s cubic-bezier(.16,1,.3,1), transform .8s cubic-bezier(.16,1,.3,1); }
[data-reveal].in > *{ opacity:1; transform:translateY(0); }
[data-reveal] > *:nth-child(1){ transition-delay:0s; }
[data-reveal] > *:nth-child(2){ transition-delay:.12s; }
[data-reveal] > *:nth-child(3){ transition-delay:.24s; }
[data-reveal] > *:nth-child(4){ transition-delay:.36s; }
[data-reveal] > *:nth-child(5){ transition-delay:.48s; }
[data-reveal] > *:nth-child(6){ transition-delay:.6s; }
[data-reveal] > *:nth-child(7){ transition-delay:.7s; }
[data-reveal] > *:nth-child(n+8){ transition-delay:.8s; }

/* INTRO SPLASH */
#intro{ position:fixed; inset:0; z-index:9999; background:var(--paper); display:flex; align-items:center; justify-content:center; overflow:hidden; }
#intro.hide{ pointer-events:none; }
.splash-blob{ position:absolute; border-radius:50%; filter:blur(40px); opacity:0; mix-blend-mode:multiply; }
.intro-mark{ position:relative; z-index:2; opacity:0; text-align:center; padding:0 20px; }
.intro-mark img{ width:min(60vw, 320px); margin:0 auto; filter:drop-shadow(0 10px 30px rgba(46,42,53,.15)); }
.intro-tag{ font-family:'Fraunces',serif; font-style:italic; letter-spacing:.3em; text-transform:uppercase; font-size:.75rem; color:var(--ink-soft); margin-top:16px; opacity:0; }
.intro-skip{ position:absolute; bottom:30px; right:30px; z-index:3; background:none; border:1px solid rgba(46,42,53,.2); border-radius:20px; padding:8px 18px; font-size:.8rem; font-family:'Jost',sans-serif; color:var(--ink-soft); cursor:inherit; transition:all .2s; }
.intro-skip:hover{ background:rgba(46,42,53,.06); }

/* HEADER */
header.site{ position:sticky; top:0; z-index:100; background:rgba(255,255,255,.9); backdrop-filter:blur(10px); border-bottom:1px solid transparent; transition:border-color .3s, box-shadow .3s; }
header.site.solid{ border-color:rgba(46,42,53,.08); box-shadow:var(--shadow-soft); }
header.site .container{ display:flex; align-items:center; justify-content:space-between; padding:14px 24px; gap:24px; }
.brand img{ height:44px; }
.nav-links{ display:flex; gap:30px; }
.nav-links a{ font-family:'Fraunces',serif; font-style:italic; font-size:1.02rem; font-weight:500; transition:color .25s; }
.nav-links a:hover{ color:var(--blush-deep); }
.nav-right{ display:flex; align-items:center; gap:16px; }
.lang-switch{ position:relative; }
.lang-trigger{ display:flex; align-items:center; gap:6px; padding:7px 12px; background:rgba(46,42,53,.06); border-radius:20px; font-size:0.85rem; }
.lang-trigger .caret{ font-size:0.7rem; opacity:.6; }
.lang-menu{ position:absolute; top:calc(100% + 8px); right:0; background:#fff; border-radius:12px; box-shadow:var(--shadow-card); overflow:hidden; min-width:150px; opacity:0; visibility:hidden; transform:translateY(-6px); transition:all .2s; z-index:50; }
.lang-switch.open .lang-menu{ opacity:1; visibility:visible; transform:translateY(0); }
.lang-menu button{ display:flex; align-items:center; gap:8px; width:100%; text-align:left; padding:10px 14px; font-size:0.88rem; transition:background .15s; }
.lang-menu button:hover{ background:var(--paper); }
.nav-toggle{ display:none; flex-direction:column; justify-content:center; gap:5px; width:36px; height:36px; }
.nav-toggle span{ display:block; width:100%; height:2px; background:var(--ink); border-radius:2px; }
/* HORARIO EN DIRECTO */
.os-wrap{ position:relative; }
.os-pill{ display:inline-flex; align-items:center; gap:10px; padding:9px 16px; border-radius:999px; background:#fff; border:1px solid rgba(46,42,53,.1); box-shadow:var(--shadow-soft); font-size:0.9rem; font-weight:500; color:var(--ink); transition:transform .2s, box-shadow .2s; }
.os-pill:hover{ transform:translateY(-2px); }
.os-dot{ flex:none; width:10px; height:10px; border-radius:50%; background:#2fbf71; animation:osPulse 2s ease-out infinite; }
.os-off .os-dot{ background:#e2564b; animation:none; }
.os-caret{ font-size:0.75rem; opacity:.6; }
.os-table{ margin-top:10px; background:#fff; border-radius:16px; box-shadow:var(--shadow-card); padding:12px 18px; display:grid; gap:8px; font-size:0.88rem; max-width:360px; }
.os-row{ display:flex; justify-content:space-between; gap:18px; }
.os-row.today{ font-weight:600; color:var(--blush-deep); }
.contact-hours{ align-items:flex-start; }
.contact-hours > svg{ margin-top:8px; }
@keyframes osPulse{ 0%{ box-shadow:0 0 0 0 rgba(47,191,113,.55); } 70%,100%{ box-shadow:0 0 0 9px rgba(47,191,113,0); } }

/* BUSCADOR */
.site-search{ position:relative; }
.search-field{ display:flex; align-items:center; gap:8px; width:230px; padding:8px 14px; background:rgba(46,42,53,.06); border-radius:20px; color:var(--ink-soft); transition:box-shadow .2s, background .2s; cursor:text; }
.search-field:focus-within{ background:#fff; box-shadow:0 0 0 2px var(--blush-deep); }
.search-field svg{ flex:none; }
.search-field input{ flex:1; min-width:0; border:0; outline:0; background:transparent; font:inherit; font-size:0.9rem; color:var(--ink); }
.search-field input::-webkit-search-cancel-button{ cursor:pointer; }
.search-results{ position:absolute; top:calc(100% + 10px); right:0; width:380px; max-height:70vh; overflow-y:auto; background:#fff; border-radius:16px; box-shadow:var(--shadow-deep); padding:8px; z-index:120; }
.search-item{ display:flex; align-items:center; gap:12px; padding:8px 10px; border-radius:12px; }
.search-item.active, .search-item:hover{ background:var(--blush); }
.search-thumb{ flex:none; width:44px; height:44px; border-radius:10px; object-fit:cover; background:var(--paper); }
.search-thumb-cat{ display:flex; align-items:center; justify-content:center; color:#fff; font-size:1.3rem; background:linear-gradient(135deg,var(--blush-deep),var(--lilac-deep)); }
.search-txt{ display:flex; flex-direction:column; min-width:0; }
.search-txt b{ font-family:'Fraunces',serif; font-style:italic; font-weight:500; font-size:1rem; line-height:1.2; }
.search-txt small{ color:var(--ink-soft); font-size:0.78rem; }
.search-none{ padding:14px; text-align:center; }
.search-none p{ margin:0 0 12px; font-size:0.9rem; color:var(--ink-soft); }
.search-none .btn{ width:100%; justify-content:center; padding:11px 18px; font-size:0.85rem; }
.search-toggle{ display:none; width:38px; height:38px; border-radius:50%; background:rgba(46,42,53,.06); align-items:center; justify-content:center; color:var(--ink); }
@media(max-width:900px){
  .search-toggle{ display:flex; }
  .site-search{ display:none; position:fixed; top:72px; left:0; right:0; z-index:95; background:#fff; padding:10px 16px 12px; box-shadow:0 8px 18px rgba(0,0,0,.08); }
  .site-search.open{ display:block; }
  .search-field{ width:100%; padding:11px 16px; }
  .search-results{ position:static; width:auto; max-height:60vh; margin-top:8px; box-shadow:none; padding:0; }
}

.mobile-panel{ display:none; position:fixed; top:72px; left:0; right:0; z-index:90; background:#fff; padding:20px 24px 28px; box-shadow:var(--shadow-card); transform:translateY(-12px); opacity:0; pointer-events:none; transition:all .25s; flex-direction:column; gap:4px; }
.mobile-panel.open{ opacity:1; transform:translateY(0); pointer-events:auto; }
.mobile-panel a{ padding:12px 4px; font-family:'Fraunces',serif; font-style:italic; font-weight:500; border-bottom:1px solid rgba(46,42,53,.06); }

/* RIBBON */
.ribbon{ background:var(--blush); color:var(--ink); font-size:0.92rem; padding:12px 24px; display:flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap; text-align:center; }
.ribbon svg{ width:20px; height:20px; flex:none; stroke:var(--blush-deep); }
.ribbon strong{ font-weight:700; }
.ribbon a{ font-weight:700; color:var(--blush-deep); text-decoration:none; }
.ribbon a:hover{ text-decoration:underline; text-underline-offset:3px; }

/* BUTTONS */
.btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:14px 26px; border-radius:30px; font-weight:600; font-size:0.95rem; transition:transform .3s, box-shadow .3s; position:relative; overflow:hidden; }
.btn-wa{ background:linear-gradient(135deg, var(--blush-deep), var(--lilac-deep)); color:#fff; box-shadow:0 6px 18px rgba(219,90,158,.28); }
.btn-wa::after{ content:''; position:absolute; top:0; left:-60%; width:35%; height:100%; background:linear-gradient(120deg, transparent, rgba(255,255,255,.55), transparent); transform:skewX(-20deg); animation:btnShimmer 3.2s ease-in-out infinite; pointer-events:none; }
.btn-wa:hover{ transform:translateY(-4px) scale(1.04) rotate(-0.4deg); box-shadow:0 10px 26px rgba(219,90,158,.38); }
.btn-wa svg{ width:22px; height:22px; flex:none; }
.btn-ghost{ background:transparent; border:2px solid var(--ink); color:var(--ink); }
.btn-ghost:hover{ background:var(--ink); color:#fff; transform:translateY(-2px); }

/* HERO */
.hero{ position:relative; padding:70px 0 110px; overflow:hidden; isolation:isolate; }
.hero-blob{ position:absolute; z-index:-1; border-radius:50%; filter:blur(0px); animation:breathing 5s ease-in-out infinite; }
.hero-blob.b1{ top:-20%; right:-14%; width:60vw; height:60vw; max-width:820px; max-height:820px; background:url('../img/bg-blue2.webp') center/cover; opacity:.75; -webkit-mask-image:radial-gradient(circle,#000 55%,transparent 78%); mask-image:radial-gradient(circle,#000 55%,transparent 78%); }
.hero-blob.b2{ bottom:-28%; left:-14%; width:44vw; height:44vw; max-width:600px; max-height:600px; background:url('../img/bg-pink.webp') center/cover; opacity:.6; -webkit-mask-image:radial-gradient(circle,#000 50%,transparent 78%); mask-image:radial-gradient(circle,#000 50%,transparent 78%); }
@keyframes breathing{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.08); } }
.hero-spark{ position:absolute; width:8px; height:8px; border-radius:50%; background:radial-gradient(circle,#fff,rgba(255,255,255,.5) 60%,transparent 75%); pointer-events:none; opacity:0; animation:sparkle 3.6s ease-in-out infinite; }
.hero-spark.s1{ top:12%; left:55%; animation-delay:.2s; }
.hero-spark.s2{ top:24%; left:75%; animation-delay:1s; }
.hero-spark.s3{ top:38%; left:62%; animation-delay:1.8s; }
.hero-spark.s4{ top:50%; left:80%; animation-delay:.6s; }
.hero-spark.s5{ top:18%; left:40%; animation-delay:2.2s; }
.hero-spark.s6{ top:60%; left:50%; animation-delay:1.4s; }
@keyframes sparkle{ 0%,100%{ opacity:0; transform:scale(.4); } 50%{ opacity:1; transform:scale(1.2); } }
.hero-grid{ display:grid; grid-template-columns:1.15fr .85fr; grid-template-rows:auto auto; gap:60px; align-items:center; padding-top:34px; }
.hero-copy{ grid-column:1; grid-row:1; }
.hero-meta{ grid-column:1; grid-row:2; }
.hero-visual{ grid-column:2; grid-row:1 / span 2; }
.hero-copy .brand-name{ display:block; }
.hero-copy h1{ font-size:clamp(2.5rem, 5vw, 4.2rem); line-height:1.08; margin-top:16px; }
.hero-copy h1 em{ font-style:italic; color:var(--sky-deep); font-weight:500; }
.shimmer{ background:linear-gradient(100deg, var(--ink) 30%, var(--gold) 46%, var(--blush-deep) 52%, var(--ink) 62%); background-size:280% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; animation:shimmer 5s linear infinite; }
@keyframes shimmer{ 0%{ background-position:180% 0; } 100%{ background-position:-100% 0; } }
@keyframes btnShimmer{ 0%{ left:-60%; } 55%{ left:130%; } 100%{ left:130%; } }
@keyframes floatPulse{
  0%{ box-shadow:0 8px 32px rgba(46,42,53,.18), 0 0 0 0 rgba(219,90,158,.55); }
  70%{ box-shadow:0 8px 32px rgba(46,42,53,.18), 0 0 0 16px rgba(219,90,158,0); }
  100%{ box-shadow:0 8px 32px rgba(46,42,53,.18), 0 0 0 0 rgba(219,90,158,0); }
}
.hero-copy .lead{ margin-top:22px; max-width:500px; color:var(--ink-soft); font-size:1.05rem; }
.hero-actions{ display:flex; gap:16px; margin-top:34px; flex-wrap:wrap; }
.hero-meta{ display:flex; gap:32px; flex-wrap:wrap; }
.hero-meta strong{ display:block; font-family:'Fraunces',serif; font-size:1.4rem; }
.hero-meta span{ font-size:0.82rem; color:var(--ink-soft); }
.hero-visual{ position:relative; }
.hero-card{ position:relative; aspect-ratio:4/5; border-radius:var(--radius-lg); background:linear-gradient(155deg,var(--lilac),var(--sky) 55%,var(--blush)); box-shadow:var(--shadow-soft); display:flex; align-items:center; justify-content:center; overflow:hidden; transition:transform .25s ease-out; will-change:transform; }
.hero-card .hero-card-photo{ width:100%; height:100%; object-fit:cover; object-position:top center; }
.hero-badge{ position:absolute; left:-26px; bottom:30px; background:#fff; border-radius:18px; padding:16px 20px; box-shadow:var(--shadow-card); max-width:220px; font-size:0.85rem; }
.hero-badge strong{ display:block; font-family:'Fraunces',serif; font-style:italic; font-size:1.3rem; color:var(--blush-deep); margin-bottom:2px; }

/* MARQUEE / TALLER STRIP */
.taller-strip{ position:relative; background:linear-gradient(90deg,var(--sky),var(--lilac) 50%,var(--blush)); padding:20px 0; overflow:hidden; }
.taller-track{ display:flex; align-items:center; gap:0; width:max-content; animation:marquee 26s linear infinite; white-space:nowrap; backface-visibility:hidden; }
@media(hover:hover){ .taller-track:hover{ animation-play-state:paused; } }
.mq-item{ display:inline-flex; align-items:center; gap:24px; font-family:'Fraunces',serif; font-size:1.15rem; padding:0 24px; }
.mq-item .dot{ width:6px; height:6px; border-radius:50%; background:var(--blush-deep); display:inline-block; }
@keyframes marquee{ 0%{ transform:translate3d(0,0,0); } 100%{ transform:translate3d(var(--mq-shift,-25%),0,0); } }

/* B2S / VUELTA AL COLE — banner con marquesina de fondo */
.b2s-hero{ position:relative; width:100%; overflow:hidden; isolation:isolate; background:var(--paper); display:flex; align-items:center; min-height:50vh; }
.b2s-blob{ position:absolute; z-index:-1; border-radius:50%; background-size:cover; background-position:center; }
.b2s-blob.b1{ top:-25%; right:-10%; width:55vw; height:55vw; max-width:680px; max-height:680px; background-image:url('../img/bg-blue2.webp'); opacity:.85; -webkit-mask-image:radial-gradient(circle,#000 55%,transparent 78%); mask-image:radial-gradient(circle,#000 55%,transparent 78%); }
.b2s-blob.b2{ bottom:-30%; left:-10%; width:40vw; height:40vw; max-width:480px; max-height:480px; background-image:url('../img/bg-pink.webp'); opacity:.6; -webkit-mask-image:radial-gradient(circle,#000 50%,transparent 78%); mask-image:radial-gradient(circle,#000 50%,transparent 78%); }
.b2s-blob.b3{ top:25%; left:38%; width:24vw; height:24vw; max-width:300px; max-height:300px; background-image:url('../img/bg-lilac.webp'); opacity:.4; -webkit-mask-image:radial-gradient(circle,#000 50%,transparent 78%); mask-image:radial-gradient(circle,#000 50%,transparent 78%); }
.b2s-ticker{ position:absolute; top:8%; left:0; width:100%; overflow:hidden; white-space:nowrap; pointer-events:none; }
.b2s-ticker span{ display:inline-block; font-family:'Archivo Black',sans-serif; font-size:5rem; color:rgba(46,42,53,.07); }
.b2s-grid{ position:relative; z-index:1; width:100%; display:grid; grid-template-columns:0.85fr 1.15fr; align-items:center; gap:24px; padding:48px clamp(24px,5vw,70px); opacity:1; transform:none; }
.b2s-copy{ padding-left:clamp(0px,4vw,60px); }
.b2s-title{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:clamp(2.6rem,5.5vw,4.6rem); line-height:1; color:var(--ink); margin:0; opacity:0; }
.b2s-sub{ color:var(--ink-soft); font-size:1.08rem; margin:22px 0 30px; max-width:420px; opacity:0; }
.b2s-cta{ display:inline-flex; align-items:center; gap:10px; padding:16px 32px; border-radius:4px; background:var(--ink); color:#fff; text-decoration:none; font-family:'Space Grotesk',sans-serif; font-weight:600; width:fit-content; transition:background .25s; opacity:0; }
.b2s-cta:hover{ background:var(--blush-deep); }
.b2s-visual{ display:flex; flex-wrap:nowrap; align-items:center; justify-content:center; gap:20px; opacity:0; }
.b2s-photo{ width:54%; flex:1 1 54%; min-width:0; filter:drop-shadow(0 18px 26px rgba(0,0,0,.22)); transition:transform .25s ease-out; }

/* Entrada escalonada del banner Vuelta al Cole */
@keyframes slideUpFade{
  from{ opacity:0; transform:translateY(24px); }
  to{ opacity:1; transform:translateY(0); }
}
.b2s-hero.in .b2s-title{ animation:slideUpFade .7s ease-out both; }
.b2s-hero.in .b2s-sub{ animation:slideUpFade .7s ease-out .2s both; }
.b2s-hero.in .b2s-cta{ animation:slideUpFade .7s ease-out .4s both; }
.b2s-hero.in .b2s-visual{ animation:slideUpFade .7s ease-out .6s both; }
@media(prefers-reduced-motion:reduce){
  .b2s-title, .b2s-sub, .b2s-cta, .b2s-visual{ opacity:1; }
  .b2s-hero.in .b2s-title, .b2s-hero.in .b2s-sub, .b2s-hero.in .b2s-cta, .b2s-hero.in .b2s-visual{ animation:none; }
}
@media(max-width:900px){
  .b2s-grid{ grid-template-columns:1fr; text-align:center; padding:44px 24px; }
  .b2s-copy{ padding-left:0; }
  .b2s-cta{ margin:0 auto; }
  .b2s-visual{ order:-1; margin-bottom:10px; }
  .b2s-ticker span{ font-size:3.2rem; }
  .b2s-blob.b1{ width:80vw; height:80vw; }
  .b2s-blob.b2{ width:60vw; height:60vw; }
  .b2s-blob.b3{ display:none; }
}
.b2s-highlight{ position:relative; display:inline-block; padding:2px 12px; z-index:1; }
.b2s-highlight::before{ content:''; position:absolute; inset:-8px -10px; z-index:-1; opacity:.55; filter:blur(2px);
  background:
    radial-gradient(ellipse 60% 70% at 20% 75%, var(--blush-deep) 0%, transparent 70%),
    radial-gradient(ellipse 55% 65% at 75% 25%, var(--lilac-deep) 0%, transparent 70%),
    radial-gradient(ellipse 50% 60% at 50% 50%, var(--blush-deep) 0%, transparent 75%);
}

/* SEAM DIVIDERS */
.seam{ position:relative; width:100%; height:56px; line-height:0; background:var(--seam-b, var(--paper)); }
.seam svg{ width:100%; height:100%; display:block; }
.seam-wave path{ fill:var(--seam-a, var(--blush)); }
.seam-diagonal{ background:linear-gradient(to bottom right, var(--seam-b, var(--paper)) 49.5%, var(--seam-a, var(--paper)) 50%); height:70px; }

/* CATEGORIES */
.cat-section{ padding:90px 0 100px; }
.scroll-title{ opacity:0; transform:translateY(60px); transition:none; }
.cat-rail{ display:flex; flex-wrap:wrap; justify-content:center; gap:26px 24px; max-width:840px; margin-left:auto; margin-right:auto; overflow-x:auto; padding:12px 24px 20px; scrollbar-width:thin; }
@media(min-width:1240px){ .cat-rail{ max-width:1240px; } }
.cat-card{ flex:none; display:flex; flex-direction:column; align-items:center; gap:14px; width:168px; text-align:center; transition:transform .3s; }
.cat-card:hover{ transform:translateY(-6px); }
.cat-orb{ width:132px; height:132px; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-soft); background-size:cover; background-position:center; }
.cat-orb svg{ width:52px; height:52px; filter:drop-shadow(0 1px 3px rgba(0,0,0,.35)); }
.cat-card[data-cat="recien"] .cat-orb{ filter:hue-rotate(140deg) saturate(1.1); }
.cat-card span[data-i18n]{ font-size:1.02rem; font-weight:500; }
@media(max-width:520px){ .cat-rail{ gap:22px 16px; padding:12px 16px 20px; } .cat-card{ width:150px; } .cat-orb{ width:118px; height:118px; } }

/* FAVORITES */
.favs-section{ padding:20px 0 90px; }
.favs-banner{ display:block; width:fit-content; margin:0 auto 34px; text-align:center; font-family:'Fraunces',serif; font-style:italic; font-size:1.3rem; color:#fff; background:linear-gradient(135deg,var(--blush-deep),var(--lilac-deep)); padding:16px 36px; border-radius:999px; box-shadow:0 6px 18px rgba(219,90,158,.28); }
.favs-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.favs-card{ position:relative; aspect-ratio:3/4; border-radius:var(--radius-lg); overflow:hidden; display:flex; align-items:flex-end; padding:20px; box-shadow:var(--shadow-soft); transition:transform .3s; }
.favs-card:hover{ transform:translateY(-6px); }
.favs-photo{ position:absolute; inset:0; background-size:cover; background-position:center; transform:scale(1.18); transition:transform 1.4s cubic-bezier(.16,1,.3,1); z-index:0; filter:saturate(1.35) contrast(1.08) brightness(1.06); }
.favs-card.f1 .favs-photo{ background-image:url('../img/catalogo-web/especiales/especiales-1.webp'); }
.favs-card.f2 .favs-photo{ background-image:url('../img/catalogo-web/tazas-y-copas/tazas-asa-corazon-1.webp'); }
.favs-card.f3 .favs-photo{ background-image:url('../img/catalogo-web/eventos/eventos-bautizo-1.webp'); background-position:42% center; }
.favs-card.f4 .favs-photo{ background-image:url('../img/catalogo-web/especiales/especiales-cojines-8.webp'); }
.favs-curtain{ position:absolute; inset:0; background:var(--paper); transform-origin:left; transition:transform 1s cubic-bezier(.76,0,.24,1); z-index:1; }
.favs-card::after{ content:''; position:absolute; inset:0; z-index:1; background:linear-gradient(to top, rgba(20,15,25,.55) 0%, rgba(20,15,25,.14) 32%, transparent 55%); pointer-events:none; }
.favs-caption{ position:relative; z-index:2; color:#fff; font-family:'Fraunces',serif; font-style:italic; font-weight:500; font-size:1.1rem; text-shadow:0 2px 10px rgba(0,0,0,.5); }
[data-reveal].in .favs-card .favs-photo{ transform:scale(1); }
[data-reveal].in .favs-card .favs-curtain{ transform:scaleX(0); }
.favs-grid > *:nth-child(1) .favs-curtain, .favs-grid > *:nth-child(1) .favs-photo{ transition-delay:0s; }
.favs-grid > *:nth-child(2) .favs-curtain, .favs-grid > *:nth-child(2) .favs-photo{ transition-delay:.15s; }
.favs-grid > *:nth-child(3) .favs-curtain, .favs-grid > *:nth-child(3) .favs-photo{ transition-delay:.3s; }
.favs-grid > *:nth-child(4) .favs-curtain, .favs-grid > *:nth-child(4) .favs-photo{ transition-delay:.45s; }

/* REVIEWS */
.reviews-score{ background:linear-gradient(135deg,var(--blush-deep),var(--lilac-deep) 55%,var(--sky-deep)); color:#fff; border-radius:var(--radius-lg); padding:36px; max-width:340px; margin:0 auto; text-align:center; }
.reviews-number{ font-family:'Fraunces',serif; font-size:3.2rem; font-weight:600; font-style:italic; }
.reviews-stars{ font-size:1.3rem; color:#ffd76b; letter-spacing:2px; margin:8px 0; }
.reviews-count{ font-size:0.9rem; opacity:.92; }
.reviews-count .reviews-number{ font-size:inherit; font-weight:700; font-style:normal; font-family:inherit; }
.reviews-scroller{ overflow:hidden; margin-top:56px; padding:8px 0 16px; }
.reviews-cta{ text-align:center; margin-top:8px; }
.btn-google{ display:inline-flex; align-items:center; gap:10px; padding:12px 26px; border-radius:30px; background:var(--blush); color:var(--ink); font-size:0.85rem; font-weight:400; letter-spacing:.06em; text-transform:uppercase; transition:background .25s, transform .25s; }
.btn-google:hover{ background:var(--blush-deep); color:#fff; transform:translateY(-2px); }
.btn-google svg{ width:18px; height:18px; flex:none; }
.reviews-track{ display:flex; gap:20px; width:max-content; animation:reviewsScroll 38s linear infinite; }
.reviews-scroller:hover .reviews-track{ animation-play-state:paused; }
@keyframes reviewsScroll{ 0%{ transform:translateX(0); } 100%{ transform:translateX(-50%); } }
.review-card{ width:320px; flex:none; background:#fff; border-radius:var(--radius-lg); padding:26px; box-shadow:var(--shadow-soft); }
.review-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.review-stars{ color:#ffb400; letter-spacing:2px; }
.review-g{ width:22px; height:22px; }
.review-g svg{ width:100%; height:100%; }
.review-quote{ font-style:italic; color:var(--ink); margin-bottom:16px; line-height:1.65; font-size:0.95rem; }
.review-meta{ display:flex; flex-direction:column; gap:2px; font-size:0.82rem; color:var(--ink-soft); }
.review-meta strong{ color:var(--ink); font-weight:600; }

/* INSTAGRAM */
.ig-section{ background:var(--blush); position:relative; overflow:hidden; }
.ig-spark{ position:absolute; width:8px; height:8px; border-radius:50%; background:radial-gradient(circle,#fff,rgba(255,255,255,.5) 60%,transparent 75%); pointer-events:none; opacity:0; animation:sparkle 3.6s ease-in-out infinite; z-index:2; }
.ig-spark.s1{ top:8%; left:6%; animation-delay:.2s; }
.ig-spark.s2{ top:18%; right:8%; animation-delay:1.4s; }
.ig-spark.s3{ top:60%; left:4%; animation-delay:2.2s; }
.ig-spark.s4{ top:72%; right:6%; animation-delay:.8s; }
.ig-spark.s5{ top:40%; left:50%; animation-delay:1.8s; }
.ig-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.ig-tile{ position:relative; aspect-ratio:720/757; border-radius:14px; overflow:hidden; display:block; }
.ig-tile img{ width:100%; height:100%; object-fit:cover; transition:transform .4s; filter:saturate(1.35) contrast(1.08) brightness(1.06); }
.ig-tile img[src*="dia-madre-regalo"]{ object-position:50% 0%; }
.ig-tile:hover img{ transform:scale(1.08); }
.ig-hover{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(46,42,53,.35); opacity:0; transition:opacity .3s; }
.ig-tile:hover .ig-hover{ opacity:1; }
.ig-hover svg{ width:30px; height:30px; }
.ig-follow{ display:flex; align-items:center; justify-content:center; gap:10px; width:fit-content; margin:36px auto 0; font-weight:600; color:#fff; background:linear-gradient(135deg,#f9ce34,#ee2a7b,#6228d7); padding:14px 30px; border-radius:999px; box-shadow:0 6px 18px rgba(238,42,123,.3); transition:transform .25s; }
.ig-follow:hover{ transform:translateY(-3px) scale(1.03); }
.ig-follow svg{ width:22px; height:22px; }

/* HISTORIA */
.historia{ position:relative; overflow:hidden; isolation:isolate; }
.historia-blob{ position:absolute; z-index:-1; border-radius:50%; filter:blur(45px); opacity:.55; animation:breathing 6s ease-in-out infinite; }
.historia-blob.b1{ top:-12%; left:-16%; width:65%; height:38%; background:var(--sky); }
.historia-blob.b2{ bottom:-10%; right:-18%; width:60%; height:34%; background:var(--blush); animation-delay:1.5s; }
.historia-spark{ position:absolute; width:8px; height:8px; border-radius:50%; background:radial-gradient(circle,#fff,rgba(255,255,255,.5) 60%,transparent 75%); pointer-events:none; opacity:0; animation:sparkle 3.6s ease-in-out infinite; z-index:2; }
.historia-spark.s1{ top:-4%; left:14%; animation-delay:.3s; }
.historia-spark.s2{ top:48%; left:-5%; animation-delay:1.6s; }
.historia-spark.s3{ top:6%; right:10%; animation-delay:2.4s; }
.historia-spark.s4{ bottom:-3%; right:20%; animation-delay:1s; }
.historia-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:60px; align-items:stretch; }
.historia-figure{ position:relative; display:flex; flex-direction:column; gap:20px; }
.historia-photo{ position:relative; flex:1 1 0; border-radius:var(--radius-lg); overflow:hidden; min-height:180px; border:7px solid transparent; box-shadow:0 24px 46px rgba(46,42,53,.28); }
.historia-figure > .historia-photo{ transition:opacity .8s cubic-bezier(.16,1,.3,1), transform .25s ease-out; transition-delay:0s; will-change:transform; }
.historia-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
.historia-photo.p1{ border-color:var(--sky-deep); }
.historia-photo.p2{ border-color:var(--blush-deep); }
.photo-tag{ position:absolute; top:14px; left:14px; z-index:2; background:rgba(46,42,53,.65); color:#fff; font-family:'Jost',sans-serif; font-weight:600; font-size:.75rem; letter-spacing:.08em; text-transform:uppercase; padding:6px 14px; border-radius:20px; }

/* Tarjeta de vidrio (glassmorphism) */
.historia-body{
  position:relative;
  padding:36px clamp(24px,3vw,44px);
  border-radius:var(--radius-lg);
  background:rgba(255,255,255,.45);
  border:1px solid rgba(255,255,255,.6);
  box-shadow:0 20px 50px rgba(46,42,53,.1);
  -webkit-backdrop-filter:blur(16px) saturate(160%);
  backdrop-filter:blur(16px) saturate(160%);
}
.historia-body p{ color:var(--ink-soft); margin-bottom:14px; line-height:1.75; }

/* Letra capitular (solo el primer párrafo) */
.historia-body p:first-of-type::first-letter{
  font-family:'Fraunces',serif;
  font-style:italic;
  font-weight:600;
  font-size:3.2rem;
  float:left;
  line-height:.8;
  margin:6px 8px 0 0;
  color:var(--blush-deep);
}

/* Fade-in escalonado al entrar en pantalla */
.historia-body > *{ opacity:0; transform:none; transition:none; }
.historia-body.in > .eyebrow{ animation:slideUpFade .7s ease-out both; }
.historia-body.in > h2{ animation:slideUpFade .7s ease-out .12s both; }
.historia-body.in > p:nth-of-type(1){ animation:slideUpFade .7s ease-out .22s both; }
.historia-body.in > p:nth-of-type(2){ animation:slideUpFade .7s ease-out .3s both; }
.historia-body.in > p:nth-of-type(3){ animation:slideUpFade .7s ease-out .38s both; }
.historia-body.in > p:nth-of-type(4){ animation:slideUpFade .7s ease-out .46s both; }
.historia-body.in > p:nth-of-type(5){ animation:slideUpFade .7s ease-out .54s both; }
.historia-body.in > .historia-signoff{ animation:slideUpFade .7s ease-out .62s both; }
@media(prefers-reduced-motion:reduce){
  .historia-body > *{ opacity:1; animation:none; }
}

.historia-more{ display:none; margin-top:14px; padding:11px 24px; border-radius:999px; border:1.5px solid var(--blush-deep); color:var(--blush-deep); font-weight:600; font-size:0.92rem; background:transparent; }
.historia-more:hover{ background:var(--blush); }
.historia-signoff{ font-family:'Caveat',cursive; font-weight:700; font-size:2.1rem; color:var(--blush-deep); margin-top:22px; }

/* FORM */
.form-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:60px; }
.form-side p{ color:var(--ink-soft); margin:14px 0 26px; line-height:1.7; }
.contact-line{ display:flex; align-items:center; gap:12px; margin-bottom:14px; font-size:0.95rem; }
.contact-line svg{ width:20px; height:20px; flex:none; color:var(--blush-deep); }
.map-embed{ margin-top:26px; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft); position:relative; }
.map-embed iframe{ width:100%; height:220px; border:0; display:block; }
.map-load{ width:100%; height:220px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; background:linear-gradient(135deg,var(--sky),var(--lilac) 55%,var(--blush)); color:var(--ink); }
.map-load svg{ width:34px; height:34px; color:var(--blush-deep); }
.map-load small{ font-size:0.75rem; color:var(--ink-soft); }
.map-load:hover{ filter:saturate(1.15); }
.map-open{ display:block; text-align:center; padding:10px; background:#fff; font-weight:600; font-size:0.85rem; }
.form-card{ background:#fff; border-radius:var(--radius-lg); padding:32px; box-shadow:var(--shadow-card); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field{ display:flex; flex-direction:column; gap:6px; margin-bottom:16px; }
.field label{ font-size:0.85rem; font-weight:600; }
.field input, .field select, .field textarea{ padding:12px 14px; border:1px solid rgba(46,42,53,.15); border-radius:10px; font-family:inherit; font-size:0.92rem; background:var(--paper); }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--blush-deep); }
.field textarea{ resize:vertical; }
.form-note{ font-size:0.78rem; color:var(--ink-soft); margin-top:14px; text-align:center; }

/* FOOTER */
footer.site{ background:#121212; color:#fff; padding:56px 0 0; margin-top:40px; }
.footer-top{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:24px; padding-bottom:36px; border-bottom:1px solid rgba(255,255,255,.12); }
.footer-photo{ width:96px; height:96px; flex:none; border-radius:16px; border:2px dashed rgba(255,255,255,.3); background:rgba(255,255,255,.04); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; color:rgba(255,255,255,.4); }
.footer-photo svg{ width:26px; height:26px; }
.footer-photo span{ font-size:0.68rem; letter-spacing:.03em; }
.footer-brand{ display:flex; align-items:center; gap:16px; max-width:420px; }
.flogo img{ height:110px; }
.footer-brand p{ font-size:0.85rem; opacity:.75; }
.footer-social{ display:flex; gap:14px; }
.footer-social a{ width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,.08); transition:background .25s; }
.footer-social a:hover{ background:rgba(255,255,255,.18); }
.footer-social svg{ width:20px; height:20px; }
.flinks{ display:flex; gap:20px; }
.flinks a{ font-size:0.85rem; opacity:.75; }
.flinks a:hover{ opacity:1; }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; padding:20px 24px; font-size:0.78rem; opacity:.65; }
.heart{ color:var(--blush-deep); }
.footer-credit a{ text-decoration:underline; }

/* FOOTER — TICKET DE CAJA */
footer.site.footer-ticket{ background:#e9e4da; color:var(--ink); padding:64px 0 46px; margin-top:40px; }
.ticket-wrap{ max-width:440px; margin:0 auto; padding:0 20px; }
.ticket-paper{ background:#fffdf8; padding:34px 28px 22px; font-family:'Space Mono',monospace; color:#2b2b28; position:relative; box-shadow:0 16px 40px rgba(0,0,0,.14); }
.ticket-top-edge, .ticket-bottom-edge{ position:absolute; left:0; right:0; height:14px;
  background:radial-gradient(circle at 8px 7px, transparent 7px, #e9e4da 7.5px) repeat-x; background-size:16px 14px; }
.ticket-top-edge{ top:-1px; }
.ticket-bottom-edge{ bottom:-1px; transform:rotate(180deg); }
.ticket-center{ text-align:center; }
.ticket-center .flogo{ display:block; margin:0 auto 10px; }
.ticket-center .flogo img{ height:30px; filter:grayscale(1) contrast(1.3); margin:0 auto; }
.ticket-center h3{ font-size:0.9rem; letter-spacing:.04em; margin:0 0 4px; font-weight:700; }
.ticket-sub{ font-size:0.66rem; color:#7a7770; margin-bottom:2px; line-height:1.5; }
.ticket-rule{ border-top:1px dashed #b6b2a8; margin:16px 0; }
.ticket-item{ display:flex; justify-content:space-between; font-size:0.8rem; padding:5px 0; }
.ticket-item a{ color:#2b2b28; }
.ticket-item a:hover{ color:var(--blush-deep); }
.ticket-item .arrow{ color:#b23a3a; }
.ticket-social{ display:flex; justify-content:center; gap:16px; }
.ticket-social a{ width:28px; height:28px; border-radius:50%; background:#2b2b28; display:flex; align-items:center; justify-content:center; transition:background .25s; }
.ticket-social a:hover{ background:var(--blush-deep); }
.ticket-social svg{ width:14px; height:14px; }
.ticket-legal{ text-align:center; font-size:0.7rem; color:#7a7770; }
.ticket-legal a{ color:#7a7770; }
.ticket-legal a:hover{ color:#2b2b28; }
.ticket-total{ display:flex; justify-content:space-between; font-size:0.86rem; font-weight:700; margin-top:4px; }
.ticket-barcode{ height:30px; margin:16px 0 10px;
  background:repeating-linear-gradient(90deg,#2b2b28 0 2px, transparent 2px 4px, #2b2b28 4px 5px, transparent 5px 9px); }
.ticket-thanks{ text-align:center; font-size:0.7rem; color:#7a7770; line-height:1.7; }
.ticket-meta{ text-align:center; margin-top:22px; font-size:0.75rem; color:#6b6570; display:flex; flex-direction:column; gap:6px; }
.ticket-meta a{ color:#6b6570; text-decoration:underline; }

/* FOOTER — ETIQUETA COLGANTE */
footer.site.footer-tag{ background:linear-gradient(180deg, var(--sky) 0%, var(--sky) 32%, var(--paper) 32%); padding:110px 0 50px; margin-top:40px; }
.tag-wrap{ max-width:800px; margin:0 auto; padding:0 20px; }
.tag-card{ position:relative; background:#faf3e4; border:2px dashed var(--gold); border-radius:6px; padding:52px 42px 30px; transform:rotate(-1deg); box-shadow:0 24px 50px rgba(46,42,53,.2); clip-path:polygon(0 0,100% 0,100% 100%,28px 100%,0 calc(100% - 28px)); color:var(--ink); }
.tag-card::before{ content:''; position:absolute; top:18px; left:50%; transform:translateX(-50%); width:20px; height:20px; border-radius:50%; background:var(--sky); box-shadow:inset 0 0 0 2px var(--gold); }
.tag-card::after{ content:''; position:absolute; top:-36px; left:50%; transform:translateX(-50%); width:70px; height:46px; border:2px solid var(--gold); border-bottom:none; border-radius:50px 50px 0 0; }
.tag-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:32px; align-items:start; }
.tag-card .flogo img{ height:32px; }
.tag-card h3{ font-family:'Fraunces',serif; font-style:italic; font-weight:600; font-size:1.5rem; margin:12px 0 8px; line-height:1.2; }
.tag-card p{ font-size:0.88rem; color:var(--ink-soft); margin:0; }
.tag-stamp{ display:inline-flex; align-items:center; gap:6px; margin-top:16px; border:2px solid var(--blush-deep); color:var(--blush-deep); font-family:'Space Mono',monospace; font-size:0.66rem; letter-spacing:.06em; text-transform:uppercase; padding:5px 10px; border-radius:999px; transform:rotate(-3deg); }
.tag-social{ display:flex; gap:10px; margin-top:16px; }
.tag-social a{ width:30px; height:30px; border-radius:50%; background:var(--ink); display:flex; align-items:center; justify-content:center; transition:background .25s; }
.tag-social a:hover{ background:var(--blush-deep); }
.tag-social svg{ width:15px; height:15px; }
.tag-col h4{ font-family:'Space Mono',monospace; font-size:0.66rem; letter-spacing:.08em; text-transform:uppercase; color:var(--gold); margin:8px 0 12px; }
.tag-col .linklist{ display:flex; flex-direction:column; gap:9px; font-size:0.9rem; }
.tag-col .linklist a{ color:var(--ink); }
.tag-col .linklist a:hover{ color:var(--blush-deep); }
.tag-bottom{ margin-top:30px; padding-top:16px; border-top:1px dashed var(--gold); display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; font-size:0.78rem; color:var(--ink-soft); }
.tag-bottom a{ color:var(--ink-soft); text-decoration:underline; }
@media(max-width:720px){
  footer.site.footer-tag{ padding-top:90px; }
  .tag-grid{ grid-template-columns:1fr; gap:26px; }
  .tag-card{ padding:50px 26px 26px; }
}

/* FOOTER — POSTAL DE LAS GALLETAS */
footer.site.footer-postal{ background:linear-gradient(160deg,var(--sky-deep),var(--lilac-deep) 55%,var(--blush-deep)); padding:84px 0 50px; margin-top:40px; }
.postal-wrap{ max-width:820px; margin:0 auto; padding:0 20px; }
.postal-card{ position:relative; background:var(--paper); border-radius:4px; padding:58px 44px 40px; transform:rotate(1deg); box-shadow:0 26px 56px rgba(20,15,30,.35); }
.postal-grid{ display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:32px; }
.postal-card h3{ font-family:'Caveat',cursive; font-weight:700; font-size:2.3rem; margin:0 0 6px; color:var(--blush-deep); line-height:1.05; }
.postal-card p{ font-size:0.88rem; color:var(--ink-soft); margin:0; }
.postal-social{ display:flex; gap:10px; margin-top:16px; }
.postal-social a{ width:30px; height:30px; border-radius:50%; background:var(--ink); display:flex; align-items:center; justify-content:center; transition:background .25s; }
.postal-social a:hover{ background:var(--blush-deep); }
.postal-social svg{ width:15px; height:15px; }
.postal-col h4{ font-size:0.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--sky-deep); margin:0 0 12px; }
.postal-col .linklist{ display:flex; flex-direction:column; gap:9px; font-size:0.9rem; }
.postal-col .linklist a{ color:var(--ink); }
.postal-col .linklist a:hover{ color:var(--blush-deep); }
.postal-stamp{ position:absolute; top:-46px; right:40px; width:78px; height:92px; background:#fff; padding:7px; box-shadow:0 10px 22px rgba(0,0,0,.22); transform:rotate(6deg); border:2px dashed #d8d2c6; }
.postal-stamp img{ width:100%; height:100%; object-fit:contain; }
.postal-postmark{ position:absolute; top:18px; right:132px; width:72px; height:72px; border:2px solid var(--blush-deep); border-radius:50%; opacity:.65; display:flex; align-items:center; justify-content:center; text-align:center; font-family:'Space Mono',monospace; font-size:0.44rem; letter-spacing:.03em; line-height:1.4; transform:rotate(-8deg); color:var(--blush-deep); }
.postal-bottom{ margin-top:26px; padding-top:16px; border-top:1px dashed #d8d2c6; display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px; font-size:0.78rem; color:var(--ink-soft); font-family:'Space Mono',monospace; }
.postal-bottom a{ color:var(--ink-soft); text-decoration:underline; }
@media(max-width:720px){
  footer.site.footer-postal{ padding:76px 0 40px; }
  .postal-grid{ grid-template-columns:1fr; gap:24px; }
  .postal-card{ padding:82px 26px 26px; }
  .postal-stamp{ top:16px; right:20px; width:62px; height:76px; }
  .postal-postmark{ top:18px; right:92px; width:60px; height:60px; font-size:0.38rem; }
  .postal-card h3{ font-size:1.85rem; }
}

.catalogo-card-photo{ position:relative; }
.cc-track{ display:flex; width:100%; height:100%; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.cc-track::-webkit-scrollbar{ display:none; }
.cc-track img{ flex:0 0 100%; scroll-snap-align:start; }
.catalogo-card-photo:hover .cc-track img{ transform:none; }
.cc-nav{ position:absolute; top:50%; transform:translateY(-50%); z-index:2; width:34px; height:34px; border-radius:50%; background:rgba(255,255,255,.92); box-shadow:0 2px 8px rgba(0,0,0,.2); font-size:1.4rem; line-height:1; display:flex; align-items:center; justify-content:center; opacity:0; transition:opacity .2s; }
.catalogo-card-photo:hover .cc-nav{ opacity:1; }
.cc-prev{ left:10px; } .cc-next{ right:10px; }
.cc-dots{ position:absolute; bottom:10px; left:0; right:0; z-index:2; display:flex; justify-content:center; gap:6px; pointer-events:none; }
.cc-dots i{ width:7px; height:7px; border-radius:50%; background:rgba(255,255,255,.65); box-shadow:0 0 4px rgba(0,0,0,.45); transition:all .2s; }
.cc-dots i.on{ background:#fff; transform:scale(1.25); }
@media(hover:none){ .cc-nav{ display:none; } }

/* LIGHTBOX CATALOGO */
.lb{ position:fixed; inset:0; z-index:1100; display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; visibility:hidden; transition:opacity .25s, visibility .25s; }
.lb.show{ opacity:1; visibility:visible; }
.lb-backdrop{ position:absolute; inset:0; background:rgba(30,26,38,.72); backdrop-filter:blur(4px); }
.lb-panel{ position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); background:#fff; border-radius:var(--radius-lg); overflow:hidden; width:min(1000px,100%); max-height:calc(100vh - 40px); box-shadow:var(--shadow-deep); transform:scale(.96) translateY(12px); transition:transform .3s; }
.lb.show .lb-panel{ transform:none; }
.lb-media{ position:relative; background:#f4f1f6; display:flex; align-items:center; justify-content:center; min-height:0; }
.lb-media img{ max-width:100%; max-height:calc(100vh - 40px); width:100%; height:100%; object-fit:contain; display:block; }
.lb-info{ padding:44px 30px 30px; display:flex; flex-direction:column; gap:14px; justify-content:center; overflow-y:auto; }
.lb-title{ font-size:1.5rem; font-style:italic; line-height:1.2; }
.lb-price{ font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.15rem; color:var(--blush-deep); }
.lb-desc{ color:var(--ink-soft); line-height:1.6; font-size:0.95rem; white-space:pre-line; }
.lb-wa{ width:100%; justify-content:center; margin-top:6px; }
.lb-close{ position:absolute; top:12px; right:12px; z-index:3; width:38px; height:38px; border-radius:50%; background:#fff; box-shadow:0 2px 10px rgba(0,0,0,.18); font-size:1.5rem; line-height:1; display:flex; align-items:center; justify-content:center; }
.lb-nav{ position:absolute; z-index:3; top:50%; transform:translateY(-50%); width:42px; height:42px; border-radius:50%; background:rgba(255,255,255,.92); box-shadow:0 2px 10px rgba(0,0,0,.18); font-size:1.8rem; line-height:1; display:flex; align-items:center; justify-content:center; }
.lb-prev{ left:12px; }
.lb-next{ right:12px; }
.lb-nav:hover, .lb-close:hover{ background:var(--blush); }
@media(max-width:720px){
  .lb{ padding:10px; }
  .lb-panel{ grid-template-columns:1fr; grid-template-rows:minmax(0,1fr) auto; max-height:calc(100vh - 20px); }
  .lb-media img{ max-height:58vh; }
  .lb-info{ padding:18px 20px 20px; }
  .lb-title{ font-size:1.2rem; }
}

/* WHATSAPP FLOAT */
.whatsapp-float{ position:fixed; right:22px; bottom:22px; z-index:999; width:58px; height:58px; border-radius:50%; background:linear-gradient(135deg,var(--blush-deep),var(--lilac-deep)); display:flex; align-items:center; justify-content:center; transition:transform .25s, bottom .4s; overflow:hidden; animation:floatPulse 2.4s ease-out infinite; }
.whatsapp-float::after{ content:''; position:absolute; top:0; left:-60%; width:35%; height:100%; background:linear-gradient(120deg, transparent, rgba(255,255,255,.55), transparent); transform:skewX(-20deg); animation:btnShimmer 3.2s ease-in-out infinite; pointer-events:none; }
.whatsapp-float:hover{ transform:scale(1.08); }
body:has(.cookie-bar.show) .whatsapp-float{ bottom:104px; }
@media(max-width:720px){ body:has(.cookie-bar.show) .whatsapp-float{ bottom:190px; } }
.whatsapp-float::before{ content:'Escríbenos'; position:absolute; right:calc(100% + 12px); top:50%; transform:translateY(-50%) translateX(6px); background:var(--ink); color:#fff; padding:8px 14px; border-radius:20px; font-size:0.82rem; font-weight:500; white-space:nowrap; opacity:0; pointer-events:none; transition:opacity .25s, transform .25s; box-shadow:var(--shadow-card); }
.whatsapp-float:hover::before{ opacity:1; transform:translateY(-50%) translateX(0); }
.whatsapp-float svg{ width:28px; height:28px; }

/* CATEGORY MODAL */
.cat-modal{ position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition:opacity .3s, visibility .3s; }
.cat-modal.show{ opacity:1; visibility:visible; }
.cat-modal-backdrop{ position:absolute; inset:0; background:rgba(46,42,53,.55); backdrop-filter:blur(3px); }
.cat-modal-panel{ position:relative; z-index:2; background:#fff; border-radius:var(--radius-lg); padding:36px; max-width:520px; width:90%; max-height:80vh; overflow-y:auto; box-shadow:var(--shadow-deep); transform:translateY(20px); transition:transform .3s; }
.cat-modal.show .cat-modal-panel{ transform:translateY(0); }
.cat-modal-close{ position:absolute; top:16px; right:16px; width:34px; height:34px; border-radius:50%; background:var(--paper); font-size:1rem; }
.cat-modal-panel h3{ font-size:1.5rem; margin-bottom:20px; padding-right:30px; }
.chip-row{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:24px; }
.chip{ display:inline-flex; align-items:center; gap:6px; padding:8px 14px; background:var(--paper); border-radius:20px; font-size:0.85rem; transition:background .2s; }
.chip:hover{ background:var(--blush); }
.chip svg{ width:16px; height:16px; }
.chip.chip-photos{ background:var(--lilac); }
.chip.chip-photos:hover{ background:var(--lilac-deep); color:#fff; }
.chip-price{ font-weight:700; font-style:normal; color:var(--blush-deep); }
.chip.chip-photos:hover .chip-price{ color:#fff; }

/* CATALOGO DETAIL PAGE */
.catalogo-detalle{ padding:130px 0 100px; min-height:70vh; }
.back-link{ display:inline-flex; align-items:center; gap:6px; font-weight:600; font-size:0.9rem; margin-bottom:30px; }
.back-link:hover{ color:var(--blush-deep); }
.catalogo-notice{ max-width:640px; margin:0 auto 34px; padding:16px 22px; background:var(--blush); border-radius:var(--radius-md); color:var(--ink); font-size:0.92rem; line-height:1.6; text-align:center; }
.catalogo-photo-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:26px; margin-top:20px; }
.catalogo-card{ background:#fff; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-soft); transition:transform .3s; }
.catalogo-card:hover{ transform:translateY(-6px); }
.catalogo-card-photo{ aspect-ratio:1; overflow:hidden; cursor:zoom-in; }
.catalogo-card-photo img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s; }
.catalogo-card-photo:hover img{ transform:scale(1.05); }
.catalogo-card-photo:focus-visible{ outline:3px solid var(--blush-deep); outline-offset:-3px; }
.catalogo-card-body{ padding:18px 20px 22px; }
.catalogo-card-body h3{ font-size:1.05rem; font-style:italic; margin-bottom:14px; display:flex; align-items:center; justify-content:space-between; gap:8px; }
.catalogo-card-price{ font-family:'Space Grotesk',sans-serif; font-style:normal; font-weight:700; font-size:.85rem; color:var(--blush-deep); white-space:nowrap; }
.catalogo-card-body .btn-wa{ width:100%; justify-content:center; padding:11px 18px; font-size:0.85rem; }
.catalogo-empty{ color:var(--ink-soft); text-align:center; padding:20px 0; }
.catalogo-chips-wrap{ margin-top:56px; border-top:1px solid rgba(46,42,53,.1); padding-top:36px; }
.catalogo-chips-wrap h2{ font-size:1.1rem; font-style:italic; margin-bottom:16px; }
@media(max-width:640px){
  .catalogo-detalle{ padding:110px 0 70px; }
  .catalogo-photo-grid{ grid-template-columns:repeat(2,1fr); gap:16px; }
}

/* COOKIE BAR */
.cookie-bar{ position:fixed; left:0; right:0; bottom:0; z-index:150; background:#fff; box-shadow:0 -4px 16px rgba(0,0,0,.1); padding:18px 24px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; transform:translateY(100%); transition:transform .4s; }
.cookie-bar.show{ transform:translateY(0); }
.cookie-bar p{ font-size:0.85rem; color:var(--ink-soft); max-width:640px; }
.cookie-bar a{ text-decoration:underline; color:var(--blush-deep); }
.cookie-actions{ display:flex; gap:10px; flex:none; }
.cookie-actions button{ padding:9px 18px; border-radius:20px; font-size:0.85rem; font-weight:600; }
.cookie-actions button:not(.accept){ background:var(--paper); }
.cookie-actions .accept{ background:var(--blush-deep); color:#fff; }

/* RESPONSIVE */
@media(max-width:1020px){
  .hero-badge{ left:12px; }
  .favs-grid{ grid-template-columns:repeat(2,1fr); }
  .ig-grid{ grid-template-columns:repeat(3,1fr); }
}
@media(max-width:900px){
  .nav-links{ display:none; }
  .nav-toggle{ display:flex; }
  .mobile-panel{ display:flex; }
  .hero-grid, .historia-grid, .form-wrap{ grid-template-columns:1fr; }
  .hero-grid{ display:flex; flex-direction:column; gap:44px; }
  .hero-copy{ order:1; }
  .hero-visual{ order:2; max-width:340px; margin:8px auto 0; }
  .hero-meta{ order:3; }
}
@media(max-width:900px){
  .historia-figure{ flex-direction:row; gap:12px; }
  .historia-photo{ flex:1 1 0; aspect-ratio:3/4; min-height:0; border-width:5px; }
  .historia-body:not(.expanded) > p:not(:first-of-type), .historia-body:not(.expanded) > .historia-signoff{ display:none; }
  .historia-more{ display:inline-flex; }
  .historia-body.in > .historia-more{ animation:slideUpFade .7s ease-out .5s both; }
}
@media(max-width:640px){
  .ig-follow{ padding:13px 24px; text-align:center; }
  .ig-follow > span{ display:flex; flex-direction:column; align-items:center; line-height:1.25; font-size:0.95rem; }
  .ig-handle{ display:block; font-size:0.85rem; opacity:.95; }
  .hero{ padding:26px 0 80px; }
  .hero-actions{ flex-direction:column; align-items:stretch; }
  .hero-meta{ gap:20px; }
  .favs-grid{ grid-template-columns:1fr 1fr; }
  .ig-grid{ grid-template-columns:repeat(2,1fr); }
  .form-row{ grid-template-columns:1fr; }
  .footer-top, .footer-bottom{ flex-direction:column; text-align:center; }
  .pad{ padding:64px 0; }
  .ribbon{ padding:8px 16px; font-size:0.75rem; gap:4px 8px; line-height:1.4; }
  .ribbon svg{ display:none; }
}
