
.als-home {
  --cream: #f8f5ee;
  --paper: #fffdf8;
  --olive: #626b50;
  --dark: #2e3029;
  --copper: #a66b49;
  --muted: #6e7068;

  font-family: Arial, Helvetica, sans-serif;
  color: var(--dark);
  background: var(--cream);
  line-height: 1.65;
  overflow: hidden;
}

.als-home * {
  box-sizing: border-box;
}

.als-home h1,
.als-home h2,
.als-home h3 {
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -.035em;
  margin: 0;
}

.als-home p {
  margin: 0 0 1.25rem;
}

.als-home a {
  text-decoration: none;
}

.als-home img {
  display: block;
  width: 100%;
  object-fit: cover;
}

.als-wrap {
  width: min(1160px, calc(100% - 44px));
  margin: auto;
}

.als-eyebrow {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--copper);
  margin-bottom: 18px !important;
}

/* BOUTONS */

.als-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background: var(--olive);
  color: #fff !important;
  padding: 15px 23px;
  border-radius: 3px;
  font-size: .91rem;
  font-weight: 600;
  transition: background .2s, transform .2s;
}

.als-btn:hover {
  background: #48523a;
  transform: translateY(-2px);
}

.als-btn.alt {
  background: var(--copper);
}

.als-btn.alt:hover {
  background: #885137;
}

.als-link {
  color: var(--copper) !important;
  font-weight: 700;
  border-bottom: 1px solid currentColor;
  padding-bottom: 4px;
}

/* HERO */

.als-hero {
  min-height: 620px;
  position: relative;
  display: flex;
  align-items: center;
  color: white;
  background: #292c25;
}

.als-hero > img {
  position: absolute;
  inset: 0;
  height: 100%;
  filter: brightness(.57);
}

.als-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(20, 24, 17, .64),
    transparent 85%
  );
}

.als-hero-content {
  position: relative;
  z-index: 1;
  padding: 105px 0;
  max-width: 760px;
}

.als-hero .als-eyebrow {
  color: #e7d4b7;
}

.als-hero h1 {
  font-size: clamp(2.9rem, 6vw, 5.8rem);
  max-width: 730px;
  margin-bottom: 27px;
}

.als-hero h1 em {
  font-weight: 400;
  color: #e3ddc8;
}

.als-hero p:not(.als-eyebrow) {
  font-size: 1.12rem;
  max-width: 560px;
  color: #f5f1e9;
}

/* INTRODUCTION */

.als-intro {
  padding: 100px 0 65px;
  text-align: center;
}

.als-intro h2 {
  font-size: clamp(2.1rem, 4vw, 3.6rem);
  max-width: 760px;
  margin: 0 auto 24px;
}

.als-intro > p:last-child {
  max-width: 740px;
  margin: 0 auto;
  color: var(--muted);
}

/* CARTES HÉBERGEMENTS */

.als-offers {
  padding: 25px 0 110px;
}

.als-offer-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 23px;
}

.als-offer {
  background: var(--paper);
  box-shadow: 0 8px 30px rgba(41, 42, 30, .055);
}

.als-offer img {
  aspect-ratio: 4 / 3;
}

.als-offer-body {
  padding: 27px 26px 33px;
}

.als-offer h3 {
  font-size: 1.8rem;
  margin-bottom: 13px;
}

.als-offer p {
  font-size: .96rem;
  color: var(--muted);
  min-height: 93px;
}

/* HISTOIRE DU MOULIN */

.als-story {
  background: #eae8dd;
  padding: 90px 0;
}

.als-story-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  gap: 8%;
}

.als-story-photo {
  position: relative;
}

.als-story-photo img {
  aspect-ratio: 4 / 5;
  border-radius: 3px;
}

.als-story h2,
.als-video h2,
.als-region h2 {
  font-size: clamp(2.3rem, 4vw, 3.8rem);
  margin-bottom: 25px;
}

.als-story p:not(.als-eyebrow) {
  color: #595b52;
}

/* VIDÉO VERTICALE */

.als-video {
  padding: 105px 0;
}

.als-video-grid {
  display: grid;
  grid-template-columns: .82fr 1.18fr;
  gap: 11%;
  align-items: center;
}

.als-video-frame {
  width: min(100%, 370px);
  margin: auto;
  background: #252720;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 22px 22px 0 #e8e3d5;
}

.als-video-frame video {
  width: 100%;
  aspect-ratio: 9 / 16;
  display: block;
  object-fit: cover;
}

.als-video-copy p:not(.als-eyebrow) {
  color: var(--muted);
}

/* LOCALISATION */

.als-region {
  position: relative;
  background: #3b4333;
  color: #fff;
  padding: 95px 0;
}

.als-region::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    110deg,
    rgba(34, 42, 31, .97),
    rgba(34, 42, 31, .76)
  );
}

.als-region .als-wrap {
  position: relative;
}

.als-region p {
  max-width: 680px;
  color: #eceee4;
}

.als-region .als-eyebrow {
  color: #dfb594;
}

.als-region .als-btn {
  background: #f6f2e8;
  color: #33372b !important;
}

.als-region .als-btn:hover {
  background: #e3dfd3;
}

/* RÉSERVATION */

.als-final {
  padding: 90px 0;
  text-align: center;
}

.als-final h2 {
  font-size: clamp(2.2rem, 4vw, 3.7rem);
  margin-bottom: 20px;
}

.als-final p {
  max-width: 640px;
  margin: 0 auto 30px;
  color: var(--muted);
}

.als-small {
  font-size: .86rem;
  color: var(--muted);
  margin-top: 18px !important;
}

/* ACCESSIBILITÉ */

.als-home a:focus-visible,
.als-home video:focus-visible {
  outline: 3px solid #d69d64;
  outline-offset: 3px;
}

/* TABLETTES */

@media (max-width: 850px) {
  .als-offer-grid {
    grid-template-columns: 1fr 1fr;
  }

  .als-offer:last-child {
    grid-column: 1 / -1;
  }

  .als-offer:last-child img {
    max-height: 330px;
  }

  .als-story-grid,
  .als-video-grid {
    gap: 35px;
  }

  .als-story {
    padding: 65px 0;
  }
}

/* MOBILES */

@media (max-width: 650px) {
  .als-wrap {
    width: min(100% - 34px, 500px);
  }

  .als-hero {
    min-height: 560px;
  }

  .als-hero-content {
    padding: 85px 0;
  }

  .als-hero h1 {
    font-size: clamp(2.65rem, 11vw, 4rem);
  }

  .als-intro {
    padding: 68px 0 40px;
  }

  .als-offers {
    padding: 15px 0 70px;
  }

  .als-offer-grid,
  .als-story-grid,
  .als-video-grid {
    grid-template-columns: 1fr;
  }

  .als-offer:last-child {
    grid-column: auto;
  }

  .als-offer p {
    min-height: 0;
  }

  .als-story,
  .als-video,
  .als-region,
  .als-final {
    padding: 65px 0;
  }

  .als-story-photo {
    order: 2;
  }

  .als-story-copy {
    order: 1;
  }

  .als-video-frame {
    max-width: 300px;
  }

  .als-video-copy {
    order: 1;
  }

  .als-video-media {
    order: 2;
  }

  .als-video h2,
  .als-story h2 {
    font-size: 2.5rem;
  }
}

/* Correction du titre sur fond vert */
.als-home .als-region h2 {
  color: #fff !important;
}

/* Couleurs des titres - priorité sur le template Joomla */
.als-home h1,
.als-home h2,
.als-home h3 {
  color: #2e3029 !important;
}

/* Titres sur fonds sombres */
.als-home .als-hero h1,
.als-home .als-region h2 {
  color: #ffffff !important;
}

/* Texte en italique du grand titre */
.als-home .als-hero h1 em {
  color: #e3ddc8 !important;
}

/* AUX LOGIS DE LA SOLRE — PAGE GÎTES */

