/* About: shared Arabic and English composition. Loaded after pages.css. */
.page-about .about-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: center;
  min-block-size: min(40rem, calc(100svh - var(--header-height)));
  padding-block: clamp(2rem, 5svh, 3.5rem);
  overflow: hidden;
  background: var(--page-bg);
}

.page-about .about-hero-photo {
  position: absolute;
  z-index: 0;
  inset: 0;
  inline-size: 100%;
  block-size: 100%;
  object-fit: cover;
}

.page-about .about-hero-content {
  position: relative;
  z-index: 1;
  padding-block-start: 0;
}

.page-about .about-hero .door-shell {
  --halo-gap: .8rem;
  position: relative;
  inline-size: min(62%, 32.5rem);
  margin-inline: 0 auto;
}

/* The clear side of the wall is physically left in both languages. */
.page-about:dir(rtl) .about-hero .door-shell {
  margin-inline: auto 0;
}

.page-about .about-hero .door-halo > span {
  border-color: var(--text);
}

.page-about .about-hero .invitation-card {
  --button-bg: var(--text);
  --button-text: var(--page-bg);
  --focus: var(--text);
  padding-block: 5.3rem 2.25rem;
  padding-inline: 2rem;
  color: var(--text);
  background: var(--page-bg);
}

.page-about .about-hero .invitation-card ::selection {
  color: var(--page-bg);
  background: var(--text);
}

.page-about .about-hero .motif {
  color: var(--clay);
}

.page-about .about-hero .invitation-card h1 {
  font-size: clamp(2.75rem, 4.4vw, 4rem);
  line-height: 1.05;
}

.page-about .about-hero .invitation-card .hero-lede {
  max-inline-size: 36ch;
  margin-block-start: .75rem;
  color: var(--muted);
  line-height: 1.5;
}

.page-about .about-hero .detail-rows,
.page-about .about-hero .detail-rows > div {
  border-color: var(--rule);
}

.page-about .about-hero .detail-rows > div {
  gap: .75rem;
  line-height: 1.5;
}

.page-about .about-hero .detail-rows dt {
  color: var(--muted);
}

.page-about .about-hero .detail-rows dd {
  min-inline-size: 0;
}

.page-about .about-hero .invitation-card .hero-action {
  max-inline-size: 100%;
  min-block-size: 2.75rem;
  white-space: normal;
}

.page-about .about-hero .hero-action span {
  min-inline-size: 0;
}

.page-about .about-letter {
  padding-block: 6rem 2rem;
}

.page-about .about-letter-card {
  display: grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr);
  grid-template-areas: "heading photo" "body photo" "signoff photo";
  column-gap: clamp(2.5rem, 5vw, 5rem);
  row-gap: 1.25rem;
  padding-block: 2rem;
  padding-inline: 2.25rem;
  border: 1px solid var(--rule);
  border-radius: 1.75rem;
}

.page-about .about-letter-card > h2 {
  grid-area: heading;
  min-inline-size: 0;
}

.page-about .about-letter-photo {
  grid-area: photo;
  align-self: center;
  justify-self: center;
  inline-size: min(100%, 19rem);
}

.page-about .about-letter-photo .arch-window {
  aspect-ratio: 3 / 4.3;
}

.page-about .about-letter-photo img {
  object-position: 50% 50%;
  animation: none;
}

.page-about .about-letter-prose {
  grid-area: body;
  min-inline-size: 0;
  max-inline-size: 44ch;
  color: var(--muted);
  font-size: 1.25rem;
  line-height: 1.2;
}

.page-about .about-letter-prose p + p {
  margin-block-start: .6rem;
}

.page-about .about-signoff {
  grid-area: signoff;
  display: grid;
  justify-items: end;
  gap: .6rem;
  margin: 0;
  padding-block-start: 1.25rem;
  border-block-start: 1px solid var(--rule);
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.8rem, 3vw, 2.65rem);
  font-weight: 700;
  line-height: 1.2;
  text-align: end;
}

.page-about .about-signoff .motif {
  inline-size: 4rem;
  block-size: 1rem;
  margin: 0;
  color: var(--clay);
}

.page-about .about-identity {
  padding-block: 5rem 6rem;
}

/* Identity: slim masthead, then story | heritage | vision and mission. */
.page-about .about-identity-head {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  padding-block-end: .875rem;
  border-block-end: 1px solid var(--rule);
}

.page-about .about-identity-mark {
  flex: none;
  margin: 0;
  inline-size: clamp(4.5rem, 7vw, 6.5rem);
}

