:root {
  --border-width: 0.125rem;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

body {
  margin: 0;
  color: #000000;
  background: #DEE7EE;
}

img,
video {
  display: block;
  max-width: 100%;
  height: auto;
}

button {
  font: inherit;
}

.hero {
  place-items: center;
  min-height: clamp(32rem, 44vw, 56rem);
}
body:not(.home) .hero {
  min-height: 31.25rem;
}
.hero__media {
  position: absolute;
  inset: 0;
  z-index: -2;
}
.hero__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: rgba(0, 0, 0, 0.45);
}

.hero.hero--video {
  min-height: 0;
  height: min(44rem, max(0rem, 100svh - var(--site-header-height, 10rem)));
}
.hero.hero--video .hero__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero.hero--video::after {
  z-index: 1;
  pointer-events: none;
}
.hero.hero--video .hero__content {
  position: relative;
  z-index: 2;
  padding-block: 2rem;
}

body {
  font-family: "Montserrat", sans-serif;
  font-size: clamp(0.9375rem, 0.9167rem + 0.1042vw, 1rem);
  line-height: 1.75;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4 {
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  text-transform: uppercase;
}

h1, .h1 {
  font-size: clamp(2rem, 1.625rem + 1.875vw, 3.125rem);
  line-height: 1.2;
  letter-spacing: 0.78125rem;
}

h2, .h2 {
  font-size: clamp(1.5rem, 1.3333rem + 0.8333vw, 2rem);
  line-height: 1.25;
  letter-spacing: 0.5rem;
  margin: 0 0 1.25rem;
}

h3, .h3 {
  font-size: clamp(0.875rem, 0.8333rem + 0.2083vw, 1rem);
  letter-spacing: 0.15rem;
  line-height: 1.75;
  margin: 0 0 1.25rem;
}

h4, .h4 {
  font-size: clamp(0.875rem, 0.8333rem + 0.2083vw, 1rem);
  line-height: 1.25;
}
footer h4, footer .h4 {
  font-size: 0.875rem;
  letter-spacing: 0.21875rem;
}

small, .txt-small {
  font-size: clamp(0.75rem, 0.75rem + 0.05vw, 0.8125rem);
  line-height: 1.6666666667;
}

a {
  color: #136DB5;
  text-decoration: none;
}

p {
  margin: 0 0 1.25rem;
}

p:has(+ .button),
p:has(+ div > .button:first-child),
div:has(> p:last-child):has(+ .button),
div:has(+ .button) > p:last-child,
div:has(> p:last-child):has(+ div > .button:first-child),
div:has(+ div > .button:first-child) > p:last-child {
  margin-bottom: 0;
}

.line-top {
  border-top: var(--border-width) solid #000000;
}

@media (prefers-reduced-motion: no-preference) {
  .line-top.line-top-ready {
    position: relative;
    border-top-color: transparent;
  }
  .line-top.line-top-ready > .inner-stroke--top {
    position: absolute;
    top: calc(-1 * var(--border-width));
    inset-inline: 0;
    height: var(--border-width);
    pointer-events: none;
    z-index: 5;
  }
  .line-top.line-top-ready > .inner-stroke--top > span {
    display: block;
    width: 100%;
    height: 100%;
    background: #000000;
    clip-path: inset(0 100% 0 0);
    transition: clip-path 550ms ease-out 180ms;
  }
  .line-top.line-top-ready > .inner-stroke--top.is-visible > span {
    clip-path: inset(0);
  }
}
.container,
.site-header,
.site-main,
.site-footer {
  width: min(100% - 3rem, 102.5rem);
  margin-inline: auto;
}

.section-borders {
  position: relative;
  isolation: isolate;
}
.section-borders::before {
  content: "";
  position: absolute;
  inset-block: 0;
  inset-inline: 0;
  width: min(100% - 3rem, 102.5rem);
  margin-inline: auto;
  border-inline: var(--border-width) solid #000000;
  pointer-events: none;
  z-index: 5;
}

.site-main > section {
  border-bottom: var(--border-width) solid #000000;
}

.col-content {
  width: 100%;
  max-width: 34rem;
  margin-inline: auto;
  padding-inline: 1rem;
}
@media (min-width: 48rem) {
  .col-content {
    width: 80%;
    padding-inline: 0;
  }
}

.grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.5rem;
}
.grid > * {
  min-width: 0;
}
@media (min-width: 48rem) {
  .grid--2, .grid--3, .grid--4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 64rem) {
  .grid--3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .grid--4 {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (prefers-reduced-motion: no-preference) {
  .site-main.line-trace-ready::before {
    display: none;
  }
  .site-main.line-trace-ready > .line-trace {
    position: relative;
    border-bottom-color: transparent;
  }
  .site-main.line-trace-ready > .line-trace > .section-stroke {
    position: absolute;
    display: block;
    pointer-events: none;
    z-index: 5;
  }
  .site-main.line-trace-ready > .line-trace > .section-stroke > span {
    display: block;
    width: 100%;
    height: 100%;
    background: #000000;
  }
  .site-main.line-trace-ready > .line-trace > .section-stroke--left,
  .site-main.line-trace-ready > .line-trace > .section-stroke--right {
    top: 0;
    bottom: 0;
    width: var(--border-width);
  }
  .site-main.line-trace-ready > .line-trace > .section-stroke--left > span,
  .site-main.line-trace-ready > .line-trace > .section-stroke--right > span {
    clip-path: inset(0 0 100% 0);
    transition: clip-path 650ms ease-out 180ms;
  }
  .site-main.line-trace-ready > .line-trace > .section-stroke--left {
    left: max(1.5rem, (100% - 102.5rem) / 2);
  }
  .site-main.line-trace-ready > .line-trace > .section-stroke--right {
    right: max(1.5rem, (100% - 102.5rem) / 2);
  }
  .site-main.line-trace-ready > .line-trace > .section-stroke--bottom {
    inset-inline: 0;
    bottom: calc(-1 * var(--border-width));
    height: var(--border-width);
  }
  .site-main.line-trace-ready > .line-trace > .section-stroke--bottom > span {
    clip-path: inset(0 100% 0 0);
    transition: clip-path 550ms ease-out 180ms;
  }
  .site-main.line-trace-ready > .line-trace > .section-stroke.is-visible > span {
    clip-path: inset(0);
  }
  .site-main.line-trace-ready > .line-trace.hero > .section-stroke--left > span, .site-main.line-trace-ready > .line-trace.hero > .section-stroke--right > span {
    transition-delay: 900ms;
  }
}
.site-header__branding {
  padding-block: clamp(0.5rem, 1vw, 1rem);
  border-inline: var(--border-width) solid #000000;
}
.site-header__branding::before, .site-header__branding::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: var(--border-width);
  background: #000000;
}
.site-header__branding::before {
  left: calc(50% - 20rem);
}
.site-header__branding::after {
  right: calc(50% - 20rem);
}
.site-header__logo {
  width: min(80%, 30.3125rem);
}
.site-header__logo img {
  width: 100%;
  height: auto;
}
.site-header__navigation {
  padding-block: clamp(0.5rem, 0.75vw, 1rem);
  border-inline: var(--border-width) solid #000000;
}
.site-header__nav-row {
  border-top: var(--border-width) solid #000000;
}
.site-header__menu {
  gap: 0.5rem clamp(2rem, 5.5vw, 7rem);
  padding: 0 1rem;
  list-style: none;
}
.site-header__menu li {
  position: relative;
}
.site-header__menu a {
  display: block;
  padding-block: 0.5rem;
  color: inherit;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(0.875rem, 0.8333rem + 0.2083vw, 1rem);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.16875rem;
  text-transform: uppercase;
  text-decoration: none;
}
.site-header__menu a:hover {
  color: #000000;
  text-decoration: none;
}
.site-header__menu a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}
.site-header__menu .current-menu-item > a,
.site-header__menu .current-menu-ancestor > a,
.site-header__menu .current_page_item > a,
.site-header__menu .current_page_ancestor > a {
  color: #000000;
  text-decoration: none;
}
.site-header__menu .sub-menu {
  margin: 0;
  padding: 0 0 0 1rem;
  list-style: none;
}
@media (max-width: 47.9375rem) {
  .site-header__branding {
    min-height: 6rem;
  }
  .site-header__branding::before, .site-header__branding::after {
    display: none;
  }
  .site-header__logo {
    width: min(85%, 22rem);
  }
  .site-header__menu {
    gap: 0.5rem 1.5rem;
  }
  .site-header__menu a {
    padding-block: 0.75rem;
  }
}

