* { margin: 0; padding: 0; border: 0; text-decoration: none; list-style: none; box-sizing: border-box; }

img { display: block; max-width: 100%; }

a { display: inline-block; transition: all 0.5s; }

.navbar-mobile { padding-top: 40px; padding-bottom: 40px; }

section { padding-top: 40px; padding-bottom: 40px; }

@media (min-width: 768px) { section { padding-top: 60px; padding-bottom: 60px; } }

@media (min-width: 992px) { section { padding-top: 80px; padding-bottom: 80px; } }

@media (min-width: 1200px) { section { padding-top: 100px; padding-bottom: 100px; } }

/*    gap: 40px; @media (min-width: $break-md) { gap: 60px; } @media (min-width: $break-lg) { gap: 80px; } @media (min-width: $break-xl) { gap: 100px; }*/
body { background-color: #f8f4ef; font-family: "Funnel Sans", sans-serif; color: #1d1d1d; font-size: 16px; }

ul { padding-left: 10px; }

ul li { position: relative; padding-left: 20px; margin-bottom: 10px; }

ul li::before { content: ""; position: absolute; left: 0; top: 11px; transform: translateY(-50%); width: 6px; height: 6px; background-color: #1d1d1d; border-radius: 50%; }

h1, h2, h3, h4, h5, h6 { margin: 0; padding: 0; }

h1 { font-family: "Baskerville URW", serif; font-size: 40px; line-height: 1; font-weight: 300; color: #1d1d1d; }

h2 { display: block; font-family: "Baskerville URW", serif; font-size: 36px; line-height: 1.2; font-weight: 300; color: #1d1d1d; }

h2 span.fantaisie { display: block; font-family: "Birthstone Bounce", cursive; font-size: 48px; line-height: 1; font-weight: 300; color: #d7c3a5; }

h2.fantaisie { font-family: "Birthstone Bounce", cursive; font-size: 48px; line-height: 1; font-weight: 300; color: #d7c3a5; }

h2.primaire { color: #8e9d62; }

h3 { font-family: "Baskerville URW", serif; font-size: 20px; font-weight: 600; line-height: 1; color: #8e9d62; text-transform: uppercase; }

p { font-family: "Funnel Sans", sans-serif; font-size: 18px; font-weight: 300; line-height: 1.3; color: #1d1d1d; }

p p + p { margin-top: 10px; }

p strong { font-weight: 600; }

[class*="__chapo"] { font-family: "Baskerville URW", serif; font-size: 22px; font-weight: 300; line-height: 1.2; color: #1d1d1d; }

@media (min-width: 992px) { [class*="__chapo"] { font-size: 30px; } }

h4, h5 { font-family: "Baskerville URW", serif; font-size: 16px; font-weight: 600; line-height: 1.2; color: #1d1d1d; }

@media (min-width: 768px) { h2 { font-size: 48px; }
  h2 span.fantaisie { font-size: 60px; } }

@media (min-width: 992px) { h1 { font-size: 56px; }
  h2.titre-section { font-size: 60px; line-height: 62px; }
  h2.titre-section span.fantaisie { font-size: 80px; } }

@media (min-width: 1500px) { h1 { font-size: 60px; } }

.btn-cta, .contact__submit { display: inline-flex; align-items: center; gap: 10px; border: 2px solid #8e9d62; padding: 10px 20px; font-family: "Funnel Sans", sans-serif; font-size: 18px; font-weight: 600; color: #1d1d1d; transition: background-color 0.2s, color 0.2s; width: fit-content; }

.btn-cta:hover, .contact__submit:hover { background-color: #8e9d62; color: #ffffff; }

.navbar { position: sticky; top: 0; z-index: 1000; background-color: #f8f4ef; }

.navbar .container-xxl { display: flex; align-items: center; justify-content: space-between; gap: 32px; padding: 24px 16px 0; position: relative; transition: padding 0.3s ease; }

.navbar li { padding-left: 0px; margin-bottom: 0px; }

.navbar li:before { display: none; }

.navbar .navbar__logo img:nth-child(2) { display: none; }

.navbar.is-scrolled { box-shadow: 0px 4px 10px #00000033; }

.navbar.is-scrolled .navbar__logo img:nth-child(1) { display: none; }

.navbar.is-scrolled .navbar__logo img:nth-child(2) { display: block; }

.navbar.is-scrolled .container-xxl { padding-top: 10px; padding-bottom: 10px; }

.navbar__button { display: flex; align-items: center; gap: 30px; }

.navbar-toggler { display: flex; flex-direction: column; justify-content: space-between; width: 30px; height: 20px; background: none; border: none; cursor: pointer; padding: 0; }

.navbar-toggler span { display: block; width: 100%; height: 2px; background-color: #1d1d1d; border-radius: 2px; transition: all 0.3s; }

.navbar-toggler[aria-expanded="true"] span:nth-child(1) { transform: translateY(9px) rotate(45deg); }

.navbar-toggler[aria-expanded="true"] span:nth-child(2) { opacity: 0; }

.navbar-toggler[aria-expanded="true"] span:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }

.navbar-mobile { display: none; background-color: #f8f4ef; border-top: 1px solid rgba(29, 29, 29, 0.06); }

.navbar-mobile.is-open { display: block; }

.navbar-mobile ul { list-style: none; padding: 0 16px; max-width: 520px; margin: auto; }

.navbar-mobile ul a { display: block; font-family: "Funnel Sans", sans-serif; font-size: 18px; font-weight: 500; color: #1d1d1d; padding: 12px 0; border-bottom: 1px solid rgba(29, 29, 29, 0.07); }

.navbar-mobile__actions { display: flex; gap: 12px; padding: 16px 16px 0; max-width: 520px; margin: auto; }

.navbar-nav { display: none; align-items: center; list-style: none; gap: 0; margin: 0; }

.navbar-nav a { font-family: "Funnel Sans", sans-serif; font-size: 16px; font-weight: 500; color: #1d1d1d; transition: color 0.2s; }

.navbar-nav a:hover { color: #8e9d62; }

@media (min-width: 1200px) { .navbar-nav a { font-size: 18px; } }

.navbar-actions { display: none; align-items: center; gap: 12px; }

.btn-nav { font-family: "Funnel Sans", sans-serif; font-size: 16px; font-weight: 600; padding: 6px 16px; border-radius: 500px; white-space: nowrap; transition: opacity 0.2s; display: inline-block; }

.btn-nav:hover { opacity: 0.85; }

.btn-nav--reserver { background-color: #d7c3a5; color: #1d1d1d; }

.btn-nav--plateforme { background-color: transparent; border: 1px solid #d7c3a5; color: #1d1d1d; display: flex; align-items: center; height: 33px; }

.nav-social { color: #1d1d1d; font-size: 20px; line-height: 22px; transition: color 0.2s; padding: 4px; }

.nav-social:hover { color: #8e9d62; }

@media (min-width: 992px) { .navbar-nav, .navbar-actions, .navbar-group { display: flex; gap: 20px; }
  .navbar-social { display: flex; gap: 10px; }
  .navbar__button { display: none; }
  .navbar-mobile { display: none !important; }
  .navbar__logo { display: none; }
  .navbar .container-xxl { justify-content: flex-end; gap: 30px; }
  .navbar.is-scrolled .navbar__logo { display: block; }
  .navbar.is-scrolled .navbar__logo img:nth-child(1) { display: none; }
  .navbar.is-scrolled .navbar__logo img:nth-child(2) { display: block; }
  .navbar.is-scrolled .container-xxl { justify-content: space-between; } }

.hero { background-color: #f8f4ef; overflow: visible; height: auto; padding-top: 20px; }

.hero__inner { position: relative; width: 100%; height: auto; margin-left: 0; padding: 16px 0; display: flex; flex-direction: column; gap: 32px; }

.hero__logo { position: static; width: 100px; height: auto; overflow: hidden; z-index: 4; }

.hero__logo img { width: 170px; height: auto; }

.hero__photo { width: 100%; }

.hero__figure { position: relative; overflow: hidden; width: 100%; height: 55vw; max-height: 450px; object-fit: cover; border-radius: 12px; z-index: 2; }

.hero__figure:before { background: url("../img/meuble-tourisme.webp"); position: absolute; top: 10px; left: 10px; width: 90px; height: 90px; content: ""; background-size: contain; background-repeat: no-repeat; z-index: 1; }

.hero__chevron { position: absolute; display: none; }

.hero__chevron--deco { left: 191px; top: 63px; width: 378px; height: 470px; z-index: 1; }

.hero__chevron--cover { left: 360px; top: 65px; width: 220px; height: 180px; z-index: 3; }

.hero__content { position: static; width: 100%; display: flex; flex-direction: column; gap: 24px; z-index: 4; }

@media (min-width: 768px) { .hero__figure:before { width: 140px; height: 140px; } }

@media (min-width: 992px) { .hero { height: 781px; overflow: hidden; }
  .hero__inner { height: 100%; padding: 0; display: block; }
  .hero__logo { position: absolute; left: 0; top: 7px; width: 170px; height: 185px; }
  .hero__figure { position: absolute; left: 360px; top: 0; width: 62vw; height: 620px; max-height: none; border-radius: 20px 0 0 20px; }
  .hero__figure:before { bottom: 10px; top: auto; }
  .hero__chevron { display: block; }
  .hero__content { position: absolute; left: 0; top: 280px; width: 320px; gap: 50px; } }

@media (min-width: 1200px) { .hero__content { width: 450px; }
  .hero__figure { left: 500px; height: 680px; }
  .hero__chevron--deco { left: 328px; width: 408px; }
  .hero__chevron--cover { width: 515px; } }

@media (min-width: 1500px) { .hero__content { width: 460px; }
  .hero__photo { height: 780px; }
  .hero__chevron--deco { left: 300px; width: 480px; height: 560px; top: 61px; }
  .hero__chevron--cover { width: 540px; height: 220px; left: 373px; } }

.intro { background-color: #f8f4ef; }

.intro__heading { text-align: center; margin-bottom: 40px; }

.intro__title { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0; flex-wrap: wrap; margin-bottom: 8px; }

.intro__subtitle { font-weight: 300; text-transform: none; letter-spacing: 0; color: #1d1d1d; }

.intro__gallery { display: grid; }

.intro__gallery > * { grid-area: 1 / 1; }

.intro__gallery-hero { display: flex; justify-content: center; align-items: center; padding: 30px 0; transition: opacity 0.4s ease, transform 0.4s ease; margin-top: 60px; }

.intro__gallery-hero.is-out { opacity: 0; transform: scale(0.88); pointer-events: none; }

.intro__photo-stack { position: relative; min-width: 0; width: 100%; aspect-ratio: 791 / 430; }

.intro__photo-card { position: absolute; inset: 0; border: 3px solid #ffffff; border-radius: 20px; box-shadow: 0 0 14px rgba(0, 0, 0, 0.2); overflow: hidden; }

.intro__photo-card img { width: 100%; height: 100%; object-fit: cover; display: block; }

.intro__photo-card--back { transform: rotate(-2.5deg); z-index: 1; }

.intro__photo-card--front { transform: rotate(1.1deg); z-index: 2; }

.intro__gallery-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; align-content: center; }

.intro__thumb { display: block; aspect-ratio: 330 / 194; border: 3px solid #ffffff; border-radius: 20px; box-shadow: 0 0 14px rgba(0, 0, 0, 0.2); overflow: hidden; cursor: pointer; opacity: 0; transform: scale(0.85) rotate(2deg); transition: opacity 0.45s ease, transform 0.45s ease; }

.intro__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; }

.intro__thumb:hover img { transform: scale(1.06); }

.intro__thumb.is-visible { opacity: 1; transform: scale(1) rotate(0deg); }

.lightbox { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.88); z-index: 9999; display: flex; align-items: center; justify-content: center; opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease; cursor: pointer; }

.lightbox.is-open { opacity: 1; visibility: visible; }

.lightbox img { max-width: 90vw; max-height: 90vh; border-radius: 16px; box-shadow: 0 8px 40px rgba(0, 0, 0, 0.5); pointer-events: none; display: block; }

.lightbox__close { position: absolute; top: 20px; right: 24px; color: #ffffff; font-size: 40px; line-height: 1; cursor: pointer; font-family: "Funnel Sans", sans-serif; font-weight: 300; opacity: 0.75; background: none; border: none; padding: 0; transition: opacity 0.2s; }

.lightbox__close:hover { opacity: 1; }

@media (min-width: 576px) { .intro__title { flex-direction: row; align-items: flex-end; gap: 16px; }
  .intro__title span.fantaisie { font-size: 36px; }
  .intro__subtitle { font-size: 24px; }
  .intro__gallery-grid { gap: 16px; } }

@media (min-width: 992px) { .intro__heading { margin-bottom: 0px; }
  .intro__title span.fantaisie { font-size: 60px; line-height: 62px; }
  .intro__subtitle { font-size: 40px; }
  .intro__gallery-grid { grid-template-columns: repeat(4, 1fr); gap: 30px; }
  .intro__photo-stack { min-width: 791px; } }

.histoire { background-color: #ffffff; position: relative; }

.histoire .container-xxl { display: flex; flex-direction: column; gap: 40px; }

@media (min-width: 768px) { .histoire .container-xxl { gap: 60px; } }

@media (min-width: 992px) { .histoire .container-xxl { gap: 80px; } }

@media (min-width: 1200px) { .histoire .container-xxl { gap: 100px; } }

.histoire__swirl, .histoire__deco-1701 { display: none; }

.histoire__swirl { position: absolute; top: -40px; left: 50%; transform: translateX(-50%); width: 80vw; pointer-events: none; z-index: 0; }

.histoire__swirl img { width: 100%; display: block; }

.histoire h2 { text-align: center; }

.histoire__content { display: flex; flex-direction: column; align-items: stretch; position: relative; z-index: 1; gap: 40px; }

@media (min-width: 768px) { .histoire__content { gap: 60px; } }

@media (min-width: 992px) { .histoire__content { gap: 80px; } }

.histoire__image { flex: none; }

.histoire__image img { width: 100%; max-width: 650px; object-fit: cover; display: block; margin: auto; }

.histoire__text { flex: 1; display: flex; flex-direction: column; gap: 40px; }

@media (min-width: 768px) { .histoire__text { gap: 60px; } }

.histoire__floor { display: flex; flex-direction: column; gap: 14px; }

.histoire__floor-title { margin-bottom: 6px; }

.histoire__features { list-style: none; display: flex; flex-direction: column; gap: 14px; }

.histoire__feature { display: flex; align-items: flex-start; gap: 10px; font-family: "Funnel Sans", sans-serif; font-size: 18px; font-weight: 300; line-height: 1.3; color: #1d1d1d; }

.histoire__feature i { flex-shrink: 0; width: 20px; text-align: center; margin-top: 3px; color: #1d1d1d; }

.histoire__feature:before { display: none; }

.histoire__deco-1701 { position: absolute; left: 0; top: 32%; pointer-events: none; z-index: 0; max-width: 700px; width: 50%; }

.histoire__deco-1701 img { width: 100%; display: block; }

.histoire__cards-section { position: relative; }

.histoire__cards { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr; gap: 20px; align-items: stretch; }

.histoire__card-photo { border-radius: 20px; overflow: hidden; position: relative; min-height: 280px; }

.histoire__card-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }

.histoire__card-text { display: flex; flex-direction: column; padding: 20px 0; gap: 40px; }

@media (min-width: 768px) { .histoire__card-text { gap: 60px; } }

.histoire__cta-wrap { text-align: center; }

@media (min-width: 768px) { .histoire { padding-top: 80px; padding-bottom: 80px; }
  .histoire__cards { grid-template-columns: 1fr 1fr; gap: 30px; } }

@media (min-width: 992px) { .histoire__swirl { display: block; }
  .histoire__image img { max-height: none; object-fit: unset; }
  .histoire__cards { grid-template-columns: 1fr 1fr 1fr; gap: 30px; }
  .histoire__card-photo { min-height: 440px; } }

@media (min-width: 1200px) { .histoire__content { flex-direction: row; gap: 60px; align-items: center; padding-bottom: 10%; }
  .histoire__content .histoire__image { flex: 0 0 50%; }
  .histoire__content .histoire__cards-section { margin-top: 80px; }
  .histoire__deco-1701 { display: block; top: 36%; } }

@media (min-width: 1500px) { .histoire__content .histoire__image { flex: 0 0 60%; }
  .histoire__content .histoire__image img { margin: 0; max-width: 700px; } }

.recit { background-color: #f8f4ef; }

.recit__card { background: rgba(215, 195, 165, 0.3); border-radius: 20px; overflow: hidden; display: flex; flex-direction: column; gap: 0; padding-left: 0; min-height: auto; }

.recit__text { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 40px; padding: 40px 24px; }

.recit__deco-line { max-width: 250px; margin: auto; }

.recit__deco-line img { display: block; }

.recit__photo { flex: none; align-self: auto; width: 100%; height: 60vh; border-radius: 0 0 20px 20px; position: relative; overflow: hidden; }

.recit__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }

.recit__photo::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, 0.4); }

.recit__logo { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 1; width: 150px; height: 170px; }

.recit__logo img { width: 100%; display: block; }

@media (min-width: 992px) { .recit__card { flex-direction: row; padding-left: 60px; gap: 60px; min-height: 688px; }
  .recit__text { padding: 60px 0; gap: 40px; }
  .recit__photo { flex: 0 0 50%; align-self: stretch; width: auto; height: auto; border-radius: 0 20px 20px 0; } }

.disponibilites { padding-top: 0; }

.disponibilites__card { background: #ffffff; border-radius: 20px; padding: 20px; overflow: hidden; gap: 20px; display: flex; flex-direction: column; }

.disponibilites__head { position: relative; display: flex; align-items: center; justify-content: space-between; min-height: 40px; padding-bottom: 20px; }

.disponibilites__nav { display: flex; gap: 10px; }

.disponibilites__btn { display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; background-color: rgba(215, 195, 165, 0.3); border: none; cursor: pointer; color: #1d1d1d; font-size: 14px; transition: background-color 0.2s; }

.disponibilites__btn:hover { background-color: rgba(215, 195, 165, 0.6); }

.disponibilites__calendars { display: flex; flex-direction: column; gap: 30px; }

.disponibilites__calendars .cal ~ .cal { display: none; }

.cal { display: flex; flex-direction: column; gap: 20px; width: 100%; }

.cal--loading { align-items: center; justify-content: center; min-height: 200px; color: rgba(29, 29, 29, 0.4); font-size: 14px; }

.cal__header { text-align: center; font-family: "Funnel Sans", sans-serif; font-size: 20px; font-weight: 800; color: #1d1d1d; }

.cal__weekdays { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); width: 100%; font-family: "Funnel Sans", sans-serif; font-size: 14px; font-weight: 600; color: #1d1d1d; text-align: center; }

.cal__wday { display: flex; align-items: center; justify-content: center; font-size: 14px; }

.cal__days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); width: 100%; border-left: 1px solid #d5d4df; border-top: 1px solid #d5d4df; }

.cal__cell { display: flex; align-items: center; justify-content: center; aspect-ratio: 1; border-right: 1px solid #d5d4df; border-bottom: 1px solid #d5d4df; font-family: "Funnel Sans", sans-serif; font-size: 14px; font-weight: 300; color: #1d1d1d; font-feature-settings: "lnum" 1, "tnum" 1; }

.cal__cell--booked { background-color: #ff8888; color: #1d1d1d; }

.cal__cell--arrival { flex-direction: column; gap: 2px; padding: 3px 0; }

.cal__cell--unavailable { background-color: #ff8888; color: #1d1d1d; }

.cal__cell--other { background-color: #f2f3f7; color: #a8a8a8; }

.cal__cell-icon { font-size: 10px; color: #1d1d1d; position: absolute; margin-top: -35px; }

.cal__cell-badge { line-height: 1; }

.cal__cell-badge { display: flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; color: #8e9d62; font-size: 14px; font-weight: 600; }

.cal__cell--free .cal__cell-badge { color: #8e9d62; }

.cal__cell--unavailable .cal__cell-badge, .cal__cell--booked .cal__cell-badge { color: white; font-weight: normal; }

.cal__cell--arrival .cal__cell-badge { background: #8e9d62; color: #ffffff; }

.disponibilites__legend { display: flex; flex-wrap: wrap; gap: 12px 24px; padding: 0; list-style: none; }

.legend__item { display: flex; align-items: center; gap: 8px; font-family: "Funnel Sans", sans-serif; font-size: 13px; font-weight: 400; color: #1d1d1d; padding-left: 0; }

.legend__item::before { display: none; }

.legend__swatch { display: inline-block; width: 18px; height: 18px; border-radius: 30px; flex-shrink: 0; }

.legend__swatch--free { background-color: #8e9d62; }

.legend__swatch--arrival { background-color: #8e9d62; display: inline-flex; align-items: center; justify-content: center; color: #ffffff; font-size: 9px; }

.legend__swatch--booked { background-color: #ff8888; }

.disponibilites__container__btn { margin-top: 20px; text-align: center; }

@media (min-width: 768px) { .disponibilites__card { padding: 40px; max-width: 520px; margin: auto; } }

@media (min-width: 992px) { .disponibilites__card { gap: 40px; max-width: 940px; margin: auto; }
  .disponibilites__calendars { flex-direction: row; align-items: flex-start; }
  .disponibilites__calendars .cal ~ .cal { display: flex; }
  .cal { flex: 1 1 0; } }

.stats { padding-top: 0; }

.stats__inner { display: grid; justify-content: center; align-items: center; gap: 40px 30px; grid-template-columns: repeat(2, 1fr); grid-template-rows: repeat(2, 1fr); justify-items: center; }

.stats__item { display: flex; flex-direction: column; align-items: center; gap: 20px; width: 120px; text-align: center; }

.stats__icon { height: 60px; display: flex; align-items: center; justify-content: center; }

.stats__icon img { display: block; max-height: 60px; }

.stats__label { font-family: "Baskerville URW", serif; font-size: 16px; font-weight: 600; line-height: 1; color: #6f8334; text-transform: uppercase; }

@media (min-width: 576px) { .stats__item { width: 160px; }
  .stats__label { font-size: 20px; } }

@media (min-width: 576px) { .stats__inner { grid-template-columns: repeat(4, 1fr); grid-template-rows: 1fr; gap: 20px; max-width: 750px; margin: auto; } }

@media (min-width: 992px) { .stats__inner { gap: 44px; }
  .stats__item { width: 174px; gap: 30px; } }

.piscine { position: relative; padding-top: clamp(0px, 55vw, 430px); padding-bottom: 0; background-color: #f8f4ef; overflow: hidden; }

.piscine__bg { position: absolute; top: 0; left: 0; right: 0; height: clamp(0px, 55vw, 430px); z-index: 0; }

.piscine__bg img { width: 100%; height: 100%; object-fit: cover; display: block; }

.piscine__chevron { display: none; position: absolute; top: 20px; left: 10%; width: 570px; pointer-events: none; z-index: 1; }

.piscine__chevron img { width: 100%; display: block; }

.piscine__card { position: relative; z-index: 2; max-width: 100%; margin: 0 auto; background: #ffffff; padding: 24px 24px 40px; text-align: center; display: flex; flex-direction: column; gap: 30px; align-items: center; }

.piscine__heading { display: flex; flex-direction: column; align-items: center; }

.piscine__chapo strong { font-weight: 600; }

@media (min-width: 992px) { .piscine { padding-top: 429px; }
  .piscine__bg { height: 570px; }
  .piscine__chevron { display: block; }
  .piscine__card { max-width: 1000px; padding: 40px; }
  .piscine__heading span:not(.fantaisie) { white-space: nowrap; } }

.reserver__inner { display: flex; flex-direction: column; align-items: stretch; gap: 40px; }

.reserver__photo { flex: none; width: 100%; height: 400px; border-radius: 20px; overflow: hidden; position: relative; }

.reserver__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }

.reserver__content { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 20px; }

.reserver__text { display: flex; flex-direction: column; gap: 20px; }

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

@media (min-width: 992px) { .reserver { padding-top: 140px; }
  .reserver__inner { flex-direction: row; align-items: stretch; gap: 30px; }
  .reserver__photo { flex: 0 0 55%; height: auto; border-radius: 20px; } }

.alentours { background-color: #ffffff; position: relative; }

.alentours__content { display: grid; grid-template-columns: 1fr; gap: 40px; }

.alentours__text { display: flex; flex-direction: column; gap: 40px; }

.alentours__intro { font-family: "Baskerville URW", serif; font-size: 18px; font-weight: 300; line-height: 1.2; color: #1d1d1d; display: flex; gap: 20px; flex-direction: column; }

.alentours__block { display: flex; flex-direction: column; gap: 20px; }

.alentours__links-grid { display: grid; grid-template-columns: 1fr; gap: 20px; }

.alentours__links-col { display: flex; flex-direction: column; gap: 12px; }

.alentours__link { font-family: "Funnel Sans", sans-serif; font-weight: 300; line-height: 1.3; color: #1d1d1d; text-decoration: underline; transition: border-color 0.2s, color 0.2s; }

.alentours__link:hover { color: #8e9d62; }

.alentours__image { position: relative; border-radius: 20px; overflow: hidden; height: 400px; margin: 40px 15px 0; }

.alentours__image img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }

@media (min-width: 576px) { .alentours__links-grid { grid-template-columns: 1fr 1fr; gap: 30px; } }

@media (min-width: 992px) { .alentours { display: flex; align-items: stretch; overflow: hidden; padding-left: clamp(0px, calc((100vw - 1320px) / 2), 9999px); }
  .alentours__text { padding-right: 60px; }
  .alentours > .container-xxl { flex: 1 1 auto; min-width: 0; max-width: 660px; }
  .alentours__intro { font-size: 30px; }
  .alentours__image { flex: 0 0 50vw; width: 50vw; height: auto; border-radius: 20px 0 0 20px; margin: 0; } }

.contact { background-color: #f8f4ef; padding-top: 60px; padding-bottom: 60px; }

.contact__inner { display: flex; flex-direction: column; gap: 40px; }

.contact__heading { text-align: center; display: flex; flex-direction: column; gap: 10px; }

.contact__label { font-family: "Birthstone Bounce", cursive; font-size: 24px; font-weight: 300; color: #d7c3a5; }

.contact__title { font-family: "Baskerville URW", serif; font-size: 30px; font-weight: 300; line-height: 1.2; color: #1d1d1d; }

.contact__form { display: grid; grid-template-columns: 1fr; gap: 30px; align-items: start; }

.contact__form-left { display: flex; flex-direction: column; gap: 20px; }

.contact__form-right { display: flex; flex-direction: column; gap: 20px; }

.contact__form-footer { grid-column: 1; display: flex; flex-direction: column; gap: 20px; align-items: center; }

.form-group { display: flex; flex-direction: column; gap: 8px; }

.form-group--checkbox { flex-direction: row; align-items: flex-start; gap: 12px; }

.form-label { font-family: "Funnel Sans", sans-serif; font-size: 16px; font-weight: 600; line-height: 1; color: #1d1d1d; }

.form-label--checkbox { font-weight: 300; font-size: 16px; line-height: 1.4; flex: 1; }

.form-input, .form-textarea { font-family: "Funnel Sans", sans-serif; font-size: 16px; font-weight: 300; color: #1d1d1d; background-color: #ffffff; border: 1px solid #d5d4df; border-radius: 4px; padding: 10px 12px; transition: border-color 0.2s, box-shadow 0.2s; }

.form-input::placeholder, .form-textarea::placeholder { color: #999; }

.form-input:focus, .form-textarea:focus { outline: none; border-color: #8e9d62; box-shadow: 0 0 0 3px rgba(142, 157, 98, 0.1); }

.form-input { height: 40px; }

.form-textarea { min-height: 150px; resize: vertical; font-family: "Funnel Sans", sans-serif; }

.form-checkbox { width: 20px; height: 20px; min-width: 20px; min-height: 20px; margin-top: 2px; cursor: pointer; accent-color: #8e9d62; }

.form-link { color: #8e9d62; text-decoration: underline; transition: color 0.2s; }

.form-link:hover { color: #6f8334; }

.contact__address { font-family: "Funnel Sans", sans-serif; font-size: 16px; font-weight: 300; background: #d7c3a56b; padding: 10px 15px; width: max-content; margin: auto; border-radius: 10px; }

.contact__address i { color: #8e9d62; margin-right: 10px; }

.contact__map { display: block; width: 100%; height: 500px; border: 0; }

.contact__submit { background-color: transparent; cursor: pointer; }

.contact__submit:active { transform: scale(0.98); }

.contact__submit--loading { opacity: 0.6; pointer-events: none; }

.contact__feedback { width: 100%; font-size: 15px; font-weight: 600; text-align: center; border-radius: 8px; padding: 12px 16px; display: none; }

.contact__feedback--success { display: block; color: #2d6a2d; background-color: #e6f4e6; border: 1px solid #a3d4a3; }

.contact__feedback--error { display: block; color: #8b1a1a; background-color: #fdeaea; border: 1px solid #f0a0a0; }

@media (min-width: 576px) { .contact__label { font-size: 32px; }
  .contact__title { font-size: 36px; }
  .contact__form { gap: 40px; }
  .contact__form-left, .contact__form-right { gap: 30px; }
  .contact__form-footer { gap: 30px; }
  .form-label { font-size: 16px; }
  .form-input, .form-textarea { font-size: 16px; padding: 12px 16px; }
  .form-input { height: 46px; }
  .form-textarea { min-height: 240px; }
  .contact__submit { padding: 10px 24px; } }

@media (min-width: 992px) { .contact { padding-top: 80px; padding-bottom: 80px; }
  .contact__inner { gap: 60px; }
  .contact__label { font-size: 40px; }
  .contact__title { font-size: 60px; line-height: 62px; }
  .contact__form { grid-template-columns: 1fr 1fr; gap: 60px; }
  .contact__form-footer { grid-column: 1 / -1; gap: 30px; } }

.footer { background-color: #f8f4ef; border-top: 1px solid #e5e5e5; padding: 20px 0; margin-top: 20px; }

.footer__content { display: flex; align-items: center; justify-content: center; gap: 20px; flex-wrap: wrap; }

.footer__text { font-family: "Funnel Sans", sans-serif; font-size: 14px; font-weight: 300; line-height: 1; color: #666; margin: 0; font-style: italic; }

.footer__links { display: flex; align-items: center; gap: 15px; flex-wrap: wrap; }

.footer__link { font-family: "Funnel Sans", sans-serif; font-size: 14px; font-weight: 300; color: #666; text-decoration: underline; border-bottom: 1px solid transparent; transition: color 0.2s, border-color 0.2s; }

.footer__link:hover { color: #8e9d62; border-bottom-color: #8e9d62; }

@media (min-width: 576px) { .footer__content { gap: 30px; }
  .footer__links { gap: 20px; } }

.modal-overlay { position: fixed; inset: 0; background: rgba(29, 29, 29, 0.65); z-index: 10000; display: flex; align-items: center; justify-content: center; padding: 16px; opacity: 0; visibility: hidden; transition: opacity 0.3s ease, visibility 0.3s ease; cursor: pointer; }

.modal-overlay.is-open { opacity: 1; visibility: visible; }

.modal { background-color: #ffffff; border-radius: 20px; width: 100%; max-width: 680px; max-height: 88vh; display: flex; flex-direction: column; box-shadow: 0 24px 60px rgba(29, 29, 29, 0.25); transform: translateY(24px); transition: transform 0.35s ease; cursor: default; }

.modal-overlay.is-open .modal { transform: translateY(0); }

.modal__header { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 28px 28px 20px; border-bottom: 1px solid rgba(29, 29, 29, 0.08); flex-shrink: 0; }

.modal__title { font-family: "Baskerville URW", serif; font-size: 22px; font-weight: 400; color: #1d1d1d; line-height: 1.2; margin: 0; }

.modal__close { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; background: #f8f4ef; border: none; border-radius: 50%; font-size: 22px; line-height: 1; font-weight: 300; color: #888; cursor: pointer; flex-shrink: 0; font-family: "Funnel Sans", sans-serif; transition: background-color 0.2s, color 0.2s; }

.modal__close:hover { background-color: #efe5da; color: #1d1d1d; }

.modal__body { overflow-y: auto; padding: 28px; display: flex; flex-direction: column; gap: 20px; scrollbar-width: thin; scrollbar-color: rgba(142, 157, 98, 0.3) transparent; }

.modal__body::-webkit-scrollbar { width: 4px; }

.modal__body::-webkit-scrollbar-track { background: transparent; }

.modal__body::-webkit-scrollbar-thumb { background: rgba(142, 157, 98, 0.3); border-radius: 2px; }

.modal__body article { display: flex; flex-direction: column; gap: 10px; padding-bottom: 20px; border-bottom: 1px solid rgba(29, 29, 29, 0.06); }

.modal__body article:last-child { border-bottom: none; padding-bottom: 0; }

.modal__body p.title { font-family: "Funnel Sans", sans-serif; font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #8e9d62; margin: 0; }

.modal__body p { font-family: "Funnel Sans", sans-serif; font-size: 14px; font-weight: 300; line-height: 1.7; color: #1d1d1d; margin: 0; }

.modal__body ul, .modal__body ol { padding-left: 18px; display: flex; flex-direction: column; gap: 6px; margin: 0; }

.modal__body li { font-family: "Funnel Sans", sans-serif; font-size: 14px; font-weight: 300; line-height: 1.6; color: #1d1d1d; }

.modal__body strong, .modal__body b { font-weight: 600; }

.modal__body a { color: #8e9d62; text-decoration: underline; transition: color 0.2s; }

.modal__body a:hover { color: #6f8334; }

.modal__body hr { border: none; border-top: 1px solid rgba(29, 29, 29, 0.08); margin: 4px 0; }

@media (min-width: 992px) { .modal { max-width: 760px; }
  .modal__header { padding: 36px 40px 24px; }
  .modal__title { font-size: 28px; }
  .modal__body { padding: 28px 40px 40px; gap: 24px; } }
