/* Hotel Cibeles V2 — the home is a continuous visual stage. */
.page-home-v2{background:var(--deep);color:var(--ivory);overflow-x:clip}
.page-home-v2 main{background:var(--deep)}
.page-home-v2 .site-header{color:var(--ivory)}
.page-home-v2 .site-header.is-dark{background:rgba(35,26,22,.28);box-shadow:0 1px 0 rgba(255,255,255,.05)}
.page-home-v2 .site-header.is-on-hero{background:linear-gradient(180deg,rgba(20,15,13,.55),transparent)}
.page-home-v2 .button-ghost{border:1px solid rgba(255,255,255,.52);color:#fff;background:rgba(30,22,18,.08);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.page-home-v2 .button-ghost:hover{background:rgba(255,255,255,.13)}

/* Resilient, semantic fallback shown when GSAP is unavailable or motion is reduced. */
.cinematic-journey{position:relative;background:var(--deep)}
.scene-media,.scene-progress{display:none}
.cinematic-scene{position:relative;isolation:isolate;min-height:100svh;min-height:100dvh;display:flex;align-items:center;overflow:hidden;padding:calc(var(--nav-h) + 8vh) max(7vw,28px) max(8vh,64px);color:var(--ivory);background-position:center;background-size:cover}
.cinematic-scene::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(28,21,18,.83) 0%,rgba(28,21,18,.5) 42%,rgba(28,21,18,.16) 75%),linear-gradient(0deg,rgba(24,18,15,.62),transparent 55%)}
.scene-hero{background-image:url("assets/images/piscina-lg.webp")}
.scene-welcome{background-image:url("assets/images/recepcion-lg.webp");justify-content:flex-end}
.scene-welcome::before{background:linear-gradient(270deg,rgba(30,22,18,.83),rgba(30,22,18,.18) 70%)}
.scene-rest{background-image:url("assets/images/habitacion-lg.webp")}
.scene-services{background:var(--cacao)}
.scene-services::before{background:radial-gradient(circle at 80% 15%,rgba(221,208,189,.09),transparent 32%),linear-gradient(135deg,#4e3a31,#30241e)}
.scene-location{background-image:url("assets/images/fachada-lg.webp")}
.scene-closing{background-image:linear-gradient(rgba(36,27,23,.9),rgba(36,27,23,.96)),url("assets/images/fachada-lg.webp");justify-content:center;text-align:center}
.scene-copy{position:relative;z-index:2;width:min(680px,100%)}
.scene-copy--welcome{width:min(580px,43vw)}
.scene-copy--closing{display:flex;flex-direction:column;align-items:center}
.scene-copy h1,.scene-copy h2,.services-editorial h2{font-family:var(--serif);font-weight:500;line-height:.86;letter-spacing:-.052em;text-wrap:balance}
.scene-copy h1{font-size:clamp(4.9rem,8.25vw,9.6rem);max-width:1050px}
.scene-copy h2,.services-editorial h2{font-size:clamp(4.2rem,6.4vw,7.7rem)}
.scene-copy em,.services-editorial em{font-style:italic;font-weight:400}
.scene-kicker,.scene-index{font-family:var(--sans);font-size:.64rem;line-height:1.5;font-weight:700;letter-spacing:.23em;color:var(--gold);margin-bottom:25px}
.scene-kicker span{padding:0 .7em}
.scene-lede,.scene-copy>p:not(.scene-kicker):not(.scene-index){max-width:510px;margin-top:29px;color:rgba(255,255,255,.86);font-size:clamp(.86rem,1vw,1rem);line-height:1.85}
.scene-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.scene-text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:46px;margin-top:35px;padding:0 0 11px;border-bottom:1px solid rgba(255,255,255,.64);font-size:.76rem;font-weight:700;transition:gap .25s var(--ease),color .25s var(--ease)}
.scene-text-link:hover{gap:58px;color:var(--gold)}
.scene-facts{list-style:none;margin:37px 0 0;padding:0;border-top:1px solid rgba(255,255,255,.28)}
.scene-facts li{display:flex;gap:20px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.22);font-size:.73rem;letter-spacing:.02em}
.scene-facts li span{color:var(--gold);font-size:.65rem}
.scene-scroll-cue{position:absolute;left:max(7vw,28px);bottom:max(4.2vh,30px);display:flex;align-items:center;gap:18px;font-size:.56rem;letter-spacing:.18em;font-weight:700;color:rgba(255,255,255,.8)}
.scene-scroll-cue__line{position:relative;width:1px;height:44px;background:rgba(255,255,255,.35);overflow:hidden}
.scene-scroll-cue__line::after{content:"";position:absolute;left:0;top:-50%;width:100%;height:50%;background:var(--ivory);animation:cinematic-scroll-cue 2.4s ease-in-out infinite}
@keyframes cinematic-scroll-cue{to{top:100%}}
.scene-coordinate{position:absolute;right:max(7vw,28px);bottom:max(4.2vh,30px);font-size:.56rem;letter-spacing:.17em;color:rgba(255,255,255,.68)}

