/* Philo Hero — Cinematic
   Namespaced with .phw- to avoid clashing with theme/Elementor styles. */

.phw-hero--cinematic{
  --phw-gold: #f5b522;
  --phw-orange: #f48124;
  --phw-green: #126d38;
  --phw-green-deep: #0a3016;
  --phw-cream: #fdf3e2;
  --phw-overlay: .8;
}

.phw-hero{
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  font-family: 'Manrope', sans-serif;
  color: var(--phw-cream);
  -webkit-font-smoothing:antialiased;
}
.phw-hero *{ box-sizing:border-box; }
.phw-hero a{ text-decoration:none; color:inherit; }
.phw-hero button{ font-family:inherit; border:none; background:none; cursor:pointer; color:inherit; }
.phw-hero :focus-visible{ outline:2px solid var(--phw-gold); outline-offset:4px; }

.phw-hero--cinematic{
  min-height:100vh;
  background: radial-gradient(120% 90% at 50% 0%, #1c4a2c 0%, var(--phw-green-deep) 55%, #060f08 100%);
}

/* background layer (image + optional video) */
.phw-bg{ position:absolute; inset:0; z-index:0; }
.phw-bg__image{ position:absolute; inset:0; background-size:cover; background-position:center; opacity:.85; }
.phw-bg__video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }

.phw-canopy{ position:absolute; inset:-10%; z-index:1; filter: blur(60px) saturate(115%); }
.phw-canopy-blob{ position:absolute; border-radius:50%; mix-blend-mode:screen; opacity:.55; }

.phw-rays{
  position:absolute; inset:-40%; z-index:2;
  background: conic-gradient(from 0deg,
    transparent 0deg, rgba(245,181,34,.55) 8deg, transparent 26deg,
    transparent 120deg, rgba(244,129,36,.4) 132deg, transparent 150deg,
    transparent 230deg, rgba(245,181,34,.35) 240deg, transparent 258deg,
    transparent 360deg);
  mix-blend-mode:screen; opacity:.5; filter: blur(4px);
}

