/* Maison Éclat — hoja propia (sin Elementor). Base calcada de la demo; efectos en me3.js. */

/* ---------------------------------------------------------------- Fuentes */
@font-face{font-family:"Cormorant Garamond";src:url(../fonts/cormorant.woff2) format("woff2");font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url(../fonts/cormorant-italic.woff2) format("woff2");font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:"Jost";src:url(../fonts/jost.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}

/* ---------------------------------------------------------------- Tokens */
:root{
	color-scheme:only light;
	--color-bg:#f5f2eb;--color-surface:#e9e5d9;--color-text:#22211d;--color-accent:#9a7b45;--color-muted:#6b6758;
	--cream:#e6d7b5;--cream-2:#f1e6cc;--line:rgba(34,33,29,.12);
	--ff-serif:"Cormorant Garamond";--ff-sans:"Jost";
	--text-xs:.75rem;--text-sm:.9375rem;--text-base:1.0625rem;
	--text-lg:clamp(1.5rem,3.2vw,2.25rem);--text-xl:clamp(2.1rem,5.2vw,3.75rem);--text-display:clamp(2.5rem,8vw,7rem);
	--ease:cubic-bezier(.25,.1,.25,1);--ease-out:cubic-bezier(.16,1,.3,1);--ease-io:cubic-bezier(.76,0,.24,1);
	--gutter:1.25rem;--radius:2px;--section-y:clamp(4.5rem,11vw,9rem);--nav-h:4.5rem;
	--admin:var(--wp-admin--admin-bar--height,0px);
}
@media (min-width:1000px){:root{--nav-h:5.25rem}}

/* ---------------------------------------------------------------- Base */
*,:after,:before{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:var(--ff-sans),system-ui,sans-serif;font-weight:300;font-size:var(--text-base);line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{max-width:100%;display:block}
a{color:inherit}
button{font:inherit;color:inherit}
blockquote,figure,h1,h2,h3,ol,p,ul{margin:0}
ol,ul{padding:0;list-style:none}
em{font-style:italic;color:var(--color-accent)}
::selection{background:var(--color-accent);color:var(--color-bg)}
:focus-visible{outline:1px solid var(--color-accent);outline-offset:4px}
[hidden]{display:none!important}

html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:clip}

.skip{position:absolute;left:-999px;top:0;z-index:100;background:var(--color-text);color:var(--color-bg);padding:.75rem 1rem}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip:focus{left:1rem;top:calc(var(--admin) + 1rem)}
.container{width:100%;max-width:1280px;margin:0 auto;padding:0 var(--gutter)}
.narrow{max-width:820px}

/* ---------------------------------------------------------------- Tipografía */
.display,.separator__title,.subtitle,.title{font-family:var(--ff-serif),Georgia,serif;font-weight:300}
.display{font-size:var(--text-display);line-height:.98;letter-spacing:-.03em}
.display .line{display:block}
.title{font-size:var(--text-xl);line-height:1.06;letter-spacing:-.02em;margin-bottom:1.25rem}
.subtitle{line-height:1.15;font-weight:400}
.lead,.subtitle{font-size:var(--text-lg)}
.lead{font-family:var(--ff-serif),Georgia,serif;line-height:1.35;font-weight:300}
.muted{color:var(--color-muted)}
.muted+.muted{margin-top:1rem}
.subtitle a{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .6s var(--ease-out)}
.subtitle a:hover{background-size:100% 1px}

/* Líneas con máscara para el revelado de titulares */
.line{display:block;overflow:clip;padding:0 .06em .14em;margin:0 -.06em -.14em}
.line>span{display:inline-block;will-change:transform}
.sline-mask{padding:0 .08em .14em;margin:0 -.08em -.14em}

.eyebrow{display:inline-flex;align-items:center;gap:.85rem;font-size:var(--text-xs);letter-spacing:.24em;text-transform:uppercase;font-weight:500;color:var(--color-accent);margin-bottom:1.1rem;line-height:1.5}
.eyebrow:before{content:"";width:2.5rem;height:1px;background:currentColor;flex:none}
.eyebrow--light{color:var(--cream)}
.eyebrow--center{justify-content:center}
.line-deco{display:block;height:1px;background:var(--color-accent);transform-origin:left;margin:1.5rem 0}
.cta-band .line-deco{margin:1.5rem auto;transform-origin:center}
.watermark{position:absolute;top:1.5rem;right:-1rem;font-family:var(--ff-serif),Georgia,serif;font-style:italic;font-weight:300;font-size:clamp(6rem,18vw,10rem);line-height:1;color:var(--color-text);opacity:.07;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap}
.watermark--center{left:50%;right:auto;top:50%;translate:-50% -50%}
.watermark--num{top:-2rem;right:0;font-style:normal}

/* ---------------------------------------------------------------- Botones */
.btn{--bg:transparent;--fg:var(--color-text);--bd:var(--color-text);--sweep:var(--color-text);--sweep-fg:var(--color-bg);
	position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.8rem 1.8rem;border:1px solid var(--bd);background:var(--bg);color:var(--fg);font:500 var(--text-xs)/1 var(--ff-sans),sans-serif;letter-spacing:.2em;text-transform:uppercase;text-decoration:none;cursor:pointer;border-radius:var(--radius);transition:transform .4s var(--ease-out),box-shadow .4s var(--ease-out),color .45s var(--ease-out),border-color .45s var(--ease-out)}
.btn:before{content:"";position:absolute;inset:-1px;z-index:-1;background:var(--sweep);transform:scaleY(0);transform-origin:50% 100%;transition:transform .55s var(--ease-out)}
.btn:hover,.btn:focus-visible{color:var(--sweep-fg);border-color:var(--sweep);transform:translateY(-2px);box-shadow:0 14px 30px -16px rgba(34,33,29,.5)}
.btn:hover:before,.btn:focus-visible:before{transform:scaleY(1)}
.btn--solid{--bg:var(--color-text);--fg:var(--color-bg);--bd:var(--color-text);--sweep:var(--color-accent);--sweep-fg:#fff}
.btn--light{--fg:#fff;--bd:rgba(255,255,255,.8);--sweep:var(--color-bg);--sweep-fg:var(--color-text)}
.btn--light.btn--fill{--bg:var(--color-bg);--fg:var(--color-text);--bd:var(--color-bg);--sweep:var(--color-accent);--sweep-fg:#fff}
.btn[disabled]{opacity:.6;cursor:wait}
.btn-row{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
.btn-row--center{justify-content:center}
.link-arrow{display:inline-flex;align-items:center;gap:.6rem;min-height:48px;margin-top:1.25rem;font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;font-weight:500;text-decoration:none;position:relative}
.link-arrow:after{content:"→";color:var(--color-accent);transition:transform .4s var(--ease-out)}
.link-arrow:before{content:"";position:absolute;left:0;right:1.4rem;bottom:.7rem;height:1px;background:var(--color-accent);transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease-out)}
.link-arrow:hover:after{transform:translateX(6px)}
.link-arrow:hover:before{transform:scaleX(1);transform-origin:left}

/* ---------------------------------------------------------------- Logo */
.logo-mark{display:block;aspect-ratio:514/304;background:currentColor;-webkit-mask:url(../img/logo.png) center/contain no-repeat;mask:url(../img/logo.png) center/contain no-repeat}

/* ---------------------------------------------------------------- Cortina, grano y progreso */
.curtain{position:fixed;inset:0;z-index:95;display:grid;place-items:center;background:var(--color-text);color:var(--cream-2);pointer-events:none;visibility:hidden;clip-path:inset(0 0 100% 0)}
.curtain__logo{width:clamp(8.5rem,20vw,12.5rem);opacity:0}
.me3-first .curtain,.me3-enter .curtain{visibility:visible;clip-path:inset(0);animation:me3-curtain-out 1s var(--ease-io) forwards}
.me3-first .curtain{animation-delay:1.35s}
.me3-enter .curtain{animation-delay:.12s}
.me3-first .curtain__logo{animation:me3-logo-in 1.3s var(--ease-out) .1s forwards}
.is-leaving .curtain{visibility:visible;animation:me3-curtain-in .6s var(--ease-io) forwards}
.is-leaving .curtain__logo{animation:none;opacity:0}
@keyframes me3-curtain-out{from{clip-path:inset(0)}to{clip-path:inset(0 0 100% 0);visibility:hidden}}
@keyframes me3-curtain-in{from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0)}}
@keyframes me3-logo-in{from{opacity:0;transform:translateY(14px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}

body:after{content:"";position:fixed;inset:0;z-index:70;pointer-events:none;opacity:.055;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

.progress{position:fixed;left:0;right:0;top:var(--admin);z-index:57;height:2px;pointer-events:none}
.progress__bar{display:block;height:100%;background:var(--color-accent);transform:scaleX(0);transform-origin:left}

/* ---------------------------------------------------------------- Barra de navegación */
.nav{--nav-fg:var(--color-text);--nav-logo:var(--color-accent);--nav-inv:var(--color-bg);
	position:fixed;left:0;right:0;top:var(--admin);z-index:55;padding-top:env(safe-area-inset-top);color:var(--nav-fg);transition:background .5s var(--ease),color .5s var(--ease),box-shadow .5s var(--ease),transform .7s var(--ease-out)}
.nav--light:not(.is-scrolled):not(.is-menu){--nav-fg:#fff;--nav-logo:var(--cream-2);--nav-inv:var(--color-text)}
@media (max-width:899px){.nav--home:not(.is-scrolled):not(.is-menu){--nav-fg:#fff;--nav-logo:var(--cream-2);--nav-inv:var(--color-text)}}
.nav.is-scrolled{background:rgba(245,242,235,.82);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 1px 0 rgba(34,33,29,.08)}
.nav.is-hidden:not(.is-menu){transform:translateY(calc(-100% - var(--admin) - 4px))}
.nav__inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;height:var(--nav-h);max-width:1400px;margin:0 auto;padding:0 var(--gutter)}
.nav__side{display:flex;align-items:center;gap:1.5rem;min-width:0}
.nav__side--r{justify-content:flex-end}
.nav__brand{display:inline-flex;align-items:center;justify-content:center;min-height:48px;color:var(--nav-logo);transition:color .5s var(--ease)}
.nav__brand .logo-mark{height:2.75rem;transition:transform .6s var(--ease-out)}
.nav.is-scrolled .nav__brand .logo-mark{transform:scale(.86)}
.nav__menu,.nav__tools,.nav__tel{display:none}
.nav__lang{display:inline-flex;align-items:center;font-size:var(--text-xs);letter-spacing:.2em;font-weight:500}
.nav__lang>*{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding-left:.2em;text-decoration:none}
.nav__lang>a{opacity:.55;transition:opacity .3s}
.nav__lang>a:hover,.nav__lang>a:focus-visible{opacity:1}
.nav__lang>*+*{position:relative}
.nav__lang>*+*:before{content:"";position:absolute;left:0;top:50%;width:1px;height:.9em;margin-top:-.45em;background:currentColor;opacity:.35}
.nav__lang--m{margin-left:-.75rem}
.nav__burger{width:48px;height:48px;margin-right:-4px;display:inline-flex;flex-direction:column;justify-content:center;align-items:flex-end;gap:7px;background:none;border:0;cursor:pointer;padding:0 4px}
.nav__burger span{display:block;width:28px;height:1px;background:currentColor;transition:transform .55s var(--ease-out),width .55s var(--ease-out)}
.nav__burger span:last-child{width:18px}
.nav.is-menu .nav__burger span:first-child{transform:translateY(4px) rotate(45deg)}
.nav.is-menu .nav__burger span:last-child{width:28px;transform:translateY(-4px) rotate(-45deg)}
@media (min-width:1000px){
	.nav__lang--m,.nav__burger{display:none}
	.nav__menu,.nav__tools{display:flex;align-items:center}
	.nav__tel{display:inline-flex}
	.nav__inner{column-gap:clamp(1.75rem,7vw - 2.5rem,4rem)}
	.nav__side{justify-content:space-between;gap:2rem}
	.nav__side--l .nav__menu{margin-left:auto}
	.nav__side--r .nav__menu{margin-right:auto}
	.nav__brand .logo-mark{height:3.4rem}
	.nav__links{display:flex;align-items:center;gap:clamp(1.5rem,5vw - 1.5rem,2.25rem);font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;font-weight:500}
	.nav__links a{text-decoration:none;position:relative;padding:.5rem 0;white-space:nowrap}
	.nav__links a:after{content:"";position:absolute;left:0;bottom:.2rem;width:100%;height:1px;background:var(--color-accent);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease-out)}
	.nav__links a:hover:after,.nav__links a[aria-current=page]:after{transform:scaleX(1);transform-origin:left}
	.nav__tel{align-items:center;gap:.6rem;min-height:44px;font-size:var(--text-xs);letter-spacing:.14em;font-weight:500;text-decoration:none;opacity:.85}
	.nav__tel:hover{opacity:1}
	.nav__tel svg{width:16px;height:16px;flex:none}
	.nav__tel span{display:none}
	.nav__tools{gap:1rem}
	.nav__lang>*{min-width:2rem}
	.nav__cta{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;min-height:44px;padding:.8rem 1.3rem;border:1px solid currentColor;font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;font-weight:500;text-decoration:none;transition:color .45s var(--ease-out)}
	.nav__cta:before{content:"";position:absolute;inset:0;z-index:-1;background:var(--nav-fg);transform:scaleY(0);transform-origin:50% 100%;transition:transform .5s var(--ease-out)}
	.nav__cta:hover{color:var(--nav-inv)}
	.nav__cta:hover:before{transform:scaleY(1)}
}
@media (min-width:1000px) and (max-width:1199px){
	/* En español «Sobre mí · Contacto · EN|ES · Consulta» no cabe a 1000 px con los huecos normales */
	.nav__side{gap:1.5rem}
	.nav__tools{gap:.5rem}
	.nav__cta{padding-left:1rem;padding-right:1rem}
}
@media (min-width:1280px){.nav__tel span{display:inline}}

/* Menú móvil */
.menu{position:fixed;inset:0;z-index:54;visibility:hidden;pointer-events:none;transition:visibility 0s .8s}
.menu.is-open{visibility:visible;pointer-events:auto;transition-delay:0s}
.menu__panel{position:absolute;inset:0;min-height:100dvh;overflow-y:auto;background:var(--color-bg);padding:calc(var(--admin) + env(safe-area-inset-top) + var(--nav-h) + 1.5rem) var(--gutter) calc(2rem + env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:space-between;clip-path:inset(0 0 100% 0);transition:clip-path .8s var(--ease-io)}
.menu.is-open .menu__panel{clip-path:inset(0)}
.menu__links li{overflow:clip;border-bottom:1px solid rgba(34,33,29,.08)}
.menu__links a{display:flex;align-items:baseline;gap:1rem;min-height:48px;padding:.35rem 0;font-family:var(--ff-serif),Georgia,serif;font-size:clamp(2.2rem,9vw,3.4rem);font-weight:300;line-height:1.2;text-decoration:none;transform:translateY(105%);transition:transform .3s var(--ease)}
.menu.is-open .menu__links a{transform:none;transition:transform .9s var(--ease-out) calc(.28s + var(--i) * .06s)}
.menu__links a[aria-current=page] .menu__label{font-style:italic;color:var(--color-accent)}
.menu__num{font-family:var(--ff-sans),sans-serif;font-size:var(--text-xs);color:var(--color-accent);letter-spacing:.15em}
.menu__foot{display:flex;flex-direction:column;gap:.1rem;margin-top:2rem;opacity:0;transform:translateY(12px);transition:opacity .2s,transform .2s}
.menu.is-open .menu__foot{opacity:1;transform:none;transition:opacity .6s .6s,transform .8s var(--ease-out) .6s}
.menu__foot a{min-height:48px;display:flex;align-items:center;gap:.75rem;font-size:var(--text-sm);color:var(--color-muted);text-decoration:none}
.menu__foot svg{width:18px;height:18px;color:var(--color-accent);flex:none}
@media (min-width:1000px){.menu{display:none}}

/* ---------------------------------------------------------------- Secciones */
.section{position:relative;padding:var(--section-y) 0;overflow:hidden}
.section--surface{background:var(--color-surface)}
.section-head{max-width:760px;margin-bottom:clamp(2.5rem,6vw,4rem);position:relative}
.section-head--split{max-width:none;display:grid;gap:.5rem}
.section-head--row{max-width:none;display:grid;gap:1rem;align-items:end}
.section-head__aside{max-width:420px}
.section-head__lede{max-width:62ch}
@media (min-width:900px){
	.section-head--split{grid-template-columns:1fr 2fr;align-items:start}
	.section-head--row{grid-template-columns:1.4fr 1fr}
}

/* Fotos: contenedor con máscara + capa interior para parallax y escala */
.me3-media{position:relative;overflow:hidden;background:var(--color-surface);display:block}
.me3-par{position:absolute;inset:-8% 0;will-change:transform}
.me3-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-out)}
.settings__card:hover .me3-media img,.stack__row:hover .me3-media img{transform:scale(1.05)}

/* Portada: hero partido */
.hero{position:relative;overflow:hidden;padding-top:calc(var(--admin) + var(--nav-h) + env(safe-area-inset-top) + 1.5rem)}
.hero__grid{display:grid;gap:2rem}
.hero__title{font-size:clamp(2.6rem,11.6vw,3.4rem)}
.hero__title em{font-weight:300}
.hero__lead{max-width:30ch;margin-top:1.5rem}
.hero__lead,.hero__meta{color:var(--color-muted)}
.hero__meta{margin-top:1.75rem;font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase}
.hero__visual{position:relative}
.hero__media{min-height:62vh;margin:0 calc(var(--gutter) * -1)}
.badge{display:none}
@media (max-width:899px){
	.hero{min-height:100svh;display:flex;align-items:flex-end;padding-bottom:2.5rem;color:#fff}
	.hero__grid,.hero__visual{position:static}
	.hero__text{position:relative;z-index:1}
	.hero__media{position:absolute!important;inset:0;margin:0;min-height:0}
	.hero__media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(34,33,29,.3),rgba(34,33,29,.15) 18%,rgba(34,33,29,.62) 42%,rgba(34,33,29,.82))}
	.hero .eyebrow{color:var(--cream)}
	.hero__title em{color:var(--cream)}
	.hero__lead,.hero__meta{color:rgba(255,255,255,.86)}
	.hero .btn{--fg:#fff;--bd:rgba(255,255,255,.8);--sweep:var(--color-bg);--sweep-fg:var(--color-text)}
	.hero .btn--solid{--bg:var(--color-bg);--fg:var(--color-text);--bd:var(--color-bg);--sweep:var(--color-accent);--sweep-fg:#fff}
}
@media (min-width:900px){
	.hero{padding-top:calc(var(--admin) + var(--nav-h) + 2rem)}
	.hero__grid{grid-template-columns:5fr 6fr;align-items:end;gap:4rem;min-height:calc(100vh - var(--admin) - var(--nav-h) - 2rem)}
	.hero__text{padding-bottom:4rem}
	.hero__title{font-size:clamp(3.4rem,5.9vw,6.1rem)}
	.hero__media{min-height:calc(100vh - var(--admin) - var(--nav-h) - 2rem);margin:0 calc((100vw - min(100vw,1280px)) / -2 - var(--gutter)) 0 0}
	.badge{position:absolute;left:0;bottom:3.5rem;z-index:2;margin-left:-4.25rem;width:8.5rem;height:8.5rem;border-radius:50%;display:grid;place-items:center;background:var(--color-bg);color:var(--color-accent);text-decoration:none;box-shadow:0 18px 40px -24px rgba(34,33,29,.5);transition:background .5s var(--ease),color .5s var(--ease)}
	.badge:hover{background:var(--color-text);color:var(--cream)}
	.badge__ring{position:absolute;inset:.55rem;width:calc(100% - 1.1rem);height:calc(100% - 1.1rem);overflow:visible;animation:me3-spin 26s linear infinite}
	.badge__ring text{font:500 9.4px var(--ff-sans),sans-serif;letter-spacing:.2em;text-transform:uppercase;fill:currentColor}
	.badge__arrow{font-family:var(--ff-serif),Georgia,serif;font-size:1.9rem;line-height:1;color:var(--color-text);transition:transform .5s var(--ease-out),color .5s}
	.badge:hover .badge__arrow{transform:translateY(5px);color:var(--cream)}
}
@media (min-width:1200px){
	.hero__title{font-size:clamp(4.9rem,6.5vw,6.9rem)}
	.hero__title .line{white-space:nowrap}
}
@keyframes me3-spin{to{transform:rotate(1turn)}}
.hero--about .hero__media img{object-position:50% 22%}

/* Intro */
.intro__grid{display:grid;gap:2.5rem;position:relative}
.intro__quote{font-size:clamp(1.9rem,4.4vw,3.2rem)}
.intro__media{min-height:115vw}
@media (min-width:900px){
	.intro__grid{grid-template-columns:6fr 4fr;gap:5rem;align-items:center}
	.intro__media{min-height:0;aspect-ratio:3/4;margin-bottom:calc(var(--section-y) * -1.4)}
}

/* Servicios en pila */
.stack{display:grid;gap:clamp(3.5rem,8vw,6rem)}
.stack__row{display:grid;gap:1.5rem}
.stack__media{min-height:105vw}
.stack__num{display:block;font-family:var(--ff-serif),Georgia,serif;font-size:clamp(3.5rem,8vw,6rem);line-height:1;color:var(--color-accent);opacity:.55;font-weight:300;margin-bottom:.5rem}
.stack__text .subtitle{margin-bottom:.6rem}
@media (min-width:900px){
	.stack__row{grid-template-columns:7fr 5fr;gap:5rem;align-items:center}
	.stack__media{min-height:0;aspect-ratio:4/3}
	.stack__row--rev{grid-template-columns:5fr 7fr}
	.stack__row--rev .stack__media{order:2}
}

/* Cinta de palabras */
.marquee{overflow:hidden;padding:clamp(1.75rem,4vw,2.75rem) 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap;-webkit-user-select:none;user-select:none}
.marquee__track{display:flex;width:max-content;will-change:transform}
.marquee__group{display:flex;align-items:center;gap:clamp(1.5rem,4vw,3.25rem);padding-right:clamp(1.5rem,4vw,3.25rem);font-family:var(--ff-serif),Georgia,serif;font-weight:300;font-size:clamp(2.4rem,6.5vw,5.5rem);line-height:1.05;letter-spacing:-.02em}
.marquee__group span:nth-child(4n+3){font-style:italic;color:var(--color-accent)}
.marquee__group i{font-style:normal;font-size:.32em;color:var(--color-accent)}

/* Separadores a sangre */
.separator{position:relative;min-height:70vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--color-text)}
.separator--tall{min-height:90vh}
.separator__media{position:absolute!important;inset:0}
.separator:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(34,33,29,0) 30%,rgba(34,33,29,.62));pointer-events:none}
.separator__text{position:relative;z-index:1;padding-bottom:clamp(3rem,8vw,6rem)}
.separator__title{font-size:var(--text-xl);line-height:1.08;max-width:16ch;margin-bottom:1.5rem}
.separator__title--long{max-width:22ch}
.page-hero:not(.page-hero--editorial) em,.separator__title em{color:var(--cream)}

/* Pasos */
.steps{display:grid;gap:2.5rem}
.steps__item{border-top:1px solid rgba(34,33,29,.15);padding-top:1.5rem}
.steps__num{display:block;font-family:var(--ff-serif),Georgia,serif;font-size:clamp(4rem,10vw,6.5rem);line-height:.9;font-weight:300;color:var(--color-accent);margin-bottom:1rem}
.steps__title{font-size:clamp(1.35rem,2.4vw,1.75rem)}
@media (min-width:700px){.steps{grid-template-columns:repeat(2,1fr);gap:3rem}}
@media (min-width:1100px){.steps{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* Galería horizontal */
.film{padding-bottom:clamp(3rem,7vw,5rem)}
.filmstrip{display:flex;gap:.75rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 var(--gutter) 1.5rem;scrollbar-width:none;overscroll-behavior-x:contain}
.filmstrip::-webkit-scrollbar{display:none}
.filmstrip__item{position:relative;flex:0 0 78vw;aspect-ratio:2/3;scroll-snap-align:center;border:0;padding:0;cursor:zoom-in;overflow:hidden;background:var(--color-surface)}
.filmstrip__item img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease-out),filter 1s var(--ease-out)}
.filmstrip__item:hover img{transform:scale(1.05)}
.filmstrip__num{position:absolute;left:1rem;bottom:.75rem;color:#fff;font-family:var(--ff-serif),Georgia,serif;font-size:1.6rem;text-shadow:0 1px 12px rgba(0,0,0,.4)}
.film__bar{display:flex;align-items:center;gap:1.25rem;margin-top:.5rem;font-size:var(--text-xs);letter-spacing:.2em;text-transform:uppercase;color:var(--color-muted)}
.film__count b{font-weight:500;color:var(--color-text)}
.film__progress{position:relative;flex:1;height:1px;background:rgba(34,33,29,.15)}
.film__progress i{position:absolute;inset:0;background:var(--color-accent);transform:scaleX(.125);transform-origin:left}
@media (min-width:900px){
	.filmstrip{padding-left:max(var(--gutter),calc((100vw - 1280px) / 2 + var(--gutter)));gap:1rem}
	.filmstrip__item{flex-basis:28vw;max-width:420px}
	.film.is-pinned{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--nav-h) + 1rem) 0 2rem}
	.film.is-pinned .section-head{margin-bottom:2rem}
	.film.is-pinned .filmstrip{overflow:visible;scroll-snap-type:none;width:max-content;padding-right:var(--gutter);padding-bottom:0}
	.film.is-pinned .filmstrip__item{flex:0 0 auto;max-width:none;height:clamp(16rem,100vh - 27rem,40rem)}
	.film.is-pinned .film__hint{display:none}
	.film.is-pinned .film__bar{margin-top:1.75rem}
}

/* Sobre mí */
.about__grid,.story__grid{display:grid;gap:2.5rem}
.about__media,.story__media{min-height:125vw}
.signature{font-family:var(--ff-serif),Georgia,serif;font-style:italic;font-size:clamp(2rem,3.4vw,2.6rem);color:var(--color-accent);margin-top:1.5rem;line-height:1.2;width:max-content}
.story__quote{font-size:clamp(1.7rem,3.4vw,2.7rem);line-height:1.18}
@media (min-width:900px){
	.about__grid,.story__grid{grid-template-columns:11fr 9fr;gap:5rem;align-items:center}
	.about__media,.story__media{min-height:0;aspect-ratio:4/5}
}

/* Contacto */
.contact__grid{display:grid;gap:3rem;position:relative}
.contact__list{margin-top:2rem;display:grid;gap:.25rem}
.contact__list li{display:grid;grid-template-columns:7rem 1fr;gap:1rem;padding:.85rem 0;border-bottom:1px solid var(--line);font-size:var(--text-sm);word-break:break-word}
.contact__list span{font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--color-accent);padding-top:.2rem}
.contact__list a{text-decoration:none;background:linear-gradient(var(--color-accent),var(--color-accent)) 0 100%/0 1px no-repeat;transition:background-size .5s var(--ease-out)}
.contact__list a:hover{background-size:100% 1px}
.contact--hero{padding-top:calc(var(--admin) + var(--nav-h) + clamp(3rem,8vw,6rem))}
.contact__title{font-size:clamp(2.6rem,6.2vw,5.6rem);margin-bottom:1.25rem}
.contact--hero .contact__title{font-size:clamp(2.6rem,4.3vw,4.6rem)}
.contact__lead{max-width:34ch}
.contact--hero .contact__lead{color:var(--color-muted)}
@media (min-width:900px){.contact__grid{grid-template-columns:5fr 7fr;gap:6rem}}

.form,.form__row{display:grid;gap:1.1rem}
@media (min-width:640px){.form__row{grid-template-columns:1fr 1fr}}
.contact--hero .form{background:var(--color-surface);padding:clamp(1.5rem,4vw,3rem)}
.field{display:grid;gap:.35rem}
.field label{font-size:var(--text-xs);letter-spacing:.18em;text-transform:uppercase;font-weight:500;color:var(--color-muted)}
.field input,.field select,.field textarea{width:100%;min-height:48px;padding:.75rem 0;border:0;border-bottom:1px solid rgba(34,33,29,.3);background:transparent;font:300 var(--text-base) var(--ff-sans),sans-serif;color:var(--color-text);border-radius:0;transition:border-color .4s var(--ease)}
.field select{-webkit-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--color-accent) 50%),linear-gradient(135deg,var(--color-accent) 50%,transparent 50%);background-position:calc(100% - 12px) 55%,calc(100% - 7px) 55%;background-size:5px 5px;background-repeat:no-repeat}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--color-accent)}
.field textarea{resize:vertical}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.check{display:flex;gap:.75rem;align-items:flex-start;font-size:var(--text-sm);color:var(--color-muted);min-height:48px;cursor:pointer}
.check input{width:20px;height:20px;margin-top:.2rem;accent-color:var(--color-accent);flex:none}
.form__status{font-size:var(--text-sm);padding-left:1rem;border-left:1px solid currentColor}
.form__status:empty{display:none}
.form__status.is-ok{color:#4f6b3d}
.form__status.is-error{color:#9b3b2e}

/* Detalle de servicio */
.service-detail__grid{display:grid;gap:2.5rem}
.service-detail__media{min-height:110vw}
.service-detail__text{position:relative}
.includes{margin-top:1.75rem;display:grid;gap:.2rem}
.includes li{display:flex;gap:.9rem;align-items:baseline;padding:.7rem 0;border-bottom:1px solid var(--line);font-size:var(--text-sm)}
.includes li:before{content:"";width:1.25rem;height:1px;background:var(--color-accent);flex:none;transform:translateY(-.25rem)}
@media (min-width:900px){
	.service-detail__grid{grid-template-columns:7fr 5fr;gap:5rem;align-items:center}
	.service-detail__grid--rev{grid-template-columns:5fr 7fr}
	.service-detail__grid--rev .service-detail__media{order:2}
	.service-detail__media{min-height:0;aspect-ratio:4/5}
}

/* Todo bajo control (bodas) */
.control__grid{display:grid;gap:2.5rem;position:relative}
.control__list{border-top:1px solid rgba(34,33,29,.15)}
.control__list li{display:grid;grid-template-columns:3.5rem 1fr;align-items:baseline;padding:1.35rem 0;border-bottom:1px solid rgba(34,33,29,.15);font-family:var(--ff-serif),Georgia,serif;font-size:clamp(1.35rem,2.4vw,1.85rem);line-height:1.25}
.control__list span{font-family:var(--ff-sans),sans-serif;font-size:var(--text-xs);letter-spacing:.2em;color:var(--color-accent)}
@media (min-width:900px){.control__grid{grid-template-columns:5fr 6fr;gap:6rem;align-items:center}}

/* Dúo de fotos (sobre mí) */
.duo{display:grid;gap:2rem}
.duo__media--a{min-height:120vw}
.duo__media--b{min-height:80vw;width:70%;justify-self:end}
@media (min-width:900px){
	.duo{grid-template-columns:5fr 5fr 3fr;gap:3.5rem;align-items:center}
	.duo__media--a{min-height:0;aspect-ratio:4/5}
	.duo__media--b{min-height:0;width:100%;aspect-ratio:3/4;margin-top:10rem}
}

/* Tipos de evento */
.settings{display:grid;gap:3rem}
.settings__card{scroll-margin-top:calc(var(--nav-h) + 2rem)}
.settings__media{min-height:115vw;margin-bottom:1.5rem}
.settings__num{display:block;font-size:var(--text-xs);letter-spacing:.2em;color:var(--color-accent);margin-bottom:.6rem;font-weight:500}
.settings .subtitle{margin-bottom:.6rem}
@media (min-width:900px){
	.settings{grid-template-columns:repeat(3,1fr);gap:2.5rem}
	.settings__media{min-height:0;aspect-ratio:3/4}
	.settings__card:nth-child(2){margin-top:4rem}
}

/* Cabecera de página interior */
.page-hero{position:relative;min-height:72vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden;background:var(--color-text)}
.page-hero__media{position:absolute!important;inset:0}
.page-hero__media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,25,21,.58),rgba(26,25,21,.46) 30%,rgba(26,25,21,.52) 60%,rgba(26,25,21,.86))}
@media (min-width:900px){.page-hero__media:after{background:linear-gradient(90deg,rgba(26,25,21,.66),rgba(26,25,21,.4) 42%,rgba(26,25,21,0) 74%),linear-gradient(180deg,rgba(26,25,21,.45),rgba(26,25,21,0) 26%,rgba(26,25,21,0) 60%,rgba(26,25,21,.5))}}
.page-hero:not(.page-hero--editorial) .page-hero__content{text-shadow:0 1px 28px rgba(20,19,16,.28)}
.page-hero__content{position:relative;z-index:1;padding-top:calc(var(--admin) + var(--nav-h) + env(safe-area-inset-top) + 2rem);padding-bottom:clamp(3rem,8vw,5.5rem)}
.page-hero__content .lead{max-width:34ch;margin-top:1.5rem}
.page-hero--editorial{color:var(--color-text);min-height:78vh;align-items:center;background:var(--color-bg)}
.page-hero--legal{min-height:0;align-items:flex-end}
.page-hero--legal .page-hero__content{padding-top:calc(var(--admin) + var(--nav-h) + clamp(4rem,10vw,7rem));padding-bottom:clamp(2.5rem,5vw,3.5rem)}
.page-hero--legal .display{font-size:clamp(2.6rem,6.4vw,5.4rem)}
@media (min-width:900px){.page-hero{min-height:88vh}.page-hero--legal{min-height:0}}