@media (prefers-reduced-motion: no-preference) {
  .site-header.header-trace {
    position: relative;
    border-bottom-color: transparent;
  }
  .site-header.header-trace::after {
    content: "";
    position: absolute;
    inset-inline: 0;
    bottom: calc(-1 * var(--border-width));
    height: var(--border-width);
    background: #000000;
    transform-origin: left center;
    animation: header-line-horizontal 550ms ease-out 250ms both;
    pointer-events: none;
  }
  .site-header.header-trace .site-header__branding,
  .site-header.header-trace .site-header__navigation {
    border-inline-color: transparent;
    background-image: linear-gradient(#000000, #000000), linear-gradient(#000000, #000000);
    background-position: left top, right top;
    background-repeat: no-repeat;
    background-origin: border-box;
    animation: header-lines-sides 650ms ease-out both;
  }
  .site-header.header-trace .site-header__navigation {
    animation-delay: 200ms;
  }
  .site-header.header-trace .site-header__branding::before,
  .site-header.header-trace .site-header__branding::after {
    transform-origin: center top;
    animation: header-line-vertical 650ms ease-out 80ms both;
  }
  .site-header.header-trace .site-header__nav-row {
    position: relative;
    border-top-color: transparent;
  }
  .site-header.header-trace .site-header__nav-row::before {
    content: "";
    position: absolute;
    inset-inline: 0;
    top: calc(-1 * var(--border-width));
    height: var(--border-width);
    background: #000000;
    transform-origin: left center;
    animation: header-line-horizontal 550ms ease-out 120ms both;
    pointer-events: none;
  }
}
@keyframes header-line-horizontal {
  from {
    transform: scaleX(0);
  }
  to {
    transform: scaleX(1);
  }
}
@keyframes header-line-vertical {
  from {
    transform: scaleY(0);
  }
  to {
    transform: scaleY(1);
  }
}
@keyframes header-lines-sides {
  from {
    background-size: var(--border-width) 0%, var(--border-width) 0%;
  }
  to {
    background-size: var(--border-width) 100%, var(--border-width) 100%;
  }
}
.cookie-consent {
  position: fixed;
  inset: auto 0 0;
  z-index: 1000;
  max-height: 80dvh;
  overflow-y: auto;
  padding-block: 2rem;
  background: #DEE7EE;
  color: #000000;
  border-top: var(--border-width) solid #000000;
  box-shadow: 0 -4px 24px rgba(0, 0, 0, 0.1333333333);
}
.cookie-consent[hidden] {
  display: none;
}
.cookie-consent__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 2rem;
}
.cookie-consent__inner > div:first-child {
  flex: 1 1 35rem;
}
.cookie-consent h2 {
  font-size: 1.125rem;
  margin-top: 0;
  margin-inline: 0;
}
.cookie-consent p {
  font-size: clamp(0.75rem, 0.75rem + 0.05vw, 0.8125rem);
  margin: 0 0 1rem;
}
.cookie-consent a {
  color: inherit;
}
.cookie-consent__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.top-footer {
  background: #DEE7EE;
  border-bottom: var(--border-width) solid #000000;
}
.top-footer .top-footer__grid {
  gap: 0;
}
.top-footer .top-footer__heading {
  border-bottom: var(--border-width) solid #000000;
}
.top-footer .top-footer__form {
  border-bottom: var(--border-width) solid #000000;
}
@media (min-width: 48rem) {
  .top-footer .top-footer__content {
    border-left: var(--border-width) solid #000000;
  }
}

.site-footer {
  padding-block: 4rem 5rem;
}
.site-footer__grid {
  gap: 2.5rem;
  padding-inline: clamp(1.5rem, 4vw, 5rem);
}
.site-footer__logo {
  width: min(100%, 25rem);
  align-self: start;
}
.site-footer__logo img {
  width: 100%;
  height: auto;
}
.site-footer__title {
  margin-top: 0;
  margin-inline: 0;
  color: #fff;
  font-size: clamp(0.875rem, 0.8333rem + 0.2083vw, 1rem);
  line-height: 1.25;
}
.site-footer a {
  color: inherit;
  text-decoration: none;
}
.site-footer a:hover {
  text-decoration: underline;
}
.site-footer a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}
.site-footer p, .site-footer ul {
  margin: 0;
}
.site-footer ul {
  padding: 0;
}
.site-footer address {
  font-style: normal;
}
.site-footer address > a {
  display: block;
}
.site-footer__address {
  margin-top: 1rem;
}
.site-footer__legal > a + a::before {
  content: " | ";
  display: inline-block;
  margin-inline: 0.3em;
}
.site-footer__legal nav {
  margin-top: 1rem;
}
.site-footer__legal nav ul {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1.5rem;
}
@media (min-width: 48rem) {
  .site-footer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .site-footer__copyright, .site-footer__legal {
    grid-column: 1/-1;
  }
}
@media (min-width: 64rem) {
  .site-footer__grid {
    grid-template-columns: 1.8fr 0.9fr 1fr 0.7fr;
    column-gap: clamp(2rem, 3vw, 4rem);
    row-gap: 4rem;
  }
  .site-footer__logo {
    grid-column: 1;
    grid-row: 1;
  }
  .site-footer__contact {
    grid-column: 2;
    grid-row: 1;
  }
  .site-footer__hours {
    grid-column: 3;
    grid-row: 1;
  }
  .site-footer__social {
    grid-column: 4;
    grid-row: 1;
  }
  .site-footer__copyright {
    grid-column: 1;
    grid-row: 2;
  }
  .site-footer__legal {
    grid-column: 2/-1;
    grid-row: 2;
  }
}