.page-about .about-identity-mark img {
  inline-size: 100%;
  block-size: auto;
}

.page-about .about-identity-cols {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, .9fr) minmax(0, 1fr);
  gap: clamp(1.225rem, 2.45vw, 2.45rem);
  margin-block-start: 1.225rem;
}

.page-about .about-identity-cols > * + * {
  padding-inline-start: clamp(1.225rem, 2.45vw, 2.45rem);
  border-inline-start: 1px solid var(--rule);
}

.page-about .about-identity-text {
  color: var(--muted);
  font-size: 1.25rem;
  line-height: 1.85;
}

.page-about .about-heritage {
  color: var(--text);
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 2.4vw, 2rem);
  font-weight: 700;
  line-height: 1.35;
}

.page-about .about-heritage::first-line {
  color: var(--clay);
}

.page-about .about-aims h3 {
  color: var(--clay);
  font-size: 1.4rem;
}

.page-about .about-aims p {
  margin-block-start: .35rem;
  color: var(--text);
  font-size: 1.2rem;
  line-height: 1.75;
}

.page-about .about-aims article + article {
  margin-block-start: .875rem;
}

.page-about:lang(en) .about-hero .invitation-card h1 {
  font-size: 2rem;
  line-height: 1.1;
}

.page-about:lang(en) .about-hero .invitation-card .hero-lede {
  line-height: 1.65;
}

.page-about:lang(en) .about-signoff {
  font-weight: 400;
  line-height: 1.2;
}

@media (min-width: 48rem) {
  .page-about .about-hero-photo {
    object-position: 60% 50%;
  }

}

@media (min-width: 64rem) {
  .page-about .about-hero .door-shell {
    inline-size: min(44%, 32.5rem);
  }

  .page-about:lang(en) .about-hero .invitation-card h1 {
    font-size: clamp(2.5rem, 4vw, 3.5rem);
  }
}

@media (max-width: 47.99rem) {
  /* Keep the shared 4:5 portrait and its cloches above the overlapping door. */
  .page-about .about-hero.photo-hero {
    --photo-hero-ratio: 4 / 5;
    --photo-hero-cover: .4;
    --photo-hero-door: 81%;
    min-block-size: 0;
    padding: 0;
    background: var(--page-bg);
  }

  .page-about .about-hero-photo {
    display: none;
  }

  .page-about .about-hero .photo-hero-content {
    inline-size: 100%;
    padding-block-start: 0;
  }

  .page-about .about-hero.photo-hero .door-shell {
    inline-size: var(--photo-hero-door);
    margin-inline: auto;
  }

  .page-about .about-hero .invitation-card {
    padding-block: 2.25rem 2rem;
    padding-inline: var(--ph-group-gap);
  }

  .page-about .about-hero .invitation-card h1 {
    margin-block-start: var(--ph-head-gap);
    font-size: 2.75rem;
  }

  .page-about .about-hero .invitation-card .hero-lede {
    margin-block-start: var(--ph-head-gap);
    line-height: var(--ph-short-leading);
  }

  .page-about .about-hero .detail-rows {
    margin-block-start: var(--ph-group-gap);
  }

  .page-about .about-hero .detail-rows > div {
    padding-block: var(--ph-row);
    line-height: var(--ph-short-leading);
  }

  .page-about .about-hero .invitation-card .hero-action {
    inline-size: 100%;
    margin-block-start: var(--ph-group-gap);
    padding-inline: .75rem;
  }

  .page-about .about-letter {
    padding-block: var(--ph-first-start) var(--ph-section-end);
  }

  .page-about .about-letter-card {
    grid-template-columns: min(4.75rem, 28%) minmax(0, 1fr);
    grid-template-areas: "photo heading" "body body" "signoff signoff";
    column-gap: var(--ph-caption-gap);
    row-gap: var(--ph-group-gap);
    padding-block: var(--ph-group-gap) var(--ph-row);
    padding-inline: 1.1rem;
    border-radius: 1.5rem;
  }

  .page-about .about-letter-card > h2 {
    align-self: center;
    font-size: 1.875rem;
    line-height: 1.3;
  }

  .page-about .about-letter-photo {
    inline-size: 100%;
  }

  .page-about .about-letter-photo .arch-window {
    block-size: 6rem;
    aspect-ratio: auto;
    border-radius: 999px 999px .5rem .5rem;
  }

  .page-about .about-letter-photo .arch-window::after {
    display: none;
  }

  .page-about .about-letter-prose {
    font-size: 1.125rem;
    line-height: 1.2;
  }

  .page-about .about-letter-prose p + p {
    margin-block-start: .6rem;
  }

  .page-about .about-signoff {
    padding-block-start: var(--ph-group-gap);
    font-size: 1.4rem;
    line-height: 1.2;
  }

  .page-about .about-identity {
    padding-block: var(--ph-section-start) 2rem;
  }

  .page-about .about-identity-mark {
    inline-size: 4.5rem;
  }

  .page-about .about-identity-cols {
    grid-template-columns: minmax(0, 1fr);
    gap: 1.25rem;
  }

  .page-about .about-identity-cols > * + * {
    padding-inline-start: 0;
    padding-block-start: 1.25rem;
    border-inline-start: 0;
    border-block-start: 1px solid var(--rule);
  }

  .page-about .about-identity-text {
    font-size: 1.125rem;
    line-height: 1.8;
  }

  .page-about .about-heritage {
    font-size: 1.4rem;
  }

  .page-about .about-aims p {
    font-size: 1.125rem;
  }

  .page-about:lang(en) .about-hero .invitation-card h1 {
    font-size: 2rem;
  }

  .page-about:lang(en) .about-letter-card > h2 {
    line-height: 1.1;
  }

}