.als-gites {
  --alsg-cream: #f8f5ee;
  --alsg-paper: #fffdf8;
  --alsg-olive: #626b50;
  --alsg-dark: #2e3029;
  --alsg-copper: #a66b49;
  --alsg-muted: #696b63;

  background: var(--alsg-cream);
  color: var(--alsg-dark);
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.65;
  overflow: hidden;
}

.als-gites * { box-sizing: border-box; }

.als-gites h1,
.als-gites h2,
.als-gites h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -.03em;
  color: var(--alsg-dark) !important;
  margin: 0;
}

.als-gites h1 em,
.als-gites h2 em {
  color: var(--alsg-olive);
  font-weight: 400;
}

.als-gites p { margin: 0 0 1.2rem; }
.als-gites a { text-decoration: none; }

.als-gites img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.alsg-wrap {
  width: min(1160px, calc(100% - 44px));
  margin-inline: auto;
}

.alsg-eyebrow {
  color: var(--alsg-copper) !important;
  text-transform: uppercase;
  letter-spacing: .18em;
  font-size: .74rem;
  font-weight: 700;
  margin-bottom: 16px !important;
}

.alsg-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  background: var(--alsg-olive);
  color: #fff !important;
  padding: 15px 23px;
  font-size: .92rem;
  font-weight: 600;
  border-radius: 3px;
  transition: background .2s, transform .2s;
}

.alsg-button:hover {
  background: #48523a;
  transform: translateY(-2px);
}

.alsg-button span { font-size: 1.2rem; }

/* HERO */

.alsg-hero {
  background: #eae8dd;
  padding: 70px 0;
}

.alsg-hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7%;
  align-items: center;
}

.alsg-hero h1 {
  font-size: clamp(2.8rem, 5vw, 5rem);
  margin-bottom: 25px;
}

.alsg-lead {
  font-size: 1.1rem;
  color: var(--alsg-muted);
  max-width: 520px;
}

.alsg-hero-image {
  height: 430px;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 17px 17px 0 rgba(98,107,80,.12);
}

/* INTRO */

.alsg-intro {
  text-align: center;
  padding: 85px 0 70px;
}

.alsg-intro h2 {
  font-size: clamp(2.2rem, 4vw, 3.6rem);
  margin-bottom: 20px;
}

.alsg-intro > p:not(.alsg-eyebrow) {
  max-width: 730px;
  margin: 0 auto 25px;
  color: var(--alsg-muted);
}

.alsg-jump {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}

.alsg-jump a {
  border: 1px solid #c9c7b9;
  border-radius: 30px;
  padding: 9px 16px;
  color: var(--alsg-dark) !important;
  font-size: .87rem;
  transition: background .2s;
}

.alsg-jump a:hover {
  background: #eae8dd;
}

/* SECTIONS GÎTES */

.alsg-property {
  padding: 85px 0;
  scroll-margin-top: 85px;
}

.alsg-property-alt {
  background: #eae8dd;
}

.alsg-property-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid #d8d5c9;
  padding-bottom: 25px;
  margin-bottom: 35px;
}

.alsg-property-head h2 {
  font-size: clamp(2.3rem, 4vw, 3.8rem);
}

.alsg-capacity {
  white-space: nowrap;
  color: var(--alsg-olive);
  font-weight: 700;
  font-size: .88rem;
  padding-bottom: 8px;
}

.alsg-property-grid {
  display: grid;
  grid-template-columns: 1.07fr .93fr;
  gap: 6%;
  align-items: start;
}

.alsg-property-grid.alsg-reverse .alsg-gallery {
  order: 2;
}

.alsg-gallery-main {
  height: 390px !important;
  border-radius: 4px;
}

.alsg-gallery-bottom {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}

.alsg-gallery-bottom img {
  height: 175px !important;
  border-radius: 3px;
}

.alsg-extra-photo {
  height: 170px !important;
  margin-top: 10px;
  border-radius: 3px;
}

.alsg-description {
  padding-top: 8px;
}

.alsg-description h3 {
  font-size: 2rem;
  margin-bottom: 20px;
}

.alsg-description > p {
  color: var(--alsg-muted);
}

.alsg-details {
  border-top: 1px solid #d9d7ca;
  margin: 28px 0;
}

.alsg-details > div {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid #d9d7ca;
  font-size: .88rem;
}

.alsg-details strong {
  color: var(--alsg-dark);
}

.alsg-details span {
  color: var(--alsg-muted);
}

.alsg-price {
  background: var(--alsg-paper);
  padding: 22px 24px;
  margin-bottom: 22px;
  border-left: 3px solid var(--alsg-copper);
  display: flex;
  flex-direction: column;
}

.alsg-price > span {
  font-size: .8rem;
  color: var(--alsg-muted);
}

.alsg-price strong {
  font-family: Georgia, serif;
  font-size: 2.5rem;
  font-weight: 400;
  color: var(--alsg-dark);
  line-height: 1.4;
}

.alsg-price small {
  color: var(--alsg-muted);
  font-size: .8rem;
}

/* VIDÉOS */

.alsg-video-strip {
  margin-top: 50px;
  padding: 35px;
  background: #f0eee5;
  display: grid;
  grid-template-columns: 1fr 220px;
  gap: 40px;
  align-items: center;
  border-radius: 5px;
}

.alsg-property-alt .alsg-video-strip {
  background: #f8f5ee;
}

.alsg-video-strip h3 {
  font-size: 2rem;
  margin-bottom: 15px;
}

.alsg-video-strip p:not(.alsg-eyebrow) {
  color: var(--alsg-muted);
}

.alsg-video-strip video {
  display: block;
  width: 100%;
  aspect-ratio: 9 / 16;
  object-fit: cover;
  background: #242820;
  border-radius: 10px;
  box-shadow: 10px 10px 0 rgba(98,107,80,.13);
}

/* INFOS PRATIQUES */

.alsg-practical {
  background: #eae8dd;
  padding: 85px 0;
  text-align: center;
}

.alsg-practical h2 {
  font-size: clamp(2.2rem, 4vw, 3.5rem);
  margin-bottom: 45px;
}

.alsg-practical-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}

.alsg-symbol {
  display: block;
  font-size: 2.5rem;
  color: var(--alsg-olive);
  margin-bottom: 14px;
}

.alsg-practical-grid h3 {
  font-size: 1.55rem;
  margin-bottom: 12px;
}

.alsg-practical-grid p {
  font-size: .92rem;
  color: var(--alsg-muted);
}

.alsg-note {
  margin: 35px auto 0 !important;
  font-size: .83rem;
  max-width: 650px;
  color: var(--alsg-muted);
}

/* RÉSERVATION */

.alsg-cta {
  padding: 90px 0;
  background: #3b4333;
  color: white;
  text-align: center;
}

.als-gites .alsg-cta h2 {
  color: #fff !important;
  font-size: clamp(2.4rem, 4vw, 3.8rem);
  margin-bottom: 20px;
}

.alsg-cta > .alsg-wrap > p:not(.alsg-eyebrow) {
  max-width: 650px;
  margin: 0 auto 30px;
  color: #e7e9e0;
}

.alsg-button-light {
  background: #f8f5ee;
  color: #33392e !important;
}

.alsg-button-light:hover {
  background: #e1ddce;
}

/* ACCESSIBILITÉ */

.als-gites a:focus-visible,
.als-gites video:focus-visible {
  outline: 3px solid #c48b63;
  outline-offset: 3px;
}

/* TABLETTES */

@media (max-width: 900px) {
  .alsg-hero-grid,
  .alsg-property-grid {
    gap: 30px;
  }

  .alsg-details > div {
    grid-template-columns: 1fr;
    gap: 3px;
  }

  .alsg-gallery-main {
    height: 310px !important;
  }
}

/* MOBILES */