.top-footer__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.top-footer__form {
  flex: 1;
  padding: clamp(2rem, 4vw, 5rem);
}
.top-footer__form > div:first-child {
  margin-bottom: 3rem;
}
.top-footer__contact {
  gap: 1.5rem;
  padding: clamp(2rem, 3vw, 4rem);
}
.top-footer address {
  font-style: normal;
}
.top-footer address a {
  color: inherit;
  text-decoration: none;
}
.top-footer__contact-name {
  text-decoration: underline;
  text-underline-offset: 0.5rem;
  margin-bottom: 0.75rem;
}

@media (min-width: 48rem) {
  .top-footer__grid {
    grid-template-columns: 1fr 1fr;
  }
}
.top-footer__heading {
  padding-block: clamp(3rem, 5vw, 6rem);
}
.top-footer__heading h2 {
  max-width: 48rem;
  margin-top: auto;
  margin-inline: auto;
}

@media (min-width: 64rem) {
  .top-footer__contact {
    grid-template-columns: 1fr 1fr;
  }
}
body.home .site-main {
  max-width: none;
}

.section-2__heading {
  padding-block: clamp(2.5rem, 4vw, 5rem);
}
.section-2 h2 {
  max-width: 62rem;
  margin-inline: auto;
}
.section-2__body {
  padding-block: clamp(3rem, 6vw, 7rem);
}
.section-2__grid {
  gap: 3rem;
}
.section-2__media {
  aspect-ratio: 16/10;
  border: var(--border-width) solid #000000;
}
.section-2__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
@media (min-width: 48rem) {
  .section-2__body::before {
    content: "";
    position: absolute;
    inset: 0 0 0 51%;
    z-index: -1;
    background: #136DB5;
  }
  .section-2__grid {
    grid-template-columns: 0.85fr 1.15fr;
    gap: clamp(2rem, 5vw, 6rem);
  }
}

.section-2__body {
  padding-bottom: max(6rem, 7vw);
}

.section-2__picto {
  position: absolute;
  left: max(1.5rem, (100% - 102.5rem) / 2);
  bottom: 0;
  place-items: center;
  width: 5rem;
  aspect-ratio: 1;
}
.section-2__picto img {
  height: 100%;
  object-fit: contain;
}

.section-3 h2 {
  max-width: 40rem;
  margin-inline: auto;
}
.section-3__grid {
  border-top: var(--border-width) solid #000000;
}
.section-3__empty {
  padding-bottom: 4rem;
}

.news-card {
  padding: clamp(1.25rem, 2vw, 2.5rem);
}
.news-card + .news-card {
  border-top: var(--border-width) solid #000000;
}
.news-card__media {
  min-width: 0;
}
.news-card__media img {
  width: 100%;
  height: 100%;
  aspect-ratio: 1.3;
  object-fit: cover;
}
.news-card__media > a {
  height: 100%;
}
.news-card__date {
  position: absolute;
  top: 0;
  left: 0;
  padding: 0.65rem 1rem 0.65rem 0;
  background: #DEE7EE;
  font-size: clamp(0.75rem, 0.75rem + 0.05vw, 0.8125rem);
  letter-spacing: 0.1125rem;
}
.news-card__content {
  padding-top: 1.5rem;
}
.news-card h3 a {
  color: inherit;
  text-decoration: none;
}
.news-card h3 a:hover {
  text-decoration: underline;
}

@media (prefers-reduced-motion: no-preference) {
  .news-card.line-right-ready {
    position: relative;
  }
  .news-card.line-right-ready > .inner-stroke--right {
    display: none;
  }
}
@media (prefers-reduced-motion: no-preference) and (min-width: 64rem) {
  .news-card:nth-child(2) > .inner-stroke--top {
    display: none;
  }
  .news-card--featured.line-right-ready {
    border-right-color: transparent;
  }
  .news-card--featured.line-right-ready > .inner-stroke--right {
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    right: calc(-1 * var(--border-width));
    width: var(--border-width);
    pointer-events: none;
    z-index: 5;
  }
  .news-card--featured.line-right-ready > .inner-stroke--right > span {
    display: block;
    width: 100%;
    height: 100%;
    background: #000000;
    clip-path: inset(0 0 100% 0);
    transition: clip-path 650ms ease-out 180ms;
  }
  .news-card--featured.line-right-ready > .inner-stroke--right.is-visible > span {
    clip-path: inset(0);
  }
}
.section-4__inner {
  min-height: clamp(10rem, 15vw, 18rem);
  padding-block: 3rem;
  gap: 2rem;
}
.section-4__image {
  width: min(100%, 30rem);
  max-height: 20rem;
  object-fit: contain;
}

@media (min-width: 64rem) {
  .section-3__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .news-card {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 2rem;
  }
  .news-card__content {
    padding-top: 0;
  }
  .news-card--featured {
    grid-row: span 2;
    display: block;
    border-right: var(--border-width) solid #000000;
  }
  .news-card--featured .news-card__content {
    padding-top: 2rem;
  }
  .news-card:nth-child(2) {
    border-top: 0;
  }
  .section-4__inner--illustrated {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 2rem;
    padding-block: 0;
  }
  .section-4__inner--illustrated > h2 {
    justify-self: end;
  }
  .section-4__inner--illustrated > .section-4__image {
    justify-self: start;
  }
  .section-4__image {
    z-index: 9;
    transform: translateY(25%);
  }
}
.home-section-heading {
  padding-block: clamp(3rem, 6vw, 7rem);
}
.home-section-heading h2 {
  max-width: 48rem;
  margin-top: auto;
  margin-inline: auto;
}

.home-split__media {
  overflow-x: clip;
  min-height: 22rem;
}
.home-split__media-inner {
  height: 100%;
}
.home-split__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.home-split__content {
  padding: clamp(2rem, 7vw, 8rem) max(1.5rem, (100vw - 102.5rem) / 2);
}
.home-split h2 {
  max-width: 33rem;
}
.home-split h3 {
  max-width: 32rem;
}
.home-split__content > div {
  max-width: 34rem;
}

.home-sector {
  padding-block: clamp(3rem, 6vw, 7rem);
}
.home-sector__grid {
  gap: 3rem;
}
.home-sector__intro h2 {
  max-width: 24rem;
}
.home-sector__intro > div {
  max-width: 30rem;
}
.home-sector__illustration img {
  max-height: 24rem;
  object-fit: contain;
}