.services-editorial{position:relative;z-index:2;width:min(1240px,100%);margin:auto;display:grid;grid-template-columns:1.38fr 1fr 1fr;gap:30px 4vw;align-items:start}
.services-editorial__heading{grid-row:span 2;align-self:center;padding-right:3vw}
.services-editorial h2{font-size:clamp(3.8rem,5.7vw,7rem)}
.services-editorial__cta{display:inline-flex;align-items:center;gap:15px;margin-top:28px;padding-bottom:9px;border-bottom:1px solid rgba(245,239,230,.46);color:rgba(245,239,230,.9);font-size:.68rem;font-weight:700;letter-spacing:.035em;transition:color .25s,border-color .25s,gap .25s var(--ease)}
.services-editorial__cta .icon{width:16px;height:16px}
.services-editorial__cta:hover,.services-editorial__cta:focus-visible{gap:20px;color:var(--gold);border-color:var(--gold)}
.service-group{min-height:164px;padding:13px 0 28px;border-top:1px solid rgba(245,239,230,.25)}
.service-group>span{display:block;color:var(--gold);font-size:.6rem;letter-spacing:.12em;margin:0 0 13px}
.service-group h3{font-size:clamp(2rem,2.5vw,3.1rem);line-height:1}
.service-group p{color:#dfd1c4;font-size:.72rem;line-height:1.75;margin-top:10px;max-width:310px}
.services-transition-line{position:absolute;z-index:3;left:max(7vw,28px);right:max(7vw,28px);bottom:max(5.5vh,44px);display:flex;align-items:center;gap:18px;color:rgba(245,239,230,.48);font-size:.52rem;letter-spacing:.18em;pointer-events:none}
.services-transition-line i{display:block;height:1px;flex:1;background:linear-gradient(90deg,rgba(207,176,121,.78),rgba(245,239,230,.12));transform:scaleX(0);transform-origin:left center}
.cinematic-footer{position:relative;z-index:4;background:var(--deep)}

/* Enhanced mode: one sticky viewport, layered photographs and reversible scroll choreography. */
.has-cinematic .cinematic-journey{height:940svh;height:940dvh}
.has-cinematic .cinematic-stage{position:sticky;top:0;height:100svh;height:100dvh;min-height:610px;overflow:hidden;isolation:isolate;background:var(--deep)}
.has-cinematic .scene-media{display:block;position:absolute;inset:0;z-index:0;overflow:hidden;background:var(--deep)}
.has-cinematic .scene-image,.has-cinematic .scene-color,.has-cinematic .scene-vignette,.has-cinematic .scene-grain,.has-cinematic .scene-curtain{position:absolute;inset:0;margin:0}
.has-cinematic .scene-image{overflow:hidden;will-change:clip-path,transform;transform:translateZ(0)}
.has-cinematic .scene-image picture{display:block;width:100%;height:100%}
.has-cinematic .scene-image img{width:100%;height:100%;max-width:none;object-fit:cover;will-change:transform;transform:translateZ(0)}
.has-cinematic .scene-image--pool{z-index:1}
.has-cinematic .scene-image--pool img{object-position:50% 52%}
.has-cinematic .scene-image--reception{z-index:2;clip-path:inset(0 100% 0 0)}
.has-cinematic .scene-image--reception img{object-position:50% 50%}
.has-cinematic .scene-image--room{z-index:3;clip-path:inset(12% 12% 12% 12%);opacity:0}
.has-cinematic .scene-image--room img{object-position:48% 50%}
.has-cinematic .scene-color{z-index:4;background:radial-gradient(circle at 74% 18%,rgba(221,208,189,.13),transparent 30%),radial-gradient(circle at 18% 82%,rgba(207,176,121,.07),transparent 34%),linear-gradient(135deg,#513c33 0%,#30241e 74%);clip-path:inset(100% 0 0 0)}
.has-cinematic .scene-color::after{content:"";position:absolute;inset:0;opacity:.22;background-image:repeating-linear-gradient(105deg,transparent 0,transparent 3px,rgba(255,255,255,.025) 4px)}
.has-cinematic .scene-image--facade{z-index:5;clip-path:inset(100% 0 0 0)}
.has-cinematic .scene-image--facade img{object-position:50% 50%}
.has-cinematic .scene-vignette{z-index:10;pointer-events:none;background:linear-gradient(90deg,rgba(25,18,15,.76) 0%,rgba(25,18,15,.38) 39%,rgba(25,18,15,.08) 72%),linear-gradient(0deg,rgba(23,17,14,.66),transparent 56%)}
.has-cinematic .scene-grain{z-index:11;pointer-events:none;opacity:.12;background-image:repeating-linear-gradient(101deg,transparent 0,rgba(255,255,255,.04) 1px,transparent 2px,transparent 5px);mix-blend-mode:soft-light}
.has-cinematic .scene-curtain{z-index:12;pointer-events:none;background:var(--deep);opacity:0}
.has-cinematic .cinematic-scene{position:absolute;inset:0;z-index:20;min-height:0;padding:calc(var(--nav-h) + 5vh) max(7vw,28px) max(7vh,58px);background:none;opacity:0;visibility:visible;pointer-events:none;will-change:transform,opacity}
.has-cinematic .cinematic-scene.is-active{pointer-events:auto}
.has-cinematic .cinematic-scene::before{z-index:-1;background:none}
.has-cinematic .scene-hero{opacity:1;align-items:flex-end}
.has-cinematic .scene-hero:not(.is-active) .scene-scroll-cue{opacity:0!important;visibility:hidden!important}
.has-cinematic .scene-welcome{justify-content:flex-end}
.has-cinematic .scene-services{display:flex;align-items:center;padding-top:calc(var(--nav-h) + 4vh);padding-bottom:max(10vh,88px)}
.has-cinematic .scene-closing{background:none}
.has-cinematic .scene-copy--hero{width:min(980px,84vw);padding-bottom:8vh}
.has-cinematic .scene-copy--welcome{margin-left:auto}
.has-cinematic .scene-copy--location{align-self:flex-end;margin-bottom:7vh}
.has-cinematic .scene-copy--closing{margin:auto;text-align:center}
.has-cinematic .scene-copy--closing p{margin-left:auto;margin-right:auto}
.has-cinematic .scene-progress{display:flex;position:absolute;z-index:24;right:2.1vw;top:50%;transform:translateY(-50%);height:190px;flex-direction:column;align-items:center;gap:10px;color:rgba(255,255,255,.62);font-size:.52rem;letter-spacing:.12em}
.scene-progress__line{position:relative;width:1px;flex:1;background:rgba(255,255,255,.23);overflow:hidden}
.scene-progress__line i{position:absolute;left:0;top:0;width:100%;height:20%;background:var(--gold);transform-origin:top;will-change:transform}

@media (max-width:1100px){
  .has-cinematic .cinematic-journey{height:870svh;height:870dvh}
  .scene-copy--welcome{width:min(530px,48vw)}
  .services-editorial{grid-template-columns:1.24fr 1fr 1fr;gap:24px 3vw}
  .has-cinematic .scene-progress{right:1.3vw}
}

@media (max-width:800px){
  .scene-hero{background-image:url("assets/images/mobile/piscina-mobile.png")}
  .scene-welcome{background-image:url("assets/images/mobile/recepcion-mobile.png")}
  .scene-rest{background-image:url("assets/images/mobile/habitacion-mobile.png")}
  .scene-location{background-image:url("assets/images/mobile/fachada-mobile.png")}
  .scene-closing{background-image:linear-gradient(rgba(36,27,23,.9),rgba(36,27,23,.96)),url("assets/images/mobile/fachada-mobile.png")}
  .page-home-v2 .site-header.is-dark{background:linear-gradient(180deg,rgba(28,21,18,.52),transparent);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none}
  .cinematic-scene{padding-left:8vw;padding-right:8vw}
  .scene-copy--welcome{width:min(590px,100%)}
  .services-editorial{display:flex;flex-direction:column;gap:0;width:min(680px,100%);margin:auto}
  .services-editorial__heading{width:100%;padding:0 0 clamp(22px,4vh,40px);max-width:680px}
  .services-editorial h2{font-size:clamp(3.15rem,8vw,5rem);line-height:.9}
  .services-editorial__cta{margin-top:20px}
  .service-group{display:grid;grid-template-columns:42px minmax(0,1fr);column-gap:16px;width:100%;min-height:0;padding:clamp(16px,2.4vh,24px) 0;border-top-color:rgba(245,239,230,.22)}
  .service-group:last-child{border-bottom:1px solid rgba(245,239,230,.22)}
  .service-group>span{grid-column:1;grid-row:1/3;margin:5px 0 0}
  .service-group h3{grid-column:2;font-size:clamp(2rem,5.2vw,2.8rem)}
  .service-group p{grid-column:2;max-width:560px;font-size:.72rem;line-height:1.65;margin-top:8px}
  .services-transition-line{display:none}
  .has-cinematic .cinematic-journey{height:800svh;height:800dvh}
  .has-cinematic .cinematic-stage{min-height:560px}
  .has-cinematic .scene-image--pool img{object-position:54% 50%}
  .has-cinematic .scene-image--reception img{object-position:48% 50%}
  .has-cinematic .scene-image--room img{object-position:44% 50%}
  .has-cinematic .scene-image--facade img{object-position:50% 50%}
  .has-cinematic .scene-vignette{background:linear-gradient(0deg,rgba(25,18,15,.88) 0%,rgba(25,18,15,.58) 42%,rgba(25,18,15,.12) 78%),linear-gradient(90deg,rgba(25,18,15,.25),transparent 75%)}
  .has-cinematic .cinematic-scene{padding:calc(var(--nav-h) + 3.5vh) 8vw max(7vh,55px);align-items:flex-end;justify-content:flex-start}
  .has-cinematic .scene-copy--hero{width:100%;padding-bottom:7vh}
  .has-cinematic .scene-copy--welcome{margin:0 0 6vh}
  .has-cinematic .scene-copy--room{margin-bottom:6vh}
  .has-cinematic .scene-copy--location{margin-bottom:6vh}
  .has-cinematic .scene-services{display:flex;align-items:center;padding-top:calc(var(--nav-h) + 2vh);padding-bottom:4vh}
  .has-cinematic .scene-closing{align-items:center;justify-content:center}
  .has-cinematic .scene-progress{display:none}
}

@media (max-width:560px){
  .cinematic-scene{min-height:100svh;padding:calc(var(--nav-h) + 32px) 23px 56px}
  .scene-copy h1{font-size:clamp(3.65rem,14.6vw,5.4rem);line-height:.89}
  .scene-copy h2{font-size:clamp(3.5rem,13.5vw,5.2rem);line-height:.9}
  .scene-kicker,.scene-index{font-size:.55rem;letter-spacing:.18em;margin-bottom:18px}
  .scene-lede,.scene-copy>p:not(.scene-kicker):not(.scene-index){font-size:.79rem;line-height:1.65;margin-top:20px;max-width:360px}
  .scene-actions{margin-top:25px;gap:9px}
  .scene-actions .button{padding:14px 17px;font-size:.63rem;gap:11px}
  .scene-actions .button-ghost{background:rgba(30,22,18,.23)}
  .scene-text-link{margin-top:25px;font-size:.68rem;gap:20px}
  .scene-facts{margin-top:24px}
  .scene-facts li{font-size:.65rem;padding:10px 0}
  .scene-scroll-cue{left:23px;bottom:24px;font-size:.47rem;gap:12px}
  .scene-scroll-cue__line{height:29px}
  .scene-coordinate{display:none}
  .services-editorial{width:100%}
  .services-editorial__heading{padding-bottom:18px}
  .services-editorial h2{font-size:clamp(2.85rem,11.2vw,4rem);line-height:.89}
  .services-editorial__cta{margin-top:16px;padding-bottom:7px;font-size:.62rem}
  .service-group{grid-template-columns:31px minmax(0,1fr);column-gap:11px;padding:14px 0 15px}
  .service-group>span{font-size:.5rem;margin-top:4px}
  .service-group h3{font-size:1.72rem}
  .service-group p{font-size:.64rem;line-height:1.52;margin-top:5px}
  .has-cinematic .cinematic-journey{height:790svh;height:790dvh}
  .has-cinematic .cinematic-stage{min-height:500px}
  .has-cinematic .cinematic-scene{padding:calc(var(--nav-h) + 20px) 23px 50px}
  .has-cinematic .scene-copy--hero{padding-bottom:8vh}
  .has-cinematic .scene-copy--welcome,.has-cinematic .scene-copy--room,.has-cinematic .scene-copy--location{margin-bottom:8vh}
  .has-cinematic .scene-services{align-items:center;padding-top:calc(var(--nav-h) + 13px);padding-bottom:38px}
  .has-cinematic .scene-image--pool img{object-position:52% 50%}
  .has-cinematic .scene-image--reception img{object-position:48% 50%}
  .has-cinematic .scene-image--room img{object-position:43% 50%}
  .has-cinematic .scene-image--facade img{object-position:50% 50%}
  .has-cinematic .scene-vignette{background:linear-gradient(0deg,rgba(25,18,15,.94) 0%,rgba(25,18,15,.64) 44%,rgba(25,18,15,.1) 82%)}
  .has-cinematic .scene-closing .scene-copy{margin-bottom:7vh}
}

@media (max-width:375px){
  .scene-copy h1{font-size:13.8vw}
  .scene-copy h2{font-size:12.9vw}
  .scene-lede,.scene-copy>p:not(.scene-kicker):not(.scene-index){font-size:.74rem}
  .scene-actions .button{font-size:.59rem;padding:13px 14px}
  .service-group h3{font-size:1.58rem}
  .service-group p{font-size:.61rem}
  .services-editorial h2{font-size:10.9vw}
}

@media (orientation:landscape) and (max-height:620px){
  .has-cinematic .cinematic-stage{min-height:100svh}
  .has-cinematic .cinematic-scene{padding-top:calc(var(--nav-h) + 14px);padding-bottom:25px}
  .scene-copy h1{font-size:clamp(3.4rem,9vw,5.8rem)}
  .scene-copy h2{font-size:clamp(3rem,7vw,4.9rem)}
  .scene-copy--hero{max-width:760px}
  .scene-lede,.scene-copy>p:not(.scene-kicker):not(.scene-index){margin-top:14px;line-height:1.5}
  .scene-actions{margin-top:17px}
  .scene-scroll-cue{display:none}
  .services-editorial h2{font-size:clamp(2.5rem,7vw,4rem)}
  .service-group{padding:9px 0 10px}
}

@media (prefers-reduced-motion:reduce){
  .scene-scroll-cue__line::after{animation:none;top:50%}
  .cinematic-scene{background-attachment:scroll}
}
