/* Lafleur r4: composition, not a new identity. Load after all existing CSS.
   Never target header/footer/forms or inherit the old editorial split lists. */
.r4-hero, .r4-section, .r4-prepare, .r4-coverage-note {
  font-family: Inter, Arial, sans-serif;
  --r4-space: clamp(36px, 4.2vw, 60px);
}
.r4-hero .container, .r4-section .container, .r4-prepare .container, .r4-coverage-note .container {
  width: min(1280px, calc(100% - 64px));
  margin-inline: auto;
}
.r4-section { padding-block: var(--r4-space); background: #FFFFFF; }
.r4-section h2, .r4-prepare h2, .r4-coverage-note h2 {
  font-size: clamp(27px, 2.7vw, 38px); line-height: 1.2;
  letter-spacing: -.035em; color: #1B1AFF; font-weight: 700; margin: 0;
}
.r4-section p, .r4-prepare p, .r4-coverage-note p {
  font-size: 15px; line-height: 1.8; color: var(--ink-soft);
}
.r4-section .eyebrow, .r4-prepare .eyebrow, .r4-coverage-note .eyebrow {
  font-size: 11px; line-height: 1.6; color: #1B1AFF; margin: 0 0 12px;
}
.r4-hero *, .r4-section *, .r4-prepare *, .r4-coverage-note * { min-width: 0; }
.r4-hero a, .r4-section a { min-height: 44px; }
.r4-hero :focus-visible { outline: 3px solid #E57716; outline-offset: 5px; }
.r4-section :focus-visible { outline: 3px solid #1B1AFF; outline-offset: 5px; }

/* Brand-blue hero, copy left / one real archived photograph right. */
.page-hero.r4-hero { background: #1E3A8A; color: #FFFFFF; padding-block: 20px 40px; border: 0; }
.r4-hero .breadcrumb { color: #FFFFFF; margin: 0 0 18px; gap: 8px; font-size: 12px; }
.r4-hero .breadcrumb a { display: inline-flex; align-items: center; min-height: 44px; }
.r4-hero .breadcrumb a:hover { color: #FFFFFF; text-decoration: underline; }
.r4-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .96fr); align-items: center; gap: clamp(28px, 4vw, 58px); }
.r4-hero .eyebrow { font-size: 11px; line-height: 1.6; color: #FFFFFF; margin-bottom: 14px; }
.page-hero.r4-hero h1 { color: #FFFFFF; font-size: clamp(34px, 3.65vw, 52px); line-height: 1.12; letter-spacing: -.035em; max-width: 22ch; margin: 0; }
.page-hero.r4-hero h1 em { color: #E57716; font-style: normal; }
.page-hero.r4-hero .lead { color: #FFFFFF; font-size: 16px; line-height: 1.75; margin: 20px 0 0; max-width: 56ch; }
.page-hero.r4-hero .actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 23px; }
.r4-hero .btn { min-height: 54px; background: #C5630C; color: #FFFFFF; padding: 14px 23px; font-size: 19px; white-space: normal; }
.r4-hero .btn:hover { background: #101214; }
.r4-hero__tags { display: flex; flex-wrap: wrap; gap: 7px 16px; list-style: none; margin: 18px 0 0; padding: 0; }
.r4-hero__tags li { color: #FFFFFF; font-size: 12px; line-height: 1.6; }
.r4-hero__media, .r4-service-story__media, .r4-about-story__media, .r4-about-note__media { margin: 0; }
.r4-photo { display: block; width: 100%; object-fit: cover; object-position: center; border-radius: 16px; }
.r4-hero__media .r4-photo { height: auto; aspect-ratio: 8 / 5; max-height: 410px; }
.r4-hero__media figcaption, .r4-service-story__media figcaption, .r4-about-story__media figcaption, .r4-about-note__media figcaption {
  font-size: 11px; line-height: 1.6; margin: 8px 0 0; color: var(--ink-soft); text-align: left;
}
.r4-hero__media figcaption { color: #FFFFFF; }

/* The heading belongs to the complete copy column, never to an empty column. */
.r4-story-grid { display: grid; grid-template-columns: minmax(0, .94fr) minmax(0, 1.06fr); gap: clamp(28px, 4vw, 58px); align-items: center; }
.r4-service-story__media { min-height: 200px; }
.r4-service-story__media .r4-photo { height: clamp(340px, 32vw, 440px); min-height: 200px; }
.r4-service-story__copy > p:not(.eyebrow), .r4-about-story__copy > p:not(.eyebrow) { margin: 16px 0 0; }
.r4-service-points { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 20px; margin: 22px 0 0; padding: 0; list-style: none; border: 0; }
.r4-service-points li { display: flex; align-items: flex-start; gap: 9px; font-size: 14px; line-height: 1.65; padding: 0; border: 0; color: var(--ink-soft); }
.r4-service-points .icon, .r4-support-grid .icon { color: #1B1AFF; width: 17px; height: 17px; flex: 0 0 17px; margin-top: 3px; }

/* Actual zero border: no inherited list rule and no decorative cover-up. */
.r4-prepare { padding: 0; background: #FFFFFF; }
.r4-prepare__panel { background: #F5F8FE; border-radius: 16px; padding: clamp(24px, 3vw, 38px); }
.r4-prepare h2 { font-size: clamp(25px, 2.3vw, 32px); max-width: 34ch; }
.r4-prepare__intro { margin: 14px 0 0; max-width: 85ch; }
.r4-support-grid { display: flex; flex-wrap: wrap; gap: 10px 24px; padding: 0; margin: 20px 0 0; list-style: none; border: 0; border-top: 0; }
.r4-support-grid li { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; line-height: 1.65; padding: 0; margin: 0; border: 0; }

/* Photo cards keep real destinations and visible copy at every width. */
.r4-section-heading { text-align: center; max-width: 820px; margin: 0 auto 26px; }
.r4-section-heading .eyebrow { justify-content: center; }
.r4-related { padding-top: 12px; }
.r4-related__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.r4-card { display: flex; flex-direction: column; background: #F5F8FE; border-radius: 16px; overflow: hidden; outline-offset: 5px; }
.r4-card__photo { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.r4-card__body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 22px 24px 18px; }
.r4-card h2, .r4-card h3 { font-size: 22px; line-height: 1.25; color: #1B1AFF; margin: 0; letter-spacing: -.025em; }
.r4-card p { font-size: 14px; line-height: 1.75; margin: 10px 0 12px; }
.r4-card__link { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; font-size: 13px; font-weight: 700; color: #1B1AFF; margin-top: auto; }
.r4-card:hover .r4-card__link { text-decoration: underline; text-underline-offset: 4px; }
.r4-catalogue__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.r4-catalogue__grid > .r4-card:last-child { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.r4-catalogue__grid > .r4-card:last-child .r4-card__photo { height: 100%; min-height: 200px; aspect-ratio: 16 / 9; }
.r4-catalogue__grid > .r4-card:last-child .r4-card__body { justify-content: center; padding: 26px 32px; }
.r4-catalogue__grid > .r4-card:last-child .r4-card__link { margin-top: 4px; }
.r4-catalogue__note { max-width: 90ch; margin: 26px auto 0; text-align: center; }

/* About alternates the first story right, then retains method's photo left. */
.r4-about-story__grid { display: grid; grid-template-columns: minmax(0, 1.06fr) minmax(0, .94fr); align-items: center; gap: clamp(28px, 4vw, 58px); }
.r4-about-story__media .r4-photo { aspect-ratio: 5 / 4; max-height: 430px; }
.r4-about-story .text-link { display: inline-flex; align-items: center; font-size: 14px; margin-top: 14px; }
.r4-about-note__panel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(200px, 280px); gap: 32px; align-items: center; padding: 28px; border-radius: 16px; background: #F5F8FE; }
.r4-about-note h2, .r4-coverage-note h2 { font-size: clamp(25px, 2.3vw, 32px); }
.r4-about-note__panel > div > p:not(.eyebrow) { margin-top: 14px; max-width: 85ch; }
.r4-about-note__media .r4-photo { aspect-ratio: 4 / 3; }
.r4-coverage-note { padding-block: 28px var(--r4-space); background: #FFFFFF; }
.r4-coverage-note__panel { padding: clamp(24px, 3vw, 36px); border-radius: 16px; background: #F5F8FE; }
.r4-coverage-note__panel > p:not(.eyebrow) { max-width: 95ch; margin-top: 14px; }
.r4-without-media { grid-template-columns: minmax(0, 1fr); }
.r4-hero__grid.r4-without-media .r4-hero__copy { max-width: 850px; }
.r4-catalogue__grid > .r4-card.r4-without-media { grid-template-columns: minmax(0, 1fr); }

@media (max-width: 1049px) {
  .r4-hero__grid, .r4-story-grid, .r4-about-story__grid { gap: 30px; }
  .r4-catalogue__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .r4-catalogue__grid > .r4-card:last-child { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .r4-service-points { grid-template-columns: minmax(0, 1fr); gap: 11px; }
}
@media (max-width: 899px) {
  .r4-hero__grid, .r4-story-grid, .r4-about-story__grid { grid-template-columns: minmax(0, 1fr); }
  .r4-hero__media .r4-photo { max-height: 390px; }
  .r4-service-story__media .r4-photo { height: auto; aspect-ratio: 16 / 10; max-height: 420px; }
  .r4-service-points { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .r4-about-story__media .r4-photo { aspect-ratio: 16 / 10; }
  .r4-about-note__panel { grid-template-columns: minmax(0, 1fr) minmax(0, .6fr); gap: 24px; }
}
@media (max-width: 599px) {
  .r4-hero .container, .r4-section .container, .r4-prepare .container, .r4-coverage-note .container { width: calc(100% - 40px); }
  .page-hero.r4-hero { padding-block: 12px 30px; }
  .r4-hero .breadcrumb { font-size: 11px; gap: 6px; }
  .page-hero.r4-hero h1 { font-size: clamp(32px, 8.5vw, 42px); }
  .page-hero.r4-hero .lead { font-size: 15px; margin-top: 17px; }
  .r4-hero .eyebrow { font-size: 10px; }
  .r4-hero__media .r4-photo { aspect-ratio: 4 / 3; }
  .r4-service-points, .r4-related__grid, .r4-catalogue__grid, .r4-about-note__panel { grid-template-columns: minmax(0, 1fr); }
  .r4-related__grid, .r4-catalogue__grid { gap: 20px; }
  .r4-catalogue__grid > .r4-card:last-child { display: flex; }
  .r4-catalogue__grid > .r4-card:last-child .r4-card__photo { height: auto; min-height: 0; }
  .r4-catalogue__grid > .r4-card:last-child .r4-card__body, .r4-card__body { padding: 20px; }
  .r4-card h2, .r4-card h3 { font-size: 21px; }
  .r4-about-note__panel { padding: 24px; }
  .r4-about-note__media .r4-photo { aspect-ratio: 16 / 9; }
}
@media (max-width: 359px) {
  .r4-hero .container, .r4-section .container, .r4-prepare .container, .r4-coverage-note .container { width: calc(100% - 32px); }
  .r4-hero .btn { gap: 12px; padding-inline: 18px; }
  .r4-prepare__panel, .r4-about-note__panel { padding: 22px 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .r4-hero *, .r4-section *, .r4-prepare *, .r4-coverage-note * { animation: none !important; transition: none !important; }
  .r4-hero a:active, .r4-section a:hover, .r4-section a:active { transform: none !important; }
}
@media print {
  .page-hero.r4-hero { background: #FFFFFF; color: #101214; }
  .page-hero.r4-hero h1, .page-hero.r4-hero .lead, .r4-hero .eyebrow, .r4-hero .breadcrumb, .r4-hero__media figcaption, .r4-hero__tags li { color: #101214; }
  .r4-section { padding-block: 24px; }
  .r4-card { break-inside: avoid; }
}
