/* ============================================================
   NALIA SUITE — pages.css
   Living-horizon hero · page heroes · per-page layouts
   ============================================================ */

/* ---------------- HOME: full-screen scene carousel ---------------- */
.hero{position:relative;height:100svh;min-height:600px;overflow:hidden}
.hero .slides{position:absolute;inset:0}
.hero .slide{position:absolute;inset:0;opacity:0;transition:opacity 1.5s var(--ease);pointer-events:none}
.hero .slide.on{opacity:1;pointer-events:auto}
.hero .slide img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.hero .sky{
  position:absolute;inset:-5% 0;
  background:linear-gradient(180deg,var(--sky1) 0%,var(--sky2) 26%,var(--sky3) 45%,var(--sky4) 55%,var(--sky5) 70%,var(--sky6) 100%);
}
.hero .stars{
  position:absolute;inset:0;opacity:var(--star-op);pointer-events:none;transition:opacity 1.2s var(--ease);
  background-image:
    radial-gradient(1.4px 1.4px at 12% 18%,rgba(255,255,255,.9),transparent),
    radial-gradient(1.2px 1.2px at 28% 32%,rgba(255,255,255,.7),transparent),
    radial-gradient(1.5px 1.5px at 44% 12%,rgba(255,255,255,.85),transparent),
    radial-gradient(1px 1px at 62% 26%,rgba(255,255,255,.6),transparent),
    radial-gradient(1.6px 1.6px at 78% 16%,rgba(255,255,255,.9),transparent),
    radial-gradient(1.1px 1.1px at 88% 34%,rgba(255,255,255,.7),transparent),
    radial-gradient(1.3px 1.3px at 34% 44%,rgba(255,255,255,.65),transparent),
    radial-gradient(1px 1px at 70% 42%,rgba(255,255,255,.55),transparent);
}
.hero .sun{
  position:absolute;left:50%;top:var(--sunY,36%);width:140px;height:140px;border-radius:50%;
  transform:translate(-50%,-50%);
  background:radial-gradient(circle,var(--sun-core),var(--sun-edge) 55%,transparent 72%);
  box-shadow:0 0 120px 30px var(--sun-glow);
  animation:breathe 7s ease-in-out infinite;will-change:transform;
}
@keyframes breathe{0%,100%{filter:brightness(1)}50%{filter:brightness(1.08)}}
.hero .hz{position:absolute;left:0;right:0;top:53%;height:1px;background:rgba(255,252,244,.65)}
.hero .glint{
  position:absolute;left:50%;top:53%;transform:translateX(-50%);
  width:min(46vw,520px);height:26vh;opacity:var(--glint-op);
  background:radial-gradient(52% 90% at 50% 0,rgba(255,252,244,.5),transparent 70%);
}
.hero .swell{position:absolute;left:0;right:0;top:60%;height:40%;opacity:.5}
.hero .swell path{fill:none;stroke:rgba(243,239,230,.35);stroke-width:1}
.hero .duskveil{
  position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;
  background:linear-gradient(180deg,rgba(20,44,52,.15) 0%,rgba(12,33,40,.45) 55%,rgba(8,24,30,.8) 100%);
}
.hero .vig{
  position:absolute;inset:0;z-index:3;pointer-events:none;
  box-shadow:inset 0 -110px 150px -60px rgba(8,25,30,.45),inset 0 60px 120px -40px rgba(210,225,225,.2);
}
.hero .grain{
  position:absolute;inset:0;z-index:3;opacity:.06;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
/* minimal arrows */
.hero-nav{
  position:absolute;top:50%;transform:translateY(-50%);z-index:5;
  width:52px;height:52px;display:flex;align-items:center;justify-content:center;
  color:var(--ivory);opacity:.65;transition:opacity .3s;
}
.hero-nav:hover{opacity:1}
.hero-nav.prev{left:clamp(8px,2vw,28px)}
.hero-nav.next{right:clamp(8px,2vw,28px)}
.hero-nav svg{width:22px;height:38px;stroke:currentColor;stroke-width:1.4;fill:none}
/* scroll down cue */
.scroll-cue{
  position:absolute;bottom:0;left:50%;transform:translateX(-50%);z-index:5;
  display:flex;flex-direction:column;align-items:center;gap:12px;
  opacity:0;transition:opacity 1s 1.2s;
}
.hero.in .scroll-cue{opacity:1}
.scroll-cue span{font-size:.6rem;letter-spacing:.3em;text-indent:.3em;text-transform:uppercase;color:var(--ivory);opacity:.85}
.scroll-cue i{width:1px;height:52px;background:linear-gradient(var(--ivory),rgba(243,239,230,.1));animation:sdrop 2.4s var(--ease) infinite}
@keyframes sdrop{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media(max-width:860px){.hero{min-height:560px}}

/* ---------------- intro statement below the hero ---------------- */
.hero-intro{background:var(--ivory);padding-block:clamp(76px,13vh,150px);text-align:center}
.hero-intro>.wrap{max-width:900px}
.hero-intro .eyebrow{justify-content:center}
.hero-intro h1{font-size:clamp(2.5rem,5.2vw,4.1rem);max-width:15ch;margin:26px auto 0;line-height:1.1}
.hero-intro .hi-lede{margin:28px auto 0;font-size:var(--fs-lede);line-height:1.62;color:var(--ink-soft);max-width:52ch}
.hero-intro .status-pill{margin-top:36px}
.hero-intro .cta-row{justify-content:center}
@media(max-width:860px){
  .hero-intro h1{max-width:16ch}
  .hero-intro .hi-lede{margin-top:20px}
}

/* ---------------- internal page hero ---------------- */
.page-hero{
  padding:calc(150px + 6vh) var(--gutter) clamp(56px,8vh,88px);
  background:var(--linen);position:relative;overflow:hidden;
}
.page-hero .wrap{position:relative;z-index:2}
.page-hero h1{max-width:16ch;margin-top:20px}
.page-hero .eyebrow{opacity:.9}
.page-hero .ph-lede{margin-top:24px;font-size:var(--fs-lede);line-height:1.62;color:var(--ink-soft);max-width:54ch}
.page-hero .hz-art{
  position:absolute;right:-4%;bottom:-8%;width:min(46vw,560px);opacity:.5;pointer-events:none;
}
.page-hero.ph-dark{background:var(--aegean)}
.page-hero.ph-dark h1{color:var(--ivory)}
.page-hero.ph-dark .ph-lede{color:rgba(243,239,230,.78)}

/* ---------------- split editorial rows ---------------- */
.split{
  display:grid;grid-template-columns:1fr 1fr;gap:clamp(36px,6vw,90px);align-items:center;
}
.split.rev>.s-media{order:2}
.split .s-text .eyebrow{margin-bottom:20px}
.split .s-text h2{margin-bottom:24px;letter-spacing:.001em}
.split .s-text p+p{margin-top:15px}
.split .s-text p{color:var(--ink-soft)}
.split .s-more{
  display:inline-flex;align-items:center;gap:10px;margin-top:32px;font-size:.68rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--aegean);
  padding-bottom:6px;position:relative;transition:color .35s var(--ease),gap .35s var(--ease);
}
.split .s-more::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;background:var(--bronze);transform-origin:left;transition:transform .4s var(--ease)}
.split .s-more::before{content:"\2192";order:2;transition:transform .4s var(--ease);color:var(--bronze)}
.split .s-more:hover{color:var(--bronze);gap:14px}
.split .s-more:hover::before{transform:translateX(4px)}
@media(max-width:860px){
  .split{grid-template-columns:1fr;gap:28px}
  .split.rev>.s-media{order:0}
  .split .s-text .eyebrow{margin-bottom:16px}
  .split .s-text h2{margin-bottom:16px}
  .split .s-more{margin-top:22px}
}

