/* ==========================================================================
   Freedom Machine: About page
   Built on styles.css (tokens, eyebrow, footer). Layout from the About v6
   design, set in the site's type (Inter) and colours.
   ========================================================================== */

.about {
  --gutter: 6.5%;
  --a-section: clamp(50px, 5.6vw, 84px);
  --a-feature: clamp(34px, 3.3vw, 52px);
  --a-display: clamp(64px, 7.2vw, 112px);

  background: var(--cream);
  color: var(--ink);
}

.about .wrap {
  max-width: 1600px;
  margin: 0 auto;
  padding: 0 var(--gutter);
}

.about img:not(.brand__logo) {
  display: block;
  width: 100%;
  max-width: none;
  object-fit: cover;
}

.about .eyebrow {
  margin: 0;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.14em;
}

.about .copy {
  max-width: 610px;
  font-size: 20px;
  line-height: 1.55;
}

.about .copy p { margin: 0 0 1.05em; }
.about .copy p:last-child { margin-bottom: 0; }

.about .a-title {
  margin: 18px 0 0;
  font-size: var(--a-section);
  font-weight: 800;
  line-height: 0.92;
  letter-spacing: -0.055em;
}

/* Header: the site nav, with the logo in ink on the cream opening */
.about-nav {
  position: relative;
  padding: 38px 6.5% 0;
}

.about-nav .brand__logo {
  filter: invert(1);
}

/* Opening ---------------------------------------------------------------- */
.a-hero { padding: 110px 0 120px; }
.a-hero .eyebrow { margin-bottom: 52px; font-size: 16px; }

.a-hero__title {
  max-width: none;
  margin: 0;
  font-size: clamp(68px, 7.2vw, 112px);
  font-weight: 800;
  line-height: 0.88;
  letter-spacing: -0.065em;
}

.a-hero__title span { display: block; }

.a-hero__photo {
  width: 76%;
  height: min(49vw, 690px);
  margin: 92px 0 0 auto;
}

.a-intro {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8vw;
  margin-top: 82px;
  align-items: start;
}

.a-intro .copy { max-width: 560px; }

.about .a-intro__lead {
  max-width: none;
  font-size: 45px;
  line-height: 1.3;
  letter-spacing: -0.02em;
}

.a-intro__close {
  max-width: 760px;
  margin: 56px 0 0;
  font-size: clamp(30px, 3vw, 44px);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -0.035em;
}

.a-intro__close span { display: block; }

/* The machines ----------------------------------------------------------- */
.a-garage { padding: 140px 0; }

.a-garage__grid {
  display: grid;
  grid-template-columns: 0.9fr 1.1fr;
  gap: 8vw;
  align-items: start;
}

.a-garage__photo { height: 520px; margin-top: 70px; }
.a-garage .copy { padding-top: 42px; }

/* Quote ------------------------------------------------------------------ */
.a-quote {
  padding: 135px 0;
  background: var(--black);
  color: var(--white);
}

.a-quote__grid {
  display: grid;
  grid-template-columns: 0.55fr 1.45fr;
  gap: 8vw;
  align-items: start;
}

.a-quote__text {
  margin: 0;
  font-size: var(--a-section);
  font-weight: 800;
  line-height: 0.93;
  letter-spacing: -0.055em;
}

.a-quote__text span {
  display: block;
  margin-top: 38px;
  font-size: 0.62em;
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -0.035em;
}

/* Why we built it -------------------------------------------------------- */
.a-find { padding: 145px 0; }

.a-find__head {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 8vw;
  align-items: start;
}

.a-find .copy { padding-top: 38px; }

.a-find__photo { height: 650px; margin-top: 95px; }

.a-pullquote {
  max-width: 930px;
  margin: 105px 0 0;
  font-size: var(--a-feature);
  line-height: 1.08;
  letter-spacing: -0.04em;
}

.a-pullquote strong { font-weight: 800; }

.a-duo {
  display: grid;
  grid-template-columns: 0.72fr 1.28fr;
  gap: 26px;
  margin-top: 65px;
  align-items: end;
}

.a-duo__small { height: 410px; }
.a-duo__large { height: 570px; }

/* Less scrolling --------------------------------------------------------- */
.a-doing {
  padding: 110px 0;
  background: #ff5c15;
  color: var(--ink);
}

.a-doing__grid {
  display: grid;
  grid-template-columns: 1.08fr 0.92fr;
  gap: 8vw;
  align-items: start;
}

.a-doing h2 {
  margin: 0;
  font-size: var(--a-section);
  font-weight: 800;
  line-height: 0.9;
  letter-spacing: -0.06em;
}

/* Founders --------------------------------------------------------------- */
.a-founders { padding: 145px 0; }

.a-founders__grid {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 8vw;
  align-items: start;
}

.a-founders .a-title { margin-bottom: 70px; }
.a-founders .copy { padding-top: 40px; }

.a-portraits {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}

.a-person { margin: 0; }

.a-person__placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 420px;
  background: #d8d3ca;
  color: #777;
  font-size: 13px;
}

.a-person figcaption {
  margin-top: 14px;
  font-size: 15px;
  font-weight: 800;
}

.a-person figcaption span {
  display: block;
  margin-top: 4px;
  font-size: 13px;
  font-weight: 400;
}

/* Closing ---------------------------------------------------------------- */
.a-closing {
  position: relative;
  display: flex;
  align-items: flex-end;
  min-height: 80vh;
  overflow: hidden;
  background: #151513;
  color: var(--white);
}

.a-closing__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
}

.a-closing__bg::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0, 0, 0, 0.72), rgba(0, 0, 0, 0.16));
}

.a-closing .wrap {
  position: relative;
  width: 100%;
  padding-top: 130px;
  padding-bottom: 90px;
}

