/* JBraun staged hero — cream/espresso/gold/blush + grain. Progressive: type visible without JS. */
@font-face{
  font-family:"Cormorant Garamond";
  font-style:normal;
  font-weight:500 700;
  font-display:swap;
  src:local("Cormorant Garamond"),local("Playfair Display"),url("fonts/Playfair.woff2") format("woff2");
}

:root{
  --hero-cream:#f6f0e8;
  --hero-espresso:#2a211c;
  --hero-gold:#c4a574;
  --hero-blush:#e8c4b8;
  --hero-ink:#1a1410;
}

.hero.hero-cinematic,
.hero-cinematic{
  position:relative;
  isolation:isolate;
  min-height:min(92vh,920px);
  display:grid;
  place-items:center;
  overflow:hidden;
  color:var(--hero-cream);
  background:var(--hero-espresso)!important;
  background-image:none!important;
  border-radius:0;
  margin:0;
  padding:0!important;
  --hero-radius:0px;
  --hero-scale:1;
}
.hero-cinematic h1,
.hero-cinematic .hero-title{
  color:var(--hero-cream);
}
.hero-cinematic .hero-title .line-jb{
  display:block;font-size:clamp(2.8rem,12vw,7.5rem);
  color:var(--hero-cream);
  opacity:1!important;
  filter:blur(0);
  transform:none;
  animation:hero-rise-unblur .9s cubic-bezier(.22,1,.36,1) forwards;
  will-change:transform;
}
.hero-cinematic .hero-title .line-ss{color:var(--hero-gold)}
.hero-cinematic.is-pinned{
  border-radius:var(--hero-radius);
  transform:scale(var(--hero-scale));
  transform-origin:center top;
}
.hero-cinematic .hero-media{
  position:absolute;inset:0;z-index:0;
  overflow:hidden;
  background:#3a2f28;
}
.hero-cinematic .hero-media img,
.hero-cinematic .hero-media video{
  position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;object-position:50% 18%;
  transform:scale(1.06);
  will-change:transform;
}
.hero-cinematic .hero-media img{
  animation:hero-kenburns 18s ease-in-out infinite alternate;
}
.hero-cinematic .hero-media video{opacity:0;transition:opacity .6s ease}
.hero-cinematic .hero-media.is-video video{opacity:1}
.hero-cinematic .hero-media.is-video img{opacity:0;animation:none}
.hero-cinematic .hero-scrim{
  position:absolute;inset:0;z-index:1;
  background:
    linear-gradient(105deg,rgba(26,20,16,.58) 0%,rgba(26,20,16,.32) 52%,rgba(26,20,16,.14) 100%),
    radial-gradient(ellipse at 70% 30%,rgba(232,196,184,.14),transparent 55%);
}
.hero-cinematic .hero-grain{
  position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:180px 180px;
  mix-blend-mode:overlay;
}
.hero-cinematic .hero-inner{
  position:relative;z-index:3;
  width:min(1100px,92vw);
  padding:clamp(4.5rem,12vh,7rem) 0 clamp(3rem,8vh,5rem);
  text-align:left;
}
.hero-cinematic .hero-eyebrow{
  display:inline-block;margin:0 0 1rem;
  font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--hero-blush);
  opacity:1;
  animation:hero-fade-up .5s ease forwards;
}
.hero-cinematic .hero-title{
  margin:0;line-height:.92;color:var(--hero-cream);
  font-family:"Cormorant Garamond","Playfair Display",Georgia,serif;
  font-weight:600;letter-spacing:.02em;
}
.hero-cinematic .hero-title .line-jb{
  display:block;font-size:clamp(2.8rem,12vw,7.5rem);
  opacity:1;filter:blur(0);transform:none;
  animation:hero-rise-unblur .9s cubic-bezier(.22,1,.36,1) forwards;
  will-change:transform,filter,opacity;
}
.hero-cinematic .hero-title .line-ss{
  display:block;margin-top:.15em;
  font-size:clamp(.95rem,2.4vw,1.35rem);
  font-weight:500;letter-spacing:.42em;text-transform:uppercase;
  color:var(--hero-gold);
  opacity:1;transform:none;
  animation:hero-fade-up .55s ease .35s forwards;
}
.hero-cinematic .hero-tag{
  margin:1.25rem 0 0;max-width:28rem;
  font-size:clamp(1rem,2.2vw,1.2rem);line-height:1.45;
  color:rgba(246,240,232,.92);
  opacity:1;
  animation:hero-fade-up .4s ease .55s forwards;
}
.hero-cinematic .hero-cta{
  display:flex;flex-wrap:wrap;gap:.85rem;margin-top:1.75rem;align-items:center;
  animation:hero-fade-up .45s ease .7s forwards;
}
.hero-cinematic .btn-book{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,var(--hero-gold),#b08d5a)!important;
  color:var(--hero-ink)!important;border:none!important;
  font-weight:700;letter-spacing:.04em;
  box-shadow:0 10px 30px rgba(0,0,0,.25);
}
.hero-cinematic .btn-book::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.45) 45%,transparent 70%);
  transform:translateX(-120%);
  animation:hero-shimmer 6s ease-in-out 1.2s infinite;
}
@keyframes hero-shimmer{
  0%,70%{transform:translateX(-120%)}
  85%{transform:translateX(120%)}
  100%{transform:translateX(120%)}
}
@keyframes hero-rise-unblur{
  from{transform:translateY(18px)}
  to{transform:translateY(0)}
}
@keyframes hero-fade-up{
  from{transform:translateY(10px);opacity:.92}
  to{transform:translateY(0);opacity:1}
}
@keyframes hero-kenburns{
  from{transform:scale(1.06) translate(0,0)}
  to{transform:scale(1.16) translate(-1.5%,-1%)}
}
.hero-cinematic .btn-call-glass{
  background:rgba(246,240,232,.12)!important;
  color:var(--hero-cream)!important;
  border:1px solid rgba(246,240,232,.35)!important;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
.hero-cinematic .hero-meta{
  margin-top:1.35rem;font-size:.88rem;color:rgba(246,240,232,.72);
  animation:hero-fade-up .45s ease .85s forwards;
}
.hero-cinematic .hero-meta a{color:var(--hero-blush)}

.svc-parallax .card{will-change:transform}

@media (max-width:720px){
  .hero.hero-cinematic,.hero-cinematic{min-height:88vh;padding:0!important}
  .hero-cinematic .hero-media img,
  .hero-cinematic .hero-media video{object-position:62% 12%}
  .hero-cinematic .hero-title .line-ss{letter-spacing:.28em}
  .hero-cinematic .hero-inner{text-align:center}
  .hero-cinematic .hero-cta{justify-content:center}
  .hero-cinematic .hero-tag{margin-left:auto;margin-right:auto}
}

@media (prefers-reduced-motion:reduce){
  .hero-cinematic .hero-title .line-jb,
  .hero-cinematic .hero-title .line-ss,
  .hero-cinematic .hero-tag,
  .hero-cinematic .hero-eyebrow,
  .hero-cinematic .hero-cta,
  .hero-cinematic .hero-meta{
    animation:none!important;
    opacity:1!important;filter:none!important;transform:none!important;
  }
  .hero-cinematic .btn-book::after{animation:none;display:none}
  .hero-cinematic .hero-media img{animation:none!important;transform:scale(1.02)!important}
}

/* Progressive safety: never leave type invisible if animations are skipped/blocked */
.hero-cinematic .hero-title .line-jb,
.hero-cinematic .hero-title .line-ss,
.hero-cinematic .hero-tag,
.hero-cinematic .hero-eyebrow{
  opacity:1;
}
@supports not (animation-name: hero-rise-unblur){
  .hero-cinematic .hero-title .line-jb,
  .hero-cinematic .hero-title .line-ss,
  .hero-cinematic .hero-tag,
  .hero-cinematic .hero-eyebrow,
  .hero-cinematic .hero-cta,
  .hero-cinematic .hero-meta{opacity:1;filter:none;transform:none}
}