@media (max-width: 700px) {
  .alsg-wrap {
    width: min(100% - 34px, 500px);
  }

  .alsg-hero {
    padding: 55px 0;
  }

  .alsg-hero-grid,
  .alsg-property-grid,
  .alsg-practical-grid,
  .alsg-video-strip {
    grid-template-columns: 1fr;
  }

  .alsg-hero h1 {
    font-size: 2.8rem;
  }

  .alsg-hero-image {
    height: 290px;
  }

  .alsg-intro {
    padding: 65px 0 45px;
  }

  .alsg-property {
    padding: 65px 0;
  }

  .alsg-property-head {
    flex-direction: column;
    align-items: start;
  }

  .alsg-property-head h2 {
    font-size: 2.6rem;
  }

  .alsg-property-grid.alsg-reverse .alsg-gallery {
    order: 0;
  }

  .alsg-gallery-main {
    height: 260px !important;
  }

  .alsg-gallery-bottom img {
    height: 125px !important;
  }

  .alsg-description h3 {
    font-size: 1.8rem;
  }

  .alsg-video-strip {
    padding: 25px;
    gap: 20px;
  }

  .alsg-video-strip video {
    width: min(100%, 270px);
    margin: auto;
  }

  .alsg-practical,
  .alsg-cta {
    padding: 65px 0;
  }

  .alsg-practical-grid {
    gap: 25px;
  }
}

.alsg-video-strip video {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 9 / 16;
  object-fit: contain;
  background: #242820;
  border-radius: 10px;
  box-shadow: 10px 10px 0 rgba(98,107,80,.13);
}


/* CORRECTION FORCÉE DES BLOCS VIDÉO */

.als-gites .alsg-video-strip {
  display: grid !important;
  grid-template-columns: 380px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 65px !important;
  padding: 45px 60px !important;
}

.als-gites .alsg-video-strip video {
  grid-column: 1 !important;
  grid-row: 1 !important;
  width: 380px !important;
  max-width: none !important;
  height: auto !important;
  aspect-ratio: 9 / 16 !important;
  object-fit: contain !important;
}

.als-gites .alsg-video-strip > div {
  grid-column: 2 !important;
  grid-row: 1 !important;
}

/* MOBILE */

@media (max-width: 800px) {
  .als-gites .alsg-video-strip {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
    padding: 30px 20px !important;
  }

  .als-gites .alsg-video-strip > div {
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  .als-gites .alsg-video-strip video {
    grid-column: 1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    max-width: 340px !important;
    margin: auto !important;
  }
}

/* ============================================
   AUX LOGIS DE LA SOLRE — CHAMBRES D'HÔTES
   ============================================ */

.als-chambres {
  --cream: #f8f5ee;
  --paper: #fffdf8;
  --olive: #626b50;
  --dark: #2e3029;
  --copper: #a66b49;
  --muted: #696b63;

  background: var(--cream);
  color: var(--dark);
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.65;
  overflow: hidden;
}

.als-chambres *,
.als-chambres *::before,
.als-chambres *::after {
  box-sizing: border-box;
}

.als-chambres h1,
.als-chambres h2,
.als-chambres h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -.03em;
  color: var(--dark) !important;
  margin: 0;
}

.als-chambres h1 em,
.als-chambres h2 em {
  color: var(--olive) !important;
  font-weight: 400;
}

.als-chambres p {
  margin: 0 0 1.25rem;
}

.als-chambres a {
  text-decoration: none;
}

.als-chambres img {
  display: block;
  width: 100%;
  object-fit: cover;
}

.alsc-wrap {
  width: min(1160px, calc(100% - 44px));
  margin-inline: auto;
}

.alsc-eyebrow {
  font-size: .74rem;
  text-transform: uppercase;
  letter-spacing: .18em;
  font-weight: 700;
  color: var(--copper) !important;
  margin-bottom: 17px !important;
}

/* BOUTONS */

.alsc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  background: var(--olive);
  color: #fff !important;
  padding: 15px 23px;
  border-radius: 3px;
  font-size: .92rem;
  font-weight: 600;
  transition: background .2s, transform .2s;
}

.alsc-btn:hover {
  background: #48523a;
  transform: translateY(-2px);
}

.alsc-btn span {
  font-size: 1.2rem;
}

/* HERO AVEC VIDÉO */

.alsc-hero {
  background: #eae8dd;
  padding: 65px 0;
}

.alsc-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 350px;
  gap: 9%;
  align-items: center;
}

.alsc-hero h1 {
  font-size: clamp(2.8rem, 5.2vw, 5rem);
  margin-bottom: 27px;
}

.alsc-lead {
  max-width: 570px;
  font-size: 1.1rem;
  color: var(--muted);
}

.alsc-hero-video {
  width: 100%;
  max-width: 350px;
  margin-inline: auto;
  text-align: center;
}

.alsc-hero-video video {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 9 / 16;
  object-fit: contain;
  background: #242820;
  border-radius: 12px;
  box-shadow: 17px 17px 0 rgba(98,107,80,.15);
}

.alsc-hero-video p {
  font-size: .83rem;
  color: var(--muted);
  margin: 24px 0 0;
}

/* INTRODUCTION ET NAVIGATION */

.alsc-intro {
  padding: 85px 0 65px;
  text-align: center;
  scroll-margin-top: 85px;
}

.alsc-intro h2 {
  font-size: clamp(2.2rem, 4vw, 3.6rem);
  margin-bottom: 22px;
}

.alsc-intro > p:not(.alsc-eyebrow) {
  max-width: 720px;
  margin: 0 auto 25px;
  color: var(--muted);
}

.alsc-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  margin-top: 35px;
}

.alsc-nav a {
  border: 1px solid #c9c7b9;
  border-radius: 30px;
  padding: 9px 19px;
  color: var(--dark) !important;
  font-size: .88rem;
  transition: background .2s;
}

.alsc-nav a:hover {
  background: #eae8dd;
}

/* CHAMBRES */

.alsc-room {
  padding: 80px 0;
  scroll-margin-top: 85px;
}

.alsc-room-alt {
  background: #eae8dd;
}

.alsc-room-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 25px;
  border-bottom: 1px solid #d8d5c9;
  padding-bottom: 26px;
  margin-bottom: 36px;
}

.alsc-room-head h2 {
  font-size: clamp(2.3rem, 4vw, 3.8rem);
}

.alsc-room-tag {
  font-size: .85rem;
  color: var(--olive);
  font-weight: 700;
  white-space: nowrap;
  padding-bottom: 8px;
}

.alsc-room-grid {
  display: grid;
  grid-template-columns: 1.06fr .94fr;
  gap: 6%;
  align-items: center;
}

.alsc-room-grid.alsc-reverse .alsc-gallery {
  order: 2;
}

.alsc-room-copy {
  min-width: 0;
}

.alsc-room-copy h3 {
  font-size: clamp(1.7rem, 2.6vw, 2.25rem);
  margin-bottom: 21px;
}

.alsc-room-copy > p {
  color: var(--muted);
}

/* GALERIES PHOTOS */

.alsc-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  min-width: 0;
}

.alsc-gallery img {
  width: 100%;
  height: 185px;
  border-radius: 4px;
  object-fit: cover;
}

.alsc-gallery .alsc-main {
  grid-column: 1 / -1;
  height: 320px;
}

/* Grande composition du Bief */

.alsc-gallery-bief img:nth-child(2),
.alsc-gallery-bief img:nth-child(3) {
  height: 155px;
}

.alsc-gallery-bief img:nth-child(n+4) {
  height: 130px;
}

.alsc-gallery-bief img:nth-child(6) {
  grid-column: 1 / -1;
  height: 160px;
}

/* Chambres avec une seule photo */

.alsc-single-photo {
  display: block;
}

.alsc-single-photo img {
  width: 100%;
  height: 440px;
  border-radius: 5px;
  object-fit: cover;
}

/* CARACTÉRISTIQUES */

.alsc-features {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 26px 0;
}

.alsc-features span {
  display: inline-block;
  background: #e9e7dc;
  color: #4f5944;
  padding: 7px 12px;
  border-radius: 3px;
  font-size: .8rem;
}

.alsc-room-alt .alsc-features span {
  background: #f8f5ee;
}

/* TARIFS */

