/* ===========================================
   ABOUT PAGE STYLES
   All values on 4px grid
   =========================================== */

/* ===== HERO ===== */
.about-hero {
  padding: 20px 32px 40px;
}

.about-hero__bg {
  background: #000000;
  border-radius: 40px;
  padding: 100px 60px 64px 100px;
  min-height: 710px;
}

.about-hero__inner {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 64px;
}

/* Left text block */
.about-hero__text {
  display: flex;
  flex-direction: column;
  gap: 32px;
  flex: 1;
}

.about-hero__heading {
  font-family: 'Albert Sans', sans-serif;
  font-weight: 500;
  font-size: clamp(28px, 2.8vw, 40px);
  letter-spacing: -0.04em;
  line-height: 1.4;
  color: #F7F7F7;
  opacity: 0;
  animation: hero-fade-up 0.7s ease forwards;
  animation-delay: 0.1s;
}

.about-hero__body {
  display: flex;
  flex-direction: column;
  gap: 20px;
  opacity: 0;
  animation: hero-fade-up 0.7s ease forwards;
  animation-delay: 0.3s;
}

.about-hero__body p {
  font-family: 'Albert Sans', sans-serif;
  font-size: 18px;
  line-height: 1.3;
  color: #F7F7F7;
}

.about-hero__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 16px 24px;
  border: 1px solid #F7F7F7;
  border-radius: 9999px;
  font-family: 'Albert Sans', sans-serif;
  font-size: 16px;
  font-style: italic;
  color: #F7F7F7;
  text-decoration: none;
  align-self: flex-start;
  transition: background 0.2s ease, color 0.2s ease;
  opacity: 0;
  animation: hero-fade-up 0.7s ease forwards;
  animation-delay: 0.5s;
}

.about-hero__cta:hover {
  background: #F7F7F7;
  color: #000000;
}

/* Right visual */
.about-hero__visual {
  position: relative;
  width: clamp(340px, 36vw, 540px);
  height: clamp(340px, 36vw, 540px);
  flex-shrink: 0;
  opacity: 0;
  animation: hero-fade-up 0.8s ease forwards;
  animation-delay: 0.2s;
}

.about-hero__illustration {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
}

/* ===== MORE THAN A PORTFOLIO ===== */
.about-cards {
  padding: 32px 32px 32px;
}

.about-cards__bg {
  border-radius: 40px;
  padding: 0 60px 64px 28px;
}

.about-cards__heading {
  font-family: 'Albert Sans', sans-serif;
  font-weight: 400;
  font-size: 32px;
  line-height: 1.15;
  letter-spacing: -0.04em;
  color: #000000;
  padding-top: 80px;
  padding-bottom: 0;
}

/* Cards grid */
.about-cards__grid {
  display: flex;
  flex-direction: row;
  gap: 16px;
  padding-top: 64px;
}

.about-card {
  flex: 1;
  border-radius: 40px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  cursor: default;
  height: 460px;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,0.18);
  transition: box-shadow 0.4s ease;
}

.about-hero__cta:focus-visible {
  outline: 2px solid #000000;
  outline-offset: 4px;
  border-radius: 9999px;
}

.about-card--pink   { background: #440230; }
.about-card--yellow { background: #00320C; }
.about-card--blue   { background: #0D1733; }

.about-card--pink  .about-card__title,
.about-card--pink  .about-card__desc { color: #F2818E; }

.about-card--yellow .about-card__title,
.about-card--yellow .about-card__desc { color: #96FFA8; }

.about-card--blue  .about-card__title,
.about-card--blue  .about-card__desc { color: #9CC9EF; }

/* Image inside card */
.about-card__image-wrap {
  border-radius: 28px;
  overflow: hidden;
  height: 240px;
  flex-shrink: 0;
  transition: height 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

/* Desktop (hover-capable): start collapsed, expand on hover */
@media (hover: hover) and (pointer: fine) {
  .about-card {
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0);
  }
  .about-card:hover {
    box-shadow: inset 0 0 0 1px rgba(255,255,255,0.18);
  }
  .about-card__image-wrap {
    height: 320px;
  }
  .about-card:hover .about-card__image-wrap {
    height: 240px;
  }
  .about-card__desc-wrap {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.5s cubic-bezier(0.16, 1, 0.3, 1);
  }
  .about-card:hover .about-card__desc-wrap {
    grid-template-rows: 1fr;
  }
  .about-card__desc {
    overflow: hidden;
    opacity: 0;
    transition: opacity 0.3s ease 0.15s;
  }
  .about-card:hover .about-card__desc {
    opacity: 1;
  }
}

.about-card__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
}

/* Card text */
.about-card__content {
  padding: 16px 16px 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}

.about-card__title {
  font-family: 'Boldonse', 'Boogaloo', sans-serif;
  font-weight: 400;
  font-size: 24px;
  line-height: 1.6;
  color: #000000;
}

/* Description always visible */
.about-card__desc-wrap {
  display: block;
}

.about-card__desc {
  font-family: 'Albert Sans', sans-serif;
  font-size: 15px;
  line-height: 1.5;
  color: #000000;
}

/* Scroll reveal (reuse from main styles) */
[data-reveal] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
[data-reveal][data-delay="1"] { transition-delay: 0.1s; }
[data-reveal][data-delay="2"] { transition-delay: 0.2s; }
[data-reveal][data-delay="3"] { transition-delay: 0.3s; }
[data-reveal].is-visible {
  opacity: 1;
  transform: none;
}

/* ===== RESPONSIVE ===== */
@media (min-width: 769px) and (max-width: 1100px) {
  .about-card {
    height: auto;
    min-height: 420px;
  }
}

@media (max-width: 900px) {
  .about-hero__inner {
    flex-direction: column-reverse;
    gap: 40px;
  }

  .about-hero__visual {
    width: 240px;
    height: 240px;
  }

  .about-cards__grid {
    flex-direction: column;
  }

  .about-cards__bg {
    padding: 0 24px 40px;
  }
}

@media (max-width: 768px) {
  .about-hero { padding: 12px 12px 24px; }

  .about-hero__bg {
    padding: 80px 24px 40px 24px;
  }

  .about-hero__inner { gap: 28px; }

  .about-hero__visual {
    width: 180px;
    height: 180px;
  }

  .about-hero__heading {
    font-size: clamp(20px, 5vw, 24px);
  }

  .about-hero__body p { font-size: 15px; }

  .about-hero__cta { font-size: 14px; padding: 12px 20px; }

  .about-cards { padding: 12px 12px 24px; }

  .about-cards__bg { padding: 0 16px 40px; }

  .about-cards__heading { font-size: 24px; padding-top: 48px; }

  .about-card { height: auto; min-height: 380px; }

  .about-card__image-wrap { height: 220px; }

  .about-card__title { font-size: 20px; }
}

/* ── Reduced motion ──────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .about-hero__heading,
  .about-hero__body,
  .about-hero__cta,
  .about-hero__visual {
    opacity: 1;
    animation: none;
  }
  [data-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
