
:root {
  --rose: #ff0054;
  --rose-dark: #a81748;
  --wine: #6f3542;
  --ink: #181311;
  --cream: #fbf8f4;
  --mode-rgb: 196, 75, 87;
  --mode-hex: #c44b57;
}
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream); overflow-x: hidden; }
::selection { background: rgba(255, 0, 84, .18); }
.grain::before { content:""; position:absolute; inset:0; pointer-events:none; opacity:.045; mix-blend-mode:multiply; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E"); }
.glass { background:rgba(255,255,255,.76); border:1px solid rgba(255,255,255,.84); box-shadow:0 24px 70px rgba(49,31,27,.10); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); }
.eyebrow { letter-spacing:.22em; text-transform:uppercase; font-size:.72rem; font-weight:800; }
.hero-orb { background:radial-gradient(circle,rgba(255,0,84,.16),rgba(255,0,84,.05) 45%,transparent 72%); filter:blur(3px); }
.video-shell::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,rgba(16,10,8,.02) 45%,rgba(16,10,8,.48) 100%); }
.cta-shine { position:relative; overflow:hidden; }
.cta-shine::after { content:""; position:absolute; top:-50%; bottom:-50%; width:42%; transform:translateX(-180%) rotate(18deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.32),transparent); animation:shine 3.8s infinite; }
@keyframes shine { 0%,60%{transform:translateX(-180%) rotate(18deg)} 100%{transform:translateX(420%) rotate(18deg)} }
.pulse-soft { animation:pulseSoft 2.2s infinite; }
@keyframes pulseSoft { 0%,100%{box-shadow:0 14px 35px rgba(111,53,66,.23),0 0 0 0 rgba(255,0,84,.22)} 50%{box-shadow:0 18px 45px rgba(111,53,66,.30),0 0 0 12px rgba(255,0,84,0)} }
.mode-halo { background:radial-gradient(circle,rgba(var(--mode-rgb),.42),rgba(var(--mode-rgb),.13) 42%,transparent 72%); transition:background .35s ease; filter:blur(7px); }
.mode-dot { background:var(--mode-hex); box-shadow:0 0 24px rgba(var(--mode-rgb),.56); transition:all .3s ease; }
.mode-chip { border:1px solid rgba(35,25,22,.12); background:rgba(255,255,255,.75); transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease; }
.mode-chip:hover { transform:translateY(-2px); }
.mode-chip.active { border-color:rgba(var(--mode-rgb),.72); background:rgba(var(--mode-rgb),.09); box-shadow:0 10px 26px rgba(var(--mode-rgb),.14); }
.offer-card { transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease,background .22s ease; }
.offer-card.selected { border-color:var(--rose); background:#fff5f8; box-shadow:0 0 0 3px rgba(255,0,84,.09),0 16px 38px rgba(74,38,45,.10); transform:translateY(-2px); }
.gallery-item img { transition:transform .5s cubic-bezier(.2,.8,.2,1); }
.gallery-item:hover img { transform:scale(1.035); }
.modal-panel { opacity:0; transform:translateY(20px) scale(.97); transition:opacity .25s ease,transform .25s ease; }
.modal-open .modal-panel { opacity:1; transform:translateY(0) scale(1); }
.field:focus { outline:none; border-color:var(--rose); box-shadow:0 0 0 4px rgba(255,0,84,.10); }
.no-scroll { overflow:hidden; }
.logo-mark { filter:drop-shadow(0 10px 22px rgba(255,0,84,.13)); }
.nav-link[aria-current="page"] { color:var(--rose); }
.whatsapp-float { animation:whatsappPulse 2.4s infinite; }
@keyframes whatsappPulse { 0%,100%{box-shadow:0 16px 35px rgba(21,128,61,.28),0 0 0 0 rgba(34,197,94,.22)} 50%{box-shadow:0 20px 42px rgba(21,128,61,.34),0 0 0 12px rgba(34,197,94,0)} }
.whatsapp-tip { opacity:0; transform:translateX(8px); pointer-events:none; transition:.2s ease; }
.whatsapp-wrap:hover .whatsapp-tip,.whatsapp-wrap:focus-within .whatsapp-tip { opacity:1; transform:translateX(0); }
.mobile-menu { max-height:0; overflow:hidden; transition:max-height .3s ease; }
.mobile-menu.open { max-height:380px; }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; scroll-behavior:auto!important; transition-duration:.01ms!important; } }