.alsc-price {
  background: var(--paper);
  border-left: 3px solid var(--copper);
  padding: 19px 23px;
  margin-bottom: 22px;
  display: flex;
  flex-direction: column;
}

.alsc-price > span {
  color: var(--muted);
  font-size: .82rem;
}

.alsc-price strong {
  color: var(--dark);
  font-family: Georgia, serif;
  font-weight: 400;
  font-size: 2.5rem;
  line-height: 1.4;
}

.alsc-price small {
  color: var(--muted);
  font-size: .82rem;
}

/* PETIT-DÉJEUNER */

.alsc-breakfast {
  background: #eae8dd;
  padding: 85px 0;
}

.alsc-breakfast-grid {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 10%;
  align-items: center;
}

.alsc-breakfast h2 {
  font-size: clamp(2.3rem, 4vw, 3.6rem);
  margin-bottom: 25px;
}

.alsc-breakfast-grid > div:first-child > p:not(.alsc-eyebrow) {
  color: var(--muted);
}

.alsc-breakfast-price {
  margin-top: 20px !important;
}

.alsc-breakfast-price strong {
  color: var(--dark);
  font-family: Georgia, serif;
  font-size: 2.1rem;
  font-weight: 400;
}

.alsc-breakfast-note {
  background: var(--paper);
  padding: 40px;
  border-radius: 4px;
}

.alsc-breakfast-note > span {
  font-size: 2.8rem;
  color: var(--olive);
  display: block;
  margin-bottom: 20px;
}

.alsc-breakfast-note p {
  color: var(--muted);
  margin-bottom: 0;
}

/* RÉSERVATION */

.alsc-cta {
  background: #3b4333;
  color: #fff;
  text-align: center;
  padding: 90px 0;
}

.als-chambres .alsc-cta h2 {
  color: #fff !important;
  font-size: clamp(2.4rem, 4vw, 3.8rem);
  margin-bottom: 22px;
}

.alsc-cta .alsc-wrap > p:not(.alsc-eyebrow) {
  color: #e7e9e0;
  max-width: 630px;
  margin: 0 auto 30px;
}

.alsc-cta .alsc-eyebrow {
  color: #dfb594 !important;
}

.alsc-btn-light {
  background: #f8f5ee;
  color: #33392e !important;
}

.alsc-btn-light:hover {
  background: #e1ddce;
}

/* ACCESSIBILITÉ */

.als-chambres a:focus-visible,
.als-chambres video:focus-visible {
  outline: 3px solid #c48b63;
  outline-offset: 3px;
}

/* TABLETTES */

@media (max-width: 900px) {

  .alsc-hero-grid {
    grid-template-columns: minmax(0, 1fr) 270px;
    gap: 35px;
  }

  .alsc-room-grid {
    gap: 30px;
  }

  .alsc-single-photo img {
    height: 360px;
  }

  .alsc-room-head {
    align-items: start;
  }

  .alsc-room-tag {
    white-space: normal;
    text-align: right;
  }
}

/* MOBILES */

@media (max-width: 700px) {

  .alsc-wrap {
    width: min(100% - 34px, 500px);
  }

  .alsc-hero {
    padding: 55px 0;
  }

  .alsc-hero-grid,
  .alsc-room-grid,
  .alsc-breakfast-grid {
    grid-template-columns: 1fr;
  }

  .alsc-hero h1 {
    font-size: clamp(2.7rem, 10vw, 3.6rem);
  }

  .alsc-hero-video {
    width: min(100%, 310px);
    margin-top: 15px;
  }

  .alsc-intro {
    padding: 65px 0 45px;
  }

  .alsc-room {
    padding: 65px 0;
  }

  .alsc-room-head {
    flex-direction: column;
    align-items: start;
    gap: 12px;
  }

  .alsc-room-head h2 {
    font-size: 2.6rem;
  }

  .alsc-room-tag {
    text-align: left;
  }

  .alsc-room-grid.alsc-reverse .alsc-gallery {
    order: 0;
  }

  .alsc-gallery .alsc-main {
    height: 240px;
  }

  .alsc-gallery img {
    height: 125px;
  }

  .alsc-gallery-bief img:nth-child(n+2) {
    height: 125px;
  }

  .alsc-single-photo img {
    height: 320px;
  }

  .alsc-room-copy h3 {
    font-size: 1.85rem;
  }

  .alsc-breakfast,
  .alsc-cta {
    padding: 65px 0;
  }

  .alsc-breakfast-note {
    padding: 28px;
  }
}

@media (max-width: 400px) {

  .alsc-room-head h2 {
    font-size: 2.25rem;
  }

  .alsc-btn {
    max-width: 100%;
    text-align: center;
  }

  .alsc-price {
    padding: 18px;
  }
}

/* =============================================
   AUX LOGIS DE LA SOLRE — KOTA GRILL
   ============================================= */

.als-kota {
  --cream: #f8f5ee;
  --paper: #fffdf8;
  --olive: #626b50;
  --dark: #2e3029;
  --copper: #a66b49;
  --muted: #696b63;

  background: var(--cream);
  color: var(--dark);
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.65;
  overflow: hidden;
}

.als-kota *,
.als-kota *::before,
.als-kota *::after {
  box-sizing: border-box;
}

.als-kota h1,
.als-kota h2,
.als-kota h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  line-height: 1.15;
  letter-spacing: -.03em;
  color: var(--dark) !important;
  margin: 0;
}

.als-kota h1 em,
.als-kota h2 em {
  color: var(--olive) !important;
  font-weight: 400;
}

.als-kota p {
  margin: 0 0 1.25rem;
}

.als-kota a {
  text-decoration: none;
}

.als-kota img {
  display: block;
  width: 100%;
  object-fit: cover;
}

.alsk-wrap {
  width: min(1160px, calc(100% - 44px));
  margin-inline: auto;
}

.alsk-eyebrow {
  color: var(--copper) !important;
  font-size: .74rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .18em;
  margin-bottom: 17px !important;
}

/* BOUTONS */

.alsk-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
  padding: 15px 25px;
  background: var(--olive);
  color: #fff !important;
  border-radius: 3px;
  font-size: .92rem;
  font-weight: 600;
  transition: background .2s, transform .2s;
}

.alsk-btn:hover {
  background: #49533d;
  transform: translateY(-2px);
}

.alsk-btn-light {
  background: var(--cream);
  color: var(--dark) !important;
}

.alsk-btn-light:hover {
  background: #e5dfd0;
}

/* HERO PHOTO IMMERSIVE */

.alsk-hero {
  min-height: 640px;
  position: relative;
  display: flex;
  align-items: center;
  background: #252920;
  isolation: isolate;
}

