/* ==========================================================
   EKM Wellness — home page (index.html)
   ========================================================== */

/* hero */
.hero{min-height:100svh;display:flex;align-items:center;position:relative;padding-top:120px;padding-bottom:70px;overflow:hidden;
  background:radial-gradient(900px 520px at 78% 40%,rgba(201,151,79,.16),transparent 65%),radial-gradient(600px 400px at 0% 100%,rgba(201,151,79,.07),transparent 70%),var(--bg)}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;z-index:0}
.hero-overlay{position:absolute;inset:0;z-index:0;background:linear-gradient(90deg,rgba(7,7,7,.72) 0%,rgba(7,7,7,.32) 50%,rgba(7,7,7,.05) 100%),linear-gradient(180deg,rgba(7,7,7,.5) 0%,transparent 22%,transparent 82%,var(--bg) 100%)}
/* grid lines over the video (sits above the overlay, below the copy) */
.hero::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(ellipse at 70% 40%,#000,transparent 72%);-webkit-mask-image:radial-gradient(ellipse at 70% 40%,#000,transparent 72%)}
.hero h1,.hero .eyebrow{text-shadow:0 2px 24px rgba(0,0,0,.65),0 1px 3px rgba(0,0,0,.5)}
.hero p.sub{color:#e2dacd;text-shadow:0 1px 14px rgba(0,0,0,.8),0 1px 2px rgba(0,0,0,.6)}
/* "Transformations" — transparent fill, gold outline only, so the video
   shows straight through the letterforms instead of a solid block sitting
   over it. Scoped to the hero heading only; every other .gold on the site
   keeps its solid gradient fill. */
.hero h1 .gold{
  background:none;
  -webkit-background-clip:initial;
  background-clip:initial;
  color:transparent;
  -webkit-text-stroke:2px var(--gold-hi);
  text-stroke:2px var(--gold-hi);
  text-shadow:none;
  filter:drop-shadow(0 2px 10px rgba(0,0,0,.55));
}
.hero-stats{border-top-color:rgba(255,255,255,.22)}
.hero-stats span{color:#d8d0c4;text-shadow:0 1px 8px rgba(0,0,0,.8)}
.hero .btn-ghost{background:rgba(7,7,7,.4);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.hero .wrap{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;position:relative;z-index:1}
.hero h1{font-size:clamp(3.4rem,9vw,7.2rem);line-height:.92;font-weight:800}
.hero h1 em{font-style:normal;display:block}
.hero p.sub{font-size:1.15rem;color:var(--muted);max-width:46ch;margin-top:26px}
.hero-stats{display:flex;flex-wrap:wrap;gap:36px;margin-top:52px;padding-top:28px;border-top:1px solid var(--line)}
.hero-stats b{display:block;font-family:var(--display);font-size:2.4rem;line-height:1;color:var(--gold-hi)}
.hero-stats span{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.hero-art{position:relative}
.hero-art .logo{width:100%;filter:drop-shadow(0 6px 30px rgba(0,0,0,.6)) drop-shadow(0 0 40px rgba(201,151,79,.3));animation:float 7s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-12px)}}

/* about teaser */
.about-teaser .wrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:64px;align-items:center}
.about-teaser .photo-frame img{aspect-ratio:4/5;object-fit:cover;object-position:center 66%;width:100%}
.badge{position:absolute;left:16px;bottom:16px;background:rgba(7,7,7,.85);backdrop-filter:blur(8px);border:1px solid var(--gold-lo);border-radius:12px;padding:12px 18px}
.badge b{font-family:var(--display);font-size:1.5rem;letter-spacing:.06em;text-transform:uppercase;color:var(--gold-hi);display:block;line-height:1.1}
.badge small{color:var(--muted);font-size:.8rem}
.about-teaser blockquote{font-size:1.12rem;color:var(--text);margin-top:24px;padding-left:22px;border-left:2px solid var(--gold)}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:34px}
.pillar{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px}
.pillar b{font-family:var(--display);font-size:1.25rem;text-transform:uppercase;letter-spacing:.06em;color:var(--gold-hi);display:block}
.pillar span{font-size:.85rem;color:var(--muted);line-height:1.45;display:block;margin-top:4px}

/* transformation */
.transform .wrap{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.transform .photo-frame img{width:100%;aspect-ratio:1/.96;object-fit:cover}
.tag{position:absolute;top:14px;padding:6px 14px;border-radius:999px;font-family:var(--display);font-size:1rem;letter-spacing:.14em;text-transform:uppercase;background:rgba(7,7,7,.8);border:1px solid var(--gold-lo);color:var(--gold-hi)}
.tag.l{left:14px}
.tag.r{right:14px}

/* process steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;counter-reset:s}
.step{padding:34px 28px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}
.step::before{counter-increment:s;content:"0" counter(s);font-family:var(--display);font-weight:800;font-size:4.6rem;line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;display:block;margin-bottom:12px}
.step h3{font-size:1.6rem;margin-bottom:8px}
.step p{color:var(--muted);font-size:.96rem}

/* gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:stretch}
.gallery-grid .photo-frame{height:100%;min-height:380px}
.gallery-grid img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:transform .6s}
.gallery-grid .photo-frame:hover img{transform:scale(1.05)}
.gallery-grid figcaption{position:absolute;inset:auto 0 0 0;padding:60px 18px 16px;background:linear-gradient(transparent,rgba(0,0,0,.85));font-family:var(--display);text-transform:uppercase;letter-spacing:.1em;font-size:1.15rem;color:var(--gold-hi)}
.g-pad img{object-position:center 60%}
.g-duo img{object-position:center 25%}
.g-rack img{object-position:center 40%}

/* tablet + mobile: video fills the whole hero (person centred),
   logo at the top, copy at the bottom */
@media (max-width:980px){
  .hero{min-height:100svh;align-items:stretch;padding-top:calc(var(--header-h) + 18px);padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
  /* video fills the whole hero edge-to-edge; only faded in behind the
     logo so it doesn't compete with it, not physically cropped away */
  .hero-video{inset:0;height:100%;object-position:50% 0;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 110px);mask-image:linear-gradient(180deg,transparent 0,#000 110px)}
  .hero-overlay{background:linear-gradient(180deg,rgba(7,7,7,.6) 0%,rgba(7,7,7,.1) 22%,rgba(7,7,7,0) 42%,rgba(7,7,7,.78) 68%,rgba(7,7,7,.92) 100%)}
  .hero .wrap{display:flex;flex-direction:column;justify-content:space-between;gap:28px;width:min(1180px,100%)}
  .hero::after{background-size:44px 44px;mask-image:radial-gradient(ellipse at 50% 38%,#000,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at 50% 38%,#000,transparent 75%)}
  .hero-art{order:-1;width:min(230px,56vw);margin-inline:auto}
  .hero-art .logo{animation:none}
  .about-teaser .wrap,.transform .wrap{grid-template-columns:1fr;gap:44px}
  .hero h1{font-size:min(11.6vw,7.2rem)}
  .hero p.sub{font-size:1.02rem;margin-top:18px}
  .steps{grid-template-columns:1fr 1fr}
  .gallery-grid{grid-template-columns:1fr 1fr}
  .gallery-grid .photo-frame:last-child{grid-column:span 2;min-height:320px}
  .about-teaser .photo-frame{max-width:520px}
}
@media (max-width:640px){
  .hero-art{width:min(170px,46vw)}
  .hero p.sub,.hero-stats{display:none}
  .hero .cta-row{margin-top:22px;gap:10px}

  .about-teaser .wrap,.transform .wrap{gap:32px}
  .pillars{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:26px}
  .pillar{padding:14px 12px}
  .pillar b{font-size:1.05rem}
  .pillar span{font-size:.74rem}

  /* steps: number beside copy */
  .steps{grid-template-columns:1fr;gap:12px}
  .step{display:grid;grid-template-columns:auto 1fr;column-gap:18px;align-items:start;padding:22px 20px}
  .step::before{grid-row:span 2;font-size:2.8rem;margin:0}
  .step h3{font-size:1.4rem;margin-bottom:4px}

  /* gallery: swipeable row */
  .gallery-grid{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;margin-inline:-18px;padding-inline:18px;scroll-padding-inline:18px;scrollbar-width:none}
  .gallery-grid::-webkit-scrollbar{display:none}
  .gallery-grid .photo-frame,.gallery-grid .photo-frame:last-child{flex:0 0 78%;min-height:420px;scroll-snap-align:start;grid-column:auto}
  .gallery-grid .reveal{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){
  .hero-art .logo{animation:none}
  .hero-video{display:none}
}