.phw-grain{
  position:absolute; inset:0; z-index:3; opacity:.05; mix-blend-mode:overlay; pointer-events:none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.phw-scrim{
  position:absolute; inset:0; z-index:4;
  background:
    linear-gradient(0deg, rgba(6,15,8, var(--phw-overlay)) 0%, rgba(6,15,8,.55) 32%, rgba(6,15,8,.15) 58%, transparent 78%),
    radial-gradient(80% 60% at 50% 100%, rgba(6,15,8,.5), transparent 70%);
}

.phw-particles{ position:absolute; inset:0; z-index:5; pointer-events:none; }
.phw-mote{ position:absolute; width:4px; height:4px; border-radius:50%; background: radial-gradient(circle, var(--phw-gold), transparent 70%); opacity:.6; }

/* nav */
.phw-nav{
  position:absolute; top:0; left:0; right:0; z-index:10;
  display:flex; align-items:center; justify-content:space-between;
  padding: clamp(18px,3vw,34px) clamp(20px,5vw,64px);
}
.phw-nav__mark{ font-family:'Fraunces', serif; font-weight:500; font-size:1.15rem; letter-spacing:.02em; }
.phw-nav__mark span{ display:block; font-family:'Manrope', sans-serif; font-weight:600; font-size:.56rem; letter-spacing:.24em; text-transform:uppercase; color:var(--phw-gold); margin-top:2px; }
.phw-nav__cta{
  font-size:.78rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  padding:.7em 1.4em; border:1px solid rgba(253,243,226,.5); border-radius:999px;
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.phw-nav__cta:hover{ background: var(--phw-cream); color:#12190f; border-color:var(--phw-cream); }

/* content */
.phw-content{ position:relative; z-index:10; padding: clamp(110px,16vw,170px) clamp(20px,6vw,72px) 0; max-width:1180px; }
.phw-eyebrow{
  display:inline-flex; align-items:center; gap:.6em;
  font-size:.72rem; font-weight:700; letter-spacing:.32em; text-transform:uppercase;
  color: var(--phw-gold); margin:0 0 22px;
}
.phw-eyebrow::before{ content:''; width:34px; height:1px; background: var(--phw-gold); }

.phw-headline{
  font-family:'Fraunces', serif; font-weight:440; font-style:normal;
  font-size: clamp(2.4rem, 6vw, 5rem); line-height:1.04; letter-spacing:-.01em;
  margin:0 0 26px; max-width:15ch;
}
.phw-headline em{
  font-style:italic; font-weight:500;
  background: linear-gradient(100deg, var(--phw-gold), var(--phw-orange));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}

.phw-lede{ font-size: clamp(1rem, 1.6vw, 1.2rem); line-height:1.65; font-weight:400; color: rgba(253,243,226,.86); max-width:46ch; margin:0 0 42px; }

.phw-actions{ display:flex; align-items:center; gap: clamp(20px,4vw,40px); flex-wrap:wrap; margin-bottom: clamp(48px,8vw,74px); }

.phw-btn-primary{
  display:inline-flex; align-items:center; gap:.6em; font-weight:700; font-size:.92rem; letter-spacing:.01em;
  color:#12190f; background: linear-gradient(120deg, var(--phw-gold), var(--phw-orange));
  padding: 1.05em 1.9em; border-radius:999px; box-shadow: 0 12px 30px -10px rgba(244,129,36,.55);
  transition: transform .3s ease, box-shadow .3s ease;
}
.phw-btn-primary:hover{ transform: translateY(-2px); box-shadow: 0 16px 36px -8px rgba(244,129,36,.7); }
.phw-btn-primary svg{ width:16px; height:16px; }

/* orbit video badge */
.phw-orbit-badge{ position:relative; width:112px; height:112px; flex-shrink:0; }
.phw-orbit-badge__pulse{ position:absolute; inset:0; border-radius:50%; border:1px solid rgba(245,181,34,.55); animation: phw-pulse 3.2s ease-out infinite; }
.phw-orbit-badge__pulse--delay{ animation-delay:1.6s; }
@keyframes phw-pulse{ 0%{ transform:scale(.72); opacity:.9; } 100%{ transform:scale(1.5); opacity:0; } }
.phw-orbit-badge__ring{ position:absolute; inset:0; width:100%; height:100%; }
.phw-orbit-badge__dash{ fill:none; stroke: rgba(253,243,226,.55); stroke-width:1; stroke-dasharray:2 7; }
.phw-orbit-badge__text{ font-family:'Manrope', sans-serif; font-size:9.6px; font-weight:700; letter-spacing:.22em; fill: var(--phw-cream); }
.phw-orbit-badge__play{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:46px; height:46px; border-radius:50%;
  background: linear-gradient(135deg, var(--phw-orange), var(--phw-gold));
  display:flex; align-items:center; justify-content:center;
  box-shadow: 0 8px 20px -6px rgba(244,129,36,.7);
  transition: transform .3s ease;
}
.phw-orbit-badge:hover .phw-orbit-badge__play{ transform: translate(-50%,-50%) scale(1.08); }
.phw-orbit-badge__label{ width:150px; font-size:.78rem; line-height:1.35; font-weight:600; color:rgba(253,243,226,.85); text-align:left; }

/* stat strip */
.phw-strip{
  position:relative; z-index:10; display:flex; flex-wrap:wrap;
  border-top:1px solid rgba(253,243,226,.18);
  padding: 22px clamp(20px,6vw,72px) 26px;
}
.phw-strip span{
  font-size:.72rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color: rgba(253,243,226,.65);
  padding-right: clamp(16px,3vw,32px); margin-right: clamp(16px,3vw,32px);
  border-right:1px solid rgba(253,243,226,.18);
}
.phw-strip span:last-child{ border-right:none; margin-right:0; padding-right:0; }

/* scroll cue */
.phw-scrollcue{ position:absolute; right: clamp(20px,5vw,64px); bottom:130px; z-index:10; display:flex; flex-direction:column; align-items:center; gap:10px; }
.phw-scrollcue__line{ width:1px; height:56px; background: linear-gradient(180deg, rgba(253,243,226,.7), transparent); position:relative; overflow:hidden; }
.phw-scrollcue__dot{ position:absolute; left:-1.5px; top:0; width:4px; height:4px; border-radius:50%; background: var(--phw-gold); }
.phw-scrollcue__text{ writing-mode: vertical-rl; font-size:.68rem; letter-spacing:.3em; text-transform:uppercase; color:rgba(253,243,226,.6); font-weight:700; }

/* modal (shared pattern across both widgets) */
.phw-video-modal{ position:fixed; inset:0; z-index:100000; display:flex; align-items:center; justify-content:center; padding:24px; opacity:0; pointer-events:none; }
.phw-video-modal.is-open{ pointer-events:auto; }
.phw-video-modal__backdrop{ position:absolute; inset:0; background: rgba(6,15,8,.86); backdrop-filter: blur(6px); }
.phw-video-modal__frame{ position:relative; z-index:2; width:min(920px,100%); background: var(--phw-green-deep); border:1px solid rgba(253,243,226,.15); border-radius:20px; overflow:hidden; box-shadow: 0 40px 90px -20px rgba(0,0,0,.6); }
.phw-video-modal__close{ position:absolute; top:14px; right:14px; z-index:3; width:40px; height:40px; border-radius:50%; background: rgba(6,15,8,.6); color: var(--phw-cream); display:flex; align-items:center; justify-content:center; font-size:20px; border:1px solid rgba(253,243,226,.25); }
.phw-video-modal__player{ position:relative; width:100%; aspect-ratio:16/9; background:#04150c; }
.phw-video-modal__video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border:0; }
.phw-video-modal__posterart{ position:absolute; inset:0; }
.phw-video-modal__posterart svg{ width:100%; height:100%; display:block; }
.phw-video-modal__caption{ margin:0; padding: 16px 22px 20px; font-size:.85rem; color: rgba(253,243,226,.65); border-top:1px solid rgba(253,243,226,.12); }

@media (max-width: 760px){
  .phw-nav__links{ display:none; }
  .phw-scrollcue{ display:none; }
}
@media (max-width: 560px){
  .phw-orbit-badge__label{ display:none; }
}
@media (prefers-reduced-motion: reduce){
  .phw-orbit-badge__pulse{ animation:none; }
}