.alsk-hero-image,
.alsk-hero-overlay {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.alsk-hero-image {
  object-fit: cover;
  object-position: center;
  z-index: -2;
}

.alsk-hero-overlay {
  z-index: -1;
  background: linear-gradient(
    90deg,
    rgba(18, 23, 17, .87) 0%,
    rgba(18, 23, 17, .65) 46%,
    rgba(18, 23, 17, .18) 100%
  );
}

.alsk-hero-content {
  padding-block: 100px;
}

.als-kota .alsk-hero h1 {
  color: #fff !important;
  font-size: clamp(3rem, 6vw, 5.8rem);
  max-width: 790px;
  margin-bottom: 26px;
}

.als-kota .alsk-hero h1 em {
  color: #e1c6a4 !important;
}

.alsk-hero .alsk-eyebrow {
  color: #e4b68c !important;
}

.alsk-hero-content > p:not(.alsk-eyebrow) {
  max-width: 560px;
  color: #f2eee6;
  font-size: 1.13rem;
  margin-bottom: 32px;
}

/* INTRODUCTION */

.alsk-intro {
  padding-block: 95px;
  text-align: center;
  scroll-margin-top: 90px;
}

.alsk-intro h2 {
  font-size: clamp(2.3rem, 4vw, 3.9rem);
  max-width: 780px;
  margin: 0 auto 25px;
}

.alsk-intro > p:not(.alsk-eyebrow) {
  max-width: 770px;
  margin-inline: auto;
  color: var(--muted);
  font-size: 1.04rem;
}

/* VIDÉO VERTICALE + TEXTE */

.alsk-experience {
  background: #eeece3;
  padding-block: 85px;
}

.alsk-experience-grid {
  display: grid;
  grid-template-columns: minmax(0, 380px) minmax(0, 1fr);
  gap: clamp(40px, 8vw, 105px);
  align-items: center;
}

.alsk-video {
  width: 100%;
  max-width: 380px;
}

.alsk-video video {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 9 / 16;
  object-fit: contain;
  background: #232820;
  border-radius: 12px;
  box-shadow: 15px 15px 0 rgba(98, 107, 80, .15);
}

.alsk-video > p {
  margin: 24px 0 0;
  text-align: center;
  font-size: .83rem;
  color: var(--muted);
}

.alsk-experience-text h2 {
  font-size: clamp(2.4rem, 4vw, 4rem);
  margin-bottom: 30px;
}

.alsk-experience-text > p:not(.alsk-eyebrow) {
  color: var(--muted);
  font-size: 1.04rem;
}

.alsk-features {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 30px 0;
}

.alsk-features span {
  padding: 9px 13px;
  background: var(--paper);
  color: #505b43;
  font-size: .82rem;
  border-radius: 3px;
}

.alsk-text-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #536044 !important;
  font-weight: 700;
  padding-bottom: 5px;
  border-bottom: 1px solid currentColor;
}

.alsk-text-link:hover {
  color: var(--copper) !important;
}

/* SECONDE PHOTO */

.alsk-photo-section {
  padding-block: 105px;
}

.alsk-photo-grid {
  display: grid;
  grid-template-columns: .85fr 1.15fr;
  gap: 9%;
  align-items: center;
}

.alsk-photo-text h2 {
  font-size: clamp(2.3rem, 4vw, 3.8rem);
  margin-bottom: 27px;
}

.alsk-photo-text > p:not(.alsk-eyebrow) {
  color: var(--muted);
}

.alsk-photo-frame {
  position: relative;
}

.alsk-photo-frame::before {
  content: "";
  position: absolute;
  inset: 22px -22px -22px 22px;
  background: #deded0;
  border-radius: 5px;
  z-index: 0;
}

.alsk-photo-frame img {
  position: relative;
  z-index: 1;
  height: 480px;
  border-radius: 5px;
  object-fit: cover;
}

/* OCCASIONS */

.alsk-occasions {
  background: #eae8dd;
  padding-block: 90px 100px;
}

.alsk-section-heading {
  text-align: center;
  max-width: 740px;
  margin: 0 auto 48px;
}

.alsk-section-heading h2 {
  font-size: clamp(2.3rem, 4vw, 3.8rem);
  margin-bottom: 22px;
}

.alsk-section-heading > p:not(.alsk-eyebrow) {
  color: var(--muted);
}

.alsk-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}

.alsk-card {
  background: var(--paper);
  padding: 38px 32px;
  border-radius: 4px;
  border-top: 3px solid var(--olive);
}

.alsk-card-number {
  display: block;
  color: var(--copper);
  font-family: Georgia, serif;
  font-size: 2rem;
  margin-bottom: 25px;
}

.alsk-card h3 {
  font-size: 1.75rem;
  margin-bottom: 15px;
}

.alsk-card p {
  color: var(--muted);
  margin-bottom: 0;
}

/* INFOS PRATIQUES */

.alsk-info {
  padding-block: 95px;
}

.alsk-info-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10%;
  align-items: center;
}

.alsk-info h2 {
  font-size: clamp(2.3rem, 4vw, 3.8rem);
  margin-bottom: 25px;
}

.alsk-info-grid > div:first-child > p:not(.alsk-eyebrow) {
  color: var(--muted);
}

.alsk-info-box {
  background: #eeece3;
  padding: 35px 40px;
  border-radius: 5px;
}

.alsk-info-item {
  display: flex;
  flex-direction: column;
  padding: 17px 0;
  border-bottom: 1px solid #d2d1c6;
}

.alsk-info-item:last-child {
  border-bottom: 0;
}

.alsk-info-item > span {
  color: var(--copper);
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
}

.alsk-info-item strong {
  font-family: Georgia, serif;
  font-size: 1.45rem;
  font-weight: 400;
  color: var(--dark);
}

.alsk-info-item small {
  color: var(--muted);
  font-size: .84rem;
}

/* CTA FINAL */

.alsk-cta {
  background: #343d30;
  color: #fff;
  text-align: center;
  padding-block: 100px;
  scroll-margin-top: 80px;
}

.alsk-cta .alsk-eyebrow {
  color: #ddb28e !important;
}

.als-kota .alsk-cta h2 {
  color: #fff !important;
  font-size: clamp(2.5rem, 4.8vw, 4.6rem);
  margin-bottom: 25px;
}

.als-kota .alsk-cta h2 em {
  color: #dec2a1 !important;
}

.alsk-cta .alsk-wrap > p:not(.alsk-eyebrow) {
  color: #e2e7dc;
  max-width: 590px;
  margin: 0 auto 32px;
}

/* ACCESSIBILITÉ */

.als-kota a:focus-visible,
.als-kota video:focus-visible {
  outline: 3px solid #c48b63;
  outline-offset: 4px;
}

/* TABLETTES */

@media (max-width: 950px) {
  .alsk-experience-grid {
    grid-template-columns: minmax(0, 320px) minmax(0, 1fr);
    gap: 40px;
  }

  .alsk-photo-grid,
  .alsk-info-grid {
    gap: 45px;
  }

  .alsk-photo-frame img {
    height: 400px;
  }

  .alsk-card {
    padding: 30px 24px;
  }
}

/* MOBILES */

@media (max-width: 700px) {
  .alsk-wrap {
    width: min(100% - 34px, 500px);
  }

  .alsk-hero {
    min-height: 560px;
  }

  .alsk-hero-content {
    padding-block: 75px;
  }

  .alsk-hero-overlay {
    background: linear-gradient(
      0deg,
      rgba(18, 23, 17, .9),
      rgba(18, 23, 17, .35)
    );
  }

  .als-kota .alsk-hero h1 {
    font-size: clamp(2.7rem, 10vw, 4rem);
  }

  .alsk-intro,
  .alsk-photo-section,
  .alsk-occasions,
  .alsk-info,
  .alsk-cta {
    padding-block: 65px;
  }

  .alsk-experience {
    padding-block: 65px;
  }

  .alsk-experience-grid,
  .alsk-photo-grid,
  .alsk-info-grid {
    grid-template-columns: 1fr;
  }

  .alsk-video {
    max-width: 330px;
    margin-inline: auto;
  }

  .alsk-experience-text {
    margin-top: 10px;
  }

  .alsk-photo-frame {
    margin-right: 15px;
  }

  .alsk-photo-frame img {
    height: 350px;
  }

  .alsk-cards {
    grid-template-columns: 1fr;
  }

  .alsk-card {
    padding: 30px;
  }

  .alsk-info-box {
    padding: 25px;
  }
}

@media (max-width: 400px) {
  .alsk-hero-content > p:not(.alsk-eyebrow) {
    font-size: 1rem;
  }

  .alsk-photo-frame img {
    height: 290px;
  }

  .alsk-btn {
    max-width: 100%;
    text-align: center;
  }
}

/* =============================================
   KOTA GRILL — CARTES DES MENUS
   ============================================= */

.alsk-menus {
  background: #f8f5ee;
  padding: 100px 0;
}

.alsk-menu-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 25px;
}

.alsk-menu-card {
  background: #fffdf8;
  border: 1px solid #e1ddd0;
  border-radius: 7px;
  padding: 38px;
  display: flex;
  flex-direction: column;
}

.alsk-menu-featured {
  background: #eae8dd;
  border-color: #d4d1c1;
}

