/* Weddings — index 1b "Éditorial magazine" and wedding page 2d "Chapitres + essai".
   Values from Weddings.dc.html and Wedding Page.dc.html; phone rules at the end. */

/* Breadcrumb links: 44px touch targets without moving the line. */
.trail a { display: inline-block; padding: 14px 0; margin: -14px 0; }

/* ── Index (1b) ──────────────────────────────────────────────── */
.wi-head { text-align: center; padding: 9vh 28px 0; }
.wi-head h1 { font-size: clamp(36px, 4.8vw, 58px); line-height: 1.12; margin-top: 18px; }
.wi-head p.pretty { max-width: 62ch; margin: 24px auto 0; font-size: 19px; color: var(--ink-70); }

.wi-list { max-width: 1240px; margin: 9vh auto 0; padding: 0 28px; display: flex; flex-direction: column; gap: 14vh; }
.wi-item { display: flex; flex-wrap: wrap; gap: clamp(28px, 5vw, 72px); align-items: center; }
.wi-item--rev { flex-direction: row-reverse; }
.wi-photos { flex: 1 1 520px; min-width: 0; display: grid; grid-template-columns: 1.6fr 1fr; gap: 18px; align-items: end; }
.wi-photos source { display: none; }
.wi-photos img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.wi-photos picture:last-child img { margin-bottom: 12%; }
.wi-text { flex: 1 1 320px; max-width: 460px; min-width: 0; }
.wi-num { font-size: 15px; color: var(--ink-70); }
.wi-region { margin-top: 10px; }
.wi-text h2 { font-size: clamp(28px, 3.2vw, 40px); line-height: 1.15; margin-top: 12px; }
.wi-couple { font-style: italic; font-size: 21px; margin-top: 4px; line-height: 1.4; }
.wi-summary { margin-top: 18px; color: var(--ink-70); }
.wi-press { margin-top: 16px; font-size: 10.5px; letter-spacing: .24em; text-transform: uppercase; color: var(--ink-70); }
.wi-credit { margin-top: 10px; }
.wi-read { margin-top: 22px; }

.wi-confidence { max-width: 720px; margin: 16vh auto 0; padding: 0 28px; text-align: center; }
.wi-confidence__rule { width: 56px; border-top: 1px solid var(--ink); margin: 0 auto 22px; }
.wi-confidence h2 { font-size: clamp(28px, 3.4vw, 40px); line-height: 1.2; }
.wi-confidence p { margin-top: 18px; color: var(--ink-70); }
.wi-confidence .btn-line { margin-top: 32px; }

/* ── Wedding page (2d) ───────────────────────────────────────── */
.wp-hero { position: relative; height: 86svh; min-height: 500px; overflow: hidden; background: var(--night); }
.wp-hero img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.wp-hero__shade { position: absolute; inset: 0; background: linear-gradient(to top, rgba(26, 22, 17, .62) 0%, rgba(26, 22, 17, 0) 50%); }
.wp-hero__text { position: absolute; left: 0; right: 0; bottom: 0; padding: 0 clamp(22px, 5vw, 72px) clamp(28px, 6vh, 60px); color: var(--ivory); }
.wp-hero__text p, .wp-hero__text h1 { color: var(--ivory); }
.wp-hero h1 { font-size: clamp(38px, 5.6vw, 72px); line-height: 1.05; margin-top: 14px; text-wrap: balance; }
.wp-hero__couple { font-style: italic; font-size: clamp(20px, 2.2vw, 26px); margin-top: 8px; }
.wp-hero .btn-ivory-line { margin-top: 26px; }

.wp-lede { max-width: 760px; margin: 0 auto; padding: 11vh 28px 0; text-align: center; }
.wp-lede__main { font-size: clamp(23px, 2.6vw, 30px); line-height: 1.5; text-wrap: pretty; }
.wp-lede__more { max-width: 60ch; margin: 22px auto 0; font-size: 18px; line-height: 1.8; color: var(--ink-85); text-wrap: pretty; }

.wp-facts { max-width: 1160px; margin: 9vh auto 0; padding: 0 28px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)); border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.wp-facts > div { padding: 20px 14px 20px 0; }
.wp-facts dt { font-size: 10px; letter-spacing: .22em; text-transform: uppercase; color: var(--ink-70); }
.wp-facts dd { font-size: 21px; line-height: 1.3; margin-top: 4px; }