/* Arabic phone leading matches the Services cards and the Home:
   body .95, supporting lines 1.15, the hero lede 1.15. */
@media (max-width: 47.99rem) {
  .page-about:lang(ar) .about-signoff,
  .page-about:lang(ar) .about-heritage,
  .page-about:lang(ar) .about-aims p,
  .page-about:lang(ar) .about-hero .hero-lede {
    line-height: 1.15;
  }
}

/* Arabic identity paragraph: Latin QN set smaller so it sits with the Arabic words. */
.page-about:lang(ar) .about-identity-text {
  line-height: 1.15;
}

.page-about:lang(ar) .about-identity-text bdi {
  font-size: .75em;
  line-height: 1;
}

/* Arabic letter paragraph, chosen live: 1.0 leading, .4rem between the lines of copy. */
.page-about:lang(ar) .about-letter-prose {
  line-height: 1;
}

.page-about:lang(ar) .about-letter-prose p + p {
  margin-block-start: .4rem;
}

/* About phone prose: larger text with more room between Arabic lines. */
@media (max-width: 47.99rem) {
  .page-about .about-letter-prose,
  .page-about .about-identity-text,
  .page-about .about-aims p {
    font-size: 1.25rem;
  }

  .page-about:lang(ar) .about-letter-prose,
  .page-about:lang(ar) .about-aims p {
    line-height: 1.4;
  }
}

/* Hero intro line sits a little below the title (chosen live). */
.page-about .about-hero .invitation-card .hero-lede {
  margin-block-start: .6rem;
}

/* Phones: the closing ends at the WhatsApp line, exactly as on Services. */
@media (max-width: 47.99rem) {
  .page-about .closing-feast {
    padding-block-start: 1.75rem;
  }

  .page-about .closing-feast .rsvp-card {
    padding-block-end: 1.5rem;
  }

  .page-about .closing-feast .rsvp-card h2 {
    margin-block-start: .75rem;
  }

  .page-about .closing-feast .rsvp-card > p {
    margin-block-start: .35rem;
    line-height: 1.3;
  }

  .page-about:lang(en) .closing-feast .rsvp-card > p {
    line-height: 1.4;
  }

  .page-about .closing-feast :is(.detail-rows, .action) {
    display: none;
  }
}

/* Desktop identity (chosen live): the logo stands in a tall tinted arch,
   the story beside it, vision and mission closing the block in two columns.
   Phones keep the stacked layout above. */
@media (min-width: 48rem) {
  .page-about .about-identity .wrap {
    display: grid;
    grid-template-columns: minmax(0, .8fr) minmax(0, 1.25fr) minmax(0, 1fr);
    grid-template-areas:
      "mark h2 h2"
      "mark text heritage"
      "mark aims aims";
    column-gap: clamp(2rem, 4vw, 4.5rem);
    row-gap: 1.5rem;
    align-items: start;
  }

  .page-about .about-identity :is(.about-identity-head, .about-identity-cols) {
    display: contents;
  }

  .page-about .about-identity .about-identity-cols > * + * {
    padding: 0;
    border: 0;
  }

  .page-about .about-identity .about-identity-mark {
    grid-area: mark;
    align-self: stretch;
    display: grid;
    place-items: center;
    inline-size: auto;
    padding: 22% 16% 12%;
    border-radius: 999px 999px 1.25rem 1.25rem;
    background: color-mix(in srgb, var(--text) 6%, transparent);
    box-shadow: inset 0 0 0 1px var(--rule);
  }

  .page-about .about-identity .about-identity-mark img {
    inline-size: min(100%, 14rem);
  }

  .page-about .about-identity h2 {
    grid-area: h2;
    align-self: end;
    font-size: clamp(2.5rem, 3.4vw, 3.4rem);
    line-height: 1.2;
  }

  .page-about .about-identity .about-identity-text {
    grid-area: text;
  }

  .page-about .about-identity .about-heritage {
    grid-area: heritage;
    align-self: center;
  }

  .page-about .about-identity .about-aims {
    grid-area: aims;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2.5rem;
    padding-block-start: 1.5rem;
    border-block-start: 1px solid var(--rule);
  }

  .page-about .about-identity .about-aims article + article {
    margin: 0;
  }
}