.alsk-menu-top {
  padding-bottom: 25px;
  margin-bottom: 24px;
  border-bottom: 1px solid #d8d4c8;
}

.als-kota .alsk-menu-card h3 {
  font-size: clamp(2rem, 3vw, 2.7rem);
  margin-bottom: 17px;
}

.alsk-menu-price {
  font-family: Georgia, serif;
  font-size: 3rem;
  color: #626b50;
  line-height: 1.2;
}

.alsk-menu-price span {
  font-family: Arial, sans-serif;
  font-size: .88rem;
  color: #696b63;
}

.alsk-menu-card ul {
  list-style: none;
  padding: 0;
  margin: 0 0 25px;
}

.alsk-menu-card li {
  position: relative;
  padding: 9px 0 9px 25px;
  border-bottom: 1px solid rgba(70,75,60,.09);
  color: #55594e;
}

.alsk-menu-card li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: #626b50;
}

.alsk-menu-extra {
  font-size: .87rem;
  color: #705a48;
  margin-top: auto !important;
}

.alsk-menu-delay {
  font-size: .78rem;
  color: #626b50;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 700;
  margin-bottom: 0 !important;
}

/* RACLETTES */

.alsk-raclette-heading {
  text-align: center;
  padding: 80px 0 35px;
}

.als-kota .alsk-raclette-heading h3 {
  font-size: clamp(2rem, 3.5vw, 3.2rem);
  margin-bottom: 18px;
}

.alsk-raclette-heading > p:last-child {
  max-width: 650px;
  margin-inline: auto;
  color: #696b63;
}

.alsk-raclette-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.alsk-raclette-card {
  padding: 30px;
  background: #eeece3;
  border-radius: 5px;
  border-top: 3px solid #626b50;
}

.als-kota .alsk-raclette-card h4 {
  font-family: Georgia, serif;
  font-size: 1.8rem;
  font-weight: 400;
  color: #2e3029;
  margin: 0 0 12px;
}

.alsk-raclette-price {
  font-family: Georgia, serif;
  font-size: 2.5rem;
  color: #626b50;
  margin-bottom: 18px;
}

.alsk-raclette-card p {
  color: #696b63;
  font-size: .91rem;
  margin-bottom: 0;
}

.alsk-menu-notice {
  margin: 30px auto 0 !important;
  max-width: 700px;
  text-align: center;
  font-size: .87rem;
  color: #696b63;
}

.alsk-menu-action {
  text-align: center;
  margin-top: 30px;
}

@media (max-width: 750px) {
  .alsk-menus {
    padding: 65px 0;
  }

  .alsk-menu-grid,
  .alsk-raclette-grid {
    grid-template-columns: 1fr;
  }

  .alsk-menu-card {
    padding: 28px;
  }

  .alsk-raclette-heading {
    padding-top: 60px;
  }

  .alsk-raclette-card {
    padding: 27px;
  }
}


/* ============================================
   AUX LOGIS DE LA SOLRE — CONTACT
   ============================================ */

.als-contact {
  --cream: #f8f5ee;
  --paper: #fffdf8;
  --olive: #626b50;
  --dark: #2e3029;
  --copper: #a66b49;
  --muted: #696b63;

  background: var(--cream);
  color: var(--dark);
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.65;
  overflow: hidden;
}

.als-contact *,
.als-contact *::before,
.als-contact *::after {
  box-sizing: border-box;
}

.als-contact h1,
.als-contact h2,
.als-contact h3 {
  font-family: Georgia, "Times New Roman", serif;
  font-weight: 400;
  line-height: 1.18;
  letter-spacing: -.025em;
  color: var(--dark) !important;
  margin: 0;
}

.als-contact h1 em,
.als-contact h2 em {
  color: var(--olive) !important;
  font-weight: 400;
}

.als-contact p {
  margin: 0 0 1.25rem;
}

.alsct-wrap {
  width: min(1160px, calc(100% - 44px));
  margin-inline: auto;
}

.alsct-eyebrow {
  color: var(--copper) !important;
  font-size: .74rem;
  text-transform: uppercase;
  letter-spacing: .18em;
  font-weight: 700;
  margin-bottom: 17px !important;
}

/* HERO */

.alsct-hero {
  background: #eae8dd;
  padding: 90px 0 95px;
  text-align: center;
}

.alsct-hero h1 {
  font-size: clamp(3rem, 5.5vw, 5.2rem);
  margin-bottom: 25px;
}

.alsct-hero .alsct-wrap > p:not(.alsct-eyebrow) {
  max-width: 700px;
  margin-inline: auto;
  color: var(--muted);
  font-size: 1.1rem;
}

/* COLONNES */

.alsct-main {
  padding: 90px 0 105px;
}

.alsct-grid {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  gap: clamp(45px, 7vw, 100px);
  align-items: start;
}

/* INFORMATIONS */

.alsct-info h2 {
  font-size: clamp(2.2rem, 3.4vw, 3.2rem);
  margin-bottom: 23px;
}

.alsct-intro {
  color: var(--muted);
  margin-bottom: 40px !important;
}

.alsct-info-item {
  display: flex;
  gap: 18px;
  padding: 25px 0;
  border-bottom: 1px solid #dcd9ce;
}

.alsct-info-icon {
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  background: #e6e6da;
  color: var(--olive);
  border-radius: 50%;
  font-size: 1.25rem;
}

.alsct-info-item h3 {
  font-size: 1.3rem;
  margin: 0 0 8px;
}

.alsct-info-item p {
  color: var(--muted);
  margin: 0;
}

.alsct-info-item a {
  color: var(--olive) !important;
  text-decoration: none;
  font-weight: 700;
}

.alsct-info-item a:hover {
  text-decoration: underline;
}

/* NOTE RÉSERVATION */

.alsct-note {
  background: #eae8dd;
  border-left: 3px solid var(--copper);
  padding: 24px;
  margin-top: 35px;
}

.alsct-note-label {
  display: block;
  color: var(--copper);
  font-size: .74rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .1em;
  margin-bottom: 10px;
}

.alsct-note p {
  color: var(--muted);
  font-size: .9rem;
  margin: 0;
}

/* LOCALISATION */

.alsct-location {
  margin-top: 65px;
}

.alsct-location h3 {
  font-size: 1.7rem;
  margin-bottom: 17px;
}

.alsct-location > p:not(.alsct-eyebrow) {
  color: var(--muted);
}

.alsct-map-link {
  color: var(--olive) !important;
  font-weight: 700;
  text-decoration: none;
  border-bottom: 1px solid var(--olive);
  padding-bottom: 5px;
}

.alsct-map-link:hover {
  color: var(--copper) !important;
}

/* PANNEAU FORMULAIRE */

.alsct-form-panel {
  background: var(--paper);
  padding: clamp(28px, 4vw, 52px);
  border-radius: 7px;
  box-shadow: 0 12px 45px rgba(43, 48, 37, .07);
  border: 1px solid #e8e5da;
}

.alsct-form-heading {
  margin-bottom: 32px;
}

.alsct-form-heading h2 {
  font-size: clamp(2.2rem, 3.5vw, 3.2rem);
  margin-bottom: 15px;
}

.alsct-form-heading > p:last-child {
  color: var(--muted);
  font-size: .94rem;
}

/* ============================================
   CONVERT FORMS — FORMULAIRE ID 1
   ============================================ */

/* Supprime le fond et les bordures par défaut */

.alsct-form-container .convertforms,
.alsct-form-container .cf-form-wrap,
.alsct-form-container .cf-form,
.alsct-form-container form {
  background: transparent !important;
  box-shadow: none !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  max-width: none !important;
  width: 100% !important;
}

/* Espacement des champs */

.alsct-form-container .cf-control-group,
.alsct-form-container .cf-field {
  margin-bottom: 20px !important;
}

/* Libellés */

.alsct-form-container label {
  color: #40463a !important;
  font-size: .86rem !important;
  font-weight: 600 !important;
  margin-bottom: 7px !important;
  line-height: 1.45;
}

/* Champs de saisie */