/* Textos legales */
.section--legal{padding-top:0}
.prose{font-size:var(--text-sm);color:var(--color-muted)}
.prose>*+*{margin-top:1.1rem}
.prose h2,.prose h3,.prose h4{font-family:var(--ff-serif),Georgia,serif;font-weight:400;color:var(--color-text);line-height:1.2;margin-top:2.5rem}
.prose h2{font-size:clamp(1.6rem,3vw,2.1rem)}
.prose h3,.prose h4{font-size:1.35rem}
.prose ul,.prose ol{padding-left:1.25rem}
.prose ul{list-style:disc}
.prose ol{list-style:decimal}
.prose li+li{margin-top:.35rem}
.prose a{color:var(--color-accent);text-underline-offset:3px}
.prose strong{font-weight:500;color:var(--color-text)}
.prose table{width:100%;border-collapse:collapse;font-size:var(--text-xs)}
.prose td,.prose th{border:1px solid var(--line);padding:.5rem;text-align:left;vertical-align:top}

/* Llamada final */
.cta-band__inner{position:relative;text-align:center;max-width:760px}
.cta-band__text{max-width:52ch;margin:0 auto}

/* ---------------------------------------------------------------- Pie */
.footer{position:relative;color:var(--color-bg);overflow:hidden;background:#181714}
.footer__media{position:absolute!important;inset:0;background:#181714}
.footer__media:after{content:"";position:absolute;inset:0;background:rgba(24,23,20,.8)}
.footer__inner{position:relative;padding-top:clamp(5rem,12vw,8rem);padding-bottom:calc(2rem + env(safe-area-inset-bottom))}
.footer__quote p{font-family:var(--ff-serif),Georgia,serif;font-style:italic;font-weight:300;font-size:clamp(1.9rem,4.6vw,3.6rem);line-height:1.15;max-width:24ch}
.footer__quote em{color:var(--cream)}
.footer__quote cite{display:block;margin-top:1.25rem;font-style:normal;font-size:var(--text-xs);letter-spacing:.22em;text-transform:uppercase;color:var(--cream)}
.footer__grid{display:grid;gap:2.5rem;margin-top:clamp(3.5rem,8vw,6rem);padding-top:2.5rem;border-top:1px solid rgba(245,242,235,.2)}
.footer__brand{display:inline-block;color:var(--cream)}
.footer__brand .logo-mark{height:4.6rem}
.footer__note{margin-top:1.25rem;max-width:30ch;font-size:var(--text-sm);color:rgba(245,242,235,.7)}
.footer__links{margin-top:.25rem}
.footer__links li a{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;font-size:var(--text-sm);color:rgba(245,242,235,.85);transition:color .3s}
.footer__links li a:hover{color:var(--cream)}
.footer__legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;margin-top:3rem;font-size:var(--text-xs);letter-spacing:.08em;color:rgba(245,242,235,.5);padding-right:4.5rem}
.footer__legal nav{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem}
.footer__legal a{text-decoration:none;min-height:32px;display:inline-flex;align-items:center}
.footer__legal a:hover{color:var(--cream)}
@media (min-width:800px){.footer__grid{grid-template-columns:2fr 1fr 1fr}}

/* ---------------------------------------------------------------- Botón flotante */
.fab{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:calc(1rem + env(safe-area-inset-bottom));z-index:52;display:flex;flex-direction:column;align-items:flex-end;gap:.75rem}
.fab__list{display:flex;flex-direction:column;align-items:flex-end;gap:.6rem}
.fab__list li{opacity:0;visibility:hidden;transform:translateY(14px) scale(.92);transform-origin:right center;transition:opacity .25s,transform .4s var(--ease-out),visibility 0s .4s}
.fab.is-open .fab__list li,.me3-fail .fab__list li{opacity:1;visibility:visible;transform:none;transition:opacity .35s calc(var(--i) * .06s),transform .55s var(--ease-out) calc(var(--i) * .06s),visibility 0s}
.fab__list a{display:flex;align-items:center;gap:.7rem;text-decoration:none}
.fab__label{background:var(--color-bg);color:var(--color-text);padding:.5rem .9rem;font:500 var(--text-xs)/1 var(--ff-sans),sans-serif;letter-spacing:.18em;text-transform:uppercase;border-radius:var(--radius);box-shadow:0 10px 24px -14px rgba(34,33,29,.55)}
.fab__ico{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--color-bg);color:var(--color-text);box-shadow:0 10px 24px -12px rgba(34,33,29,.55);transition:background .35s,color .35s}
.fab__ico svg{width:20px;height:20px}
.fab__list a:hover .fab__ico,.fab__list a:focus-visible .fab__ico{background:var(--color-accent);color:#fff}
.fab__toggle{position:relative;width:58px;height:58px;border:0;border-radius:50%;background:var(--color-text);color:var(--cream-2);box-shadow:0 14px 32px -12px rgba(34,33,29,.7);cursor:pointer;transition:background .35s,transform .45s var(--ease-out)}
.fab__toggle:hover{background:var(--color-accent);transform:translateY(-2px)}
.fab__i{position:absolute;inset:0;display:grid;place-items:center;transition:transform .5s var(--ease-out),opacity .3s}
.fab__i svg{width:24px;height:24px}
.fab__i--x{opacity:0;transform:rotate(-90deg) scale(.6)}
.fab.is-open .fab__i--chat{opacity:0;transform:rotate(90deg) scale(.6)}
.fab.is-open .fab__i--x{opacity:1;transform:none}
.fab__toggle:before{content:"";position:absolute;inset:0;border-radius:50%;border:1px solid var(--color-accent);opacity:0;animation:me3-ping 3.2s var(--ease-out) 3s infinite}
.fab.is-open .fab__toggle:before{animation:none}
@keyframes me3-ping{0%{transform:scale(1);opacity:.7}70%,to{transform:scale(1.6);opacity:0}}

/* ---------------------------------------------------------------- Visor de fotos */
.lightbox{position:fixed;inset:0;z-index:80;background:rgba(20,19,16,.94);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .45s var(--ease)}
.lightbox.is-open{opacity:1}
.lightbox__frame{position:relative;width:min(92vw,1100px);height:80vh;margin:0}
.lightbox__frame img{width:100%;height:100%;object-fit:contain;transform:scale(.96);transition:transform .7s var(--ease-out),opacity .35s}
.lightbox.is-open .lightbox__frame img{transform:none}
.lightbox__frame img.is-swap{opacity:0}
.lightbox__caption{position:absolute;bottom:-2.25rem;left:1rem;right:1rem;text-align:center;color:rgba(255,255,255,.75);font-size:var(--text-xs);letter-spacing:.08em}
.lightbox__count{position:absolute;top:calc(1.6rem + env(safe-area-inset-top));left:1.5rem;color:rgba(255,255,255,.7);font-size:var(--text-xs);letter-spacing:.2em}
.lightbox__btn{position:absolute;width:52px;height:52px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.3);background:rgba(20,19,16,.4);color:#fff;cursor:pointer;border-radius:50%;transition:background .3s,border-color .3s}
.lightbox__btn:hover{background:var(--color-accent);border-color:var(--color-accent)}
.lightbox__btn svg{width:22px;height:22px}
.lightbox__close{top:calc(1rem + env(safe-area-inset-top));right:1rem}
.lightbox__prev{left:1rem}
.lightbox__next,.lightbox__prev{top:50%;transform:translateY(-50%)}
.lightbox__next{right:1rem}

/* ---------------------------------------------------------------- Cursor «Ver» */
.cursor{position:fixed;left:0;top:0;z-index:85;width:0;height:0;pointer-events:none}
.cursor span{position:absolute;left:-2.75rem;top:-2.75rem;width:5.5rem;height:5.5rem;border-radius:50%;display:grid;place-items:center;background:var(--color-bg);color:var(--color-text);font:500 var(--text-xs)/1 var(--ff-sans),sans-serif;letter-spacing:.2em;text-transform:uppercase;transform:scale(0);transition:transform .5s var(--ease-out)}
.cursor.is-on span{transform:scale(1)}
.has-cursor [data-cursor]{cursor:none}
@media (hover:none),(pointer:coarse){.cursor{display:none}}

/* ---------------------------------------------------------------- Estados iniciales (solo con JS y con movimiento) */
@media (prefers-reduced-motion:no-preference){
	.js:not(.me3-fail) [data-hero-title] .line>span{transform:translate3d(0,112%,0)}
	.js:not(.me3-fail) [data-hero-in]{opacity:0;transform:translate3d(0,1.5rem,0)}
	.js:not(.me3-fail) [data-reveal]{opacity:0;transform:translate3d(0,2rem,0)}
	.js:not(.me3-fail) [data-split]{visibility:hidden}
	.js:not(.me3-fail) [data-clip]{clip-path:inset(100% 0% 0% 0%)}
	.js:not(.me3-fail) [data-line]{transform:scaleX(0)}
	.js:not(.me3-fail) [data-sign]{clip-path:inset(0% 100% 0% 0%)}
	.js:not(.me3-fail) .hero__media{clip-path:inset(100% 0% 0% 0%)}
	.js:not(.me3-fail) .page-hero__media{opacity:0}
	.js:not(.me3-fail) .badge{opacity:0}
}

/* ---------------------------------------------------------------- Movimiento reducido */
@media (prefers-reduced-motion:reduce){
	html{scroll-behavior:auto}
	.curtain{display:none}
	*,:after,:before{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
