/* ================== ROOT / BASE TOKENS ================== */
:root {
  /* Layout + hero */
  --logo-top: 6%;
  --tag-top: 16%;
  --man-bottom: -2%;

  /* Shared max width + radius + shadows */
  --maxw: 1180px;
  --radius: 16px;
  --shadow-card: 0 18px 48px rgba(0, 0, 0, 0.22);
  --shadow-tile: 0 12px 28px rgba(0, 0, 0, 0.18);

  /* Typography colors */
  --ink: #0f0f10;
  --muted: #333;
}

/* RESET */
* {
  box-sizing: border-box;
}

html,
body {
  height: 100%;
  overflow-x: clip; /* avoid horizontal scroll */
}

body.moon {
  margin: 0;
  font-family: "Outfit", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  font-weight: 300;
  background: #000;
  color: #e8e8e8;
  line-height: 1.4;
}

/* ================== GLOBAL PAGE BACKGROUND ================== */
.page-bg {
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle at top left, #1a1a1a 0, transparent 55%),
    radial-gradient(circle at bottom right, #101010 0, transparent 55%),
    #000000;
}

/* ================== HERO (Single Full Image Responsive) ================== */
.about-hero {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 100svh;
  overflow: hidden;
}

.about-hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  content: url("/IMAGE/aboutushero.png"); /* desktop default */
}

/* MOBILE IMAGE SWAP */
@media (max-width: 768px) {
  .about-hero__img {
    content: url("/IMAGE/phoneabouus.png");
    object-position: center top;
  }
}

@media (max-width: 480px) {
  .about-hero__img {
    content: url("/IMAGE/phoneabouus.png");
    object-position: center 12%;
  }
}

/* ================== WHAT WE DO (White section, Black text) ================== */
.wwd {
  background: #ffffff;
  color: var(--ink);
  padding: clamp(28px, 6vw, 60px) 6vw clamp(32px, 7vw, 72px);
}

.wwd__inner {
  max-width: var(--maxw);
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: clamp(24px, 4vw, 48px);
  align-items: start;
}

/* Heading + paragraph */
.wwd__title {
  margin: 0 0 12px;
  font-weight: 700;
  font-size: clamp(28px, 3.4vw, 40px);
  letter-spacing: 0.2px;
  color: var(--ink);
}

.wwd__para {
  margin: 0;
  color: var(--muted);
  font-size: clamp(14.5px, 1.7vw, 18px);
  line-height: 1.7;
  max-width: 62ch;
}

/* Right: video container */
.wwd__video {
  margin: 0;
  background: #ffffff;
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  width: 100%;
  aspect-ratio: 16 / 10.2;
  display: block;
  position: relative;
  max-width: 100%;
}

.wwd__video video,
.wwd__video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border: none;
  display: block;
  background: #000;
}

/* Steps row (image tiles) */
.wwd__steps {
  max-width: var(--maxw);
  margin: clamp(26px, 6vw, 40px) auto 0;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(14px, 2.8vw, 28px);
  align-items: start;
  color: var(--ink);
}

.wwd__step {
  text-align: center;
}

.wwd__tile {
  width: clamp(86px, 9.6vw, 110px);
  height: clamp(86px, 9.6vw, 110px);
  margin: 0 auto 12px;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: var(--shadow-tile);
  overflow: hidden;
  will-change: transform;
}

.wwd__tile img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.wwd__step figcaption {
  color: var(--ink);
  font-weight: 500;
  font-size: clamp(13px, 1.6vw, 15px);
  letter-spacing: 0.5px;
  opacity: 0.9;
}

/* WHAT WE DO – RESPONSIVE */
@media (max-width: 1120px) {
  .wwd__inner {
    grid-template-columns: 1fr;
  }
  .wwd__video {
    order: 2;
    aspect-ratio: 16 / 11.5;
  }
}

@media (max-width: 780px) {
  .wwd__steps {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .wwd {
    padding-inline: 5vw;
  }
  .wwd__video {
    aspect-ratio: 16 / 14.5;
  }
  .wwd__tile {
    width: 82px;
    height: 82px;
    border-radius: 16px;
  }
}

@media (max-width: 390px) {
  .wwd__video {
    aspect-ratio: 16 / 15.5;
  }
}

/* Safety: avoid horizontal overflow from any inner grids */
#whatWeDo,
#whatWeDo .wwd__inner {
  overflow-x: clip;
  max-width: 100%;
}

/* ================== OUR BACKGROUND (Text + image card) ================== */
.bgsec {
  padding: clamp(40px, 8vw, 80px) 6vw;
  background: linear-gradient(to bottom, #cfcfcf, #bdbdbd);
  color: #111;
}

.bgsec__inner {
  max-width: 1180px;
  margin: 0 auto;
}

.bgsec__title {
  font-size: clamp(26px, 3.2vw, 38px);
  font-weight: 700;
  letter-spacing: 0.4px;
  margin: 0 0 14px 0;
}

.bgsec__title span {
  font-weight: 300;
  opacity: 0.55;
}

.bgsec__para {
  font-size: clamp(14px, 1.7vw, 17px);
  line-height: 1.7;
  max-width: 70ch;
  color: #222;
  margin-bottom: clamp(26px, 5vw, 40px);
}

/* Big White Card */
.bgsec__card {
  width: 100%;
  height: clamp(260px, 42vw, 420px); /* slightly bigger */
  background: #ffffff;
  border-radius: 18px;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.25);
  overflow: hidden;
}