.wp-eyebrow { font-size: 10.5px; letter-spacing: .3em; text-transform: uppercase; color: var(--sage); }
.wp-h2 { font-size: clamp(28px, 3.4vw, 42px); line-height: 1.15; margin-top: 8px; text-wrap: balance; }
.wp-h2--sm { font-size: clamp(26px, 3vw, 34px); line-height: 1.2; margin-top: 8px; }
.wp-h3 { font-size: 24px; line-height: 1.25; }
.wp-essay { margin-top: 18px; font-size: 18.5px; line-height: 1.85; text-wrap: pretty; }

.wp-frame { margin: 14vh 0 0; background: var(--sand); padding: 8vh 28px; }
.wp-frame img { margin: 0 auto; height: min(86svh, 1600px); width: auto; max-width: 100%; object-fit: contain; }
.wp-frame figcaption { text-align: center; margin-top: 16px; font-size: 10.5px; letter-spacing: .22em; text-transform: uppercase; color: var(--ink-78); }

.wp-chapter { max-width: 1240px; margin: 14vh auto 0; padding: 0 28px; display: flex; flex-wrap: wrap; gap: 40px 72px; align-items: center; }
.wp-chapter--rev { flex-wrap: wrap-reverse; flex-direction: row-reverse; }
.wp-chapter__text { flex: 1 1 360px; max-width: 520px; min-width: 0; }
.wp-chapter__photos { flex: 1 1 380px; max-width: 560px; min-width: 0; }
.wp-chapter__photos--pair { max-width: none; display: grid; grid-template-columns: 1.5fr 1fr; gap: 16px; align-items: end; }
.wp-chapter__photos--pair figure:last-child { margin-bottom: 14%; }
.wp-chapter figure img, .wp-row figure img { width: 100%; aspect-ratio: var(--ratio, 4 / 5); object-fit: cover; }
.wp-chapter .cap, .wp-row .cap { line-height: 1.6; }

.wp-group { max-width: 1400px; margin: 14vh auto 0; padding: 0 28px; }
.wp-group__head .wp-h3 { margin-top: 40px; }
.wp-group__head .wp-h3:first-child { margin-top: 0; }
.wp-row { margin-top: 10vh; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--min, 240px)), 1fr)); gap: 28px 18px; align-items: start; }
.wp-row--stagger > figure:nth-child(even) { margin-top: 8vh; }

.wp-quote { max-width: 30ch; margin: 14vh auto 0; padding: 0 28px; text-align: center; font-style: italic; font-weight: 300; font-size: clamp(26px, 3.4vw, 40px); line-height: 1.4; text-wrap: balance; }

.wp-narrow { max-width: 720px; margin: 14vh auto 0; padding: 0 28px; }
.wp-qa__item { padding: 22px 0; border-top: 1px solid var(--rule); margin-top: 18px; }
.wp-qa__item h3 { font-size: 22px; line-height: 1.3; }
.wp-qa__item p { margin-top: 8px; color: var(--ink-70); }
.wp-press ul { list-style: none; margin-top: 18px; border-top: 1px solid var(--rule); }
.wp-press li { border-bottom: 1px solid var(--rule); padding: 6px 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 10px; }
.wp-press li a { font-size: clamp(21px, 2.2vw, 25px); display: inline-flex; align-items: center; min-height: 44px; }
.wp-press li span { font-size: 15px; color: var(--ink-70); font-style: italic; }
.wp-credits { margin-top: 40px; }
.wp-credits ul { list-style: none; font-size: 10.5px; letter-spacing: .24em; text-transform: uppercase; color: var(--ink-70); line-height: 2.1; }
.wp-credits a { display: inline-block; padding: 11px 0; margin: -9px 0 -11px; color: var(--sage); border-bottom: 1px solid rgba(61, 74, 58, .3); line-height: 22px; }
.wp-qa + .wp-credits, .wp-press + .wp-credits { margin-top: 40px; }
.wp-frame + .wp-credits { margin-top: 8vh; }