.home-sector__accordion {
  overflow-anchor: none;
}

.sector-panel {
  border: var(--border-width) solid #000000;
  border-top: 0;
}
.sector-panel + .sector-panel {
  border-top: 0;
}
.sector-panel summary {
  cursor: pointer;
}
.sector-panel__heading {
  display: block;
  padding: 1.5rem 4rem 1.5rem 1.5rem;
  letter-spacing: 0.5rem;
  cursor: pointer;
}
.sector-panel summary::-webkit-details-marker {
  display: none;
}
.sector-panel summary:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: -4px;
}
.sector-panel__toggle {
  position: absolute;
  right: 1.5rem;
  top: 50%;
  width: 1rem;
  height: 1rem;
  transform: translateY(-50%);
}
.sector-panel__toggle::before, .sector-panel__toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  height: 1px;
  background: #000000;
}
.sector-panel__toggle::after {
  transform: rotate(90deg);
  transition: transform 350ms ease, opacity 350ms ease;
}
.sector-panel[open]:not([data-expanded]) .sector-panel__toggle::after, .sector-panel[data-expanded=true] .sector-panel__toggle::after {
  transform: rotate(0deg);
  opacity: 0;
}
@media (prefers-reduced-motion: reduce) {
  .sector-panel__toggle::after {
    transition: none;
  }
}
.sector-panel__image {
  display: none;
}
.sector-panel[open] .sector-panel__image {
  display: block;
}
.sector-panel__image img {
  display: block;
  width: 100%;
  aspect-ratio: 2/1;
  object-fit: cover;
}

@media (min-width: 64rem) {
  .home-split {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .home-split__content {
    padding-inline: clamp(2rem, 7vw, 8rem);
  }
  .home-sector__grid {
    grid-template-columns: 0.8fr 1.2fr;
    gap: clamp(2rem, 5vw, 6rem);
  }
}
.home-split__picto {
  place-items: center;
  width: 5rem;
  aspect-ratio: 1;
  margin: 2rem 0 0 auto;
}
.home-split__picto img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

@media (min-width: 64rem) {
  .home-split--houses .home-split__content {
    padding-bottom: max(6rem, 6vw);
  }
  .home-split__picto {
    position: absolute;
    right: 0;
    bottom: 0;
    margin: 0;
  }
}
.home-sector {
  padding-bottom: max(6rem, 6vw);
}

.home-sector__picto {
  position: absolute;
  right: max(1.5rem, (100% - 102.5rem) / 2);
  bottom: 0;
  place-items: center;
  width: 5rem;
  aspect-ratio: 1;
}
.home-sector__picto img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.home-split__picto--top {
  margin: 2rem 0 0 auto;
}
.home-split__picto--top img {
  clip-path: inset(2.6%);
}

@media (min-width: 64rem) {
  .home-split__picto--top {
    position: absolute;
    top: 0;
    right: max(1.5rem, (100% - 102.5rem) / 2);
    bottom: auto;
    margin: 0;
  }
  .home-split__picto--top.border {
    border-top: 0;
    border-right: 0;
  }
}
@media (min-width: 64rem) {
  .home-split--houses .home-split__picto {
    border-bottom: 0;
  }
}
.contact-section {
  padding-block: clamp(3rem, 6vw, 7rem);
}
.contact-section__grid {
  gap: clamp(2rem, 5vw, 6rem);
  align-items: start;
  padding-inline: clamp(1.5rem, 4vw, 5rem);
}
.contact-section address {
  font-style: normal;
}
.contact-section address a {
  color: inherit;
}
.contact-section__map {
  min-width: 0;
}
.contact-section__map-image {
  min-height: 25rem;
  aspect-ratio: 1;
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}

body:not(.home) .site-main {
  width: 100%;
  max-width: none;
  padding-block: 0;
}

.internal-page-content {
  padding-block: clamp(3rem, 6vw, 7rem);
}

.site-main:has(.sector-carousel, .about-section--mission) {
  z-index: 1;
}

.project-intro__text,
.about-section__text {
  max-width: 80%;
}

/* 
  Le projet
*/
.project-intro__image {
  min-height: 20rem;
  background: #c4c4c4;
}
.project-intro__image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.project-intro__content {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  min-width: 0;
  padding: clamp(2rem, 7vw, 8rem);
}
@media (min-width: 48rem) {
  .project-intro__grid {
    min-height: 56vw;
  }
  .project-intro__content {
    border-left: var(--border-width) solid #000000;
  }
}

.image-carousel {
  padding-top: clamp(2.5rem, 4vw, 4.5rem);
}
.image-carousel h2 {
  max-width: 55rem;
  margin-inline: auto;
}
.page-template-a-propos .image-carousel h2 {
  margin-bottom: clamp(2.5rem, 4vw, 4.5rem);
}
.image-carousel .splide__slide {
  aspect-ratio: 16/9;
  border-top: var(--border-width) solid #000000;
  border-bottom: var(--border-width) solid #000000;
}
.image-carousel .splide__slide img {
  height: 100%;
  object-fit: cover;
}
.image-carousel__arrows {
  gap: 4.0625rem;
}
.image-carousel__arrows .splide__arrow {
  position: static;
  transform: none;
  opacity: 1;
  border-radius: 0;
  display: grid;
  place-items: center;
  width: 3.875rem;
  height: 2.125rem;
  padding: 0;
  border: 0;
  background: transparent;
  color: #000000;
  font: inherit;
  line-height: 1;
  cursor: pointer;
}
.image-carousel__arrows .splide__arrow svg {
  width: 100%;
  height: 100%;
}
.image-carousel__arrows .splide__arrow--prev svg {
  transform: scaleX(-1);
}
.image-carousel__arrows .splide__arrow:disabled {
  opacity: 0.2;
  cursor: default;
}
.image-carousel__arrows .splide__arrow:focus-visible {
  outline: 2px solid #136DB5;
  outline-offset: 3px;
}

.about-section__content {
  align-items: flex-start;
  padding: clamp(2rem, 7vw, 8rem);
}
.about-section__image {
  min-height: 20rem;
}
.about-section__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.about-section--intro .about-section__image {
  grid-row: 1;
  background: #c4c4c4;
}
.about-section--intro .about-section__picto {
  top: 0;
  border-top: 0;
}

.about-section--quality .about-section__text > :last-child,
.about-section--mission .about-section__text > :last-child {
  margin-bottom: 0;
}

.about-section--quality {
  background-position: center;
  background-size: cover;
  background-repeat: no-repeat;
}
.about-section--quality .about-section__text {
  width: 100%;
  max-width: 48rem;
}

.about-section--mission .about-section__picto {
  bottom: 0;
  border-bottom: 0;
}
.about-section--mission .about-section__image {
  grid-row: 1;
  padding-inline: clamp(2rem, 8vw, 9rem);
}
.about-section--mission .about-section__image img {
  height: auto;
  max-height: 42rem;
  object-fit: contain;
}

@media (min-width: 48rem) {
  .about-section--intro .about-section__grid,
  .about-section--quality .about-section__grid {
    min-height: 56vw;
  }
  .about-section--intro .about-section__image,
  .about-section--mission .about-section__image {
    grid-column: 1;
  }
  .about-section--intro .about-section__content,
  .about-section--mission .about-section__content {
    grid-column: 2;
    grid-row: 1;
  }
  .about-section--mission .about-section__grid {
    min-height: 38vw;
  }
  .about-section--mission .about-section__image {
    position: relative;
    z-index: 2;
  }
  .about-section--mission .about-section__image img {
    position: absolute;
    top: -1rem;
    left: 50%;
    transform: translateX(-50%);
    width: auto;
    max-width: none;
    height: calc(100% + 2rem);
    max-height: none;
  }
}
.sector-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}
.sector-intro__content {
  padding: clamp(2rem, 7vw, 8rem);
  align-self: center;
  min-width: 0;
}
@media (min-width: 48rem) {
  .sector-intro {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    min-height: 56vw;
  }
  .sector-intro__media {
    border-right: var(--border-width) solid #000000;
  }
}