.bgsec__card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

/* Responsive */
@media (max-width: 760px) {
  .bgsec__card {
    height: clamp(230px, 68vw, 360px);
  }
}

@media (max-width: 480px) {
  .bgsec {
    padding-inline: 5vw;
  }
  .bgsec__title {
    font-size: 26px;
  }
  .bgsec__card {
    height: 260px;
  }
}

/* ================== GOAL SECTION (Stacked cards) ================== */
.goal--dark {
  background: #ffffff;
  color: #e9edf2;
  padding: clamp(28px, 4vw, 56px) clamp(16px, 6vw, 72px);
}

.goal__heading {
  font-size: clamp(26px, 4.4vw, 44px);
  font-weight: 700;
  line-height: 1.15;
  margin: 0 0 clamp(18px, 3vw, 28px);
  letter-spacing: 0.2px;
  color: #000;
}

/* Stage layout */
.goal__stage {
  display: grid;
  gap: clamp(10px, 2vw, 18px);
  grid-template-columns: minmax(260px, 1fr) clamp(90px, 22vw, 150px);
  grid-template-rows: repeat(3, 1fr);
  min-height: clamp(340px, 56vw, 480px);
  align-items: stretch;
  margin-bottom: clamp(18px, 4vw, 32px);
  isolation: isolate;
}

/* Card */
.goal__card {
  position: relative;
  border-radius: 22px;
  background: #e4e4e4;
  border: 1px solid #d6d6d6;
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.15);
  overflow: hidden;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  will-change: transform;
}

.goal__card:focus-visible {
  outline: 2px solid #8ec2ff;
  outline-offset: 3px;
}

.goal__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 1;
  filter: none;
  pointer-events: none;
}

.goal__label {
  position: absolute;
  top: 10px;
  right: 12px;
  color: #000;
  font-size: clamp(10px, 1.8vw, 13px);
  letter-spacing: 0.2px;
  font-weight: 500;
  z-index: 2;
}

/* Active & compact */
.goal__card.is-active {
  grid-column: 1 / 2;
  grid-row: 1 / 4;
}

.goal__card.is-compact {
  grid-column: 2 / 3;
  grid-row: var(--row);
}

@media (hover: hover) {
  .goal__card.is-compact:hover {
    transform: translateY(-2px);
    transition: 0.2s ease-out;
  }
}

/* Goal responsive */
@media (max-width: 680px) {
  .goal__stage {
    grid-template-columns: minmax(200px, 1fr) clamp(70px, 26vw, 96px);
    min-height: clamp(320px, 120vw, 440px);
  }
}

/* Paragraph */
.goal__para {
  max-width: 70ch;
  line-height: 1.7;
  font-size: clamp(14px, 1.15vw, 16px);
  color: #000000;
}

/* ===================== BEFORE & AFTER ===================== */
.ba {
  background: #bdbdbd;
  padding: clamp(28px, 4vw, 56px) clamp(16px, 6vw, 72px);
  color: #111;
}

.ba__heading {
  font-size: clamp(26px, 4.4vw, 44px);
  font-weight: 700;
  line-height: 1.15;
  margin: 0 0 clamp(18px, 3vw, 28px);
  color: #000000;
}

/* Grid layout */
.ba__grid {
  display: grid;
  gap: clamp(16px, 2.2vw, 24px);
  grid-template-columns: repeat(3, 1fr);
}

@media (max-width: 1024px) {
  .ba__grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 680px) {
  .ba__grid {
    grid-template-columns: 1fr;
  }
}

.ba__item {
  display: grid;
  gap: 12px;
}

/* Compare window */
.ba__compare {
  --split: 50%;
  position: relative;
  border-radius: 18px;
  overflow: hidden;
  background: #e6e6e662;
  border: 1px solid #d8d8d8;
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.12);
  min-height: clamp(230px, 40vw, 360px); /* slightly bigger */
  isolation: isolate;
  cursor: ew-resize;
  will-change: transform;
}

.ba__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.ba__img--after {
  clip-path: polygon(0 0, var(--split) 0, var(--split) 100%, 0 100%);
  transition: clip-path 0.08s linear;
  z-index: 2;
}

.ba__scrub {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 3;
}

/* Vertical bar at split */
.ba__bar {
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc(var(--split));
  transform: translateX(-1px);
  width: 2px;
  background: rgba(0, 0, 0, 0.55);
}

/* Handle */
.ba__handle {
  position: absolute;
  top: 50%;
  left: var(--split);
  transform: translate(-50%, -50%);
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: #000000;
  border: 1px solid #ffffff;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
}