.alsct-form-container input[type="text"],
.alsct-form-container input[type="email"],
.alsct-form-container input[type="tel"],
.alsct-form-container input[type="number"],
.alsct-form-container input[type="date"],
.alsct-form-container select,
.alsct-form-container textarea {
  width: 100% !important;
  max-width: 100% !important;
  min-height: 49px !important;
  padding: 12px 15px !important;
  background: #f8f7f2 !important;
  color: #2e3029 !important;
  border: 1px solid #d9d9cd !important;
  border-radius: 5px !important;
  box-shadow: none !important;
  font-size: .95rem !important;
  font-family: Arial, Helvetica, sans-serif !important;
  transition: border-color .2s, box-shadow .2s;
}

/* Focus */

.alsct-form-container input:focus,
.alsct-form-container select:focus,
.alsct-form-container textarea:focus {
  outline: none !important;
  border-color: #626b50 !important;
  box-shadow: 0 0 0 3px rgba(98,107,80,.12) !important;
}

/* Message */

.alsct-form-container textarea {
  min-height: 150px !important;
  resize: vertical;
}

/* Liste déroulante */

.alsct-form-container select {
  cursor: pointer;
}

/* Case RGPD */

.alsct-form-container input[type="checkbox"] {
  accent-color: #626b50;
  width: 17px;
  height: 17px;
}

.alsct-form-container .cf-checkbox-group label,
.alsct-form-container .cf-checkbox label {
  font-weight: 400 !important;
  font-size: .83rem !important;
  color: #696b63 !important;
}

/* Bouton d'envoi */

.alsct-form-container button[type="submit"],
.alsct-form-container input[type="submit"],
.alsct-form-container .cf-btn-submit {
  display: block !important;
  width: 100% !important;
  min-height: 54px !important;
  background: #626b50 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 4px !important;
  font-size: .96rem !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  padding: 15px 25px !important;
  transition: background .2s, transform .2s;
}

.alsct-form-container button[type="submit"]:hover,
.alsct-form-container input[type="submit"]:hover,
.alsct-form-container .cf-btn-submit:hover {
  background: #49533d !important;
  transform: translateY(-1px);
}

/* BLOC FINAL */

.alsct-footer {
  background: #343d30;
  text-align: center;
  padding: 85px 0;
}

.alsct-footer .alsct-eyebrow {
  color: #ddb28e !important;
}

.als-contact .alsct-footer h2 {
  color: #fff !important;
  font-size: clamp(2.4rem, 4.5vw, 4rem);
  margin-bottom: 22px;
}

.als-contact .alsct-footer h2 em {
  color: #dfc5a3 !important;
}

.alsct-footer .alsct-wrap > p:not(.alsct-eyebrow) {
  max-width: 650px;
  margin-inline: auto;
  color: #e2e7dc;
}

/* RESPONSIVE */

@media (max-width: 900px) {
  .alsct-grid {
    grid-template-columns: 1fr;
    gap: 60px;
  }

  .alsct-info {
    max-width: 720px;
  }

  .alsct-form-panel {
    max-width: 720px;
    width: 100%;
    margin-inline: auto;
  }
}

@media (max-width: 600px) {
  .alsct-wrap {
    width: min(100% - 32px, 500px);
  }

  .alsct-hero {
    padding: 65px 0;
  }

  .alsct-main {
    padding: 60px 0 70px;
  }

  .alsct-info h2 {
    font-size: 2.4rem;
  }

  .alsct-form-panel {
    padding: 25px 20px;
  }

  .alsct-location {
    margin-top: 45px;
  }

  .alsct-footer {
    padding: 65px 0;
  }
}

/* CARTE GOOGLE MAPS */

.alsct-map {
  margin: 25px 0 18px;
  border-radius: 7px;
  overflow: hidden;
  border: 1px solid #dedbd0;
  box-shadow: 0 8px 25px rgba(43, 48, 37, .07);
}

.alsct-map iframe {
  display: block;
  width: 100%;
  height: 250px;
}

/* LOGO TYPOGRAPHIQUE — AUX LOGIS DE LA SOLRE */

.navbar-brand.logo-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  white-space: normal;
  text-decoration: none !important;
  padding: 8px 0;
}

.navbar-brand.logo-text .site-name {
  display: block;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 25px;
  font-weight: 400;
  letter-spacing: -0.6px;
  line-height: 1.15;
  color: #34392e;
  margin-bottom: 5px;
  text-transform: none;
}


.navbar-brand.logo-text .site-slogan {
  display: block;
  font-family: Arial, sans-serif;
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.35px;
  line-height: 1.5;
  color: #a66b49;
  text-transform: uppercase;
  white-space: nowrap;
}


/* MOBILE */

@media (max-width: 767px) {
  .navbar-brand.logo-text .site-name {
    font-size: 20px;
  }

  .navbar-brand.logo-text .site-slogan {
    font-size: 8px;
    letter-spacing: .6px;
  }
}

/* MENU PRINCIPAL — COULEURS AUX LOGIS DE LA SOLRE */

/* Liens normaux */
.t4-megamenu .navbar-nav > li > a,
.t4-megamenu .navbar-nav > li > .nav-link {
  color: #34392e !important;
}

/* Page active */
.t4-megamenu .navbar-nav > li.active > a,
.t4-megamenu .navbar-nav > li.active > .nav-link,
.t4-megamenu .navbar-nav > li.current > a,
.t4-megamenu .navbar-nav > li.current > .nav-link {
  color: #626b50 !important;
}

/* Survol */
.t4-megamenu .navbar-nav > li > a:hover,
.t4-megamenu .navbar-nav > li > .nav-link:hover,
.t4-megamenu .navbar-nav > li > a:focus,
.t4-megamenu .navbar-nav > li > .nav-link:focus {
  color: #a66b49 !important;
}

/* Bouton du menu mobile */
.navbar-toggler {
  color: #626b50 !important;
  border-color: #626b50 !important;
}



/* FOOTER - AUX LOGIS DE LA SOLRE */

.als-footer {
  background: #f7f5ef;
  border-top: 1px solid #dedbd0;
  padding: 46px 20px 28px;
  text-align: center;
}

.als-footer-inner {
  max-width: 1100px;
  margin: 0 auto;
}

.als-footer-name {
  font-family: Georgia, "Times New Roman", serif;
  font-size: 27px;
  font-weight: 400;
  color: #34392e;
  line-height: 1.3;
}

.als-footer-subtitle {
  margin-top: 7px;
  font-size: 10px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: #a66b49;
}

.als-footer-location {
  margin-top: 16px;
  font-size: 13px;
  color: #626b50;
}

.als-footer-links {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
}

.als-footer-links a {
  color: #626b50 !important;
  text-decoration: none !important;
  font-size: 12px;
  transition: color .2s ease;
}

.als-footer-links a:hover {
  color: #a66b49 !important;
}

.als-footer-links span {
  color: #b6ad9c;
}

.als-footer-copy {
  margin-top: 25px;
  font-size: 11px;
  color: #88877e;
}

@media (max-width: 600px) {
  .als-footer {
    padding: 36px 16px 25px;
  }

  .als-footer-name {
    font-size: 24px;
  }

  .als-footer-subtitle {
    font-size: 9px;
    letter-spacing: 1px;
  }

  .als-footer-links {
    gap: 8px;
  }
}
/* GALERIES CLIQUABLES — GÎTES */

.als-gites .alsg-gallery a.glightbox {
  display: block;
  width: 100%;
  overflow: hidden;
  border-radius: 4px;
  cursor: zoom-in;
}

.als-gites .alsg-gallery a.glightbox img {
  display: block;
  width: 100%;
  object-fit: cover;
  transition: transform .45s ease;
}

/* Photo principale */
.als-gites .alsg-gallery > a.glightbox {
  height: 390px;
}

.als-gites .alsg-gallery > a.glightbox .alsg-gallery-main {
  height: 100% !important;
}

/* Petites photos */
.als-gites .alsg-gallery-bottom a.glightbox {
  height: 175px;
}