.sector-carousel {
  z-index: 1;
  overflow: visible;
  border-block: var(--border-width) solid #000000;
}
.sector-carousel .splide__track {
  overflow: visible;
}
.sector-carousel__content {
  z-index: 2;
  padding-block: 7rem 8rem;
}
.sector-carousel__content:has(> .sector-carousel__picto) > .col-content {
  padding-right: 15%;
}
.sector-carousel__image img {
  height: 100%;
  object-fit: cover;
}
.sector-carousel__image {
  z-index: 1;
  min-height: 22rem;
}
.sector-carousel__picto {
  position: absolute;
  right: -1rem;
  bottom: -1rem;
  height: 85%;
  width: auto;
  z-index: 99;
}
.sector-carousel__picto img {
  width: auto;
  max-width: none;
  height: 100%;
}
.sector-carousel__arrows {
  position: absolute;
  left: max(1rem, (100% - 34rem) / 2 + 1rem);
  top: 2rem;
  gap: 4.0625rem;
}
.sector-carousel__arrows .splide__arrow {
  position: static;
  transform: none;
  background: transparent;
  border: 0;
  border-radius: 0;
  color: white;
  width: 3.875rem;
  height: 2.125rem;
  padding: 0;
}
.sector-carousel__arrows .splide__arrow svg {
  width: 100%;
  height: 100%;
}
.sector-carousel__arrows .splide__arrow--prev svg {
  transform: scaleX(-1);
}
.sector-carousel__arrows .splide__arrow {
  opacity: 1;
}
.sector-carousel__arrows .splide__arrow:disabled {
  opacity: 0.2;
  cursor: default;
}
@media (min-width: 48rem) {
  .sector-carousel .splide__slide {
    min-height: 45vw;
  }
  .sector-carousel__image {
    border-left: var(--border-width) solid #000000;
  }
  .sector-carousel__arrows {
    left: max(5%, (50% - 34rem) / 2);
    top: auto;
    bottom: 3rem;
  }
  .sector-carousel__content {
    padding-top: clamp(2rem, 7vw, 8rem);
    align-content: center;
  }
}
@media (prefers-reduced-motion: no-preference) {
  .sector-carousel.is-initialized .splide__slide.is-active .sector-carousel__image {
    animation: sector-image-reveal 850ms cubic-bezier(0.22, 1, 0.36, 1) both;
  }
}

