.home-page { min-height: 100svh; overflow-y: hidden; background: var(--color-text); }
.home-page .header-inner { width: min(calc(100% - 2.5rem), var(--container-wide)); }
.home-page .site-header .navigation-list > li > .button { font-family: var(--font-body); font-size: 1rem; font-weight: 400; font-variant: normal; line-height: 1.15; letter-spacing: 0; text-transform: none; opacity: 1; font-synthesis: none; text-rendering: geometricPrecision; -webkit-font-smoothing: antialiased; }
.home-page .hero-actions .button { min-height: 3.15rem; padding-inline: 1.65rem; font-family: var(--font-body); font-size: 1rem; font-weight: 400; font-variant: normal; line-height: 1.15; letter-spacing: 0; text-transform: none; opacity: 1; font-synthesis: none; text-rendering: geometricPrecision; -webkit-font-smoothing: antialiased; }
.hero-actions .button--primary, .hero-actions .button--primary:visited, .hero-actions .button--primary:focus-visible, .hero-actions .button--primary:active { border: 1.5px solid #fffaf5; color: var(--color-primary); background: #fffaf5; }
.hero-actions .button--primary:hover { border-color: #fffaf5; color: var(--color-primary); background: #f4ebe4; }
.hero-actions .button--secondary, .hero-actions .button--secondary:visited, .hero-actions .button--secondary:focus-visible, .hero-actions .button--secondary:active { border: 1.5px solid #fffaf5; color: #fffaf5; background: rgba(59,41,38,.32); }
.hero-actions .button--secondary:hover { border-color: #fffaf5; color: #fffaf5; background: rgba(59,41,38,.34); }
.hero { position: relative; min-height: 100vh; min-height: 100svh; display: flex; align-items: center; overflow: hidden; padding: 8.5rem clamp(1.5rem,7vw,7rem) 3rem; color: var(--color-surface); background: var(--color-text); isolation: isolate; }
.hero::after { position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg,rgba(39,27,25,.83),rgba(55,34,31,.62) 47%,rgba(45,29,27,.34)); content: ""; pointer-events: none; }
.hero-media { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; overflow: hidden; }
.hero-media__image { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-content { position: relative; z-index: 1; width: min(46rem,100%); }
.hero-eyebrow { margin: 0 0 .75rem; font-family: var(--font-accent); font-size: var(--font-size-label); font-weight: 500; letter-spacing: var(--letter-spacing-label); text-transform: uppercase; }
.hero h1 { max-width: 46rem; margin: 0; letter-spacing: 0; line-height: 1; }
.hero-title__primary { display: block; font-family: var(--font-display); font-size: clamp(4.25rem,5vw,5.5rem); font-weight: 400; letter-spacing: -.025em; line-height: 1; text-wrap: balance; hyphens: none; }
.hero-title__location { display: block; width: max-content; max-width: 100%; margin-top: .7rem; font-family: var(--font-body); font-size: clamp(1rem,.96rem + .18vw,1.2rem); font-weight: 400; letter-spacing: .03em; line-height: 1.2; white-space: nowrap; }
.hero-supporting { max-width: 36rem; margin: clamp(.85rem,1.5vw,1.15rem) 0 0; color: rgba(255,250,245,.92); font-size: clamp(.95rem,.92rem + .12vw,1.05rem); line-height: 1.55; text-wrap: pretty; }
.hero-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: clamp(1.25rem,2vw,1.75rem); }

/* Approved bilingual homepage brand-colour system. */
.home-page {
  --home-brand-blush: #d9b4ae;
  --home-brand-blush-hover: #c99b94;
  --home-brand-ink: #2d211f;
  --home-brand-header-ink: #4a3432;
}
.home-page .site-header--home,
.home-page .site-header--home.is-scrolled { border-bottom-color: rgba(74,52,50,.12); color: var(--home-brand-header-ink); background: rgba(217,180,174,.82); }
.home-page .site-header--home .brand-logo { opacity: .78; filter: brightness(0) saturate(100%); }
.home-page .site-header--home .brand:focus-visible,
.home-page .site-header--home .menu-toggle:focus-visible,
.home-page .site-header--home .navigation-list > li > a:focus-visible,
.home-page .site-header--home .dropdown-trigger > :focus-visible,
.home-page .site-header--home .language-switcher :focus-visible { outline-color: var(--home-brand-header-ink); }
.home-page .site-header--home .button--primary,
.home-page .site-header--home .button--primary:visited,
.home-page .site-header--home .button--primary:focus-visible,
.home-page .site-header--home .button--primary:active { border-color: rgba(255,250,245,.72); color: var(--home-brand-header-ink); background: rgba(255,250,245,.86); }
.home-page .site-header--home .button--primary:hover { border-color: rgba(255,250,245,.82); color: var(--home-brand-header-ink); background: rgba(255,250,245,.94); }
.home-page .hero::after { background: linear-gradient(90deg,rgba(24,21,22,.82),rgba(31,27,29,.57) 47%,rgba(24,21,22,.28)); }
.home-page .hero-actions .button--primary,
.home-page .hero-actions .button--primary:visited,
.home-page .hero-actions .button--primary:focus-visible,
.home-page .hero-actions .button--primary:active { border-color: var(--home-brand-blush); color: var(--home-brand-ink); background: var(--home-brand-blush); }
.home-page .hero-actions .button--primary:hover { border-color: var(--home-brand-blush-hover); color: var(--home-brand-ink); background: var(--home-brand-blush-hover); }
.home-page .hero-actions .button--secondary,
.home-page .hero-actions .button--secondary:visited,
.home-page .hero-actions .button--secondary:focus-visible,
.home-page .hero-actions .button--secondary:active { border-color: #fffaf5; color: #fffaf5; background: rgba(255,250,245,.08); }
.home-page .hero-actions .button--secondary:hover { border-color: #fffaf5; color: #fffaf5; background: rgba(255,250,245,.16); }

@media (max-width:78rem) {
  .home-page .site-header .navigation-list > li > .button { font-family: var(--font-functional); font-weight: 700; line-height: 1; letter-spacing: .015em; }
  .home-page .site-header--home:has(.site-navigation.is-open) { border-bottom-color: rgba(74,52,50,.12); color: var(--home-brand-header-ink); background: rgba(217,180,174,.88); }
  .home-page .site-header--home .site-navigation { border-color: rgba(74,52,50,.12); color: var(--home-brand-header-ink); background: rgba(217,180,174,.94); }
  .home-page .site-header--home .dropdown-menu { color: var(--home-brand-header-ink); }
}

@media (min-width:78.01rem) {
  html[lang="fr-CA"] .home-page .site-header .navigation-list > li > .button { width:110.703125px; }
  html[lang="fr-CA"] .home-page .hero-actions .button--primary { width:194.625px; }
  html[lang="fr-CA"] .home-page .hero-actions .button--secondary { width:212.34375px; }
  html[lang="en-CA"] .home-page .site-header .navigation-list > li > .button { width:80.140625px; }
  html[lang="en-CA"] .home-page .hero-actions .button--primary { width:194.625px; }
  html[lang="en-CA"] .home-page .hero-actions .button--secondary { width:212.515625px; }
}

@media (max-width:47.99rem) {
  .home-page { min-height: 100dvh; }
  .home-page .header-inner { width: 100%; }
  .hero { min-height: 100svh; min-height: 100dvh; align-items: flex-end; padding: calc(5rem + env(safe-area-inset-top)) 1rem calc(1.25rem + env(safe-area-inset-bottom)); }
  .hero::after { background: linear-gradient(180deg,rgba(38,27,25,.2) 18%,rgba(40,27,25,.48) 52%,rgba(37,25,23,.88) 100%); }
  .home-page .hero::after { background: linear-gradient(180deg,rgba(24,21,22,.14) 18%,rgba(27,24,25,.46) 52%,rgba(22,20,21,.90) 100%); }
  .hero-media { inset: 0 auto auto 50%; width: 100%; height: calc(100dvh - 14.6875rem); aspect-ratio: auto; pointer-events: none; transform: translateX(-50%); -webkit-mask-image: linear-gradient(to bottom,#000 0%,#000 82%,transparent 100%); mask-image: linear-gradient(to bottom,#000 0%,#000 82%,transparent 100%); }
  .home-page.has-home-image-boundary .hero-media { height: var(--home-image-boundary); aspect-ratio: auto; -webkit-mask-image: linear-gradient(to bottom,#000 0%,#000 calc(100% - 3.5rem),transparent 100%); mask-image: linear-gradient(to bottom,#000 0%,#000 calc(100% - 3.5rem),transparent 100%); }
  .hero-media__image { position: absolute; inset: 0; width: 100%; max-width: none; height: 100%; object-fit: cover; object-position: 87% 50%; image-rendering: auto; transform: none; }
  .hero-content { width: 100%; max-width: 32rem; margin-inline: auto; padding: .85rem 0; }
  .hero-eyebrow { margin-bottom: .5rem; font-size: .75rem; line-height: 1.3; }
  .hero h1 { max-width: none; }
  .hero-title__primary { font-size: clamp(2.5rem,10vw,3.3rem); line-height: 1; white-space: normal; }
  .hero-title__location { margin-top: .45rem; font-size: clamp(.92rem,3.5vw,1.05rem); letter-spacing: .03em; }
  .hero-supporting { position: relative; z-index: 0; max-width: 31rem; margin-top: .75rem; font-size: .94rem; line-height: 1.5; text-wrap: pretty; }
  .hero-supporting::before { position: absolute; z-index: -1; top: -1.6rem; left: 50%; width: 100vw; height: calc(100% + 100vh); background: linear-gradient(to bottom,rgba(22,20,21,0),rgba(22,20,21,.94) 1.6rem,#161415 2.15rem); transform: translateX(-50%); content: ""; pointer-events: none; }
  .hero-actions { position: relative; z-index: 1; display: grid; gap: .65rem; margin-top: 1rem; }
  .hero-actions .button { width: 100%; min-height: 3.15rem; padding-block: .7rem; }
}

@media (max-width:22.5rem) and (max-height:40rem) {
  .hero { padding-bottom: calc(.65rem + env(safe-area-inset-bottom)); }
  .hero-content { padding-bottom: 0; }
  .hero-title__primary { font-size: clamp(2.5rem,10vw,3.3rem); }
  .hero-supporting { margin-top: .55rem; font-size: .94rem; line-height: 1.35; }
  .hero-actions { gap: .5rem; margin-top: .75rem; }
  .hero-actions .button { min-height: 3.15rem; }
}

@media (max-width:23.4375rem) and (min-height:30.01rem) {
  html[lang="fr-CA"] .hero-media { height: calc(100dvh - 16.0625rem); }
}

@media (max-width:47.99rem) and (max-height:30rem) {
  .home-page { overflow-y: auto; }
  .hero-media { height: auto; aspect-ratio: 3 / 4; }
}

@media (min-width:30.01rem) and (max-width:40rem) {
  .hero-media { height: calc(100dvh - 14.6875rem); aspect-ratio: auto; }
  html[lang="en-CA"] .hero-media { height: calc(100dvh - 13.25rem); }
  .hero-media__image { object-position: 90% 50%; }
}

@media (min-width:40.01rem) and (max-width:47.99rem) {
  .hero-media { height: calc(100dvh - 14.6875rem); aspect-ratio: auto; }
  html[lang="en-CA"] .hero-media { height: calc(100dvh - 13.25rem); }
  .hero-media__image { object-position: 100% 50%; }
}

@media (max-width:47.99rem) {
  .home-page.has-home-image-boundary .hero-media { height: var(--home-image-boundary); aspect-ratio: auto; }
  .home-page.has-home-image-boundary .hero-media__image { inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--home-image-focal-position-x) 50%; transform: none; }
}

@media (min-width:48rem) and (max-width:64rem) {
  .hero-media { inset: 0 auto auto 50%; width: 100%; height: min(75vw,48rem); aspect-ratio: auto; transform: translateX(-50%); -webkit-mask-image: linear-gradient(to bottom,#000 0%,#000 86%,transparent 100%); mask-image: linear-gradient(to bottom,#000 0%,#000 86%,transparent 100%); }
  .hero-media__image { width: 100%; height: 100%; object-fit: cover; object-position: left center; }
}

@media (min-width:48rem) and (max-width:64rem) and (orientation:portrait) {
  .hero { align-items: flex-end; padding-bottom: clamp(4rem,12vh,10rem); }
}

@media (min-width:64.01rem) and (max-width:75rem) and (min-aspect-ratio:4/3) and (max-aspect-ratio:3/2),
       (min-width:85rem) and (max-width:85.375rem) and (min-aspect-ratio:4/3) and (max-aspect-ratio:3/2) {
  .hero-media__image { object-position: left center; }
}