/* big statement */
.statement{
  font-family:var(--serif);font-weight:400;font-size:clamp(1.7rem,3.6vw,2.95rem);line-height:1.28;
  color:var(--aegean);max-width:24ch;letter-spacing:.001em;
}
.statement em{color:var(--bronze);font-style:italic}
.section-dark .statement{color:var(--ivory)}

/* offset gallery duo */
.duo{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(22px,3.5vw,44px)}
.duo .ph:last-child{margin-top:clamp(30px,6vh,72px)}
@media(max-width:700px){.duo{grid-template-columns:1fr;gap:18px}.duo .ph:last-child{margin-top:0}}

/* map panel */
.map-panel{border:1px solid var(--line);aspect-ratio:16/9;position:relative;background:var(--linen)}
.map-panel iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:22px}

/* FAQ / before you book */
.faq{border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{
  cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;
  padding:24px 4px;font-family:var(--serif);font-size:1.25rem;color:var(--aegean);
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--sans);font-weight:300;font-size:1.3rem;color:var(--bronze);transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .faq-body{padding:0 4px 26px;color:var(--ink-soft);max-width:60ch}

/* contact page layout */
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(40px,6vw,90px);align-items:start}
.contact-aside{border-left:1px solid var(--line);padding-left:clamp(24px,3vw,44px)}
.contact-aside h3{margin-bottom:10px}
.contact-aside .block{margin-bottom:34px}
.contact-aside a{color:var(--aegean);border-bottom:1px solid var(--line);transition:border-color .3s}
.contact-aside a:hover{border-color:var(--bronze)}
@media(max-width:900px){
  .contact-grid{grid-template-columns:1fr}
  .contact-aside{border-left:none;padding-left:0;border-top:1px solid var(--line);padding-top:36px}
}

/* privacy / legal prose */
.prose h2{margin:44px 0 14px;font-size:1.5rem}
.prose p+p{margin-top:14px}
.prose ul{margin:14px 0 14px 20px;color:var(--ink-soft)}
.prose li{margin-bottom:8px}

/* 404 */
.err-page{
  min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;background:var(--aegean);color:var(--ivory);padding:var(--gutter);position:relative;overflow:hidden;
}
.err-page h1{color:var(--ivory);font-size:var(--fs-hero)}
.err-page p{color:rgba(243,239,230,.75);margin-top:16px}
.err-page .hz-line{position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(243,239,230,.18)}