@keyframes sector-image-reveal {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(0);
  }
}
body.single-post .site-main {
  border-bottom: var(--border-width) solid #000000;
}
body.single-post .article-single {
  padding-top: clamp(3rem, 6vw, 7rem);
}
body.single-post .article-single .entry-header {
  max-width: 65rem;
  padding-bottom: clamp(3rem, 6vw, 7rem);
}
body.single-post .article-single h1 {
  letter-spacing: 0.15em;
  text-wrap: balance;
}
body.single-post .article-single time {
  color: #136DB5;
}
body.single-post .article-single__image {
  max-width: 80rem;
}
body.single-post .article-single__image img {
  height: auto;
  max-height: 42rem;
  object-fit: cover;
}
body.single-post .article-single__body {
  max-width: 48rem;
  padding-block: clamp(3rem, 6vw, 7rem);
}
body.single-post .article-single .entry-content {
  overflow-wrap: anywhere;
}
body.single-post .article-single .entry-content h2, body.single-post .article-single .entry-content h3, body.single-post .article-single .entry-content h4 {
  margin-top: 2.5rem;
}
body.single-post .article-single .entry-content > :first-child {
  margin-top: 0;
}
body.single-post .article-single .entry-content img {
  height: auto;
}
body.single-post .article-single .entry-content blockquote {
  margin-inline: 0;
  padding-left: 1.5rem;
  border-left: var(--border-width) solid #136DB5;
}
body.single-post .post-navigation {
  width: min(100% - 3rem, 48rem);
  margin: 0 auto;
  padding-block: 3rem;
  border-top: var(--border-width) solid #000000;
}
body.single-post .post-navigation .nav-links {
  display: grid;
  gap: 2rem;
}
@media (min-width: 48rem) {
  body.single-post .post-navigation .nav-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
body.single-post .post-navigation .nav-previous {
  grid-column: 1;
}
body.single-post .post-navigation .nav-next {
  grid-column: 2;
  text-align: right;
}
body.single-post .post-navigation a {
  display: inline-flex;
  color: #000000;
}
body.single-post .post-navigation svg {
  width: 3.875rem;
  height: 2.125rem;
}
body.single-post .post-navigation .nav-previous svg {
  transform: scaleX(-1);
}

.about-section__picto,
.sector-intro__picto {
  position: absolute;
  right: max(1.5rem, (100vw - 102.5rem) / 2);
  place-items: center;
  width: clamp(3rem, 6vw, 6rem);
  aspect-ratio: 1;
}
.about-section__picto img,
.sector-intro__picto img {
  height: 100%;
  object-fit: contain;
}

.sector-intro__picto {
  top: 0;
}

.button {
  display: inline-flex;
  margin-top: 2.5rem;
  justify-content: center;
  align-items: center;
  padding: 0.5rem 3rem;
  border: var(--border-width) solid #000000;
  background: #136DB5;
  color: #fff;
  font-size: clamp(0.75rem, 0.75rem + 0.05vw, 0.8125rem);
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.1875rem;
}
.button:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 4px;
}
.button {
  border: var(--border-width) solid #000000;
  border-radius: 0;
  box-shadow: 0 0 0 var(--button-shadow, #000000);
  transition: transform 150ms ease, box-shadow 150ms ease;
}
@media (hover: hover) and (pointer: fine) {
  .button:not(:disabled):not([aria-disabled=true]):hover {
    transform: translateY(-3px);
    box-shadow: 3px 3px 0 var(--button-shadow, #000000);
  }
}
.button:not(:disabled):not([aria-disabled=true]):focus-visible {
  transform: translateY(-3px);
  box-shadow: 3px 3px 0 var(--button-shadow, #000000);
  outline: 2px solid currentColor;
  outline-offset: 5px;
}
.button:not(:disabled):not([aria-disabled=true]):active {
  transform: translate(1px, 1px);
  box-shadow: 1px 1px 0 var(--button-shadow, #000000);
}
@media (prefers-reduced-motion: reduce) {
  .button {
    transition: none;
  }
  .button:hover, .button:focus-visible, .button:active {
    transform: none;
  }
}
.button + .button {
  margin-top: 1.25rem;
}

.button--light {
  background: #DEE7EE;
  color: #000000;
}

.button--border-light {
  --button-shadow: #fff;
  border-color: #fff;
}

.estate-unit .estate-unit__actions [data-estate-media] {
  background: #DEE7EE;
  color: #000000;
}
.estate-unit .estate-unit__actions [data-estate-media][aria-pressed=true] {
  background: #136DB5;
  color: #fff;
}

@property --picto-trace-angle {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}
@media (prefers-reduced-motion: no-preference) {
  .picto-enter.picto-ready {
    border-color: transparent;
  }
  .picto-enter.picto-ready::after {
    content: "";
    position: absolute;
    top: calc(-1 * var(--picto-top));
    right: calc(-1 * var(--picto-right));
    bottom: calc(-1 * var(--picto-bottom));
    left: calc(-1 * var(--picto-left));
    border: inherit;
    border-color: #000000;
    pointer-events: none;
    mask-image: conic-gradient(from -45deg, #000 0deg var(--picto-trace-angle), transparent var(--picto-trace-angle) 360deg);
  }
  .picto-enter.picto-ready.is-visible::after {
    animation: picto-trace 850ms linear 600ms both;
  }
  .picto-enter.picto-ready.is-visible > img {
    transform-origin: center bottom;
    animation: picto-land 600ms ease-out both;
  }
}
@keyframes picto-trace {
  from {
    --picto-trace-angle: 0deg;
  }
  to {
    --picto-trace-angle: 360deg;
  }
}
@keyframes picto-land {
  0% {
    transform: translateY(-0.75rem) rotate(-5deg);
  }
  55% {
    transform: translateY(0) rotate(2deg);
  }
  75% {
    transform: translateY(-0.2rem) rotate(-1deg);
  }
  100% {
    transform: translateY(0) rotate(0);
  }
}
@media (prefers-reduced-motion: no-preference) {
  img.picto-enter.picto-ready.is-visible,
  svg.picto-enter.picto-ready.is-visible {
    transform-origin: center bottom;
    animation: picto-land 600ms ease-out both;
  }
}
@media (prefers-reduced-motion: no-preference) {
  .fade-ready {
    --fade-x: 0;
    --fade-y: 0;
    opacity: 0;
    translate: var(--fade-x) var(--fade-y);
  }
  .fade-ready.fade-left {
    --fade-x: -1.5rem;
  }
  .fade-ready.fade-right {
    --fade-x: 1.5rem;
  }
  .fade-ready.fade-up {
    --fade-y: 1.5rem;
  }
  .fade-ready.fade-down {
    --fade-y: -1.5rem;
  }
  .fade-ready.is-visible, .fade-ready:focus-within {
    opacity: 1;
    translate: 0 0;
    transition: opacity 550ms ease-out, translate 550ms cubic-bezier(0.22, 0.61, 0.36, 1);
    transition-delay: var(--fade-delay, 0ms);
  }
  .fade-ready:focus-within {
    transition-delay: 0ms;
  }
}
.bg-light,
.contact-section {
  --form-text-color: #000000;
}

.bg-accent {
  --form-text-color: #DEE7EE;
}

:where(.bg-light, .contact-section) label {
  color: var(--form-text-color);
}

input:not([type=submit]):not([type=button]):not([type=reset]):not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]):not([type=range]):not([type=image]),
textarea,
select {
  width: 100%;
  max-width: 100%;
  min-height: 2.75rem;
  padding: 0.65rem 0;
  border: 0;
  border-bottom: var(--border-width) solid #000000;
  border-radius: 0;
  background-color: transparent;
  color: var(--form-text-color, #DEE7EE);
  font-family: "Montserrat", sans-serif;
  box-shadow: none;
  transition: border-color 150ms ease;
}
input:not([type=submit]):not([type=button]):not([type=reset]):not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]):not([type=range]):not([type=image])::placeholder,
textarea::placeholder,
select::placeholder {
  color: var(--form-text-color, #DEE7EE);
  text-transform: uppercase;
  opacity: 1;
}
input:not([type=submit]):not([type=button]):not([type=reset]):not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]):not([type=range]):not([type=image]):focus,
textarea:focus,
select:focus {
  outline: none;
}

.gform-theme--foundation .gfield textarea,
textarea {
  background-color: transparent;
  min-height: 10rem;
  padding: 0.65rem;
  border: var(--border-width) solid #000000;
  color: var(--form-text-color, #DEE7EE);
}
.gform-theme--foundation .gfield textarea::placeholder,
textarea::placeholder {
  color: var(--form-text-color, #DEE7EE);
}
.gform-theme--foundation .gfield textarea:focus,
textarea:focus {
  outline: none;
}

.gform_button,
.gform_wrapper.gform-theme.gform-theme--framework .gform_footer .gform_button.button[type=submit] {
  border: var(--border-width) solid #000000;
  border-radius: 0;
  box-shadow: 0 0 0 var(--button-shadow, #000000);
  transition: transform 150ms ease, box-shadow 150ms ease;
}
@media (hover: hover) and (pointer: fine) {
  .gform_button:not(:disabled):not([aria-disabled=true]):hover,
  .gform_wrapper.gform-theme.gform-theme--framework .gform_footer .gform_button.button[type=submit]:not(:disabled):not([aria-disabled=true]):hover {
    transform: translateY(-3px);
    box-shadow: 3px 3px 0 var(--button-shadow, #000000);
  }
}
.gform_button:not(:disabled):not([aria-disabled=true]):focus-visible,
.gform_wrapper.gform-theme.gform-theme--framework .gform_footer .gform_button.button[type=submit]:not(:disabled):not([aria-disabled=true]):focus-visible {
  transform: translateY(-3px);
  box-shadow: 3px 3px 0 var(--button-shadow, #000000);
  outline: 2px solid currentColor;
  outline-offset: 5px;
}
.gform_button:not(:disabled):not([aria-disabled=true]):active,
.gform_wrapper.gform-theme.gform-theme--framework .gform_footer .gform_button.button[type=submit]:not(:disabled):not([aria-disabled=true]):active {
  transform: translate(1px, 1px);
  box-shadow: 1px 1px 0 var(--button-shadow, #000000);
}
@media (prefers-reduced-motion: reduce) {
  .gform_button,
  .gform_wrapper.gform-theme.gform-theme--framework .gform_footer .gform_button.button[type=submit] {
    transition: none;
  }
  .gform_button:hover, .gform_button:focus-visible, .gform_button:active,
  .gform_wrapper.gform-theme.gform-theme--framework .gform_footer .gform_button.button[type=submit]:hover,
  .gform_wrapper.gform-theme.gform-theme--framework .gform_footer .gform_button.button[type=submit]:focus-visible,
  .gform_wrapper.gform-theme.gform-theme--framework .gform_footer .gform_button.button[type=submit]:active {
    transform: none;
  }
}
.gform_button,
.gform_wrapper.gform-theme.gform-theme--framework .gform_footer .gform_button.button[type=submit] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  max-width: 100%;
  padding: 0.5rem 3rem;
  background: #DEE7EE;
  color: #000000;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(0.75rem, 0.75rem + 0.05vw, 0.8125rem);
  font-weight: 700;
  line-height: 1.4;
  text-transform: uppercase;
  white-space: normal;
  cursor: pointer;
  letter-spacing: 0.1875rem;
}
.gform_button:disabled, .gform_button[aria-disabled=true],
.gform_wrapper.gform-theme.gform-theme--framework .gform_footer .gform_button.button[type=submit]:disabled,
.gform_wrapper.gform-theme.gform-theme--framework .gform_footer .gform_button.button[type=submit][aria-disabled=true] {
  opacity: 0.6;
  cursor: default;
}

.gform-theme--foundation .gform-field-label__text {
  color: var(--form-text-color, #DEE7EE);
  font-weight: normal;
  font-family: "Montserrat", sans-serif;
  text-transform: uppercase;
}

.gfield_required {
  display: none;
}

:root {
  --estate-accent: #136DB5;
}

@media (min-width: 48rem) {
  #carte-unites {
    --housing-inset: calc(max(1.5rem, (100% - 102.5rem) / 2) + 3vw);
  }
  #carte-unites > .estate-browser {
    margin-left: var(--housing-inset);
  }
  #carte-unites > .housing-legend {
    padding-right: var(--housing-inset);
  }
}
.estate-browser .housing-panel__contact {
  align-self: flex-start;
  margin-top: auto;
}

#carte-unites .estate-browser .housing-panel__nav h3 {
  font-size: clamp(1.5rem, 1.3333rem + 0.8333vw, 2rem);
}

#carte-unites .housing-panel .housing-map-overlay polygon {
  fill: #fff;
  opacity: 0;
}
#carte-unites .housing-panel .housing-map-overlay a:is(:hover, :focus, .is-active) polygon {
  opacity: 0.4;
}

#carte-unites .housing-panel[data-level=Maisons] .housing-map-overlay polygon.reserve {
  fill: #f4cc14;
  opacity: 0.4;
}
#carte-unites .housing-panel[data-level=Maisons] .housing-map-overlay polygon.indisp {
  fill: #e9292b;
  opacity: 0.4;
}