/* Tablet and desktop: the door stands on the hero's bottom edge, as on the home (chosen live). */
@media (min-width: 48rem) {
  .page-about .about-hero {
    padding-block-end: 0;
  }

  .page-about .about-hero-content {
    align-self: end;
  }
}

/* Desktop text one step larger across the About content (steered live). */
@media (min-width: 48rem) {
  .page-about .about-hero .invitation-card .hero-lede {
    font-size: 1.3rem;
  }

  .page-about .about-hero .detail-rows {
    font-size: 1.1rem;
  }

  .page-about .about-letter-card > h2 {
    font-size: clamp(2.4rem, 3.4vw, 3.3rem);
  }

  .page-about .about-letter-prose {
    font-size: 1.4rem;
  }

  .page-about .about-signoff {
    font-size: clamp(2rem, 3.3vw, 2.9rem);
  }

  .page-about .about-identity h2 {
    font-size: clamp(2.8rem, 3.8vw, 3.8rem);
  }

  .page-about .about-identity .about-identity-text {
    font-size: 1.4rem;
  }

  .page-about .about-identity .about-heritage {
    font-size: clamp(1.7rem, 2.6vw, 2.3rem);
  }

  .page-about .about-identity .about-aims h3 {
    font-size: 1.6rem;
  }

  .page-about .about-identity .about-aims p {
    font-size: 1.35rem;
  }

  .page-about .closing-feast .rsvp-card > p {
    font-size: 1.3rem;
  }
}

/* Desktop copy enlarged by 13%, with 1.3 leading, selected in Live. */
@media (width >= 48rem) {
  .page-about .about-hero .invitation-card .hero-lede,
  .page-about:lang(en) .about-hero .invitation-card .hero-lede { font-size: 1.469rem; line-height: 1.3; }
  .page-about .about-hero .detail-rows :is(dt, dd) { font-size: 1.243rem; line-height: 1.3; }
  .page-about .about-letter-prose,
  .page-about:lang(ar) .about-letter-prose,
  .page-about .about-identity .about-identity-text { font-size: 1.582rem; line-height: 1.3; }
  .page-about .about-identity .about-aims p { font-size: 1.5255rem; line-height: 1.3; }
  .page-about .closing-feast .rsvp-card > p { font-size: 1.469rem; line-height: 1.3; }
}

/* English desktop typography, independently selected in Live. */
@media (width >= 48rem) {
  .page-about:lang(en) main .about-hero .invitation-card h1 { font-size: 2.625rem; line-height: 1.1; }
  .page-about:lang(en) main .about-hero .invitation-card .hero-lede,
  .page-about:lang(en) main .about-letter-prose,
  .page-about:lang(en) main .about-identity .about-identity-text,
  .page-about:lang(en) main .about-identity .about-aims p,
  .page-about:lang(en) main .closing-feast .rsvp-card > p { font-size: 1.1875rem; line-height: 1.55; }
  .page-about:lang(en) main .about-hero .detail-rows :is(dt, dd),
  .page-about:lang(en) main .closing-feast .detail-rows :is(dt, dd) { font-size: 1.125rem; line-height: 1.5; }
  .page-about:lang(en) main :is(.about-letter .about-letter-card > h2, .about-identity h2, .closing-feast h2) { font-size: 2.375rem; line-height: 1.15; }
  .page-about:lang(en) main .about-signoff p,
  .page-about:lang(en) main .about-identity .about-heritage { font-size: 1.875rem; line-height: 1.3; }
  .page-about:lang(en) main .about-identity .about-aims h3 { font-size: 1.3125rem; line-height: 1.35; color: var(--text); }
  .page-about:lang(en) main .action { font-size: 1rem; }
}
