/* ZoneFive Page Hero v1.7.0
   Hero Transition Lite: shares the same typography, button system, spacing rhythm and color language as ZoneFive Hero Transition. */
.z5ph{
  --z5ph-container-max:1440px;
  --z5ph-page-gutter:64px;
  --z5ph-page-gutter-tablet:32px;
  --z5ph-page-gutter-mobile:20px;
  --z5ph-gap:80px;
  --z5ph-content-width:760px;
  --z5ph-heading-width:18ch;
  --z5ph-body-width:62ch;
  --z5ph-content-item-gap:20px;
  --z5ph-content-horizontal:flex-start;
  --z5ph-content-vertical:flex-end;
  --z5ph-content-offset-x:0px;
  --z5ph-content-offset-y:0px;
  --z5ph-stats-gap:44px;
  --z5ph-stats-right:64px;
  --z5ph-stats-bottom:64px;
  --z5ph-media-width:580px;
  --z5ph-min-height:100svh;
  --z5ph-radius:16px;
  --z5ph-media-gap:16px;
  --z5ph-overlay-opacity:.08;
  --z5ph-color-dark:#171214;
  --z5ph-color-light:#fff;
  --z5ph-color-muted:rgba(255,255,255,.82);
  --z5ph-color-accent:#D32127;
  --z5ph-ease:cubic-bezier(.625,.05,0,1);
  position:relative;
  width:100%;
  min-height:var(--z5ph-min-height);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  color:var(--z5ph-color-light);
  background:var(--z5ph-color-dark);
  isolation:isolate;
}
.z5ph *{box-sizing:border-box;}
.z5ph__container{
  width:min(var(--z5ph-container-max), calc(100vw - (var(--z5ph-page-gutter) * 2)));
  margin-inline:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:var(--z5ph-gap);
  position:relative;
  z-index:2;
}
.z5ph--media-left .z5ph__container{flex-direction:row-reverse;}
.z5ph--media-center .z5ph__container{
  flex-direction:column;
  justify-content:center;
  align-items:center;
}
.z5ph--media-center .z5ph__content,
.z5ph--media-center .z5ph__media{margin-inline:auto;}
.z5ph--text_only .z5ph__container{justify-content:center;}
.z5ph__content{
  width:min(100%, var(--z5ph-content-width));
  max-width:var(--z5ph-content-width);
  flex:0 0 min(100%, var(--z5ph-content-width));
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:var(--z5ph-content-item-gap);
  text-align:left;
  position:relative;
  inset-inline-start:var(--z5ph-content-offset-x);
  top:var(--z5ph-content-offset-y);
}
.z5ph--align-center .z5ph__content{align-items:center; margin-inline:auto; text-align:center;}
.z5ph--align-right .z5ph__content{align-items:flex-end; text-align:right;}
.z5ph__eyebrow{
  display:inline-flex;
  width:fit-content;
  max-width:100%;
  margin:0;
  padding:0;
  color:var(--z5ph-color-light);
  background:transparent;
  border:0;
  border-radius:0;
  font-size:12px;
  line-height:1.2;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.z5ph__eyebrow::before{display:none !important;}
.z5ph__heading,
.z5ph__accent,
.z5ph__body,
.z5ph__body p{margin:0;}
.z5ph__heading{
  width:100%;
  max-width:min(100%, var(--z5ph-heading-width));
  color:var(--z5ph-color-light);
  font-size:clamp(3rem,5.5vw,6rem);
  font-weight:700;
  line-height:.92;
  letter-spacing:-.055em;
  text-wrap:balance;
}
.z5ph__accent{
  width:100%;
  max-width:min(100%, var(--z5ph-heading-width));
  color:var(--z5ph-color-accent);
  font-size:clamp(2.6rem,5vw,5.35rem);
  font-weight:700;
  font-style:italic;
  line-height:.92;
  letter-spacing:-.055em;
  text-wrap:balance;
}
.z5ph__body{
  width:100%;
  max-width:min(100%, var(--z5ph-body-width));
  color:var(--z5ph-color-light);
  font-size:clamp(.95rem,1.2vw,1.125rem);
  line-height:1.55;
}
.z5ph__body p + p{margin-top:1em;}
.z5ph__stats{
  display:flex;
  flex-wrap:wrap;
  gap:20px var(--z5ph-stats-gap);
  margin:10px 0 0;
  width:100%;
}
.z5ph__stats--dock{
  position:absolute;
  right:var(--z5ph-stats-right);
  bottom:var(--z5ph-stats-bottom);
  z-index:3;
  width:auto;
  max-width:min(52vw, 760px);
  margin:0;
  justify-content:flex-end;
  pointer-events:auto;
}
.z5ph--align-center .z5ph__stats{justify-content:center;}
.z5ph--align-right .z5ph__stats{justify-content:flex-end;}
.z5ph__stat{min-width:72px;}
.z5ph__stat-value{
  color:var(--z5ph-color-accent);
  font-size:clamp(24px,2vw,34px);
  line-height:1;
  font-weight:700;
  letter-spacing:.01em;
}
.z5ph__stat-label{
  margin-top:.72em;
  color:rgba(255,255,255,.58);
  font-size:13px;
  line-height:1.25;
}
.z5ph__button{
  appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:fit-content;
  min-height:48px;
  margin:6px 0 0;
  padding:14px 22px;
  gap:12px;
  border:1px solid currentColor;
  border-radius:999px;
  background:transparent;
  color:var(--z5ph-color-light);
  text-decoration:none;
  font-size:13px;
  font-weight:600;
  line-height:1;
  letter-spacing:.02em;
  text-transform:none;
  cursor:pointer;
  transition:color .28s ease, background-color .28s ease, border-color .28s ease, transform .28s ease;
}
.z5ph__trust-line{
  display:inline-flex;
  align-items:center;
  gap:8px;
  width:fit-content;
  max-width:100%;
  color:rgba(255,255,255,.76);
  font-size:13px;
  line-height:1.4;
}
.z5ph__trust-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:none;
  color:var(--z5ph-color-accent);
}
.z5ph__trust-icon svg{display:block; width:1em; height:1em; fill:currentColor;}
.z5ph__cta{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  width:fit-content;
  max-width:100%;
}
.z5ph--align-center .z5ph__cta{align-items:center; text-align:center;}
.z5ph--align-right .z5ph__cta{align-items:flex-end; text-align:right;}
.z5ph__cta-microcopy{
  max-width:42ch;
  color:rgba(255,255,255,.58);
  font-size:12px;
  line-height:1.45;
}
.z5ph__button:hover,
.z5ph__button:focus-visible{
  color:#111;
  background:#fff;
  border-color:#fff;
  transform:translateY(-2px);
  text-decoration:none;
}
.z5ph__button:focus-visible{outline:2px solid currentColor; outline-offset:3px;}
.z5ph__button-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:none;
  font-size:14px;
}
.z5ph__button-icon svg{display:block; width:14px; height:14px; fill:currentColor;}