.als-gites .alsg-gallery-bottom a.glightbox img {
  height: 100% !important;
}

/* Photo supplémentaire de Garenne */
.als-gites .alsg-gallery > a.glightbox:has(.alsg-extra-photo) {
  height: 170px;
  margin-top: 10px;
}

.als-gites .alsg-gallery a.glightbox .alsg-extra-photo {
  height: 100% !important;
  margin-top: 0;
}

/* Zoom doux */
@media (hover: hover) {
  .als-gites .alsg-gallery a.glightbox:hover img {
    transform: scale(1.055);
  }
}

/* Tablette */
@media (max-width: 900px) {
  .als-gites .alsg-gallery > a.glightbox:not(:has(.alsg-extra-photo)) {
    height: 310px;
  }
}

/* Mobile */
@media (max-width: 700px) {
  .als-gites .alsg-gallery > a.glightbox:not(:has(.alsg-extra-photo)) {
    height: 260px;
  }

  .als-gites .alsg-gallery-bottom a.glightbox {
    height: 125px;
  }
}

/* Accessibilité */
.als-gites .alsg-gallery a.glightbox:focus-visible {
  outline: 3px solid #c48b63;
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .als-gites .alsg-gallery a.glightbox img {
    transition: none;
  }
}

/* LIGHTBOX — CHAMBRES D'HÔTES */

.als-chambres .alsc-gallery a.glightbox {
  display: block;
  min-width: 0;
  overflow: hidden;
  border-radius: 4px;
  cursor: zoom-in;
}

.als-chambres .alsc-gallery a.glightbox img {
  display: block;
  width: 100%;
  height: 100% !important;
  object-fit: cover;
  border-radius: 4px;
  transition: transform .45s ease;
}

/* Galerie du Bief : conserver les positions et hauteurs */
.als-chambres .alsc-gallery-bief > a.glightbox:first-child {
  grid-column: 1 / -1;
  height: 320px;
}

.als-chambres .alsc-gallery-bief > a.glightbox:nth-child(2),
.als-chambres .alsc-gallery-bief > a.glightbox:nth-child(3) {
  height: 155px;
}

.als-chambres .alsc-gallery-bief > a.glightbox:nth-child(n+4) {
  height: 130px;
}

.als-chambres .alsc-gallery-bief > a.glightbox:nth-child(6) {
  grid-column: 1 / -1;
  height: 160px;
}

/* Chambres avec une seule photo */
.als-chambres .alsc-single-photo a.glightbox {
  width: 100%;
  height: 440px;
}

/* Effet zoom discret */
@media (hover: hover) {
  .als-chambres .alsc-gallery a.glightbox:hover img {
    transform: scale(1.055);
  }
}

/* Tablette */
@media (max-width: 900px) {
  .als-chambres .alsc-single-photo a.glightbox {
    height: 360px;
  }
}

/* Mobile */
@media (max-width: 700px) {
  .als-chambres .alsc-gallery-bief > a.glightbox:first-child {
    height: 240px;
  }

  .als-chambres .alsc-gallery-bief > a.glightbox:nth-child(n+2) {
    height: 125px;
  }

  .als-chambres .alsc-single-photo a.glightbox {
    height: 320px;
  }
}

/* Accessibilité */
.als-chambres .alsc-gallery a.glightbox:focus-visible {
  outline: 3px solid #c48b63;
  outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .als-chambres .alsc-gallery a.glightbox img {
    transition: none;
  }
}

/* ==========================================
   AUX LOGIS DE LA SOLRE
   MENTIONS LÉGALES / CONFIDENTIALITÉ
   ========================================== */

.als-legal {
  --legal-olive: #535d43;
  --legal-copper: #b78a65;
  --legal-text: #41443b;
  --legal-muted: #77796e;
  --legal-line: #e6e1d6;
  --legal-cream: #faf8f3;

  color: var(--legal-text);
  background: #fff;
  font-family: inherit;
  line-height: 1.8;
  padding-bottom: 80px;
}

/* EN-TÊTE */

.als-legal-header {
  text-align: center;
  background: var(--legal-cream);
  padding: 85px 24px 75px;
  margin-bottom: 65px;
}

.als-legal-eyebrow {
  color: var(--legal-copper);
  text-transform: uppercase;
  letter-spacing: 3px;
  font-size: 12px;
  font-weight: 600;
  margin: 0 0 18px;
}

.als-legal-header h1 {
  color: var(--legal-olive);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(38px, 5vw, 58px);
  font-weight: 400;
  line-height: 1.2;
  margin: 0 0 22px;
}

.als-legal-header > p:last-child {
  max-width: 640px;
  margin: 0 auto;
  font-size: 16px;
  color: var(--legal-muted);
  line-height: 1.8;
}

/* SECTIONS */

.als-legal-section {
  max-width: 860px;
  margin: 0 auto;
  padding: 0 30px 35px;
  margin-bottom: 35px;
  border-bottom: 1px solid var(--legal-line);
}

.als-legal-section:last-child {
  border-bottom: none;
  margin-bottom: 0;
}

.als-legal-section h2 {
  color: var(--legal-olive);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(23px, 3vw, 29px);
  font-weight: 400;
  line-height: 1.3;
  margin: 0 0 22px;
}

.als-legal-section p {
  font-size: 15px;
  line-height: 1.9;
  margin: 0 0 18px;
}

.als-legal-section p:last-child {
  margin-bottom: 0;
}

.als-legal-section strong {
  color: var(--legal-olive);
  font-weight: 600;
}

/* LIENS */

.als-legal a {
  color: var(--legal-olive);
  text-decoration: underline;
  text-decoration-color: var(--legal-copper);
  text-underline-offset: 4px;
  transition: color .2s ease;
}

.als-legal a:hover {
  color: var(--legal-copper);
}

.als-legal a:focus-visible {
  outline: 2px solid var(--legal-copper);
  outline-offset: 4px;
}

/* TABLETTE */

@media (max-width: 900px) {
  .als-legal-header {
    padding: 65px 24px 60px;
    margin-bottom: 50px;
  }

  .als-legal-section {
    max-width: 760px;
  }
}

/* MOBILE */

@media (max-width: 600px) {
  .als-legal {
    padding-bottom: 45px;
  }

  .als-legal-header {
    padding: 55px 20px 50px;
    margin-bottom: 40px;
  }

  .als-legal-eyebrow {
    font-size: 11px;
    letter-spacing: 2px;
  }

  .als-legal-header h1 {
    font-size: 36px;
  }

  .als-legal-header > p:last-child {
    font-size: 14px;
  }

  .als-legal-section {
    padding: 0 22px 25px;
    margin-bottom: 28px;
  }

  .als-legal-section h2 {
    font-size: 24px;
    margin-bottom: 16px;
  }

  .als-legal-section p {
    font-size: 14px;
    line-height: 1.8;
  }
}

/* ANIMATIONS RÉDUITES */

@media (prefers-reduced-motion: reduce) {
  .als-legal a {
    transition: none;
  }
}

/* FOOTER PLEINE LARGEUR — PURITY IV */

.als-footer {
  width: 100vw;
  max-width: none;
  position: relative;
  left: 50%;
  margin-left: -50vw;
  background: #f7f5ef;
  box-sizing: border-box;
}

/* Contenu centré à l'intérieur */
.als-footer-inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}


/* Supprimer l'espacement inférieur du contenu principal */
.t4-main-body {
    padding-bottom: 0 !important;
}

/* Masquer la section position-4 de Purity IV */
.t4-section.position-4 {
    display: none !important;
}

/* Masquer le Main Body uniquement lorsqu'il ne contient aucun composant */
#t4-main-body:not(:has(.com-content-article, .com-content-category, form, main)) {
    display: none !important;
}



/* Section finale : fond blanc sur toute la largeur */
.als-home .als-final {
    background: #fcfbf8;
    position: relative;
    width: 100vw;
    max-width: none;
    left: 50%;
    margin-left: -50vw;
}