.ba__para {
  color: #000000;
  line-height: 1.7;
  font-size: clamp(14px, 1.1vw, 16px);
}

/* ===================== PRICING (MOON) ===================== */
.pricing--white {
  background: #ffffff;
  color: #0e0f12;
  padding: clamp(36px, 6vw, 80px) clamp(16px, 6vw, 72px);
}

.pricing__heading {
  font-size: clamp(28px, 4.4vw, 44px);
  font-weight: 800;
  line-height: 1.1;
  margin: 0 0 clamp(20px, 3vw, 32px);
  letter-spacing: 0.2px;
}

/* Grid */
.pricing__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(240px, 1fr));
  gap: clamp(14px, 2.2vw, 24px);
}

@media (max-width: 1024px) {
  .pricing__grid {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 680px) {
  .pricing__grid {
    grid-template-columns: 1fr;
  }
}

/* Glass card */
.pricecard {
  position: relative;
  border-radius: 24px;
  padding: clamp(16px, 2vw, 22px);
  overflow: hidden;
  background: rgba(255, 255, 255, 0.45);
  border: 1px solid rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow:
    0 12px 30px rgba(0, 0, 0, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.55);
  transition: transform 0.24s cubic-bezier(0.2, 0.8, 0.2, 1),
    box-shadow 0.24s ease;
  will-change: transform;
}

@media (hover: hover) {
  .pricecard:hover {
    transform: translateY(-4px);
    box-shadow:
      0 18px 42px rgba(0, 0, 0, 0.12),
      inset 0 1px 0 rgba(255, 255, 255, 0.6);
  }
}

/* Coming soon */
.pricecard.is-soon {
  opacity: 0.85;
}

.pricecard__badge {
  position: absolute;
  top: 14px;
  right: 14px;
  font-size: 12px;
  letter-spacing: 0.3px;
  background: #111;
  color: #fff;
  border-radius: 999px;
  padding: 6px 10px;
}

/* Header */
.pricecard__head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 6px;
}

.pricecard__title {
  font-size: clamp(18px, 2.2vw, 22px);
  font-weight: 700;
  margin: 0;
}

.pricecard__pill {
  font-size: 12px;
  background: rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(0, 0, 0, 0.08);
  color: #111;
  padding: 4px 8px;
  border-radius: 999px;
}

/* Price */
.pricecard__price {
  font-size: clamp(22px, 3.4vw, 36px);
  font-weight: 800;
  margin: 2px 0 10px;
}

/* List */
.pricecard__list {
  list-style: none;
  padding: 0;
  margin: 0 0 14px;
  display: grid;
  gap: 8px;
}

.pricecard__list li {
  position: relative;
  padding-left: 18px;
  font-size: clamp(13px, 1.2vw, 15px);
  color: #2b2f37;
}

.pricecard__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #111;
}

/* Terms */
.pricing__terms {
  margin-top: clamp(18px, 3.2vw, 28px);
  background: rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(0, 0, 0, 0.06);
  border-radius: 18px;
  padding: clamp(14px, 2vw, 18px);
}

.pricing__terms h4 {
  margin: 0 0 6px;
  font-size: 16px;
  font-weight: 700;
}

.pricing__terms p {
  margin: 0;
  color: #2b2f37;
  line-height: 1.7;
  font-size: clamp(13px, 1.1vw, 15px);
}

/* ===================== FINAL CTA (if you use it later) ===================== */
.finalcta {
  background: #ffffff;
  padding: clamp(50px, 8vw, 120px) 16px;
  text-align: center;
}

.finalcta__inner {
  max-width: 900px;
  margin: auto;
}

.finalcta__heading {
  font-size: clamp(28px, 4.4vw, 44px);
  font-weight: 800;
  margin: 0 0 12px;
  letter-spacing: 0.2px;
  color: #000;
}

.finalcta__tag {
  font-size: clamp(15px, 1.3vw, 18px);
  max-width: 70ch;
  margin: 0 auto clamp(20px, 3vw, 32px);
  color: #393939;
  line-height: 1.7;
}

.finalcta__btn {
  padding: 14px 36px;
  background: #000;
  color: #fff;
  border-radius: 14px;
  border: 1px solid #000;
  font-size: clamp(15px, 1.3vw, 18px);
  font-weight: 600;
  letter-spacing: 0.3px;
  cursor: pointer;
  transition: 0.25s ease;
  position: relative;
  overflow: hidden;
}

.finalcta__btn:hover {
  background: #111;
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
}

.finalcta__btn .ripple {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(0);
  background: rgba(255, 255, 255, 0.4);
  animation: ripple 0.5s ease-out forwards;
}

/* Ripple animation */
@keyframes ripple {
  to {
    transform: translate(-50%, -50%) scale(16);
    opacity: 0;
  }
}




.about-hero {
  position: relative;
  width: 100%;
  height: 100vh;
  min-height: 100svh;
  overflow: hidden;
}

.about-hero__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