.a-closing__kicker {
  max-width: 600px;
  margin: 0 0 40px;
  font-size: 20px;
  line-height: 1.5;
}

.a-closing h2 {
  margin: 0 0 40px;
  font-size: var(--a-display);
  font-weight: 800;
  line-height: 0.84;
  letter-spacing: -0.07em;
}

.a-signoff {
  margin: 0;
  font-size: 16px;
  font-weight: 800;
  line-height: 1.45;
}

.a-signoff span {
  font-size: 13px;
  font-weight: 400;
}

/* Responsive ------------------------------------------------------------- */
@media (max-width: 850px) {
  .about {
    --a-display: clamp(56px, 16vw, 86px);
    --a-section: clamp(45px, 12vw, 68px);
    --a-feature: clamp(30px, 8vw, 43px);
  }

  .about .wrap { padding: 0 20px; }
  .about .copy { font-size: 17px; }
  .about .a-intro__lead { font-size: 28px; }

  .about-nav { padding: 26px 20px 0; }

  .a-hero,
  .a-garage,
  .a-find,
  .a-founders { padding: 78px 0; }

  .a-quote { padding: 80px 0; }
  .a-doing { padding: 75px 0; }

  .a-hero .eyebrow { margin-bottom: 38px; }
  .a-hero__title { font-size: clamp(48px, 13vw, 68px); }
  .a-hero__photo { width: 100%; height: 56vh; margin-top: 58px; }

  .a-intro,
  .a-garage__grid,
  .a-quote__grid,
  .a-find__head,
  .a-doing__grid,
  .a-founders__grid {
    grid-template-columns: 1fr;
    gap: 45px;
  }

  .a-intro { margin-top: 58px; }
  .a-intro__close { margin-top: 40px; }

  .a-garage .copy,
  .a-find .copy,
  .a-founders .copy { padding-top: 0; }

  .a-garage__photo { height: 52vh; margin-top: 50px; }
  .a-find__photo { height: 56vh; margin-top: 60px; }
  .a-pullquote { margin-top: 70px; }

  .a-duo { grid-template-columns: 1fr; gap: 18px; margin-top: 45px; }
  .a-duo__small,
  .a-duo__large { height: 52vh; }

  .a-person__placeholder { height: 48vw; }
  .a-closing__kicker { font-size: 17px; }
}

@media (max-width: 560px) {
  .a-portraits { grid-template-columns: 1fr; }
  .a-person__placeholder { height: 110vw; }
}

/* the closing line now sits under the founders paragraph */
.about .copy .a-intro__close { margin: 48px 0 0; font-size: 20px; line-height: 1.4; letter-spacing: -0.01em; }

@media (max-width: 850px) {
  .about .copy .a-intro__close { margin-top: 32px; }
}

/* The machines: the opener and first paragraph large, the rest at body size */
.about .a-garage__copy { max-width: none; }

.about .a-garage__copy p:first-child {
  font-size: 45px;
  line-height: 1.25;
  letter-spacing: -0.02em;
}

.about .a-garage__copy p:first-child { margin-bottom: 1.2em; }

@media (max-width: 850px) {
  .about .a-garage__copy p:first-child { font-size: 28px; }
}

/* Why we built it: pull quote at 45px */
.about .a-pullquote { font-size: 45px; line-height: 1.2; }

/* Less scrolling: all text white on the orange */
.a-doing,
.a-doing strong { color: var(--white); }

@media (max-width: 850px) {
  .about .a-pullquote { font-size: 28px; }
}

/* Closing: the road ahead */
.about .a-closing__eyebrow { margin-bottom: 28px; color: var(--white); }

.a-closing .a-closing__copy {
  max-width: 640px;
  font-size: 20px;
  line-height: 1.55;
}

.a-closing__copy p { margin: 0 0 1em; }
.a-closing__copy p:last-child { margin-bottom: 0; }

@media (max-width: 850px) {
  .a-closing .a-closing__copy { font-size: 17px; }
}

/* Opening: founders' signatures */
.a-sigs {
  display: flex;
  flex-wrap: wrap;
  gap: 40px 72px;
  margin-top: 56px;
}

.a-sig { margin: 0; }

.about img.a-sig__img {
  width: auto;
  height: 80px;
  object-fit: contain;
}

.a-sig figcaption { margin-top: 18px; }

.a-sig__name,
.a-sig__role {
  display: block;
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: 0.3em;
  text-transform: uppercase;
}

.a-sig__name { font-weight: 600; }
.a-sig__role { margin-top: 8px; color: #6b6960; }

@media (max-width: 850px) {
  .a-sigs { gap: 32px 40px; margin-top: 40px; }
  .about img.a-sig__img { height: 60px; }
}

/* Founder portraits: both tiles share a 4:5 frame */
.a-person__placeholder,
.about img.a-person__img {
  height: auto;
  aspect-ratio: 4 / 5;
}

.about img.a-person__img { object-position: center top; }

@media (max-width: 850px) {
  .a-person__placeholder,
  .about img.a-person__img { height: auto; }
}

/* The machines: the garage photo shown whole, in its portrait frame */
.about img.a-garage__photo { height: auto; aspect-ratio: 2 / 3; }

/* Closing: the same signatures, in white on the photo */
.a-sigs--light .a-sig__img { filter: invert(1); }
.a-sigs--light .a-sig__role { color: rgba(255, 255, 255, 0.7); }

.a-closing__copy strong { font-weight: 700; color: var(--white); }

/* Closing on phones: keep space above "The road ahead" (the general
   mobile .wrap padding was removing it) */
@media (max-width: 850px) {
  .about .a-closing .wrap { padding: 90px 20px 80px; }
}
