@media (max-width: 1230px) {
  :root { --header-height: 90px; }

  .brand-copy em { display: none; }
  .brand-icon { width: 48px; height: 58px; }
  .brand-icon::before { width: 42px; height: 28px; }
  .brand-icon::after { left: 14px; top: 15px; width: 28px; height: 43px; }
  .brand-copy strong { font-size: 2.15rem; }

  .main-nav { gap: 19px; }
  .main-nav > a { font-size: 1.06rem; }
  .main-nav .nav-book { padding: 13px 18px; }

  .hero-image { object-position: 62% 52%; }
  .hero-content { padding-bottom: 270px; }
}

@media (max-width: 1020px) {
  .site-header {
    padding-inline: 24px;
    background: rgba(255, 250, 245, .96);
    border-color: rgba(126, 19, 35, .08);
    box-shadow: 0 8px 30px rgba(52, 20, 17, .10);
    backdrop-filter: blur(16px);
  }

  .site-header .brand-copy small,
  .site-header .brand-copy strong,
  .site-header .brand-copy > span,
  .site-header .brand-copy em {
    color: initial;
    text-shadow: none;
  }

  .site-header .brand-copy small { color: #9b6a4d; }
  .site-header .brand-copy strong { color: var(--burgundy); }
  .site-header .brand-copy > span { color: var(--burgundy-dark); }
  .site-header .brand-copy em { color: #b98058; }

  .site-header .brand-icon,
  .site-header .brand-icon::before,
  .site-header .brand-icon::after {
    border-color: var(--gold);
  }

  .menu-toggle {
    width: 46px;
    height: 42px;
    display: grid;
    place-content: center;
    gap: 6px;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
  }

  .menu-toggle span {
    width: 27px;
    height: 2px;
    background: var(--burgundy) !important;
    transition: transform .2s ease, opacity .2s ease;
  }

  .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }

  .main-nav {
    position: fixed;
    inset: var(--header-height) 0 auto;
    display: grid;
    gap: 0;
    max-height: 0;
    overflow: hidden;
    padding: 0 24px;
    background: rgba(255, 250, 245, .99);
    box-shadow: 0 18px 30px rgba(52, 20, 17, .12);
    transition: max-height .3s ease, padding .3s ease;
  }

  .main-nav.open {
    max-height: calc(100vh - var(--header-height));
    padding-block: 15px 25px;
    overflow-y: auto;
  }

  .main-nav > a {
    color: var(--ink) !important;
    padding: 13px 4px;
    border-bottom: 1px solid rgba(126, 19, 35, .08);
    text-shadow: none !important;
  }

  .main-nav > a::after { display: none; }

  .main-nav .nav-book {
    color: #fff !important;
    justify-content: center;
    margin-top: 12px;
    border-bottom: 0;
  }

  .hero-image { object-position: 66% 50%; }

  .hero-content {
    padding-top: 115px;
    padding-bottom: 320px;
  }

  .reassurance {
    bottom: 24px;
    grid-template-columns: repeat(2, 1fr);
    gap: 22px 0;
  }

  .reassurance article:nth-child(2) { border-right: 0; }
}

@media (max-width: 700px) {
  :root { --header-height: 78px; }

  body { background: var(--cream); }

  .site-header { padding-inline: 14px; }
  .brand { gap: 9px; }
  .brand-icon { display: none; }
  .brand-copy { text-align: left; }
  .brand-copy small { font-size: .56rem; }
  .brand-copy strong { font-size: 1.85rem; }
  .brand-copy > span { font-size: .88rem; }

  .hero {
    min-height: auto;
    padding-top: var(--header-height);
    overflow: visible;
    background: var(--cream);
  }

  .hero-image {
    position: relative;
    inset: auto;
    width: 100%;
    height: 52svh;
    min-height: 390px;
    object-fit: cover;
    object-position: 58% 50%;
    animation: none;
    filter: saturate(.98) contrast(1.01);
  }

  .hero-shade,
  .hero::before,
  .hero::after {
    display: none;
  }

  .hero-content {
    width: 100%;
    margin: 0;
    padding: 38px 22px 30px;
    color: var(--ink);
    background:
      radial-gradient(circle at 100% 0, rgba(201, 154, 100, .12), transparent 35%),
      var(--cream);
  }

  .hero-content > * {
    opacity: 1;
    transform: none;
    animation: none;
  }

  .eyebrow {
    color: #a7754e;
    font-size: .86rem;
  }

  .hero h1 {
    max-width: 100%;
    color: var(--burgundy-dark);
    font-size: clamp(3rem, 15vw, 4.6rem);
    line-height: .92;
  }

  .ornament { max-width: 350px; }

  .hero-intro {
    max-width: 100%;
    color: #4a3330;
    font-size: 1.25rem;
  }

  .hero-actions {
    display: grid;
    margin-top: 28px;
  }

  .button { width: 100%; }

  .button-secondary {
    color: var(--burgundy);
    border-color: rgba(126, 19, 35, .30);
    background: rgba(255, 255, 255, .55);
  }

  .hero-features {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 28px 0;
    margin-top: 42px;
  }

  .hero-features article {
    min-width: 0;
    padding: 0 14px;
    border-color: rgba(126, 19, 35, .15);
  }

  .hero-features article:nth-child(2) { border-right: 0; }
  .hero-features article:nth-child(3) { padding-left: 0; }
  .hero-features article:nth-child(4) { padding-right: 0; }

  .feature-icon { color: var(--gold); }

  .reassurance {
    position: static;
    transform: none;
    width: calc(100% - 28px);
    margin: 0 auto 22px;
    grid-template-columns: 1fr;
    gap: 0;
    padding: 12px 22px;
    border-radius: 12px;
    box-shadow: 0 12px 34px rgba(38, 14, 13, .12);
  }

  .reassurance article,
  .reassurance article:first-child,
  .reassurance article:last-child {
    padding: 14px 0;
    border-right: 0;
    border-bottom: 1px solid rgba(126, 19, 35, .13);
  }

  .reassurance article:last-child { border-bottom: 0; }
  .reassurance article > span { font-size: 2rem; }
}

@media (max-width: 420px) {
  .hero-image {
    height: 46svh;
    min-height: 340px;
    object-position: 60% 50%;
  }

  .hero-content { padding-inline: 18px; }
  .hero h1 { font-size: 3.4rem; }
}

@media (max-height: 760px) and (min-width: 701px) {
  .hero-content {
    padding-top: 70px;
    padding-bottom: 250px;
  }

  .hero-features { margin-top: 35px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-image,
  .hero-content > * {
    animation: none !important;
  }
}


@media (max-width: 1100px) {
  .gallery-grid {
    grid-template-columns: repeat(3, 1fr);
    grid-auto-rows: 175px;
  }

  .site-footer {
    grid-template-columns: 1.5fr 1fr 1.3fr;
  }

  .footer-book {
    grid-column: 1 / -1;
    width: max-content;
  }
}

@media (max-width: 760px) {
  .page-hero {
    min-height: 390px;
    padding-top: calc(var(--header-height) + 65px);
  }

  .page-hero h1 {
    font-size: clamp(4rem, 20vw, 6rem);
  }

  .gallery-section {
    padding-top: 70px;
    padding-bottom: 80px;
  }

  .gallery-filters {
    justify-content: flex-start;
    flex-wrap: nowrap;
    margin-inline: -18px;
    padding-inline: 18px;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .gallery-filters::-webkit-scrollbar {
    display: none;
  }

  .gallery-filter {
    flex: 0 0 auto;
  }

  .gallery-grid {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 145px;
    gap: 9px;
  }

  .gallery-item,
  .gallery-item--portrait {
    grid-row: span 2;
  }

  .gallery-item--large {
    grid-column: span 2;
    grid-row: span 3;
  }

  .gallery-cta {
    margin-bottom: 65px;
    flex-direction: column;
    align-items: flex-start;
  }

  .gallery-cta .button {
    width: 100%;
  }

  .site-footer {
    grid-template-columns: 1fr;
    gap: 28px;
    text-align: center;
  }

  .site-footer nav,
  .footer-contact {
    justify-items: center;
  }

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

  .footer-book {
    width: 100%;
  }

  .lightbox {
    padding: 55px 12px 60px;
  }

  .lightbox-prev,
  .lightbox-next {
    top: auto;
    bottom: 8px;
    width: 60px;
    height: 50px;
    transform: none;
    font-size: 3rem;
  }

  .lightbox-prev { left: 12px; }
  .lightbox-next { right: 12px; }
  .lightbox-counter { right: 50%; transform: translateX(50%); bottom: 25px; }
}

@media (max-width: 420px) {
  .gallery-grid {
    grid-auto-rows: 125px;
  }
}

@media(max-width:900px){
.voute-intro,.experience-block,.experience-block--reverse,.voute-exclusive{grid-template-columns:1fr}
.experience-block--reverse .experience-image{order:0}
.voute-keyfacts,.amenities-grid,.occasions-grid{grid-template-columns:repeat(2,1fr)}
.experience-image,.experience-image img{min-height:430px}
.voute-exclusive{margin-inline:20px;padding:28px}.voute-exclusive img{height:400px}
}
@media(max-width:600px){
.voute-hero{min-height:70svh}.voute-hero-content{padding-top:calc(var(--header-height) + 55px)}
.voute-intro{padding:75px 20px;gap:38px}.voute-keyfacts,.amenities-grid,.occasions-grid{grid-template-columns:1fr}
.experience-block{margin-bottom:75px;padding-inline:18px;gap:28px}.experience-image,.experience-image img{min-height:330px}
.voute-exclusive{margin-bottom:80px;gap:30px}.voute-exclusive img{height:330px}
.amenities-section,.occasions-section,.voute-final{padding:80px 20px}
}

@media(max-width:900px){
.experience-cards{grid-template-columns:1fr}
.experience-card img{height:320px}
}

@media (max-width: 950px) {
  .faq-layout {
    grid-template-columns: 1fr;
    gap: 45px;
    padding-top: 70px;
  }

  .faq-categories {
    position: static;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .faq-categories a:nth-last-child(2) {
    border-bottom: 0;
  }

  .faq-contact {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 620px) {
  .faq-hero {
    min-height: 430px;
  }

  .faq-layout {
    padding-inline: 18px;
    padding-bottom: 80px;
  }

  .faq-categories {
    grid-template-columns: 1fr;
    padding: 14px 18px;
  }

  .faq-categories a:nth-last-child(2) {
    border-bottom: 1px solid rgba(126, 19, 35, .10);
  }

  .faq-group {
    margin-bottom: 65px;
  }

  .faq-group summary {
    padding: 20px 56px 20px 20px;
    font-size: 1.2rem;
  }

  .faq-group summary::after {
    right: 18px;
  }

  .faq-group details > div {
    padding: 0 20px 22px;
  }

  .faq-contact {
    padding: 75px 20px;
  }

  .faq-contact-actions,
  .faq-contact-actions .button {
    width: 100%;
  }
}

@media (max-width: 980px) {
  .site-header:not(.scrolled) .main-nav {
    background: rgba(255, 250, 245, .98);
  }

  .site-header:not(.scrolled) .main-nav > a:not(.nav-book) {
    color: var(--burgundy-dark);
  }
}

@media (max-width: 620px) {
  .inner-page .page-hero,
  .shared-balneo-hero,
  .page-hero--gallery,
  .faq-hero,
  .voute-hero {
    min-height: 520px;
  }
}

@media (max-width: 1000px) {
  .tarifs-grid {
    grid-template-columns: 1fr;
    max-width: 780px;
  }

  .tarifs-options {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .tarifs-options .button {
    justify-self: center;
  }
}

@media (max-width: 680px) {
  .tarifs-intro {
    padding-top: 75px;
  }

  .tarifs-grid {
    padding-inline: 18px;
    padding-bottom: 80px;
  }

  .tarif-card {
    padding: 30px 22px;
  }

  .tarif-badge {
    position: static;
    display: inline-block;
    margin-bottom: 24px;
  }

  .night-prices {
    grid-template-columns: 1fr;
  }

  .night-prices > div {
    min-height: 104px;
  }

  .tarifs-season {
    flex-direction: column;
    text-align: center;
  }

  .tarifs-options {
    padding: 80px 20px;
  }

  .tarifs-options-list > div {
    align-items: flex-start;
    text-align: left;
  }
}

@media (max-width: 980px) {
  .journal-featured { grid-template-columns:1fr; }
  .journal-featured-image img { height:480px; }
  .journal-grid { grid-template-columns:repeat(2,1fr); }
  .journal-listing-head { align-items:flex-start; flex-direction:column; }
  .journal-filters { justify-content:flex-start; }
  .article-layout { grid-template-columns:1fr; gap:35px; }
  .article-aside { position:static; padding-bottom:25px; border-bottom:1px solid rgba(126,19,35,.12); }
}
@media (max-width: 680px) {
  .journal-featured { padding-top:75px; }
  .journal-featured-image img { height:360px; }
  .journal-grid { grid-template-columns:1fr; }
  .journal-card-image img { height:250px; }
  .article-hero { min-height:620px; }
  .article-hero-content { padding:160px 22px 55px; }
  .article-layout { padding:70px 22px; }
  .article-cta { padding:30px 24px; }
  .article-nav { grid-template-columns:1fr; padding-inline:22px; }
  .article-nav a:last-child { text-align:left; }
  .related-articles > div { grid-template-columns:1fr; }
}

@media (max-width: 920px) {
  .contact-intro,
  .contact-main,
  .contact-map-heading {
    grid-template-columns: 1fr;
  }
  .contact-intro,
  .contact-map-heading {
    gap: 22px;
  }
  .contact-main {
    max-width: 760px;
  }
  .contact-info-card {
    position: static;
  }
}
@media (max-width: 620px) {
  .contact-intro {
    padding-top: 70px;
  }
  .contact-main {
    padding-inline: 20px;
    padding-bottom: 80px;
  }
  .contact-form-card {
    padding: 28px 20px;
  }
  .contact-form-grid {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .contact-info-card {
    padding: 32px 23px;
  }
  .contact-map-section {
    padding-inline: 20px;
    padding-block: 75px;
  }
  .contact-map-frame iframe {
    height: 410px;
  }
}
