/* ==========================================================================
   CREA CON ELIS — Sistema de diseño
   Paleta extraída del logo: violeta del monograma + coral del laurel + noche.
   ========================================================================== */

@font-face{font-family:"Playfair Display";font-style:normal;font-weight:400;font-display:swap;src:url(../assets/fonts/playfair-display-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-style:normal;font-weight:500;font-display:swap;src:url(../assets/fonts/playfair-display-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:400;font-display:swap;src:url(../assets/fonts/playfair-display-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Playfair Display";font-style:italic;font-weight:500;font-display:swap;src:url(../assets/fonts/playfair-display-latin-500-italic.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:300;font-display:swap;src:url(../assets/fonts/montserrat-latin-300-normal.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:400;font-display:swap;src:url(../assets/fonts/montserrat-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:500;font-display:swap;src:url(../assets/fonts/montserrat-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Montserrat";font-style:normal;font-weight:600;font-display:swap;src:url(../assets/fonts/montserrat-latin-600-normal.woff2) format("woff2")}

:root{
  /* --- Color --- */
  --plum-950:#0E0913;
  --plum-900:#160D1F;
  --plum-800:#20122D;
  --plum-700:#2C1840;
  --plum-600:#3B2156;
  --violet-600:#6530AC;
  --violet-500:#7639C2;
  --violet-400:#9763D8;
  --violet-200:#D8C6F0;
  --violet-100:#EEE6F8;
  --coral-600:#D0644C;
  --coral-500:#E47A62;
  --coral-400:#EE9983;
  --coral-200:#F7D2C6;
  --cream:#FBF6F0;
  --paper:#F3EAE0;
  --paper-2:#EBDFD2;
  --ink:#1C1323;
  --ink-soft:#43374B;
  --ink-muted:#6F6377;
  --line:#E4D8CC;
  --line-dark:rgba(255,255,255,.12);
  --white:#FFFFFF;

  --color-primary:var(--violet-500);
  --color-accent:var(--coral-500);
  --bg:var(--cream);
  --text:var(--ink);

  /* --- Tipografía fluida --- */
  --step--2:clamp(.72rem,.7rem + .1vw,.78rem);
  --step--1:clamp(.84rem,.8rem + .15vw,.92rem);
  --step-0:clamp(1rem,.96rem + .2vw,1.1rem);
  --step-1:clamp(1.2rem,1.1rem + .45vw,1.5rem);
  --step-2:clamp(1.5rem,1.3rem + 1vw,2.2rem);
  --step-3:clamp(2rem,1.6rem + 2vw,3.3rem);
  --step-4:clamp(2.6rem,1.9rem + 3.6vw,5.2rem);
  --step-5:clamp(3.1rem,2rem + 5.8vw,7.6rem);
  --step-6:clamp(3.6rem,1.8rem + 9vw,11rem);

  --font-display:"Playfair Display",Georgia,"Times New Roman",serif;
  --font-sans:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;
  --tracking-eyebrow:.26em;
  --tracking-caps:.14em;
  --tracking-display:-.015em;

  /* --- Espaciado (8px) --- */
  --space-0-5:.25rem;--space-1:.5rem;--space-1-5:.75rem;--space-2:1rem;--space-2-5:1.25rem;
  --space-3:1.5rem;--space-4:2.5rem;--space-5:4rem;--space-6:6.5rem;--space-7:9rem;

  /* --- Radios --- */
  --radius-sm:6px;--radius-md:14px;--radius-lg:26px;--radius-xl:36px;--radius-pill:999px;
  --radius-arch:999px 999px 18px 18px;

  /* --- Sombras tintadas (ciruela) --- */
  --shadow-sm:0 2px 6px rgba(44,24,64,.08),0 1px 2px rgba(44,24,64,.05);
  --shadow-md:0 6px 18px rgba(44,24,64,.10),0 2px 5px rgba(44,24,64,.06);
  --shadow-lg:0 14px 40px rgba(44,24,64,.14),0 4px 10px rgba(44,24,64,.06);
  --shadow-xl:0 30px 70px -20px rgba(44,24,64,.35),0 8px 18px rgba(44,24,64,.08);
  --shadow-violet:0 14px 34px -10px rgba(118,57,194,.55);
  --shadow-coral:0 14px 34px -10px rgba(228,122,98,.55);

  /* --- Movimiento --- */
  --ease:cubic-bezier(.22,1,.36,1);
  --ease-inout:cubic-bezier(.65,0,.35,1);
  --d-150:150ms;--d-200:200ms;--d-300:300ms;--d-500:500ms;--d-700:700ms;--d-1000:1000ms;

  /* --- Capas --- */
  --z-base:0;--z-raised:10;--z-dropdown:200;--z-sticky:300;--z-overlay:400;--z-modal:500;--z-toast:600;--z-loader:900;

  /* --- Layout --- */
  --container-max:1360px;
  --container-narrow:820px;
  --container-px:clamp(1.25rem,5vw,4.5rem);
  --section-py:clamp(5rem,11vw,10rem);
  --nav-h:84px;
}

/* ------------------------------------------------------------ RESET */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;hanging-punctuation:first last;scroll-padding-top:calc(var(--nav-h) + 1rem)}
body{min-height:100dvh;font-family:var(--font-sans);font-size:var(--step-0);font-weight:400;line-height:1.7;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;text-rendering:optimizeLegibility}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;line-height:1.04;letter-spacing:var(--tracking-display);text-wrap:balance}
p{text-wrap:pretty}
img,picture,video,svg,canvas{display:block;max-width:100%}
img{height:auto}
input,button,textarea,select{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
em{font-style:italic}
::selection{background:var(--coral-200);color:var(--ink)}
:focus-visible{outline:2px solid var(--coral-500);outline-offset:4px;border-radius:4px}

.skip-link{position:fixed;top:-100px;left:1rem;z-index:calc(var(--z-loader) + 1);background:var(--violet-500);color:#fff;padding:.8rem 1.2rem;border-radius:var(--radius-pill);font-size:var(--step--1);transition:top var(--d-300) var(--ease)}
.skip-link:focus{top:1rem}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ------------------------------------------------------------ LAYOUT */
.container{width:100%;max-width:var(--container-max);margin-inline:auto;padding-inline:var(--container-px)}
.container--narrow{max-width:var(--container-narrow)}
.section{padding-block:var(--section-py);position:relative}
.section--tight{padding-block:clamp(3.5rem,7vw,6rem)}
.section--dark{background:var(--plum-900);color:#F4EEF7}
.section--paper{background:var(--paper)}
.section--violet{background:var(--violet-600);color:#fff}

.eyebrow{display:inline-flex;align-items:center;gap:.9em;font-family:var(--font-sans);font-size:var(--step--2);font-weight:500;text-transform:uppercase;letter-spacing:var(--tracking-eyebrow);color:var(--violet-500)}
.eyebrow::before{content:"";width:2.4em;height:1px;background:currentColor;opacity:.7}
.section--dark .eyebrow,.on-dark .eyebrow{color:var(--coral-400)}
.eyebrow--plain::before{display:none}

.display{font-size:var(--step-5)}
.h1{font-size:var(--step-4)}
.h2{font-size:var(--step-3)}
.h3{font-size:var(--step-2)}
.lead{font-size:var(--step-1);line-height:1.55;color:var(--ink-soft);font-weight:300}
.section--dark .lead,.on-dark .lead{color:rgba(244,238,247,.78)}
.muted{color:var(--ink-muted)}
.it{font-style:italic;color:var(--coral-500)}
.it-violet{font-style:italic;color:var(--violet-500)}
.section--dark .it-violet{color:var(--violet-200)}

.section-head{display:grid;gap:var(--space-2-5);margin-bottom:clamp(2.5rem,6vw,5rem);max-width:56rem}
.section-head--split{max-width:none;grid-template-columns:1.2fr .8fr;align-items:end;gap:var(--space-4)}
.section-head--center{text-align:center;margin-inline:auto;justify-items:center}
@media (max-width:860px){.section-head--split{grid-template-columns:1fr}}

/* ------------------------------------------------------------ GRAIN + AURORA (fondos vivos) */
.grain::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E")}
.aurora{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.aurora span{position:absolute;border-radius:50%;filter:blur(70px);opacity:.55;will-change:transform}
.aurora span:nth-child(1){width:52vw;height:52vw;left:-12vw;top:-18vw;background:radial-gradient(circle,rgba(118,57,194,.9),transparent 65%);animation:aur1 22s ease-in-out infinite alternate}
.aurora span:nth-child(2){width:40vw;height:40vw;right:-10vw;top:10%;background:radial-gradient(circle,rgba(228,122,98,.55),transparent 65%);animation:aur2 26s ease-in-out infinite alternate}
.aurora span:nth-child(3){width:46vw;height:46vw;left:30%;bottom:-26vw;background:radial-gradient(circle,rgba(151,99,216,.6),transparent 65%);animation:aur3 30s ease-in-out infinite alternate}
@keyframes aur1{to{transform:translate(18vw,14vh) scale(1.15)}}
@keyframes aur2{to{transform:translate(-16vw,20vh) scale(.9)}}
@keyframes aur3{to{transform:translate(-14vw,-16vh) scale(1.2)}}
.aurora--soft span{opacity:.28}
.aurora--light span:nth-child(1){background:radial-gradient(circle,rgba(216,198,240,.9),transparent 65%)}
.aurora--light span:nth-child(2){background:radial-gradient(circle,rgba(247,210,198,.9),transparent 65%)}
.aurora--light span:nth-child(3){background:radial-gradient(circle,rgba(238,230,248,.9),transparent 65%)}
.aurora--light span{opacity:.7}

/* ------------------------------------------------------------ BOTONES */
.btn{--btn-bg:var(--violet-500);--btn-fg:#fff;position:relative;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:.75em;min-height:52px;padding:.95em 1.9em;border-radius:var(--radius-pill);border:1px solid transparent;background:var(--btn-bg);color:var(--btn-fg);font-family:var(--font-sans);font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-caps);line-height:1;overflow:hidden;white-space:nowrap;transition:transform var(--d-300) var(--ease),box-shadow var(--d-300) var(--ease),background-color var(--d-300),color var(--d-300),border-color var(--d-300)}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:var(--btn-hover,var(--coral-500));transform:translateY(101%);transition:transform var(--d-500) var(--ease)}
.btn:hover::before{transform:translateY(0)}
.btn:hover{transform:translateY(-2px);color:var(--btn-hover-fg,var(--ink))}
.btn:active{transform:translateY(1px) scale(.985)}
.btn .btn__icon{width:1.1em;height:1.1em;transition:transform var(--d-300) var(--ease)}
.btn:hover .btn__icon{transform:translateX(4px)}
.btn--primary{box-shadow:var(--shadow-violet)}
.btn--primary:hover{box-shadow:var(--shadow-coral)}
.btn--coral{--btn-bg:var(--coral-500);--btn-fg:var(--ink);--btn-hover:var(--violet-500);--btn-hover-fg:#fff;box-shadow:var(--shadow-coral)}
.btn--wa{--btn-bg:#1FAF5A;--btn-fg:#fff;--btn-hover:#128C4A;--btn-hover-fg:#fff;box-shadow:0 14px 34px -12px rgba(31,175,90,.55)}
.form__btns{display:flex;flex-wrap:wrap;gap:.8rem}
.fab.fab--wa{background:#25D366;color:#fff;box-shadow:0 14px 34px -10px rgba(37,211,102,.55)}
.fab.fab--wa::before{background:#25D366}
.fab.fab--idea::before{display:none}
.btn--light{--btn-bg:var(--cream);--btn-fg:var(--ink)}
.btn--outline{--btn-bg:transparent;--btn-fg:var(--ink);border-color:rgba(28,19,35,.28);--btn-hover:var(--ink);--btn-hover-fg:#fff}
.btn--outline-light{--btn-bg:transparent;--btn-fg:#fff;border-color:rgba(255,255,255,.35);--btn-hover:#fff;--btn-hover-fg:var(--ink)}
.btn--ghost{--btn-bg:transparent;--btn-fg:currentColor;padding-inline:0;min-height:auto;border-radius:0;letter-spacing:var(--tracking-caps)}
.btn--ghost::before{display:none}
.btn--ghost:hover{transform:none;color:inherit}
.btn--sm{min-height:42px;padding:.7em 1.3em;font-size:.7rem}
.btn--lg{min-height:60px;padding:1.1em 2.3em;font-size:.82rem}

/* Enlace con subrayado animado */
.link-line{position:relative;display:inline-flex;align-items:center;gap:.6em;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-caps);padding-block:.4em}
.link-line::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(.35);transform-origin:left;transition:transform var(--d-500) var(--ease)}
.link-line:hover::after{transform:scaleX(1)}
.link-line svg{width:1em;height:1em;transition:transform var(--d-300) var(--ease)}
.link-line:hover svg{transform:translateX(4px)}

/* ------------------------------------------------------------ NAVBAR */
.nav{position:fixed;inset:0 0 auto 0;z-index:var(--z-sticky);height:var(--nav-h);display:flex;align-items:center;transition:transform var(--d-500) var(--ease),background-color var(--d-500),box-shadow var(--d-500),height var(--d-500) var(--ease);color:#fff}
.nav__inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%}
.nav__brand{display:flex;align-items:center;gap:.8rem;flex-shrink:0}
.nav__brand img{width:54px;height:auto;transition:width var(--d-500) var(--ease)}
.nav__word{display:grid;line-height:1}
.nav__word b{font-family:var(--font-display);font-weight:400;font-size:1.28rem;letter-spacing:.06em}
.nav__word small{font-size:.54rem;letter-spacing:.24em;text-transform:uppercase;opacity:.75;margin-top:.35rem}
.nav__links{display:flex;align-items:center;gap:clamp(1rem,2vw,2.1rem)}
.nav__links a{position:relative;font-size:.74rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em;padding-block:.5rem;opacity:.88;transition:opacity var(--d-200)}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--coral-500);transform:scaleX(0);transform-origin:right;transition:transform var(--d-500) var(--ease)}
.nav__links a:hover,.nav__links a.is-active{opacity:1}
.nav__links a:hover::after,.nav__links a.is-active::after{transform:scaleX(1);transform-origin:left}
.nav__cta{display:flex;align-items:center;gap:.8rem}
.nav.is-scrolled{background:rgba(22,13,31,.78);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);box-shadow:0 1px 0 rgba(255,255,255,.06),0 10px 30px -12px rgba(0,0,0,.4);height:70px}
.nav.is-scrolled .nav__brand img{width:44px}
.nav.is-hidden{transform:translateY(-110%)}
body.menu-open .nav{transform:none;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}

.burger{position:relative;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.28);display:none;align-items:center;justify-content:center;z-index:calc(var(--z-overlay) + 1)}
.burger span{position:absolute;width:18px;height:1.5px;background:currentColor;transition:transform var(--d-500) var(--ease),opacity var(--d-300)}
.burger span:nth-child(1){transform:translateY(-5px)}
.burger span:nth-child(3){transform:translateY(5px)}
.burger.is-active span:nth-child(1){transform:rotate(45deg)}
.burger.is-active span:nth-child(2){opacity:0}
.burger.is-active span:nth-child(3){transform:rotate(-45deg)}

@media (max-width:1080px){
  .nav__links,.nav__cta .btn{display:none}
  .burger{display:inline-flex}
}

/* ------------------------------------------------------------ MENÚ MÓVIL (cortina) */
.menu{position:fixed;inset:0;z-index:var(--z-overlay);background:var(--plum-900);color:#fff;clip-path:inset(0 0 100% 0 round 0 0 50% 50%);visibility:hidden;transition:clip-path .8s var(--ease),visibility 0s .8s;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.menu.is-open{clip-path:inset(0 0 0% 0 round 0);visibility:visible;transition:clip-path .8s var(--ease),visibility 0s}
.menu__inner{position:relative;z-index:2;display:grid;gap:var(--space-4);padding-top:var(--nav-h)}
.menu__list{counter-reset:m;display:grid;gap:.2rem}
.menu__list a{counter-increment:m;display:flex;align-items:baseline;gap:1rem;font-family:var(--font-display);font-size:clamp(2rem,8.5vw,3.4rem);line-height:1.12;opacity:0;transform:translateY(40px);transition:opacity .6s var(--ease),transform .6s var(--ease),color var(--d-300)}
.menu__list a::before{content:counter(m,decimal-leading-zero);font-family:var(--font-sans);font-size:.7rem;letter-spacing:.2em;color:var(--coral-400)}
.menu__list a:hover,.menu__list a.is-active{color:var(--coral-400);font-style:italic}
.menu.is-open .menu__list a{opacity:1;transform:none;transition-delay:calc(.25s + var(--i) * .05s)}
.menu__foot{display:flex;flex-wrap:wrap;gap:1rem 2rem;font-size:var(--step--1);color:rgba(255,255,255,.7);opacity:0;transition:opacity .6s .6s}
.menu.is-open .menu__foot{opacity:1}
body.menu-open{overflow:hidden}

/* ------------------------------------------------------------ PRELOADER */
.loader{position:fixed;inset:0;z-index:var(--z-loader);background:var(--plum-950);display:grid;place-items:center;color:#fff}
.loader__mark{position:relative;width:min(160px,36vw)}
.loader__mark img{width:100%;opacity:0;transform:scale(.9)}
.loader__word{position:absolute;left:50%;top:calc(100% + 1.4rem);transform:translateX(-50%);white-space:nowrap;font-family:var(--font-display);letter-spacing:.3em;font-size:.95rem;overflow:hidden}
.loader__word span{display:inline-block;transform:translateY(110%)}
.loader__bar{position:absolute;left:0;bottom:0;height:2px;width:100%;background:linear-gradient(90deg,var(--violet-500),var(--coral-500));transform:scaleX(0);transform-origin:left}
html:not(.js) .loader,.loader.is-done{display:none}

/* Cortina de transición entre páginas */
.curtain{position:fixed;inset:0;z-index:var(--z-loader);pointer-events:none;background:var(--plum-900);transform:translateY(101%);border-radius:50% 50% 0 0/12% 12% 0 0;display:grid;place-items:center}
.curtain img{width:90px;opacity:0;transition:opacity .3s}
body.is-leaving .curtain{transform:translateY(0);border-radius:0;transition:transform .6s var(--ease-inout),border-radius .6s var(--ease-inout)}
body.is-leaving .curtain img{opacity:1;transition-delay:.3s}
body.is-entering .curtain{transform:translateY(0);border-radius:0}
body.is-entered .curtain{transform:translateY(-101%);border-radius:0 0 50% 50%/0 0 12% 12%;transition:transform .8s var(--ease-inout),border-radius .8s var(--ease-inout)}

/* ------------------------------------------------------------ HERO (inicio) */
.hero{position:relative;min-height:100svh;background:var(--plum-950);color:#fff;overflow:hidden;display:flex;align-items:center;padding-top:calc(var(--nav-h) + 2rem);padding-bottom:clamp(4rem,8vw,6rem);isolation:isolate}
.hero__canvas{position:absolute;inset:0;z-index:1;width:100%;height:100%}
.hero .aurora{z-index:0}
.hero__grid{position:relative;z-index:3;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);gap:clamp(2rem,4vw,5rem);align-items:center}
.hero__eyebrow{margin-bottom:var(--space-3)}
.hero__title{font-size:clamp(2.7rem,1.3rem + 4.1vw,5.6rem);line-height:1;letter-spacing:-.02em}
.hero .eyebrow{color:var(--coral-400)}
.hero__title .line{display:block}
.hero__title em{font-style:italic;color:var(--coral-400)}
.hero__title .ln-2{padding-left:clamp(0rem,6vw,5.5rem)}
.hero__sub{margin-top:var(--space-3);max-width:34rem;font-size:var(--step-1);font-weight:300;line-height:1.55;color:rgba(244,238,247,.78)}
.hero__actions{display:flex;flex-wrap:wrap;gap:1rem 1.6rem;align-items:center;margin-top:var(--space-4)}
.hero__meta{display:flex;flex-wrap:wrap;gap:.6rem 1.8rem;margin-top:var(--space-5);font-size:var(--step--2);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.hero__meta span{display:inline-flex;align-items:center;gap:.6rem}
.hero__meta span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--coral-500)}

.hero__art{position:relative;height:min(74vh,680px);min-height:460px}
.arch{position:absolute;overflow:hidden;border-radius:var(--radius-arch);box-shadow:0 40px 80px -30px rgba(0,0,0,.7);background:var(--plum-700)}
.arch img{width:100%;height:100%;object-fit:cover;transform:scale(1.15)}
.arch--a{width:52%;height:82%;left:22%;top:4%;z-index:2}
.arch--b{width:36%;height:52%;left:0;bottom:0;z-index:3;border:6px solid var(--plum-950)}
.arch--c{width:34%;height:46%;right:0;top:30%;z-index:3;border:6px solid var(--plum-950)}
.hero__ring{position:absolute;z-index:1;left:16%;top:-2%;width:64%;aspect-ratio:1;border:1px solid rgba(238,153,131,.35);border-radius:50%}
.hero__ring::after{content:"";position:absolute;inset:7%;border:1px dashed rgba(216,198,240,.22);border-radius:50%}
.hero__sprig{position:absolute;z-index:4;width:28%;left:-4%;top:6%;color:var(--coral-500);transform:rotate(-12deg)}
.badge-rot{position:absolute;z-index:5;right:4%;bottom:4%;width:clamp(110px,11vw,150px);aspect-ratio:1;display:grid;place-items:center;border-radius:50%;background:var(--coral-500);color:var(--ink);box-shadow:var(--shadow-coral);transition:transform var(--d-500) var(--ease)}
.badge-rot:hover{transform:scale(1.06)}
.badge-rot svg.ring-text{position:absolute;inset:8%;width:84%;height:84%;animation:spin 18s linear infinite}
.badge-rot .badge-rot__icon{width:30%;height:30%}
@keyframes spin{to{transform:rotate(360deg)}}
.hero__card{position:absolute;z-index:6;left:6%;top:60%;padding:1rem 1.2rem;border-radius:var(--radius-md);background:rgba(251,246,240,.1);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.18);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;display:none}
.hero__scroll{position:absolute;z-index:4;left:50%;bottom:1.6rem;transform:translateX(-50%);display:grid;justify-items:center;gap:.6rem;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.hero__scroll i{display:block;width:1px;height:46px;background:linear-gradient(rgba(255,255,255,.6),transparent);position:relative;overflow:hidden}
.hero__scroll i::after{content:"";position:absolute;left:0;top:-40%;width:100%;height:40%;background:var(--coral-400);animation:drip 2.2s var(--ease-inout) infinite}
@keyframes drip{to{top:110%}}

@media (max-width:960px){
  .hero{align-items:flex-start}
  .hero__grid{grid-template-columns:1fr}
  .hero__art{height:auto;min-height:0;aspect-ratio:1/1.02;max-width:560px;width:100%;margin-inline:auto}
  .hero__title .ln-2{padding-left:0}
  .hero__scroll{display:none}
  .hero__meta{margin-top:var(--space-4)}
}

/* Split text (máscara) */
.split .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.08em;margin-bottom:-.08em}
.split .w>span{display:inline-block;will-change:transform}
html.js .split:not(.is-in) .w>span{transform:translateY(110%)}
.split.is-in .w>span{transform:none;transition:transform 1.1s var(--ease);transition-delay:calc(var(--wi) * 55ms + var(--sd,0ms))}

/* ------------------------------------------------------------ MARQUEE */
.marquee{position:relative;overflow:hidden;background:var(--violet-600);color:#fff;padding-block:clamp(1.1rem,2.2vw,1.8rem);border-block:1px solid rgba(255,255,255,.1)}
.marquee--coral{background:var(--coral-500);color:var(--ink)}
.marquee__track{display:flex;width:max-content;animation:marq 38s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee__group{display:flex;align-items:center;flex-shrink:0}
.marquee__item{display:flex;align-items:center;gap:clamp(1.2rem,2.5vw,2.4rem);padding-right:clamp(1.2rem,2.5vw,2.4rem);font-family:var(--font-display);font-size:clamp(1.5rem,3.2vw,2.8rem);font-style:italic;white-space:nowrap;line-height:1}
.marquee__item svg{width:clamp(20px,2.2vw,30px);height:auto;color:var(--coral-400);flex-shrink:0}
.marquee--coral .marquee__item svg{color:var(--violet-600)}
@keyframes marq{to{transform:translateX(-50%)}}
.marquee__skew{transition:transform .4s var(--ease)}

/* ------------------------------------------------------------ INTRO / STATEMENT */
.statement{font-family:var(--font-display);font-size:var(--step-3);line-height:1.2;letter-spacing:-.01em;max-width:24ch}
.statement--wide{max-width:30ch}
.statement .wd{transition:color .2s}
html.js .statement[data-highlight] .wd{color:rgba(28,19,35,.16)}
html.js .section--dark .statement[data-highlight] .wd{color:rgba(255,255,255,.16)}
html.js .statement[data-highlight] .wd.on{color:inherit}
.statement em{color:var(--violet-500)}
html.js .statement[data-highlight] em .wd.on,.statement em .wd.on{color:var(--violet-500)}
.intro__grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,6vw,7rem);align-items:start}
.intro__aside{position:sticky;top:calc(var(--nav-h) + 2rem);display:grid;gap:var(--space-3)}
.intro__img{border-radius:var(--radius-arch);overflow:hidden;aspect-ratio:4/5;box-shadow:var(--shadow-xl)}
.intro__img img{width:100%;height:100%;object-fit:cover}
.intro__body{display:grid;gap:var(--space-4)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);border-top:1px solid var(--line);padding-top:var(--space-4)}
.stat b{display:block;font-family:var(--font-display);font-weight:400;font-size:var(--step-4);line-height:1;color:var(--violet-500)}
.stat span{display:block;margin-top:.6rem;font-size:var(--step--1);color:var(--ink-muted);line-height:1.45}
@media (max-width:900px){.intro__grid{grid-template-columns:1fr}.intro__aside{position:relative;top:0;grid-template-columns:1fr;max-width:420px}.stats{grid-template-columns:1fr 1fr 1fr;gap:1rem}}
@media (max-width:520px){.stats{grid-template-columns:1fr}}

/* ------------------------------------------------------------ SERVICIOS (scroll horizontal) */
.hs{position:relative;background:var(--plum-900);color:#fff;overflow:hidden}
.hs__intro{padding-top:var(--section-py);padding-bottom:var(--space-4)}
.hs__viewport{position:relative}
.hs__track{display:flex;gap:clamp(1rem,2vw,2rem);padding-inline:var(--container-px);padding-bottom:var(--section-py);will-change:transform}
.svc{position:relative;flex:0 0 clamp(290px,31vw,440px);display:flex;flex-direction:column;border-radius:var(--radius-lg);overflow:hidden;background:var(--plum-800);border:1px solid var(--line-dark);min-height:560px;transition:border-color var(--d-500),transform var(--d-500) var(--ease)}
.svc:hover{border-color:rgba(238,153,131,.5)}
.svc__media{position:relative;height:300px;overflow:hidden}
.svc__media img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform 1.2s var(--ease),filter .8s}
.svc:hover .svc__media img{transform:scale(1.12)}
.svc__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(32,18,45,.95))}
.svc__num{position:absolute;z-index:2;top:1.1rem;left:1.2rem;font-size:.7rem;letter-spacing:.22em;color:#fff;padding:.45rem .8rem;border-radius:var(--radius-pill);background:rgba(22,13,31,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.svc__body{position:relative;display:flex;flex-direction:column;gap:.9rem;padding:1.6rem 1.7rem 1.9rem;flex:1}
.svc__body h3{font-size:var(--step-2)}
.svc__body h3 em{color:var(--coral-400)}
.svc__body p{color:rgba(244,238,247,.72);font-size:var(--step--1);line-height:1.65}
.svc__body .link-line{margin-top:auto;align-self:flex-start;color:var(--coral-400)}
.svc--end{justify-content:center;align-items:flex-start;padding:2.4rem;background:linear-gradient(150deg,var(--violet-600),var(--plum-700));border:0}
.svc--end h3{font-size:var(--step-3);margin-bottom:1.4rem}
.hs__progress{position:absolute;left:var(--container-px);right:var(--container-px);bottom:calc(var(--section-py) * .45);height:1px;background:rgba(255,255,255,.12)}
.hs__progress i{position:absolute;inset:0;background:var(--coral-500);transform:scaleX(0);transform-origin:left}
@media (max-width:899px){
  .hs__track{overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:var(--space-5)}
  .hs__track::-webkit-scrollbar{display:none}
  .svc{scroll-snap-align:start;flex-basis:82vw;min-height:500px}
  .svc__media{height:240px}
  .hs__progress{display:none}
  .hs__hint{display:flex!important}
}
.hs__hint{display:none;align-items:center;gap:.6rem;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-top:1rem}

/* ------------------------------------------------------------ LISTA CELEBRACIONES (hover imagen) */
.celebs{border-top:1px solid var(--line)}
.celeb{position:relative;display:grid;grid-template-columns:4rem 1fr auto;align-items:center;gap:var(--space-3);padding:clamp(1.1rem,2.4vw,1.9rem) 0;border-bottom:1px solid var(--line);transition:padding var(--d-500) var(--ease),color var(--d-300)}
.celeb__n{font-size:.72rem;letter-spacing:.2em;color:var(--ink-muted)}
.celeb__t{font-family:var(--font-display);font-size:var(--step-3);line-height:1.05;transition:transform var(--d-500) var(--ease),color var(--d-300)}
.celeb__d{font-size:var(--step--1);color:var(--ink-muted);max-width:22rem;text-align:right}
.celeb__thumb{display:none}
@media (hover:hover) and (pointer:fine){
  .celeb:hover .celeb__t{transform:translateX(1.2rem);color:var(--violet-500);font-style:italic}
}
.celeb-float{position:fixed;left:0;top:0;z-index:var(--z-dropdown);width:clamp(220px,20vw,320px);aspect-ratio:3/4;border-radius:var(--radius-arch);overflow:hidden;pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.7) rotate(-6deg);transition:opacity .35s,transform .5s var(--ease);box-shadow:var(--shadow-xl)}
.celeb-float.is-on{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(-3deg)}
.celeb-float img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s}
.celeb-float img.is-on{opacity:1}
@media (max-width:760px){
  .celeb{grid-template-columns:1fr auto;gap:.4rem 1rem}
  .celeb__n{display:none}
  .celeb__d{grid-column:1/-1;text-align:left;max-width:none}
  .celeb__thumb{display:block;grid-row:1/3;grid-column:2;width:74px;height:92px;border-radius:40px 40px 8px 8px;overflow:hidden}
  .celeb__thumb img{width:100%;height:100%;object-fit:cover}
  .celeb__t{grid-column:1}
  .celeb-float{display:none}
}

/* ------------------------------------------------------------ DECORACIÓN (mosaico) */
.deco{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(.8rem,1.6vw,1.4rem);align-items:start}
.deco__text{grid-column:1 / span 5;position:sticky;top:calc(var(--nav-h) + 2.5rem);display:grid;gap:var(--space-3);padding-right:var(--space-3)}
.deco__tiles{grid-column:6 / -1;display:grid;grid-template-columns:1fr 1fr;gap:clamp(.8rem,1.6vw,1.4rem)}
.tile{position:relative;overflow:hidden;border-radius:var(--radius-lg);background:var(--paper-2)}
.tile img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.tile:hover img{transform:scale(1.06)}
.tile figcaption{position:absolute;left:1rem;bottom:1rem;padding:.5rem .9rem;border-radius:var(--radius-pill);background:rgba(251,246,240,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:.66rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.tile--tall{aspect-ratio:3/4.2}
.tile--sq{aspect-ratio:1}
.tile--wide{grid-column:1/-1;aspect-ratio:16/9}
.tile--arch{border-radius:var(--radius-arch)}
.deco__tiles .tile:nth-child(2){margin-top:clamp(2rem,6vw,6rem)}
.checks{display:grid;gap:.7rem}
.checks li{display:flex;gap:.8rem;align-items:flex-start;font-size:var(--step--1);line-height:1.5}
.checks li::before{content:"";flex-shrink:0;width:18px;height:18px;margin-top:.1rem;border-radius:50%;background:var(--coral-200) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23D0644C' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.2 4L19 7'/%3E%3C/svg%3E") center/11px no-repeat}
.section--dark .checks li::before{background-color:rgba(238,153,131,.18)}
@media (max-width:900px){.deco__text,.deco__tiles{grid-column:1/-1}.deco__text{position:relative;top:0;padding-right:0}}

/* ------------------------------------------------------------ PROCESO (hilo que se dibuja) */
.process{position:relative}
.process__svg{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:0}
.process__svg path{fill:none;stroke:var(--coral-500);stroke-width:1.6;stroke-linecap:round}
.process__svg path.bg{stroke:var(--line);stroke-dasharray:3 7}
.steps{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(1rem,2.5vw,2.5rem)}
.step{position:relative;display:grid;gap:1rem;padding-top:1rem}
.step:nth-child(even){margin-top:clamp(3rem,7vw,7rem)}
.step__dot{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;background:var(--cream);border:1px solid var(--coral-400);font-family:var(--font-display);font-size:1.35rem;font-style:italic;color:var(--coral-600);box-shadow:0 0 0 8px var(--bg)}
.section--paper .step__dot{box-shadow:0 0 0 8px var(--paper);background:var(--paper)}
.step h3{font-size:var(--step-2)}
.step p{font-size:var(--step--1);color:var(--ink-muted);line-height:1.65}
@media (max-width:900px){
  .steps{grid-template-columns:1fr 1fr;row-gap:3rem}
  .step:nth-child(even){margin-top:0}
  .process__svg{display:none}
}
@media (max-width:560px){.steps{grid-template-columns:1fr}}

/* ------------------------------------------------------------ VALORES (tarjetas con brillo) */
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-dark);border:1px solid var(--line-dark);border-radius:var(--radius-lg);overflow:hidden}
.value{position:relative;padding:clamp(1.8rem,3vw,2.8rem);background:var(--plum-900);min-height:260px;display:flex;flex-direction:column;gap:1rem;overflow:hidden;isolation:isolate}
.value::before{content:"";position:absolute;z-index:-1;width:420px;height:420px;left:var(--mx,50%);top:var(--my,50%);transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(118,57,194,.45),transparent 60%);opacity:0;transition:opacity .5s}
.value:hover::before{opacity:1}
.value__icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(238,153,131,.4);color:var(--coral-400)}
.value__icon svg{width:22px;height:22px}
.value h3{font-size:var(--step-2);margin-top:auto}
.value p{font-size:var(--step--1);color:rgba(244,238,247,.66);line-height:1.6}
.value__n{position:absolute;right:1.4rem;top:1.2rem;font-family:var(--font-display);font-style:italic;font-size:.95rem;color:rgba(255,255,255,.28)}
@media (max-width:960px){.values{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.values{grid-template-columns:1fr}.value{min-height:0}}

/* ------------------------------------------------------------ FAQ */
.faq{display:grid;gap:0;border-top:1px solid var(--line)}
.faq__item{border-bottom:1px solid var(--line)}
.faq__q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.5rem 0;text-align:left;font-family:var(--font-display);font-size:var(--step-1);line-height:1.3;transition:color var(--d-300)}
.faq__q:hover{color:var(--violet-500)}
.faq__icon{position:relative;flex-shrink:0;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);transition:transform var(--d-500) var(--ease),background-color var(--d-300),border-color var(--d-300)}
.faq__icon::before,.faq__icon::after{content:"";position:absolute;left:50%;top:50%;width:13px;height:1.5px;background:currentColor;transform:translate(-50%,-50%)}
.faq__icon::after{transform:translate(-50%,-50%) rotate(90deg)}
.faq__q[aria-expanded="true"] .faq__icon{transform:rotate(135deg);background:var(--violet-500);border-color:var(--violet-500);color:#fff}
.faq__a{max-height:0;overflow:hidden;transition:max-height var(--d-500) var(--ease)}
.faq__a-inner{padding:0 3.5rem 1.6rem 0;color:var(--ink-soft);font-size:var(--step-0);line-height:1.7;max-width:62rem}
.faq__a-inner p+p{margin-top:.8rem}
.faq-cats{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:var(--space-4)}
.faq-cats button{padding:.6rem 1.1rem;border-radius:var(--radius-pill);border:1px solid var(--line);font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;transition:all var(--d-300)}
.faq-cats button.is-active,.faq-cats button:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.faq-group+.faq-group{margin-top:var(--space-5)}
.faq-group h2{font-size:var(--step-2);margin-bottom:var(--space-3)}

/* ------------------------------------------------------------ CONTACTO / FORMULARIO */
.contact{position:relative;background:var(--plum-950);color:#fff;overflow:hidden;isolation:isolate}
.contact__grid{position:relative;z-index:2;display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(2.5rem,6vw,6rem);align-items:start}
.contact__title{font-size:var(--step-4);line-height:1}
.contact__title em{color:var(--coral-400)}
.contact__info{display:grid;gap:1.3rem;margin-top:var(--space-4)}
.info-row{display:flex;gap:1rem;align-items:flex-start}
.info-row__ic{flex-shrink:0;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:var(--coral-400)}
.info-row__ic svg{width:18px;height:18px}
.info-row small{display:block;font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.info-row a,.info-row span{font-size:var(--step-0)}
.info-row a:hover{color:var(--coral-400)}
.socials{display:flex;gap:.7rem;margin-top:var(--space-3)}
.socials a{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(255,255,255,.2);transition:background-color var(--d-300),border-color var(--d-300),transform var(--d-300) var(--ease),color var(--d-300)}
.socials a:hover{background:var(--coral-500);border-color:var(--coral-500);color:var(--ink);transform:translateY(-3px)}
.socials svg{width:18px;height:18px}
.socials--dark a{border-color:var(--line);color:var(--ink)}

.form{position:relative;padding:clamp(1.6rem,3.5vw,3rem);border-radius:var(--radius-xl);background:rgba(251,246,240,.97);color:var(--ink);box-shadow:0 40px 90px -30px rgba(0,0,0,.6)}
.form--flat{box-shadow:var(--shadow-xl);border:1px solid var(--line);background:#fff}
.form__head{display:grid;gap:.4rem;margin-bottom:1.6rem}
.form__head h3{font-size:var(--step-2)}
.form__head p{font-size:var(--step--1);color:var(--ink-muted)}
.form__grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form__grid .full{grid-column:1/-1}
@media (max-width:620px){.form__grid{grid-template-columns:1fr}}
.field{position:relative}
.field input,.field select,.field textarea{width:100%;min-height:58px;padding:1.45rem 1rem .5rem;border-radius:var(--radius-md);border:1px solid var(--line);background:#fff;font-size:.98rem;color:var(--ink);transition:border-color var(--d-300),box-shadow var(--d-300);appearance:none;-webkit-appearance:none}
.field textarea{min-height:130px;resize:vertical;padding-top:1.7rem}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237639C2' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;background-size:16px;padding-right:2.6rem;cursor:pointer}
.field label{position:absolute;left:1rem;top:1.15rem;font-size:.9rem;color:var(--ink-muted);pointer-events:none;transition:all var(--d-300) var(--ease)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--violet-500);box-shadow:0 0 0 4px rgba(118,57,194,.12)}
.field input:focus~label,.field input:not(:placeholder-shown)~label,.field textarea:focus~label,.field textarea:not(:placeholder-shown)~label,.field select:focus~label,.field.has-value label{top:.45rem;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--violet-500)}
.field--error input,.field--error select,.field--error textarea{border-color:#C0392B}
.field__error{display:block;margin-top:.35rem;font-size:.74rem;color:#B03A2E}
.check{display:flex;gap:.75rem;align-items:flex-start;font-size:.8rem;color:var(--ink-muted);line-height:1.5}
.check input{appearance:none;-webkit-appearance:none;flex-shrink:0;width:20px;height:20px;border:1px solid var(--line);border-radius:6px;background:#fff;margin-top:.1rem;cursor:pointer;display:grid;place-items:center;transition:all var(--d-200)}
.check input:checked{background:var(--violet-500);border-color:var(--violet-500)}
.check input:checked::after{content:"";width:10px;height:6px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(1px,-1px)}
.check a{color:var(--violet-500);text-decoration:underline;text-underline-offset:2px}
.form__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.4rem}
.form__note{font-size:.74rem;color:var(--ink-muted)}
.form-success{display:none;text-align:center;padding:2rem 1rem}
.form-success.is-visible{display:grid;gap:1rem;justify-items:center}
.form-success__ic{width:70px;height:70px;border-radius:50%;display:grid;place-items:center;background:var(--violet-100);color:var(--violet-500)}
.form-success__ic svg{width:30px;height:30px}
.form-success h3{font-size:var(--step-2)}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip-opt input{position:absolute;opacity:0;pointer-events:none}
.chip-opt span{display:inline-block;padding:.55rem 1rem;border-radius:var(--radius-pill);border:1px solid var(--line);font-size:.8rem;cursor:pointer;transition:all var(--d-300);background:#fff}
.chip-opt input:checked+span{background:var(--violet-500);border-color:var(--violet-500);color:#fff}
.chip-opt input:focus-visible+span{outline:2px solid var(--coral-500);outline-offset:2px}
.chips-label{display:block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:.6rem}
@media (max-width:960px){.contact__grid{grid-template-columns:1fr}}

/* ------------------------------------------------------------ PAGE HERO (interiores) */
.phero{position:relative;min-height:clamp(560px,88svh,860px);display:flex;align-items:flex-end;padding-top:calc(var(--nav-h) + 3rem);padding-bottom:clamp(3rem,7vw,6rem);background:var(--plum-950);color:#fff;overflow:hidden;isolation:isolate}
.phero__bg{position:absolute;inset:0;z-index:0}
.phero__bg img{width:100%;height:118%;object-fit:cover;opacity:.5;transform-origin:center}
.phero__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,9,19,.55) 0%,rgba(14,9,19,.25) 40%,rgba(14,9,19,.92) 100%),linear-gradient(90deg,rgba(14,9,19,.7),transparent 70%)}
.phero .aurora{z-index:1;mix-blend-mode:screen}
.phero__inner{position:relative;z-index:3;display:grid;grid-template-columns:1.3fr .7fr;gap:var(--space-4);align-items:end;width:100%}
.phero__title{font-size:var(--step-5);line-height:.98;margin-top:var(--space-2-5)}
.phero__title em{color:var(--coral-400)}
.phero__lead{font-size:var(--step-1);font-weight:300;line-height:1.55;color:rgba(244,238,247,.8);max-width:28rem}
.crumbs{display:flex;gap:.6rem;align-items:center;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.crumbs a:hover{color:var(--coral-400)}
.crumbs span[aria-hidden]{opacity:.5}
.phero__index{position:absolute;right:var(--container-px);top:calc(var(--nav-h) + 2rem);z-index:3;font-family:var(--font-display);font-style:italic;font-size:clamp(5rem,14vw,13rem);line-height:.8;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.18)}
@media (max-width:860px){.phero__inner{grid-template-columns:1fr}.phero__index{font-size:6rem}}

/* ------------------------------------------------------------ ZIGZAG (páginas) */
.zig{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,7rem);align-items:center}
.zig+.zig{margin-top:clamp(5rem,10vw,9rem)}
.zig--rev .zig__media{order:2}
.zig__media{position:relative}
.zig__img{position:relative;overflow:hidden;border-radius:var(--radius-lg);aspect-ratio:4/5;box-shadow:var(--shadow-xl)}
.zig__img img{width:100%;height:115%;object-fit:cover}
.zig__img--arch{border-radius:var(--radius-arch)}
.zig__num{position:absolute;top:-2.2rem;left:-1rem;z-index:2;font-family:var(--font-display);font-style:italic;font-size:clamp(4rem,8vw,7rem);line-height:1;color:var(--coral-500)}
.zig--rev .zig__num{left:auto;right:-1rem}
.zig__body{display:grid;gap:var(--space-3)}
.zig__body h2{font-size:var(--step-4)}
.zig__body h2 em{color:var(--violet-500)}
.zig__body p{color:var(--ink-soft)}
.zig__tag{position:absolute;right:-1.2rem;bottom:2rem;z-index:2;padding:1rem 1.2rem;border-radius:var(--radius-md);background:var(--cream);box-shadow:var(--shadow-lg);font-family:var(--font-display);font-style:italic;font-size:1.05rem;max-width:14rem;line-height:1.3}
.zig--rev .zig__tag{right:auto;left:-1.2rem}
@media (max-width:900px){.zig{grid-template-columns:1fr}.zig--rev .zig__media{order:0}.zig__img{aspect-ratio:4/3.6}.zig__tag{right:1rem}.zig--rev .zig__tag{left:1rem}.zig__num{left:.5rem;top:-2.6rem}}

/* ------------------------------------------------------------ TARJETAS GENÉRICAS */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.6rem)}
.cards--4{grid-template-columns:repeat(4,1fr)}
.cards--2{grid-template-columns:repeat(2,1fr)}
@media (max-width:1000px){.cards,.cards--4{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.cards,.cards--4,.cards--2{grid-template-columns:1fr}}
.card{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;transition:transform var(--d-500) var(--ease),box-shadow var(--d-500) var(--ease),border-color var(--d-300)}
.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-xl);border-color:transparent}
.card__media{position:relative;aspect-ratio:4/3.2;overflow:hidden}
.card__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.card:hover .card__media img{transform:scale(1.07)}
.card__body{display:flex;flex-direction:column;gap:.7rem;padding:1.5rem 1.5rem 1.7rem;flex:1}
.card__body h3{font-size:var(--step-2)}
.card__body p{font-size:var(--step--1);color:var(--ink-muted);line-height:1.65}
.card__tag{position:absolute;top:1rem;left:1rem;z-index:2;padding:.4rem .8rem;border-radius:var(--radius-pill);background:rgba(251,246,240,.92);font-size:.62rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
.card--arch .card__media{border-radius:999px 999px 0 0;margin:1rem 1rem 0;aspect-ratio:1/1.05}
.card--plain{padding:2rem;gap:1rem}
.card--plain .card__ic{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:var(--violet-100);color:var(--violet-500)}
.card--plain .card__ic svg{width:24px;height:24px}
.card--plain h3{font-size:var(--step-1);font-family:var(--font-display)}
.card--plain p{font-size:var(--step--1);color:var(--ink-muted);line-height:1.65}

/* Modalidades */
.modes{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.6rem)}
.mode{position:relative;padding:clamp(1.8rem,3vw,2.6rem);border-radius:var(--radius-lg);border:1px solid var(--line-dark);background:rgba(255,255,255,.03);display:flex;flex-direction:column;gap:1.1rem;transition:background-color var(--d-500),transform var(--d-500) var(--ease)}
.mode:hover{background:rgba(255,255,255,.06);transform:translateY(-4px)}
.mode--featured{background:linear-gradient(160deg,var(--violet-500),var(--violet-600));border-color:transparent}
.mode--featured:hover{background:linear-gradient(160deg,var(--violet-500),var(--violet-600))}
.mode__label{font-size:.64rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--coral-400)}
.mode--featured .mode__label{color:var(--coral-200)}
.mode h3{font-size:var(--step-2)}
.mode p{font-size:var(--step--1);color:rgba(244,238,247,.72);line-height:1.6}
.mode .checks{margin-top:.4rem}
.mode .checks li{color:rgba(255,255,255,.86)}
.mode .btn{margin-top:auto;align-self:flex-start}
@media (max-width:960px){.modes{grid-template-columns:1fr}}

/* ------------------------------------------------------------ TIMELINE (método) */
.timeline{position:relative;display:grid;gap:0}
.timeline__line{position:absolute;left:31px;top:0;bottom:0;width:1px;background:var(--line)}
.timeline__line i{position:absolute;inset:0;background:linear-gradient(var(--violet-500),var(--coral-500));transform:scaleY(0);transform-origin:top}
.tl{position:relative;display:grid;grid-template-columns:64px 1fr 1fr;gap:clamp(1.2rem,4vw,4rem);padding-block:clamp(2rem,4vw,3.5rem);align-items:start}
.tl__dot{position:relative;z-index:1;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--cream);border:1px solid var(--line);font-family:var(--font-display);font-style:italic;font-size:1.4rem;color:var(--violet-500);transition:background-color var(--d-500),color var(--d-500),border-color var(--d-500)}
.tl.is-active .tl__dot{background:var(--violet-500);color:#fff;border-color:var(--violet-500)}
.tl__head h3{font-size:var(--step-3)}
.tl__head .eyebrow{margin-bottom:.8rem}
.tl__body{display:grid;gap:1rem;color:var(--ink-soft)}
@media (max-width:860px){.tl{grid-template-columns:64px 1fr}.tl__body{grid-column:2}}

/* ------------------------------------------------------------ ZONA (mapa) */
.zone{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.zone__map{position:relative;aspect-ratio:1.35;border-radius:var(--radius-xl);background:var(--plum-800);overflow:hidden;border:1px solid var(--line-dark)}
.zone__map svg{position:absolute;inset:0;width:100%;height:100%}
.zone__list{display:flex;flex-wrap:wrap;gap:.5rem}
.zone__list li{padding:.5rem .95rem;border-radius:var(--radius-pill);border:1px solid var(--line-dark);font-size:.78rem;color:rgba(255,255,255,.82)}
.pin{animation:pinPulse 2.8s ease-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes pinPulse{0%{transform:scale(1);opacity:.7}80%,100%{transform:scale(3.2);opacity:0}}
@media (max-width:900px){.zone{grid-template-columns:1fr}}

/* ------------------------------------------------------------ GALERÍA + LIGHTBOX */
.gallery{columns:3 280px;column-gap:clamp(.8rem,1.6vw,1.4rem)}
.gallery__item{position:relative;display:block;width:100%;margin-bottom:clamp(.8rem,1.6vw,1.4rem);break-inside:avoid;border-radius:var(--radius-md);overflow:hidden;cursor:zoom-in;background:var(--paper-2)}
.gallery__item img{width:100%;transition:transform 1s var(--ease),filter .6s}
.gallery__item:hover img{transform:scale(1.05)}
.gallery__item::after{content:attr(data-cap);position:absolute;left:.8rem;bottom:.8rem;padding:.4rem .8rem;border-radius:var(--radius-pill);background:rgba(22,13,31,.7);color:#fff;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;opacity:0;transform:translateY(8px);transition:all var(--d-300) var(--ease)}
.gallery__item:hover::after,.gallery__item:focus-visible::after{opacity:1;transform:none}
.lightbox{position:fixed;inset:0;z-index:var(--z-modal);background:rgba(14,9,19,.94);display:grid;place-items:center;padding:4rem 1rem;opacity:0;visibility:hidden;transition:opacity var(--d-300),visibility 0s var(--d-300)}
.lightbox.is-open{opacity:1;visibility:visible;transition:opacity var(--d-300)}
.lightbox__fig{max-width:min(1100px,92vw);max-height:84vh;transform:scale(.94);transition:transform var(--d-500) var(--ease)}
.lightbox.is-open .lightbox__fig{transform:none}
.lightbox__fig img{max-height:78vh;width:auto;margin-inline:auto;border-radius:var(--radius-md)}
.lightbox__fig figcaption{text-align:center;color:rgba(255,255,255,.7);font-size:.8rem;margin-top:1rem;letter-spacing:.1em}
.lightbox__close,.lightbox__nav{position:absolute;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;color:#fff;border:1px solid rgba(255,255,255,.25);transition:background-color var(--d-300)}
.lightbox__close:hover,.lightbox__nav:hover{background:rgba(255,255,255,.12)}
.lightbox__close{top:1.2rem;right:1.2rem}
.lightbox__nav--prev{left:1.2rem;top:50%;transform:translateY(-50%)}
.lightbox__nav--next{right:1.2rem;top:50%;transform:translateY(-50%)}
.lightbox svg{width:20px;height:20px}
.note{display:flex;gap:.7rem;align-items:center;font-size:.74rem;color:var(--ink-muted);margin-top:var(--space-3)}
.note::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--coral-500);flex-shrink:0}

/* ------------------------------------------------------------ CTA BAND */
.cta-band{position:relative;overflow:hidden;isolation:isolate;background:var(--violet-600);color:#fff;border-radius:var(--radius-xl);padding:clamp(2.5rem,6vw,5.5rem);display:grid;grid-template-columns:1.3fr .7fr;gap:var(--space-4);align-items:center}
.cta-band h2{font-size:var(--step-4)}
.cta-band h2 em{color:var(--coral-200)}
.cta-band p{color:rgba(255,255,255,.8);margin-top:1rem;max-width:32rem}
.cta-band__actions{display:flex;flex-direction:column;gap:1rem;align-items:flex-start;justify-self:end}
.cta-band .aurora span{opacity:.45}
.cta-band__sprig{position:absolute;right:-3%;top:-10%;width:30%;color:rgba(238,153,131,.28);z-index:-1;transform:rotate(18deg)}
@media (max-width:860px){.cta-band{grid-template-columns:1fr}.cta-band__actions{justify-self:start}}

/* ------------------------------------------------------------ FOOTER */
.footer{position:relative;background:var(--plum-950);color:rgba(244,238,247,.72);padding-top:clamp(4rem,8vw,7rem);overflow:hidden}
.footer__top{display:grid;grid-template-columns:1.6fr .9fr 1fr 1.2fr;gap:clamp(2rem,4vw,4rem);padding-bottom:clamp(3rem,6vw,5rem);border-bottom:1px solid rgba(255,255,255,.08)}
.footer__brand img{width:170px;margin-bottom:1.4rem}
.footer__brand p{max-width:22rem;font-size:var(--step--1);line-height:1.7}
.footer h4{font-family:var(--font-sans);font-size:.66rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:#fff;margin-bottom:1.3rem}
.footer ul{display:grid;gap:.7rem;font-size:var(--step--1)}
.footer ul a{transition:color var(--d-300),padding-left var(--d-300) var(--ease)}
.footer ul a:hover{color:var(--coral-400);padding-left:4px}
.footer__big{font-family:var(--font-display);font-size:clamp(3.2rem,13.5vw,15rem);line-height:.9;letter-spacing:-.02em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.14);white-space:nowrap;padding-top:clamp(2rem,4vw,3rem);text-align:center;user-select:none}
.footer__big em{-webkit-text-stroke:1px rgba(238,153,131,.4)}
.footer__bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-block:1.6rem 2rem;font-size:.74rem;color:rgba(255,255,255,.45)}
.footer__bottom nav{display:flex;flex-wrap:wrap;gap:1.2rem}
.footer__bottom a:hover{color:var(--coral-400)}
@media (max-width:960px){.footer__top{grid-template-columns:1fr 1fr}.footer__brand{grid-column:1/-1}}
@media (max-width:560px){.footer__top{grid-template-columns:1fr}}

/* ------------------------------------------------------------ FLOTANTES */
.float-cta{position:fixed;right:clamp(1rem,2.5vw,1.8rem);bottom:clamp(1rem,2.5vw,1.8rem);z-index:var(--z-toast);display:flex;flex-direction:column;gap:.7rem;align-items:flex-end;transition:opacity var(--d-300),transform var(--d-500) var(--ease)}
.float-cta.is-hidden{opacity:0;transform:translateY(20px);pointer-events:none}
.fab{position:relative;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:var(--coral-500);color:var(--ink);box-shadow:var(--shadow-coral);transition:transform var(--d-300) var(--ease)}
.fab::before{content:"";position:absolute;inset:0;border-radius:50%;background:var(--coral-500);z-index:-1;animation:halo 2.6s ease-out infinite}
@keyframes halo{0%{transform:scale(1);opacity:.35}70%{transform:scale(1.45);opacity:0}100%{opacity:0}}
.fab:hover{transform:translateY(-3px)}
.fab svg{width:22px;height:22px}
.fab::after{content:attr(data-tip);position:absolute;right:calc(100% + .8rem);top:50%;transform:translate(8px,-50%);white-space:nowrap;padding:.5rem .85rem;border-radius:var(--radius-pill);background:var(--plum-900);color:#fff;font-size:.72rem;font-weight:500;opacity:0;visibility:hidden;transition:all var(--d-300) var(--ease)}
.fab:hover::after,.fab:focus-visible::after{opacity:1;visibility:visible;transform:translate(0,-50%)}
.to-top{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--plum-900);color:#fff;border:1px solid rgba(255,255,255,.15);opacity:0;visibility:hidden;transform:translateY(10px);transition:all var(--d-300) var(--ease)}
.to-top.is-visible{opacity:1;visibility:visible;transform:none}
.to-top svg{width:18px;height:18px}
body.menu-open .float-cta,body:has(.lightbox.is-open) .float-cta{opacity:0;pointer-events:none}

/* ------------------------------------------------------------ REVEAL */
html.js .reveal{opacity:0;transform:translateY(34px)}
html.js .reveal-l{opacity:0;transform:translateX(-40px)}
html.js .reveal-r{opacity:0;transform:translateX(40px)}
html.js .reveal-s{opacity:0;transform:scale(.94)}
.reveal,.reveal-l,.reveal-r,.reveal-s{transition:opacity .9s var(--ease),transform 1s var(--ease);transition-delay:var(--rd,0ms)}
html.js .reveal.is-in,html.js .reveal-l.is-in,html.js .reveal-r.is-in,html.js .reveal-s.is-in{opacity:1;transform:none}
html.js .clip{clip-path:inset(12% 12% 12% 12% round 24px)}
.clip{transition:clip-path 1.4s var(--ease)}
html.js .clip.is-in{clip-path:inset(0 0 0 0 round 0)}
html.js .clip-arch{clip-path:inset(100% 0 0 0 round 999px 999px 0 0)}
.clip-arch{transition:clip-path 1.4s var(--ease)}
html.js .clip-arch.is-in{clip-path:inset(0 0 0 0 round 0)}

/* ------------------------------------------------------------ PÁGINAS LEGALES */
.legal{max-width:760px}
.legal h2{font-size:var(--step-2);margin:2.6rem 0 1rem}
.legal h3{font-size:var(--step-1);margin:1.8rem 0 .6rem}
.legal p,.legal li{color:var(--ink-soft);font-size:var(--step-0);margin-bottom:.8rem}
.legal ul{list-style:disc;padding-left:1.3rem}
.legal a{color:var(--violet-500);text-decoration:underline}
.legal table{width:100%;border-collapse:collapse;font-size:.88rem;margin:1rem 0 1.6rem}
.legal th,.legal td{border:1px solid var(--line);padding:.7rem;text-align:left;vertical-align:top}
.legal th{background:var(--paper)}

/* ------------------------------------------------------------ UTILIDADES */
.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-5{margin-top:var(--space-5)}
.center{text-align:center}
.actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.divider-sprig{display:flex;align-items:center;justify-content:center;gap:1rem;color:var(--coral-500)}
.divider-sprig::before,.divider-sprig::after{content:"";height:1px;width:min(120px,20vw);background:currentColor;opacity:.4}
.divider-sprig svg{width:34px;height:auto}
.z2{position:relative;z-index:2}
.ph{background:linear-gradient(135deg,var(--plum-700),var(--violet-600) 55%,var(--coral-500))}

/* ------------------------------------------------------------ REDUCED MOTION */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important}
  html.js .reveal,html.js .reveal-l,html.js .reveal-r,html.js .reveal-s{opacity:1!important;transform:none!important}
  html.js .clip,html.js .clip-arch{clip-path:none!important}
  html.js .split .w>span{transform:none!important}
  html.js .statement[data-highlight] .wd{color:inherit!important}
  .hero__canvas{display:none}
  .loader{display:none}
}
html.js .hero__art>*{visibility:hidden}
html.js .hero__art.is-ready>*{visibility:visible}
@media (prefers-reduced-motion:reduce){html.js .hero__art>*{visibility:visible}}
.contact-light .info-row__ic{background:var(--violet-100);border-color:transparent;color:var(--violet-500)}
.contact-light .info-row small{color:var(--ink-muted)}
.contact-light .info-row a:hover{color:var(--violet-500)}
.socials--dark a:hover{color:var(--ink)}
.on-dark .link-line{color:#fff}
.hs .lead{color:rgba(244,238,247,.74)}
.hs .eyebrow{color:var(--coral-400)}
.curtain{visibility:hidden}
body.is-leaving .curtain,body.is-entering .curtain,body.is-entered .curtain{visibility:visible}
.steps--flat .step:nth-child(even){margin-top:0}
@media (max-width:900px){.steps--flat{grid-template-columns:1fr!important}}
main{overflow-x:clip}
.legal table{display:block;overflow-x:auto}
@media (max-width:760px){html.js .reveal-l{transform:translateX(-20px)}html.js .reveal-r{transform:translateX(20px)}}
body.menu-open .nav{z-index:calc(var(--z-overlay) + 1)}
.footer__logo{margin-bottom:1.4rem;color:#fff}.footer__brand .footer__logo img{width:74px;margin:0}.footer__logo .nav__word b{font-size:1.5rem}
.form__mail{color:var(--ink-muted);text-decoration:underline;text-underline-offset:3px}
.form__btns{align-items:center}