#carte-unites .estate-unit__navigation {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 400;
  text-transform: uppercase;
}
#carte-unites .estate-unit__navigation a {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

#carte-unites .estate-similar__image {
  position: relative;
  width: 100%;
  max-width: 376px;
  aspect-ratio: 376/445;
}
#carte-unites .estate-similar__image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

#carte-unites .estate-unit__footer {
  padding: 2rem clamp(1.5rem, 4vw, 4.5rem);
  gap: 1.5rem 2.5rem;
}
#carte-unites .estate-unit__footer .estate-unit__recent {
  gap: 1rem 2rem;
}
#carte-unites .estate-unit__footer .estate-unit__recent > strong {
  flex: 0 0 8rem;
  max-width: 8rem;
  font-size: 0.875rem;
  line-height: 1.2;
  letter-spacing: 0.12em;
}
#carte-unites .estate-unit__footer .estate-unit__recent > div {
  gap: 0.75rem;
}
#carte-unites .estate-unit__footer .estate-unit__recent .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 7.25rem;
  min-height: 1.875rem;
  padding: 0.25rem 0.75rem;
  border: var(--border-width) solid #000000;
  font-size: 0.625rem;
  line-height: 1.2;
  letter-spacing: 0.2em;
  text-decoration: none;
  background: #DEE7EE;
  color: #000000;
}
#carte-unites .estate-unit__footer .estate-unit__download {
  gap: 0.75rem;
  font-size: 0.625rem;
  line-height: 1.4;
  text-decoration: none;
}