.wp-more { max-width: 1160px; margin: 16vh auto 0; padding: 0 28px; }
.wp-more__head { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 12px; border-top: 1px solid var(--ink); padding-top: 28px; }
.wp-more__head h2 { font-size: clamp(26px, 3vw, 34px); line-height: 1.2; }
.wp-more__all { font-size: 11px; letter-spacing: .26em; text-transform: uppercase; display: inline-flex; align-items: center; min-height: 44px; }
.wp-more__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 32px; margin-top: 40px; }
.wp-card { display: grid; grid-template-columns: clamp(96px, 28vw, 140px) minmax(0, 1fr); gap: 22px; align-items: center; }
.wp-card img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.wp-card__region { font-size: 10.5px; letter-spacing: .26em; text-transform: uppercase; color: var(--sage); }
.wp-card h3 { font-size: 24px; line-height: 1.2; margin-top: 6px; }
.wp-card__couple { font-style: italic; font-size: 18px; }

.wp-cta { margin-top: 16vh; background: var(--hunter); color: var(--ivory); text-align: center; padding: 13vh 28px; }
.wp-cta p, .wp-cta h2 { color: var(--ivory); }
.wp-cta h2 { font-size: clamp(30px, 3.8vw, 46px); line-height: 1.15; margin-top: 14px; }
.wp-cta p:not(.eyebrow) { max-width: 44ch; margin: 18px auto 0; }
.wp-cta .btn-ivory-line { margin-top: 34px; padding: 15px 34px; }
.wp-cta .btn-ivory-line:hover { color: var(--hunter); }

/* Tablet: rows of four fall into two pairs, rows of three stay on one line (no orphan). */
@media (min-width: 720px) and (max-width: 1180px) {
  .wp-row--n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .wp-row--n3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* ── Phone ───────────────────────────────────────────────────── */
@media (max-width: 719px) {
  .wi-head { padding: 7vh 16px 0; }
  .wi-head p.pretty { font-size: 17.5px; }
  .wi-list { padding: 0 16px; gap: 11vh; }
  .wi-item, .wi-item--rev { flex-direction: column; align-items: stretch; gap: 26px; }
  .wi-photos { flex: none; gap: 12px; }
  .wi-text { flex: none; max-width: none; }
  .wi-confidence { padding: 0 16px; }

  .wp-hero { height: 78svh; }
  .wp-hero__shade { background: linear-gradient(to top, rgba(26, 22, 17, .74) 0%, rgba(26, 22, 17, .2) 62%, rgba(26, 22, 17, 0) 100%); }
  .wp-hero__text { padding: 0 16px 50px; }
  .wp-lede { padding: 8vh 16px 0; }
  .wp-lede__more { font-size: 17px; }
  .wp-facts { padding: 0 16px; margin-top: 7vh; grid-template-columns: 1fr; border-bottom: 0; }
  .wp-facts > div { padding: 14px 0; border-bottom: 1px solid var(--rule); }
  .wp-frame { margin-top: 10vh; padding: 6vh 16px; }
  .wp-frame img { height: auto; width: 100%; }
  .wp-chapter { margin-top: 10vh; padding: 0 16px; gap: 32px; }
  .wp-chapter, .wp-chapter--rev { flex-direction: column; flex-wrap: nowrap; align-items: stretch; }
  .wp-chapter__text, .wp-chapter__photos { flex: none; max-width: none; }
  .wp-chapter__photos--pair { grid-template-columns: 1fr; gap: 28px; }
  .wp-chapter__photos--pair figure:last-child { margin-bottom: 0; }
  .wp-essay { font-size: 17.5px; line-height: 1.8; }
  .wp-group { margin-top: 10vh; padding: 0 16px; }
  .wp-row { margin-top: 5vh; gap: 28px; grid-template-columns: 1fr; }
  .wp-row--stagger > figure:nth-child(even) { margin-top: 0; }
  .wp-quote { margin-top: 10vh; padding: 0 16px; }
  .wp-narrow { margin-top: 10vh; padding: 0 16px; }
  .wp-more { margin-top: 12vh; padding: 0 16px; }
  .wp-more__grid { gap: 24px; margin-top: 28px; }
  .wp-cta { margin-top: 12vh; padding: 10vh 16px; }
}
@media (min-width: 720px) and (max-width: 1023px) {
  .wp-chapter, .wp-chapter--rev { flex-direction: column; flex-wrap: nowrap; align-items: stretch; }
  .wp-chapter__text { max-width: 60ch; flex: none; }
  .wp-chapter__photos { flex: none; max-width: 640px; }
  .wp-chapter__photos--pair { max-width: none; }
  .wi-item, .wi-item--rev { flex-direction: column; align-items: stretch; }
  .wi-photos, .wi-text { flex: none; max-width: 620px; }
}