/* Shared media system */
.z5ph__media{
  width:min(100%, var(--z5ph-media-width));
  max-width:var(--z5ph-media-width);
  flex:1 1 var(--z5ph-media-width);
  position:relative;
  min-width:0;
}
.z5ph:not(.z5ph--media-center).z5ph--media-vertical-top .z5ph__media{align-self:flex-start;}
.z5ph:not(.z5ph--media-center).z5ph--media-vertical-middle .z5ph__media{align-self:center;}
.z5ph:not(.z5ph--media-center).z5ph--media-vertical-bottom .z5ph__media{align-self:flex-end;}
.z5ph__media-grid{display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1fr 1fr; gap:var(--z5ph-media-gap); min-height:clamp(420px,45vw,620px);}
.z5ph__media-card{position:relative; display:block; margin:0; overflow:hidden; border-radius:var(--z5ph-radius); background:rgba(255,255,255,.06); isolation:isolate;}
.z5ph__media-card::after{content:''; position:absolute; inset:0; background:#000; opacity:var(--z5ph-overlay-opacity); pointer-events:none; z-index:1;}
.z5ph__media-card picture,
.z5ph__media-card img{display:block; width:100%; height:100%;}
.z5ph__media-card img{object-fit:cover; transform:scale(1.001); will-change:transform;}
.z5ph__media-card--primary{grid-row:1 / span 2; min-height:100%;}
.z5ph__media-card--secondary{min-height:0;}
.z5ph__single,
.z5ph__carousel-lite{position:relative; width:100%; aspect-ratio:1/1.08; min-height:clamp(420px,42vw,640px); border-radius:var(--z5ph-radius); overflow:hidden;}
.z5ph__media-card--single,
.z5ph__media-card--carousel{position:absolute; inset:0; width:100%; height:100%;}
.z5ph__media-card--carousel{opacity:0; visibility:hidden; transition:opacity .7s linear, visibility .7s linear;}
.z5ph__media-card--carousel.is-active{opacity:1; visibility:visible;}
.z5ph[data-kenburns="true"] .z5ph__media-card.is-active img,
.z5ph[data-kenburns="true"] .z5ph__media-card--primary img,
.z5ph[data-kenburns="true"] .z5ph__media-card--single img{animation:z5phKenburns 8s ease-in-out both;}
@keyframes z5phKenburns{0%{transform:scale(1.02) translate3d(0,0,0);}100%{transform:scale(1.08) translate3d(-1.5%,-1%,0);}}

/* Full-bleed cinematic: Hero Transition Lite */
.z5ph--full_bleed{
  justify-content:flex-start;
  align-items:stretch;
  min-height:var(--z5ph-min-height);
}
.z5ph--full_bleed::before,
.z5ph--full_bleed::after{content:''; position:absolute; inset:0; pointer-events:none; z-index:1;}
.z5ph--full_bleed::before{
  background:
    linear-gradient(90deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.48) 32%, rgba(0,0,0,.18) 58%, rgba(0,0,0,.46) 100%),
    linear-gradient(0deg, rgba(0,0,0,.72) 0%, rgba(0,0,0,.16) 48%, rgba(0,0,0,.16) 100%);
}
.z5ph--full_bleed::after{background:radial-gradient(circle at 18% 78%, rgba(0,0,0,.22) 0%, rgba(0,0,0,0) 42%);}
.z5ph__background{position:absolute; inset:0; z-index:0; overflow:hidden;}
.z5ph__background .z5ph__media-card,
.z5ph__media-card--background{position:absolute; inset:0; width:100%; height:100%; border-radius:0; border:0 !important; box-shadow:none !important; background:#111;}
.z5ph__media-card--background::after{opacity:0;}
.z5ph__media-card--background img{width:100%; height:100%; object-fit:cover;}
.z5ph--full_bleed .z5ph__container{
  width:100%;
  min-height:inherit;
  padding:80px var(--z5ph-page-gutter) 64px;
  margin:0;
  display:flex;
  flex-direction:column;
  justify-content:var(--z5ph-content-vertical);
  align-items:var(--z5ph-content-horizontal);
  pointer-events:none;
}
.z5ph--full_bleed .z5ph__content{
  width:100%;
  max-width:var(--z5ph-content-width);
  flex:none;
  pointer-events:auto;
}
.z5ph--full_bleed .z5ph__stats{max-width:440px;}
.z5ph--full_bleed[data-kenburns="true"] .z5ph__media-card--background img{animation:z5phFullBleedKenburns 14s ease-in-out both;}
@keyframes z5phFullBleedKenburns{0%{transform:scale(1.02) translate3d(0,0,0);}100%{transform:scale(1.08) translate3d(-1.5%,-1%,0);}}

/* Editorial/text-only should still feel like the same hero family */
.z5ph--text_only{background:#f4f1ee; color:var(--z5ph-color-dark);}
.z5ph--text_only .z5ph__container{justify-content:center;}
.z5ph--text_only .z5ph__content{align-items:center; text-align:center;}
.z5ph--text_only .z5ph__eyebrow,
.z5ph--text_only .z5ph__heading,
.z5ph--text_only .z5ph__body{color:var(--z5ph-color-dark);}
.z5ph--text_only .z5ph__button{color:var(--z5ph-color-dark);}
.z5ph--text_only .z5ph__trust-line{color:rgba(23,18,20,.76);}
.z5ph--text_only .z5ph__cta-microcopy{color:rgba(23,18,20,.58);}
.z5ph--text_only .z5ph__button:hover,
.z5ph--text_only .z5ph__button:focus-visible{color:#fff; background:var(--z5ph-color-dark); border-color:var(--z5ph-color-dark);}

@media (prefers-reduced-motion: reduce){
  .z5ph[data-reduced-motion="true"] .z5ph__media-card img{animation:none !important; transform:none !important;}
  .z5ph[data-reduced-motion="true"] *{scroll-behavior:auto !important;}
}
@media (max-width:1024px){
  .z5ph{--z5ph-page-gutter:var(--z5ph-page-gutter-tablet);}
  .z5ph__media-grid{min-height:clamp(360px,44vw,520px);}
  .z5ph--full_bleed .z5ph__container{padding-top:72px; padding-bottom:56px;}
  .z5ph__heading{font-size:clamp(3rem,7vw,5rem);}
  .z5ph__stats--dock{
    position:static;
    width:100%;
    max-width:var(--z5ph-content-width);
    margin-top:var(--z5ph-content-item-gap);
    justify-content:flex-start;
  }
}
@media (min-width:768px) and (max-width:1024px){
  .z5ph[data-stats-tablet="false"] .z5ph__stats{display:none;}
}
@media (max-width:767px){
  .z5ph{--z5ph-page-gutter:var(--z5ph-page-gutter-mobile);}
  .z5ph__container,
  .z5ph--media-left .z5ph__container{flex-direction:column; align-items:flex-start; justify-content:center;}
  .z5ph--align-center .z5ph__container{align-items:center;}
  .z5ph__content,.z5ph__media{width:100%; flex-basis:auto;}
  .z5ph__content{flex-shrink:1;}
  .z5ph:not(.z5ph--media-center) .z5ph__media{align-self:auto;}
  .z5ph__heading{font-size:clamp(2.6rem,14vw,4.25rem); line-height:.92;}
  .z5ph__accent{font-size:clamp(2.25rem,11vw,3.7rem);}
  .z5ph__body{font-size:15px;}
  .z5ph__stats{gap:20px var(--z5ph-stats-gap); margin-top:4px;}
  .z5ph[data-stats-mobile="false"] .z5ph__stats{display:none;}
  .z5ph__stats--dock{margin-top:var(--z5ph-content-item-gap);}
  .z5ph__button{min-height:44px; padding:13px 18px;}
  .z5ph__media-grid{grid-template-columns:1fr 1fr; grid-template-rows:1.15fr .85fr; min-height:420px;}
  .z5ph__media-card--primary{grid-column:1 / span 2; grid-row:1;}
  .z5ph__single,.z5ph__carousel-lite{min-height:380px; aspect-ratio:4/5;}
  .z5ph--full_bleed::before{
    background:
      linear-gradient(90deg, rgba(0,0,0,.62) 0%, rgba(0,0,0,.18) 100%),
      linear-gradient(0deg, rgba(0,0,0,.78) 0%, rgba(0,0,0,.34) 58%, rgba(0,0,0,.12) 100%);
  }
  .z5ph--full_bleed .z5ph__container{padding:72px var(--z5ph-page-gutter) 44px;}
}