.housing-legend {
  justify-content: flex-end;
  gap: 1.5rem 2.5rem;
  padding: 2rem 1.5rem;
  list-style: none;
  background: #DEE7EE;
  border-top: var(--border-width) solid #000000;
  font-size: clamp(0.75rem, 0.75rem + 0.05vw, 0.8125rem);
  text-transform: uppercase;
}
.housing-legend li {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.housing-legend__color {
  width: 1.25rem;
  height: 1.25rem;
  border: var(--border-width) solid #000000;
}
.housing-legend__color--available {
  background: #136DB5;
}
.housing-legend__color--reserved {
  background: #f4cc14;
}
.housing-legend__color--rented {
  background: #e9292b;
}

.estate-browser .housing-choice:is(.housing-choice--phase, .housing-choice--building) {
  grid-template-columns: minmax(2rem, 22%) minmax(0, 1fr);
  align-items: center;
  gap: 1rem;
  padding-block: 0.85rem;
}
.estate-browser .housing-choice:is(.housing-choice--phase, .housing-choice--building) > strong {
  font-size: 1.875rem;
  line-height: 1;
  font-weight: 400;
}
.estate-browser .housing-choice:is(.housing-choice--phase, .housing-choice--building) > span {
  line-height: 1.7;
  letter-spacing: 0.05em;
}
.estate-browser .housing-choice:is(.housing-choice--phase, .housing-choice--building):last-child {
  border-bottom: var(--border-width) solid #000000;
}

.estate-browser .housing-choice {
  position: relative;
  padding-inline-end: 1.75rem;
}
.estate-browser .housing-choice > strong,
.estate-browser .housing-choice > span {
  transition: transform 180ms ease;
}
.estate-browser .housing-choice::after {
  content: "";
  position: absolute;
  right: 0.25rem;
  top: 50%;
  width: 1.25rem;
  aspect-ratio: 62/34;
  background: currentColor;
  mask: url("../img/arrow-right.svg") center/contain no-repeat;
  opacity: 0;
  transform: translate(-0.25rem, -50%);
  transition: opacity 180ms ease, transform 180ms ease;
}
.estate-browser .housing-choice:hover, .estate-browser .housing-choice:focus-visible {
  background: transparent;
}
.estate-browser .housing-choice:is(:hover, :focus-visible, .is-active) > strong,
.estate-browser .housing-choice:is(:hover, :focus-visible, .is-active) > span {
  transform: translateX(0.25rem);
}
.estate-browser .housing-choice:is(:hover, :focus-visible, .is-active)::after {
  opacity: 1;
  transform: translate(0, -50%);
}
@media (prefers-reduced-motion: reduce) {
  .estate-browser .housing-choice > strong,
  .estate-browser .housing-choice > span, .estate-browser .housing-choice::after {
    transition: none;
  }
}

.estate-unit .estate-unit__details {
  position: relative;
  z-index: 2;
}

.estate-unit .estate-unit__specs {
  border-color: #000000;
}

.estate-unit .estate-unit__details {
  text-transform: uppercase;
}

.estate-unit .estate-unit__actions {
  position: relative;
  overflow: hidden;
  padding: 0;
}

.estate-unit__filter-toggle {
  position: absolute;
  top: 1rem;
  right: 1rem;
  z-index: 3;
  border: 0;
  padding: 0.5rem 1.5rem;
  background: #DEE7EE;
  color: #000000;
  font: inherit;
  font-size: 0.75rem;
  text-transform: uppercase;
  cursor: pointer;
}

.estate-unit__action-panel {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-self: stretch;
  height: 100%;
  gap: 1rem;
  padding: clamp(2rem, 4vw, 4rem);
  transition: transform 400ms ease, opacity 300ms ease, visibility 0s;
}

.estate-unit--filters-closed .estate-unit__action-panel {
  transform: translateX(-100%);
  opacity: 0;
  visibility: hidden;
  transition-delay: 0s, 0s, 400ms;
}

.estate-browser .housing-panel {
  border-block: none;
}

@media (min-width: 48rem) {
  .estate-unit .estate-unit__layout {
    container-type: inline-size;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.35fr);
    transition: grid-template-columns 400ms ease;
  }
  .estate-unit--filters-closed .estate-unit__layout {
    grid-template-columns: minmax(0, 1fr) minmax(0, 0fr) minmax(0, 2.35fr);
  }
  .estate-unit .estate-unit__media.estate-unit__gallery-images {
    width: min(100%, 40.2985074627cqw);
    margin-inline: auto;
  }
}
@media (max-width: 47.9375rem) {
  .estate-unit--filters-closed .estate-unit__actions {
    max-height: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .estate-unit .estate-unit__layout,
  .estate-unit .estate-unit__action-panel {
    transition: none;
  }
}
.site-main.w-100 .estate-unit__layout {
  padding-inline-end: max(1.5rem, (100% - 102.5rem) / 2);
}

.estate-unit .estate-unit__plan {
  display: flex;
  align-items: stretch;
  min-width: 0;
  padding: 0;
}

.estate-unit .estate-unit__media.estate-unit__gallery-images {
  display: flex;
  flex-direction: column;
  align-self: stretch;
  max-height: none;
}
.estate-unit .estate-unit__media.estate-unit__gallery-images[hidden] {
  display: none;
}

.estate-unit .estate-unit__gallery-track {
  flex: 1;
  min-height: clamp(20rem, 45vw, 38rem);
}

.estate-unit .estate-unit__gallery-slide {
  position: relative;
}

.estate-unit .estate-unit__gallery-slide img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-height: none;
  object-fit: cover;
}

.estate-unit [data-estate-media-panel][id$=-plan] .estate-unit__gallery-slide img {
  object-fit: contain;
}

.estate-unit .estate-unit__gallery-controls {
  flex: none;
  padding: 1.5rem;
}

.d-block {
  display: block;
}

.d-grid {
  display: grid;
}

.gap-0 {
  gap: 0;
}

.d-flex {
  display: flex;
}

.flex-column {
  flex-direction: column;
}

.flex-wrap {
  flex-wrap: wrap;
}

.justify-center {
  justify-content: center;
}

.items-center {
  align-items: center;
}

.self-start {
  align-self: start;
}

.pos-relative {
  position: relative;
}

.isolate {
  isolation: isolate;
}

.overflow-hidden {
  overflow: hidden;
}

.w-100 {
  width: 100%;
}

.max-w-none {
  max-width: none;
}

.mx-0 {
  margin-inline: 0;
}

.m-0 {
  margin: 0;
}

.mb-0 {
  margin-bottom: 0;
}

.mb-md {
  margin-bottom: 1.5rem;
}

.mb-lg {
  margin-bottom: 2rem;
}

.mb-xl {
  margin-bottom: 3rem;
}

.mr-lg {
  margin-right: 2rem;
}

.mt-lg {
  margin-top: 2rem;
}

.mt-xl {
  margin-top: 3rem;
}

.py-xs {
  padding-block: 0.5rem;
}

.px-xs {
  padding-inline: 0.5rem;
}

.py-sm {
  padding-block: 1rem;
}

.py-md {
  padding-block: 1.5rem;
}

.px-md {
  padding-inline: 1.5rem;
}

.py-lg {
  padding-block: 2rem;
}

.py-xl {
  padding-block: 3rem;
}

.py-xxl {
  padding-block: 4rem;
}

.p-0 {
  padding: 0;
}

.py-0 {
  padding-block: 0;
}

.pb-0 {
  padding-bottom: 0;
}

.pt-0 {
  padding-top: 0;
}

.pe-0 {
  padding-right: 0;
}

.p-md {
  padding: 1.5rem;
}

.bg-accent {
  background: #136DB5;
  color: #fff;
}

.bg-white {
  background: #fff;
}

.bg-text {
  background: #000000;
}

.bg-light {
  background: #DEE7EE;
}

.txt-white {
  color: #fff;
}

.txt-color {
  color: #fff;
}

.txt-light {
  color: #DEE7EE;
}

.fw-bold {
  font-weight: 700;
}

.txt-center {
  text-align: center;
}

.txt-left {
  text-align: left;
}

.txt-right {
  text-align: right;
}

.txt-uppercase {
  font-size: clamp(0.9375rem, 0.9167rem + 0.1042vw, 1rem);
  line-height: 1.25;
  text-transform: uppercase;
}

.list-none {
  list-style: none;
}

.border {
  border: var(--border-width) solid #000000;
}

.border-bottom {
  border-bottom: var(--border-width) solid #000000;
}

.border-bottom-0 {
  border-bottom: 0;
}

.border-top-0 {
  border-top: 0;
}

.video-fill {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: cover;
}

.media-cover {
  position: relative;
  min-width: 0;
  min-height: 24rem;
  overflow: hidden;
}
.media-cover > .video-fill {
  position: absolute;
  inset: 0;
}

/*# sourceMappingURL=main.css.map */
