:root {
      --page: #ffffff;
      --surface: #ffffff;
      --surface-soft: #f7f4ef;
      --surface-sage: #edf3ed;
      --ink: #1d1d1b;
      --muted: #4e4a44;
      --line: #ddd6cc;
      --sage: #52624b;
      --sage-dark: #3f5039;
      --sage-soft: #dfe8dd;
      --gold: #76571f;
      --gold-soft: #ead8b3;
      --shadow: 0 18px 50px rgba(30, 30, 25, .12);
      --radius-sm: 12px;
      --radius-md: 18px;
      --radius-lg: 28px;
      --max: 1180px;
      --admin-bar-offset: 0px;
    }

    body.admin-bar {
      --admin-bar-offset: 32px;
    }

    @media (max-width: 782px) {
      body.admin-bar {
        --admin-bar-offset: 46px;
      }
    }

    * {
      box-sizing: border-box;
      margin: 0;
      padding: 0;
    }

    html {
      scroll-behavior: smooth;
    }

    @media (prefers-reduced-motion: reduce) {
      html {
        scroll-behavior: auto;
      }

      *,
      *::before,
      *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: .01ms !important;
      }
    }

    body {
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      color: var(--ink);
      background: var(--page);
      line-height: 1.55;
      padding-bottom: 82px;
    }

    img {
      display: block;
      max-width: 100%;
      /* Les attributs width et height du HTML alimentent les proprietes CSS
         correspondantes. Sans cette regle, une image dont la largeur est
         contrainte par le CSS garderait la hauteur inscrite dans la balise et
         se retrouverait deformee ou demesuree. */
      height: auto;
    }

    a {
      color: inherit;
      text-decoration: underline;
      text-decoration-thickness: .08em;
      text-underline-offset: .18em;
      text-decoration-skip-ink: auto;
    }

    a:focus-visible,
    button:focus-visible,
    [tabindex]:focus-visible {
      outline: 3px solid var(--sage-dark);
      outline-offset: 4px;
      box-shadow: 0 0 0 7px rgba(223, 232, 221, .95);
    }


    .sr-only {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip: rect(0, 0, 0, 0);
      white-space: nowrap;
      border: 0;
    }

    .skip-link {
      position: absolute;
      top: 12px;
      left: 12px;
      z-index: 999;
      background: #ffffff;
      color: #111111;
      padding: 12px 16px;
      border: 1px solid var(--line);
      border-radius: 999px;
      transform: translateY(-150%);
      font-weight: 800;
    }

    .skip-link:focus {
      transform: translateY(0);
    }

    .breadcrumb {
      background: #ffffff;
      border-bottom: 1px solid var(--line);
    }

    .breadcrumb-inner {
      width: min(var(--max), 100%);
      margin: auto;
      padding: 10px 12px;
    }

    .breadcrumb-list {
      list-style: none;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0;
      margin: 0;
      padding: 0;
      color: var(--muted);
      font-size: .82rem;
      font-weight: 700;
    }

    .breadcrumb-item {
      display: inline-flex;
      align-items: center;
      min-height: 24px;
    }

    .breadcrumb-home {
      display: inline-grid;
      place-items: center;
      width: 24px;
      height: 24px;
      color: var(--sage-dark);
      text-decoration: none;
    }

    .breadcrumb-home-icon {
      width: 18px;
      height: 18px;
      fill: none;
      stroke: currentColor;
      stroke-width: 1.8;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .breadcrumb-item + .breadcrumb-item::before {
      content: "/";
      margin: 0 10px;
      color: #a69d91;
      font-weight: 500;
    }

    .breadcrumb a {
      color: var(--sage-dark);
      text-decoration: underline;
      text-decoration-thickness: .08em;
      text-underline-offset: .16em;
    }

    .breadcrumb [aria-current="page"] {
      color: var(--ink);
      text-decoration: none;
    }

    .site-header {
      position: sticky;
      top: var(--admin-bar-offset);
      z-index: 80;
      background: rgba(255, 255, 255, .94);
      backdrop-filter: blur(16px);
      border-bottom: 1px solid var(--line);
    }

    .site-header .nav-shell {
      position: relative;
    }

    .nav-shell {
      width: min(var(--max), 100%);
      margin: auto;
      padding: 10px 12px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
    }

    .brand {
      display: inline-flex;
      align-items: center;
      min-height: 48px;
      gap: 12px;
      text-decoration: none;
    }

    /* Le logotype est detoure sur fond transparent : il se pose directement sur
       le fond clair de l'en-tete. La hauteur pilote la taille, la largeur suit
       le rapport de l'image, et les attributs width/height du <img> reservent
       la place avant chargement. C'est la version courte du logotype, large et
       peu haute, qui garde la barre de navigation compacte. */
    .brand-logo {
      display: block;
      height: 40px;
      width: auto;
      max-width: 100%;
    }

    .main-nav,
    .header-actions {
      display: none;
    }

    .main-nav-list,
    .mobile-menu-list,
    .footer-nav-list {
      list-style: none;
      margin: 0;
      padding: 0;
    }

    .main-nav-list {
      display: flex;
      align-items: center;
      gap: 24px;
    }

    .main-nav-list a {
      min-height: 44px;
      display: inline-flex;
      align-items: center;
      font-weight: 700;
      text-decoration: none;
    }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 48px;
      padding: 13px 18px;
      border-radius: 999px;
      border: 1px solid transparent;
      font-weight: 800;
      font-size: .92rem;
      text-align: center;
      cursor: pointer;
      gap: 8px;
      text-decoration: none;
    }

    .story-cta,
    .hero-actions a.btn,
    .footer-booking .btn,
    .mobile-bar a,
    .mobile-menu-actions .btn,
    .access-teaser .btn {
      text-decoration: none;
    }

    .btn-primary {
      background: var(--sage-dark);
      color: #ffffff;
      border-color: var(--sage-dark);
      box-shadow: 0 12px 26px rgba(63, 80, 57, .20);
    }

    .btn-secondary {
      background: #ffffff;
      color: var(--ink);
      border-color: var(--line);
    }

    .btn-soft {
      background: var(--surface-sage);
      color: var(--sage-dark);
      border-color: var(--sage-soft);
    }

    .lpk-home-content {
      width: 100%;
      max-width: none;
    }

    .lpk-home-content > *,
    .lpk-home-content .wp-block-columns,
    .lpk-home-content .wp-block-column,
    .lpk-home-content .wp-block-group,
    .lpk-home-content .wp-block-cover,
    .lpk-home-content .wp-block-image,
    .lpk-home-content .wp-block-buttons {
      max-width: none;
    }

    .lpk-home-content .wp-block-columns {
      width: 100%;
      margin-left: 0;
      margin-right: 0;
    }

    .lpk-home-content .wp-block-column {
      min-width: 0;
    }

    .lpk-home-content .hero.wp-block-columns {
      display: block !important;
      gap: 0 !important;
      margin: 0 !important;
      position: relative;
      background: #ffffff;
    }

    .lpk-home-content .hero > .hero-media {
      width: 100% !important;
      flex-basis: auto !important;
      overflow: hidden;
    }

    .lpk-home-content .hero-media .wp-block-image {
      margin: 0;
    }

    .lpk-home-content .hero > .hero-content {
      width: min(var(--max), 100%) !important;
      margin: -76px auto 0 !important;
      padding: 0 18px 34px !important;
      position: relative;
      z-index: 2;
      display: grid !important;
      gap: 18px !important;
      flex-basis: auto !important;
    }

    .lpk-home-content .quick-facts {
      display: grid !important;
      gap: 12px !important;
    }

    .lpk-home-content .reviews-strip.wp-block-columns {
      width: min(var(--max), calc(100% - 36px));
      margin: 0 auto;
      padding: 26px 0 44px;
      display: grid !important;
      gap: 12px !important;
      align-items: stretch;
    }

    .lpk-home-content .reviews-strip > .wp-block-column {
      flex-basis: auto !important;
    }

    .lpk-home-content .story-grid.wp-block-columns,
    .lpk-home-content .cards-grid.wp-block-columns,
    .lpk-home-content .menu-showcase.wp-block-columns,
    .lpk-home-content .menu-dishes.wp-block-columns,
    .lpk-home-content .practical.wp-block-columns,
    .lpk-home-content .practical-grid.wp-block-columns {
      display: grid !important;
      gap: 18px !important;
      align-items: stretch;
    }

    .lpk-home-content .story-grid.wp-block-columns,
    .lpk-home-content .menu-showcase.wp-block-columns,
    .lpk-home-content .practical.wp-block-columns {
      width: 100%;
      margin: 0;
    }

    .lpk-home-content .story-grid > .wp-block-column,
    .lpk-home-content .cards-grid > .wp-block-column,
    .lpk-home-content .menu-showcase > .wp-block-column,
    .lpk-home-content .menu-dishes > .wp-block-column,
    .lpk-home-content .practical > .wp-block-column,
    .lpk-home-content .practical-grid > .wp-block-column {
      flex-basis: auto !important;
    }

    .lpk-home-content .cards-grid > .wp-block-column {
      display: flex;
      align-self: stretch;
    }

    .lpk-home-content .cards-grid > .wp-block-column > .feature-card {
      width: 100%;
      min-height: 100%;
    }

    .wp-block-buttons {
      gap: 10px;
    }

    .wp-block-button {
      margin: 0;
    }

    .btn .wp-block-button__link,
    .btn .wp-element-button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-height: 48px;
      padding: 13px 18px;
      border-radius: 999px;
      border: 1px solid transparent;
      font-weight: 800;
      font-size: .92rem;
      text-align: center;
      cursor: pointer;
      gap: 8px;
      text-decoration: none;
      transition: transform .18s ease, box-shadow .18s ease, background-color .18s ease, border-color .18s ease, color .18s ease;
    }

    .btn-primary .wp-block-button__link,
    .btn-primary .wp-element-button {
      background: var(--sage-dark);
      color: #ffffff;
      border-color: var(--sage-dark);
      box-shadow: 0 12px 26px rgba(63, 80, 57, .20);
    }

    .btn-secondary .wp-block-button__link,
    .btn-secondary .wp-element-button {
      background: #ffffff;
      color: var(--ink);
      border-color: var(--line);
    }

    .btn-soft .wp-block-button__link,
    .btn-soft .wp-element-button {
      background: var(--surface-sage);
      color: var(--sage-dark);
      border-color: var(--sage-soft);
    }

    .btn:hover,
    .btn:focus-visible,
    .btn .wp-block-button__link:hover,
    .btn .wp-block-button__link:focus-visible,
    .btn .wp-element-button:hover,
    .btn .wp-element-button:focus-visible {
      transform: translateY(-1px);
    }

    .btn-primary:hover,
    .btn-primary:focus-visible,
    .btn-primary .wp-block-button__link:hover,
    .btn-primary .wp-block-button__link:focus-visible,
    .btn-primary .wp-element-button:hover,
    .btn-primary .wp-element-button:focus-visible {
      background: var(--sage);
      border-color: var(--sage);
      box-shadow: 0 16px 30px rgba(63, 80, 57, .24);
      color: #ffffff;
    }

    .btn-secondary:hover,
    .btn-secondary:focus-visible,
    .btn-secondary .wp-block-button__link:hover,
    .btn-secondary .wp-block-button__link:focus-visible,
    .btn-secondary .wp-element-button:hover,
    .btn-secondary .wp-element-button:focus-visible {
      background: #f7f4ef;
      border-color: #cfc6b8;
      color: var(--ink);
    }

    .btn-soft:hover,
    .btn-soft:focus-visible,
    .btn-soft .wp-block-button__link:hover,
    .btn-soft .wp-block-button__link:focus-visible,
    .btn-soft .wp-element-button:hover,
    .btn-soft .wp-element-button:focus-visible {
      background: #e7efe4;
      border-color: #c7d4c5;
      color: var(--sage-dark);
    }

    .btn-disabled,
    .btn-disabled:hover,
    .btn-disabled:focus-visible,
    .btn-disabled .wp-block-button__link,
    .btn-disabled .wp-element-button {
      background: var(--surface-soft);
      color: var(--muted);
      border-color: var(--line);
      box-shadow: none;
      cursor: default;
      pointer-events: none;
      text-decoration: none;
      transform: none;
    }

    .hero {
      position: relative;
      background: #ffffff;
    }

    .hero-media {
      min-height: 48vh;
      overflow: hidden;
    }

    .hero-media img {
      width: 100%;
      height: 48vh;
      min-height: 340px;
      object-fit: cover;
      object-position: center center;
    }

    .hero-content {
      width: min(var(--max), 100%);
      margin: -76px auto 0;
      padding: 0 18px 34px;
      position: relative;
      z-index: 2;
      display: grid;
      gap: 18px;
    }

    .hero-card {
      background: rgba(255, 255, 255, .96);
      border: 1px solid rgba(221, 214, 204, .9);
      border-radius: var(--radius-lg);
      box-shadow: var(--shadow);
      padding: 24px;
    }

    .eyebrow {
      color: var(--gold);
      letter-spacing: .16em;
      text-transform: uppercase;
      font-size: .72rem;
      font-weight: 900;
      margin-bottom: 14px;
    }

    .stars {
      color: var(--gold);
      letter-spacing: .32em;
      font-size: .98rem;
      margin-bottom: 10px;
    }

    h1 {
      font-family: Georgia, "Times New Roman", serif;
      font-size: clamp(3rem, 14vw, 5.6rem);
      line-height: .92;
      letter-spacing: -.06em;
      font-weight: 500;
    }

    .hero-lead {
      margin-top: 18px;
      color: var(--muted);
      font-size: 1.05rem;
      max-width: 42rem;
    }

    .hero-actions {
      margin-top: 22px;
      display: grid;
      gap: 10px;
    }

    .quick-facts {
      display: grid;
      gap: 12px;
    }

    .fact {
      background: var(--surface);
      border: 1px solid var(--line);
      border-radius: var(--radius-md);
      padding: 16px;
    }

    .fact dt,
    .fact h3 {
      color: var(--sage-dark);
      font-size: .72rem;
      letter-spacing: .14em;
      text-transform: uppercase;
      font-weight: 900;
      margin-bottom: 4px;
    }

    .fact dd,
    .fact p {
      color: var(--muted);
      font-size: .96rem;
    }

    .reviews {
      padding: 26px 18px 44px;
      background: #ffffff;
    }

    .reviews-inner {
      width: min(var(--max), 100%);
      margin: auto;
      display: grid;
      gap: 12px;
    }

    .review-intro,
    .review-card {
      border: 1px solid var(--line);
      border-radius: var(--radius-md);
      background: #ffffff;
      box-shadow: 0 14px 36px rgba(30,30,25,.09);
      padding: 20px;
    }

    .review-intro {
      background: var(--surface-sage);
      border-color: var(--sage-soft);
    }

    .review-intro h2,
    .section-title {
      font-family: Georgia, "Times New Roman", serif;
      font-weight: 500;
      letter-spacing: -.04em;
      line-height: 1;
    }

    .review-intro h2 {
      font-size: clamp(2rem, 9vw, 3rem);
    }

    .review-intro p {
      color: var(--muted);
      margin-top: 12px;
    }

    .review-platform {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 12px;
      margin-bottom: 14px;
    }

    .platform-name {
      font-weight: 900;
      letter-spacing: .12em;
      text-transform: uppercase;
      font-size: .76rem;
      color: var(--muted);
    }

    .platform-icon {
      width: 42px;
      height: 42px;
      display: grid;
      place-items: center;
      border-radius: 999px;
      background: #ffffff;
      border: 1px solid var(--line);
      box-shadow: 0 8px 18px rgba(30,30,25,.08);
      overflow: hidden;
      padding: 6px;
    }

        .platform-icon img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      display: block;
    }

    .review-score {
      font-family: Georgia, serif;
      font-size: 3rem;
      line-height: 1;
      letter-spacing: -.06em;
    }

    .review-stars {
      color: var(--gold);
      letter-spacing: .08em;
      margin: 8px 0;
    }

    .review-card p {
      color: var(--muted);
      font-size: .96rem;
    }

    .review-link {
      display: inline-flex;
      align-items: center;
      min-height: 44px;
      margin-top: 12px;
      color: var(--sage-dark);
      font-weight: 900;
      text-decoration: underline;
      text-decoration-thickness: 2px;
      text-underline-offset: 4px;
    }

    /* Bandeau « Partager mon avis » (inc-avis-google.php) : en fin de page
       Restaurant, Chambres et A propos. Volontairement plus discret qu'une
       section : un filet, un titre court, un bouton secondaire. */
    .google-review-band {
      padding: 0 18px 46px;
      background: #ffffff;
    }

    .google-review-inner {
      width: min(var(--max), 100%);
      margin: auto;
      padding-top: 30px;
      border-top: 1px solid var(--line);
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 18px;
    }

    .google-review-band h2 {
      font-family: Georgia, serif;
      font-size: 1.35rem;
      color: var(--ink);
    }

    .google-review-copy p {
      color: var(--muted);
      max-width: 40rem;
      margin-top: 8px;
    }

    .google-review-copy .google-review-signature {
      font-family: Georgia, serif;
      font-style: italic;
      color: var(--sage-dark);
    }

    @media (min-width: 760px) {
      .google-review-inner {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 32px;
      }

      .google-review-inner .btn {
        flex-shrink: 0;
      }
    }

    .section {
      padding: 58px 18px;
      background: #ffffff;
    }

    .section.alt {
      background: var(--surface-soft);
    }

    .section-inner {
      width: min(var(--max), 100%);
      margin: auto;
    }

    .section-kicker {
      color: var(--gold);
      letter-spacing: .16em;
      text-transform: uppercase;
      font-size: .72rem;
      font-weight: 900;
      margin-bottom: 12px;
    }

    .section-title {
      font-size: clamp(2.15rem, 11vw, 4.2rem);
      max-width: 900px;
    }

    .section-text {
      color: var(--muted);
      font-size: 1.03rem;
      max-width: 46rem;
      margin-top: 18px;
    }

    .story-grid,
    .cards-grid,
    .menu-grid,
    .practical-grid {
      display: grid;
      gap: 22px;
    }

    .home-cards-grid {
      margin-top: 28px;
    }

    .story-photo,
    .feature-photo {
      position: relative;
      overflow: hidden;
      border-radius: var(--radius-lg);
      min-height: 320px;
      box-shadow: var(--shadow);
      background: var(--surface-soft);
    }

    .story-photo {
      aspect-ratio: 4 / 3;
      min-height: auto;
      background: var(--surface-soft);
      padding: 0;
      display: block;
    }

    .story-photo img,
    .feature-photo img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      position: absolute;
      inset: 0;
    }

    .story-photo img {
      position: absolute;
      inset: 0;
      width: 100%;
      height: 100%;
      object-fit: contain;
      object-position: center center;
      background: var(--surface-soft);
      border-radius: 0;
    }

    .story-copy {
      align-self: center;
    }

    .quote-box {
      margin-top: 24px;
      padding: 20px;
      border-left: 4px solid var(--sage);
      background: var(--surface-sage);
      border-radius: 0 var(--radius-md) var(--radius-md) 0;
      color: var(--ink);
      font-family: Georgia, serif;
      font-size: 1.24rem;
      line-height: 1.28;
    }

    .story-cta {
      margin-top: 18px;
      min-height: 42px;
      padding: 10px 16px;
      font-size: .86rem;
      box-shadow: none;
      align-self: flex-start;
    }

    .feature-card {
      background: #ffffff;
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      overflow: hidden;
      box-shadow: 0 14px 36px rgba(30,30,25,.09);
      height: 100%;
      display: flex;
      flex-direction: column;
    }

    .feature-photo {
      min-height: 220px;
      border-radius: 0;
      box-shadow: none;
    }

    .feature-body {
      padding: 22px;
      text-align: center;
      display: flex;
      flex-direction: column;
      flex: 1 1 auto;
    }

    .feature-body h3 {
      font-family: Georgia, serif;
      font-size: 2rem;
      line-height: 1;
      font-weight: 500;
      margin-bottom: 10px;
    }

    .feature-body p {
      color: var(--muted);
      margin-bottom: 18px;
    }

    .feature-body .wp-block-buttons {
      margin-top: auto;
      justify-content: center;
    }

    .feature-body .wp-block-button {
      margin: 0;
    }

    @media (min-width: 760px) {
      .cards-grid .feature-body p {
        min-height: 6.2rem;
      }
    }

    .menu-grid {
      margin-top: 28px;
    }

    .menu-intro {
      background: var(--surface-sage);
      border: 1px solid var(--sage-soft);
      border-radius: var(--radius-lg);
      padding: 24px;
    }

    .menu-intro h3,
    .practical-card h3,
    .reservation-card h3 {
      font-family: Georgia, serif;
      font-size: 2rem;
      line-height: 1;
      font-weight: 500;
      margin-bottom: 12px;
    }

    .menu-intro p {
      color: var(--muted);
      margin-bottom: 18px;
    }

    .menu-list {
      display: grid;
      gap: 12px;
    }

    .menu-item {
      padding: 18px 0;
      border-bottom: 1px solid var(--line);
      display: grid;
      gap: 6px;
    }

    .menu-item h4 {
      font-size: 1rem;
    }

    .menu-item p {
      color: var(--muted);
      font-size: .96rem;
    }

    .price {
      color: var(--gold);
      font-weight: 900;
      font-size: 1.15rem;
    }

    .practical {
      background: #ffffff;
      padding-bottom: 92px;
    }

    .practical-grid {
      margin-top: 28px;
    }

    .practical-card,
    .reservation-card {
      background: #ffffff;
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      padding: 22px;
      box-shadow: 0 14px 36px rgba(30,30,25,.08);
    }

    .practical-card p,
    .practical-card li,
    .reservation-card p {
      color: var(--muted);
    }

    .practical-card ul {
      padding-left: 18px;
    }

    .reservation-card {
      background: var(--surface-sage);
      border-color: var(--sage-soft);
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      text-align: center;
      min-height: 100%;
      gap: 14px;
    }

    .reservation-card .hero-actions {
      margin-top: 6px;
      width: 100%;
      justify-content: center;
    }

    .mobile-bar {
      position: fixed;
      left: 10px;
      right: 10px;
      bottom: 10px;
      z-index: 90;
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 4px;
      padding: 8px;
      border-radius: 999px;
      background: rgba(255, 255, 255, .96);
      border: 1px solid var(--line);
      box-shadow: 0 16px 46px rgba(30,30,25,.18);
      backdrop-filter: blur(18px);
    }

    .mobile-bar a {
      min-height: 46px;
      display: grid;
      place-items: center;
      border-radius: 999px;
      color: var(--ink);
      font-size: .74rem;
      font-weight: 850;
      text-align: center;
    }

    .mobile-bar a:first-child {
      background: var(--sage-dark);
      color: #ffffff;
    }
    @media (max-width: 759px) {
      body.admin-bar .hero-content {
        margin-top: 0;
      }

      .brand {
        min-width: 0;
        gap: 8px;
      }


      .hero-content {
        margin-top: 0;
      }

      .hero-card {
        padding: 20px;
      }

      .mobile-bar {
        grid-template-columns: repeat(4, minmax(0, 1fr));
      }

      .mobile-bar a {
        font-size: .68rem;
        min-height: 44px;
      }
    }


    .practical-layout {
      display: grid;
      gap: 22px;
    }

    .practical-main {
      min-width: 0;
    }

    .practical-grid {
      margin-top: 28px;
      display: grid;
      gap: 0;
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      background: #ffffff;
      box-shadow: 0 14px 36px rgba(30,30,25,.08);
      overflow: hidden;
    }

    .practical-card {
      padding: 22px;
      border-bottom: 1px solid var(--line);
      box-shadow: none;
      border-radius: 0;
      border-left: 0;
      border-right: 0;
      border-top: 0;
      background: #ffffff;
    }

    .practical-card:last-child {
      border-bottom: 0;
    }

    .practical-icon {
      width: 34px;
      height: 34px;
      display: grid;
      place-items: center;
      margin-bottom: 10px;
      border-radius: 999px;
      background: var(--surface-sage);
      color: var(--sage-dark);
      font-size: 1.2rem;
    }

    .practical-card h3,
    .realistic-reservation h3 {
      font-family: Georgia, serif;
      font-weight: 500;
      line-height: 1.06;
    }

    .practical-card h3 {
      color: var(--ink);
      font-size: 1.35rem;
      margin-bottom: 12px;
    }

    .practical-card p,
    .practical-card li {
      color: var(--muted);
    }

    .practical-card ul {
      padding-left: 18px;
    }

    .practical-card a {
      text-decoration: underline;
      text-decoration-thickness: .08em;
      text-underline-offset: .18em;
    }

    .practical-link {
      margin-top: 12px;
    }

    .social-links {
      display: flex;
      gap: 10px;
      margin-top: 16px;
    }

    .social-links a {
      width: 38px;
      height: 38px;
      display: grid;
      place-items: center;
      border: 1px solid var(--line);
      border-radius: 999px;
      color: var(--sage-dark);
      font-weight: 900;
      background: #ffffff;
      text-decoration: none;
    }

    .site-footer .social-links a {
      background: transparent;
      border-color: rgba(255, 255, 255, .35);
      color: inherit;
    }

    .site-footer .social-links a:hover,
    .site-footer .social-links a:focus-visible {
      border-color: currentColor;
      background: rgba(255, 255, 255, .1);
    }

    .realistic-reservation {
      align-self: stretch;
      display: flex;
      flex-direction: column;
      justify-content: center;
      background: var(--surface-sage);
      border: 1px solid var(--sage-soft);
      box-shadow: 0 14px 36px rgba(30,30,25,.08);
    }

    .realistic-reservation h3 {
      font-size: 2rem;
      color: var(--sage-dark);
      text-align: center;
    }

    .realistic-reservation p {
      text-align: center;
    }

    @media (min-width: 760px) {
      .practical-layout {
        grid-template-columns: minmax(0, 1fr) 280px;
        align-items: stretch;
      }

      .practical-grid {
        grid-template-columns: repeat(4, 1fr);
      }

      .practical-card {
        border-bottom: 0;
        border-right: 1px solid var(--line);
      }

      .practical-card:last-child {
        border-right: 0;
      }
    }

    @media (min-width: 760px) {

      body {
        padding-bottom: 0;
      }

      .brand-logo {
        height: 52px;
      }

      /* Le filet separe le logotype de la navigation, qui sans lui parait
         accrochee au nom. */
      .brand {
        padding-right: 28px;
        border-right: 1px solid var(--line);
      }

      .main-nav {
        display: flex;
        align-items: center;
        gap: 24px;
        font-size: .9rem;
      }

      .main-nav a {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        font-weight: 700;
      }

      .header-actions {
        display: flex;
        align-items: center;
        gap: 10px;
      }

      .hero-media,
      .hero-media img {
        min-height: 500px;
      }

      .lpk-home-content .hero > .hero-content {
        margin-top: -190px !important;
        padding: 0 24px 44px !important;
        grid-template-columns: minmax(0, 1fr) 360px;
        align-items: end;
      }

      .hero-content {
        margin-top: -190px;
        padding: 0 24px 44px;
        grid-template-columns: minmax(0, 1fr) 360px;
        align-items: end;
      }

      .hero-card {
        padding: 34px;
      }

      .hero-actions {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
      }

      .quick-facts {
        grid-template-columns: 1fr;
        align-self: end;
      }

      .lpk-home-content .reviews-strip.wp-block-columns {
        grid-template-columns: 1.05fr repeat(3, 1fr);
        gap: 14px !important;
        padding-bottom: 76px;
      }

      .lpk-home-content .story-grid.wp-block-columns {
        grid-template-columns: minmax(0, 1.18fr) minmax(0, .82fr);
        gap: 56px !important;
        align-items: center;
      }

      .lpk-home-content .cards-grid.wp-block-columns {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 22px !important;
      }

      .lpk-home-content .menu-showcase.wp-block-columns {
        grid-template-columns: 260px minmax(0, 1fr);
        gap: 54px !important;
        align-items: center;
      }

      .lpk-home-content .menu-dishes.wp-block-columns {
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 26px !important;
      }

      .lpk-home-content .practical.wp-block-columns {
        grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
        gap: 34px !important;
        align-items: center;
      }

      .lpk-home-content .practical-grid.wp-block-columns {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 16px !important;
      }

      .reviews {
        padding: 24px 24px 76px;
      }

      .reviews-inner {
        grid-template-columns: 1.05fr repeat(3, 1fr);
        gap: 14px;
      }

      .section {
        padding: 92px 24px;
      }

      .story-grid {
        grid-template-columns: 1.18fr .82fr;
        gap: 56px;
        align-items: center;
      }

      .story-photo {
        min-height: auto;
      }

    .cards-grid {
      grid-template-columns: repeat(3, 1fr);
      gap: 22px;
      align-items: stretch;
    }

      .menu-grid {
        grid-template-columns: .85fr 1.15fr;
        gap: 54px;
        align-items: start;
      }

      .menu-item {
        grid-template-columns: 1fr auto;
        gap: 24px;
        align-items: start;
      }

      .practical-grid {
        grid-template-columns: 1fr 1fr 1fr 1.1fr;
        gap: 18px;
      }

    .access-page .access-facts-grid--repere {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .access-page .access-facts-grid--practical {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

      .mobile-bar {
        display: none;
      }
    }
  
    .practical-grid-main {
      grid-template-columns: 1fr;
    }

    .contact-band {
      margin-top: 18px;
      padding: 22px;
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      background: #ffffff;
      box-shadow: 0 14px 36px rgba(30,30,25,.08);
    }

    .contact-band-title {
      display: flex;
      align-items: center;
      gap: 14px;
      margin-bottom: 18px;
    }

    .contact-band-title .section-kicker {
      margin-bottom: 4px;
    }

    .contact-band-title h3 {
      font-family: Georgia, serif;
      font-size: 1.7rem;
      font-weight: 500;
      line-height: 1.06;
      color: var(--ink);
    }

    .contact-band-actions {
      display: grid;
      gap: 12px;
    }

    .contact-action {
      min-height: 58px;
      display: flex;
      align-items: center;
      gap: 14px;
      padding: 12px 14px;
      border: 1px solid var(--line);
      border-radius: 18px;
      background: var(--surface-soft);
      color: var(--ink);
      text-decoration: none;
    }

    .contact-action > span:first-child {
      width: 36px;
      height: 36px;
      display: grid;
      place-items: center;
      border-radius: 999px;
      background: var(--surface-sage);
      color: var(--sage-dark);
      flex: 0 0 auto;
    }

    .contact-action strong,
    .contact-action small {
      display: block;
    }

    .contact-action strong {
      font-size: .98rem;
      color: var(--ink);
    }

    .contact-action small {
      margin-top: 2px;
      color: var(--muted);
      font-size: .82rem;
    }

    @media (min-width: 760px) {
      .practical-grid-main {
        grid-template-columns: repeat(3, 1fr);
      }

      .contact-band {
        padding: 26px;
      }

      .contact-band-actions {
        grid-template-columns: 1fr 1fr auto;
        align-items: center;
      }

      .contact-band .social-links {
        margin-top: 0;
        justify-content: flex-end;
      }
    }

  
    .menu-showcase {
      background: #ffffff;
      border-top: 1px solid var(--line);
      border-bottom: 1px solid var(--line);
    }

    .menu-showcase-grid {
      display: grid;
      gap: 34px;
      align-items: start;
    }

    .menu-showcase-intro .section-title {
      margin-top: 0;
    }

    .menu-showcase-intro {
      display: flex;
      flex-direction: column;
      justify-content: center;
    }

    .decor-line {
      width: 160px;
      height: 24px;
      display: flex;
      align-items: center;
      margin: 18px 0;
      color: var(--gold);
    }

    .decor-line::before,
    .decor-line::after {
      content: "";
      height: 1px;
      flex: 1;
      background: var(--gold-soft);
    }

    .decor-line span {
      width: 34px;
      height: 24px;
      display: grid;
      place-items: center;
    }

    .decor-line span::before {
      content: "❧";
      color: var(--gold);
      font-size: 1rem;
      line-height: 1;
    }

    .menu-showcase-intro .section-text {
      max-width: 320px;
      margin-bottom: 22px;
    }

    .menu-dishes {
      display: grid;
      gap: 18px;
      align-items: start;
    }

    .dish-card {
      padding: 22px 18px;
      border: 1px solid var(--line);
      border-radius: var(--radius-md);
      background: #ffffff;
      text-align: center;
      box-shadow: 0 12px 30px rgba(30,30,25,.06);
    }

    .dish-dot {
      display: block;
      color: var(--gold);
      font-size: 1.5rem;
      line-height: 1;
      margin-bottom: 12px;
    }

    .dish-card h3 {
      font-family: Georgia, serif;
      font-weight: 500;
      line-height: 1.08;
      font-size: 1.45rem;
      color: var(--ink);
      margin-bottom: 10px;
    }

    .dish-card p {
      min-height: 3.1em;
      color: var(--muted);
      font-size: .98rem;
      margin: 0 auto 14px;
      max-width: 230px;
    }

    .dish-card strong {
      display: block;
      font-family: Georgia, serif;
      font-weight: 500;
      font-size: 2rem;
      line-height: 1;
      color: var(--gold);
    }

    @media (min-width: 760px) {
      .menu-showcase-grid {
        grid-template-columns: 260px 1fr;
        gap: 54px;
      }

      .menu-showcase-intro {
        align-self: center;
      }

      .menu-dishes {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 24px;
      }

      .dish-card {
        border: 0;
        box-shadow: none;
        padding: 8px 10px;
        background: transparent;
      }
    }

    /* Tableaux du contenu editorial : le theme n'en stylait aucun, et une page
       comme /hotel-pres-broceliande en publie un de distances. Le conteneur
       defile horizontalement plutot que de deborder la page sur mobile. */
    .entry-content table {
      width: 100%;
      border-collapse: collapse;
      margin: 20px 0;
      font-size: .95rem;
    }

    .entry-content thead th {
      text-align: left;
      font-weight: 800;
      color: var(--sage-dark);
      border-bottom: 2px solid var(--line);
    }

    .entry-content th,
    .entry-content td {
      padding: 10px 12px;
      border-bottom: 1px solid var(--line);
      vertical-align: top;
    }

    .entry-content tbody tr:last-child th,
    .entry-content tbody tr:last-child td {
      border-bottom: 0;
    }

    .entry-content td + td {
      white-space: nowrap;
      color: var(--muted);
    }

    .language-switcher {
      position: relative;
      display: inline-block;
      flex: 0 0 auto;
    }

    /* Bouton du menu deroulant : c'est un <summary>, dont le triangle natif
       est remplace par le chevron ci-dessous. */
    .language-toggle {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      min-height: 40px;
      padding: 0 12px;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: #ffffff;
      font-size: .82rem;
      font-weight: 800;
      letter-spacing: .05em;
      cursor: pointer;
      list-style: none;
      user-select: none;
    }

    .language-toggle::-webkit-details-marker {
      display: none;
    }

    .language-toggle:hover {
      border-color: var(--sage-dark);
    }

    .lang-caret {
      width: 0;
      height: 0;
      border-left: 4px solid transparent;
      border-right: 4px solid transparent;
      border-top: 5px solid currentColor;
      opacity: .55;
      transition: transform .15s ease;
    }

    [open] > .language-toggle .lang-caret {
      transform: rotate(180deg);
    }

    /* Le lisere evite que la bande blanche du drapeau francais se fonde dans
       le fond, lui aussi blanc. */
    .lang-flag {
      display: block;
      flex: 0 0 auto;
      border-radius: 2px;
      box-shadow: 0 0 0 1px rgba(29, 29, 27, .14);
    }

    .language-menu {
      margin: 0;
      padding: 0;
      list-style: none;
    }

    details.language-switcher > .language-menu {
      position: absolute;
      top: calc(100% + 6px);
      right: 0;
      z-index: 90;
      min-width: 200px;
      padding: 6px;
      background: #ffffff;
      border: 1px solid var(--line);
      border-radius: var(--radius-sm);
      box-shadow: 0 14px 32px rgba(63, 80, 57, .18);
    }

    .lang-item {
      display: flex;
      align-items: center;
      gap: 9px;
      min-height: 40px;
      padding: 0 10px;
      border-radius: 8px;
      font-size: .88rem;
      color: inherit;
      text-decoration: none;
      white-space: nowrap;
    }

    a.lang-item:hover,
    a.lang-item:focus-visible {
      background: var(--sage-soft);
    }

    .lang-item.is-current {
      font-weight: 800;
    }

    .lang-check {
      margin-left: auto;
      color: var(--sage-dark);
      font-weight: 700;
    }

    /* Page non traduite : le lien renvoie a l'accueil de sa langue. */
    .lang-note {
      font-size: .74rem;
      font-weight: 400;
      color: var(--muted);
    }

    /* Dans le panneau mobile, deja ouvert, les langues sont listees a plat :
       les regles ci-dessous neutralisent la pastille verte que
       .mobile-menu-languages applique a tout lien qu'il contient. */
    .mobile-menu-languages .language-menu {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
      gap: 8px;
    }

    /* Les proprietes de disposition sont redonnees ici en entier : la regle
       .mobile-menu-languages a, plus specifique que .lang-item, imposait
       display: grid et place-items: center, ce qui empilait le drapeau
       au-dessus du nom de langue au lieu de les mettre cote a cote. */
    .mobile-menu-languages .language-menu .lang-item {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      min-width: 0;
      min-height: 44px;
      padding: 0 12px;
      border-radius: 999px;
      background: #ffffff;
      border: 1px solid var(--line);
      color: inherit;
      font-size: .85rem;
      font-weight: 700;
      letter-spacing: normal;
      text-align: left;
    }

    .mobile-menu-languages .language-menu .lang-item.is-current {
      background: var(--sage-soft);
      border-color: var(--sage-dark);
      font-weight: 800;
    }

    /* La pastille est centree : la coche ne doit pas etre repoussee au bord. */
    .mobile-menu-languages .language-menu .lang-check {
      margin-left: 0;
    }

    @media (max-width: 759px) {
      .header-actions {
        display: none !important;
      }

      .main-nav {
        display: none !important;
      }

      .burger-button {
      width: 44px;
      height: 44px;
      display: none;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 5px;
      padding: 0;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: #ffffff;
      color: var(--ink);
      box-shadow: 0 8px 20px rgba(30,30,25,.08);
      cursor: pointer;
      flex: 0 0 auto;
    }

      .nav-shell {
        position: relative;
      }
    }

    @media (min-width: 760px) {
      .burger-button,
      .mobile-menu {
        display: none !important;
      }
    }

  
    .platform-icon.booking-icon {
      background: #003b95;
      color: #ffffff;
      border-color: #003b95;
      font-family: Arial, Helvetica, sans-serif;
      font-size: 1rem;
      font-weight: 900;
      letter-spacing: -.04em;
      padding: 0;
    }

  
    .platform-icon.tripadvisor-icon {
      background: #00aa6c;
      color: #ffffff;
      border-color: #00aa6c;
      padding: 0;
      position: relative;
    }

    .tripadvisor-icon .owl-eyes {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 4px;
    }

    .tripadvisor-icon .owl-eyes span {
      width: 11px;
      height: 11px;
      display: block;
      border-radius: 999px;
      background: #ffffff;
      position: relative;
    }

    .tripadvisor-icon .owl-eyes span::after {
      content: "";
      position: absolute;
      inset: 3px;
      border-radius: 999px;
      background: #1d1d1b;
    }

    .tripadvisor-icon::after {
      content: "";
      position: absolute;
      bottom: 9px;
      left: 50%;
      width: 8px;
      height: 5px;
      border-radius: 0 0 999px 999px;
      background: #ffffff;
      transform: translateX(-50%);
    }

  
    @media (max-width: 759px) {
      .main-nav,
      .header-actions {
        display: none !important;
      }

      .burger-button {
        display: flex !important;
        margin-left: auto;
      }

      .nav-shell {
        position: relative;
      }
    }

    @media (min-width: 760px) {
      .burger-button,
      .mobile-menu {
        display: none !important;
      }
    }

  
    @media (max-width: 759px) {
      .mobile-bar {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
      }

      .mobile-bar a {
        font-size: .72rem;
        line-height: 1.15;
        padding: 0 6px;
      }
    }

  
    .burger-button {
      width: 46px !important;
      height: 46px !important;
      padding: 0 !important;
      border: 1px solid var(--line) !important;
      border-radius: 999px !important;
      background: #ffffff !important;
      box-shadow: 0 8px 20px rgba(30,30,25,.10) !important;
      align-items: center !important;
      justify-content: center !important;
      flex: 0 0 auto !important;
      cursor: pointer !important;
    }

    .burger-icon {
      width: 24px !important;
      height: 24px !important;
      display: block !important;
    }

    .burger-icon path {
      fill: none !important;
      stroke: var(--sage-dark) !important;
      stroke-width: 2.5 !important;
      stroke-linecap: round !important;
    }

    @media (max-width: 759px) {
      .main-nav,
      .header-actions {
        display: none !important;
      }

      .burger-button {
        display: inline-flex !important;
        margin-left: auto !important;
      }

      .mobile-bar {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
      }
    }

    @media (min-width: 760px) {
      .burger-button,
      .mobile-menu {
        display: none !important;
      }
    }

    .platform-icon svg {
      width: 100%;
      height: 100%;
      display: block;
    }

    .platform-icon.tripadvisor-icon,
    .platform-icon.booking-icon {
      background: transparent;
      border: 0;
      box-shadow: 0 10px 24px rgba(30,30,25,.14);
      padding: 0;
    }

  
    .platform-icon.tripadvisor-real-icon {
      width: 52px;
      height: 52px;
      border-radius: 999px;
      background: #00aa6c;
      border: 0;
      padding: 7px;
      overflow: hidden;
      box-shadow: 0 10px 24px rgba(30,30,25,.14);
    }

    .platform-icon.tripadvisor-real-icon img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      display: block;
      filter: none;
    }

    .reviews-strip {
      padding: 22px 18px 46px;
      background: #ffffff;
    }

    .reviews-strip-inner {
      width: min(var(--max), 100%);
      margin: auto;
      display: grid;
      gap: 0;
      border: 1px solid var(--line);
      border-radius: 24px;
      background: #ffffff;
      box-shadow: 0 18px 44px rgba(30,30,25,.10);
      overflow: hidden;
    }

    .review-platform-card {
      padding: 22px;
      border: 0;
      border-bottom: 1px solid var(--line);
      border-radius: 0;
      box-shadow: none;
      background: #ffffff;
    }

    .review-platform-card:last-child {
      border-bottom: 0;
    }

    .review-platform-line {
      display: grid;
      grid-template-columns: 52px 1fr;
      gap: 14px;
      align-items: center;
      margin-bottom: 14px;
    }

    .review-platform-line h3 {
      font-family: Georgia, "Times New Roman", serif;
      font-size: 1.28rem;
      font-weight: 500;
      line-height: 1.1;
      color: var(--ink);
      margin: 0 0 4px;
    }

    .review-rating-line {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
    }

    .review-rating-line .review-score {
      font-family: Georgia, serif;
      font-size: 1.32rem;
      line-height: 1;
      letter-spacing: -.03em;
      color: var(--ink);
    }

    .review-rating-line .review-stars {
      color: var(--gold);
      letter-spacing: .06em;
      margin: 0;
      font-size: .95rem;
    }

    .review-count {
      color: var(--muted);
      font-size: .82rem;
      white-space: nowrap;
    }

    .review-quote {
      color: var(--muted);
      font-size: .94rem;
      line-height: 1.5;
      margin: 0 0 12px;
    }

    .reviews-strip .platform-icon {
      width: 48px;
      height: 48px;
      display: grid;
      place-items: center;
      border-radius: 999px;
      background: #ffffff;
      border: 0;
      box-shadow: 0 10px 24px rgba(30,30,25,.10);
      padding: 0;
      overflow: hidden;
    }

    .reviews-strip .platform-icon img,
    .reviews-strip .platform-icon svg {
      width: 100%;
      height: 100%;
      display: block;
      object-fit: contain;
    }

    .reviews-strip .google-icon {
      box-shadow: none;
      padding: 2px;
    }

    .reviews-strip .tripadvisor-real-icon {
      background: #34e0a1;
      padding: 7px;
    }

    .reviews-strip .booking-icon {
      background: transparent;
    }

    @media (min-width: 760px) {
      .reviews-strip {
        padding: 24px 24px 62px;
      }

      .reviews-strip-inner {
        grid-template-columns: repeat(3, 1fr);
      }

      .review-platform-card {
        border-bottom: 0;
        border-right: 1px solid var(--line);
        padding: 26px;
      }

      .review-platform-card:last-child {
        border-right: 0;
      }
    }

  
    .carousel-btn.pause {
      width: auto;
      min-width: 78px;
      padding: 0 14px;
      font-size: .84rem;
      font-weight: 900;
      letter-spacing: .02em;
    }

    .carousel-btn.pause[aria-pressed="true"] {
      background: var(--sage-dark);
      color: #ffffff;
      border-color: var(--sage-dark);
    }

    @media (max-width: 759px) {
      .carousel-controls {
        flex-wrap: wrap;
      }

      .carousel-btn.pause {
        min-width: 92px;
      }
    }

    .site-footer {
      background: var(--sage-dark);
      color: rgba(255,255,255,.86);
      padding: 56px 18px 96px;
    }

    .footer-inner {
      width: min(var(--max), 100%);
      margin: auto;
      display: grid;
      gap: 30px;
    }

    .footer-logo {
      color: #ffffff;
      margin-bottom: 16px;
    }

    /* Le fichier est un PNG detoure, mais l'embleme est dessine en vert fonce
       et le pied de page est vert fonce : pose a meme le fond, la moitie du
       trace disparaitrait. Il est donc presente sur un disque clair, qui lui
       rend le contraste pour lequel il a ete dessine. Le detourage sert ici a
       maitriser la couleur de ce disque plutot qu'a supprimer un fond.
       Le retrait interieur evite que l'anneau ne touche le bord du disque. */
    .footer-emblem {
      width: 150px;
      height: 150px;
      display: block;
      padding: 8px;
      border-radius: 50%;
      background: var(--surface-soft);
      object-fit: contain;
      box-shadow: 0 10px 28px rgba(0, 0, 0, .22);
    }

    @media (max-width: 759px) {
      .footer-emblem {
        width: 124px;
        height: 124px;
      }
    }

    .site-footer p,
    .site-footer a {
      color: rgba(255,255,255,.78);
    }

    .footer-brand p {
      max-width: 420px;
    }

    .site-footer h2 {
      font-family: Georgia, "Times New Roman", serif;
      font-size: 1.35rem;
      font-weight: 500;
      margin-bottom: 14px;
      color: #ffffff;
    }

    .footer-nav,
    .footer-contact,
    .footer-booking {
      display: grid;
      gap: 9px;
      align-content: start;
    }

    .footer-nav-list {
      display: grid;
      gap: 9px;
    }

    .site-footer a {
      text-decoration: underline;
      text-decoration-thickness: .08em;
      text-underline-offset: .18em;
    }

    .site-footer a:hover {
      color: #ffffff;
      text-decoration-thickness: .11em;
      text-underline-offset: .2em;
    }

    .footer-booking .btn {
      width: fit-content;
      min-width: 190px;
    }

    .site-footer .btn-secondary {
      background: transparent;
      color: #ffffff !important;
      border: 1px solid rgba(255,255,255,.35);
    }

    .site-footer .btn-secondary:hover,
    .site-footer .btn-secondary:focus-visible {
      background: rgba(255,255,255,.12);
      border-color: rgba(255,255,255,.55);
      color: #ffffff !important;
    }

    .site-footer .btn-primary {
      background: #ffffff;
      color: var(--sage-dark) !important;
      border: 1px solid #ffffff;
    }

    .footer-bottom {
      width: min(var(--max), 100%);
      margin: 36px auto 0;
      padding-top: 22px;
      border-top: 1px solid rgba(255,255,255,.18);
      display: grid;
      gap: 14px;
      color: rgba(255,255,255,.68);
      font-size: .9rem;
    }

    .footer-bottom nav {
      display: flex;
      flex-wrap: wrap;
      gap: 16px;
    }

    @media (min-width: 760px) {
      .site-footer {
        padding: 64px 24px 34px;
      }

      .footer-inner {
        grid-template-columns: 1.4fr .8fr 1fr 1fr;
        align-items: start;
      }

      .footer-bottom {
        grid-template-columns: 1fr auto;
        align-items: center;
      }
    }

  
    .access-band {
      margin-top: 18px;
      padding: 22px;
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      background: #ffffff;
      box-shadow: 0 14px 36px rgba(30,30,25,.08);
    }

    .access-band-title {
      display: flex;
      align-items: center;
      gap: 14px;
      margin-bottom: 18px;
    }

    .access-band-title h3 {
      font-family: Georgia, serif;
      font-size: 1.7rem;
      font-weight: 500;
      line-height: 1.06;
      color: var(--ink);
    }

    .access-grid {
      display: grid;
      gap: 12px;
    }

    .access-band-body {
      display: grid;
      gap: 18px;
    }

    .access-item {
      padding: 14px;
      border: 1px solid var(--line);
      border-radius: 18px;
      background: var(--surface-soft);
    }

    .access-item strong,
    .access-item span {
      display: block;
    }

    .access-item strong {
      color: var(--ink);
      margin-bottom: 4px;
    }

    .access-item span {
      color: var(--muted);
      font-size: .92rem;
      line-height: 1.45;
    }

    @media (min-width: 760px) {
      .access-band {
        padding: 26px;
      }

      .access-grid {
        grid-template-columns: repeat(2, 1fr);
      }

    }


    .review-date {
      display: block;
      margin-top: 8px;
      color: var(--muted);
      font-size: .78rem;
      font-weight: 800;
      letter-spacing: .04em;
      text-transform: uppercase;
    }

    .commitment-strip {
      margin-top: 24px;
      display: grid;
      gap: 12px;
    }

    .commitment-card {
      display: grid;
      grid-template-columns: 42px 1fr;
      gap: 14px;
      padding: 18px;
      border: 1px solid var(--line);
      border-radius: 20px;
      background: #ffffff;
      box-shadow: 0 12px 30px rgba(30,30,25,.06);
    }

    .commitment-icon {
      width: 42px;
      height: 42px;
      display: grid;
      place-items: center;
      border-radius: 999px;
      background: var(--surface-sage);
      color: var(--sage-dark);
      font-weight: 900;
    }

    .commitment-card h3 {
      font-family: Georgia, "Times New Roman", serif;
      font-size: 1.24rem;
      font-weight: 500;
      line-height: 1.1;
      margin-bottom: 6px;
      color: var(--ink);
    }

    .commitment-card p {
      margin: 0;
      color: var(--muted);
      font-size: .94rem;
      line-height: 1.5;
    }

    @media (min-width: 760px) {
      .commitment-strip {
        grid-template-columns: repeat(3, 1fr);
      }
    }

  
    .booking-info-band {
      margin-top: 18px;
      padding: 22px;
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      background: #ffffff;
      box-shadow: 0 14px 36px rgba(30,30,25,.08);
    }

    .booking-info-title {
      display: flex;
      align-items: center;
      gap: 14px;
      margin-bottom: 18px;
    }

    .booking-info-title h3 {
      font-family: Georgia, serif;
      font-size: 1.7rem;
      font-weight: 500;
      line-height: 1.06;
      color: var(--ink);
    }

    .booking-info-grid {
      display: grid;
      gap: 12px;
    }

    .booking-info-item {
      padding: 14px;
      border: 1px solid var(--line);
      border-radius: 18px;
      background: var(--surface-soft);
    }

    .booking-info-item strong,
    .booking-info-item span {
      display: block;
    }

    .booking-info-item strong {
      color: var(--ink);
      margin-bottom: 4px;
    }

    .booking-info-item span {
      color: var(--muted);
      font-size: .92rem;
      line-height: 1.45;
    }

    @media (min-width: 760px) {
      .booking-info-band {
        padding: 26px;
      }

      .booking-info-grid {
        grid-template-columns: repeat(3, 1fr);
      }
    }

  
    .cookie-consent {
      position: fixed;
      left: 16px;
      right: 16px;
      bottom: 86px;
      z-index: 220;
      display: none;
    }

    .cookie-consent[hidden] {
      display: none;
    }

    .cookie-consent-panel {
      display: grid;
      gap: 10px;
      margin: 14px 0 4px;
      padding: 14px;
      border: 1px solid var(--line);
      border-radius: var(--radius-md);
      background: var(--surface-soft);
    }

    .cookie-consent-choice {
      margin: 0;
      font-size: .92rem;
    }

    .cookie-consent-choice label {
      display: flex;
      gap: 10px;
      align-items: flex-start;
      cursor: pointer;
    }

    .cookie-consent-choice input[disabled] {
      cursor: default;
    }

    .cookie-consent.is-visible {
      display: block;
    }

    .cookie-consent-content {
      width: min(760px, 100%);
      margin: 0 auto;
      display: grid;
      gap: 14px;
      padding: 18px;
      border: 1px solid var(--line);
      border-radius: 24px;
      background: rgba(255,255,255,.96);
      box-shadow: 0 18px 54px rgba(30,30,25,.18);
      backdrop-filter: blur(16px);
    }

    .cookie-consent p {
      margin: 0;
      color: var(--muted);
      font-size: .94rem;
      line-height: 1.45;
    }

    .cookie-consent-actions {
      display: grid;
      gap: 8px;
    }

    .cookie-consent button {
      min-height: 44px;
      cursor: pointer;
    }

    @media (min-width: 760px) {
      .cookie-consent {
        bottom: 24px;
      }

      .cookie-consent-content {
        grid-template-columns: 1fr auto;
        align-items: center;
      }

      .cookie-consent-actions {
        display: flex;
        align-items: center;
      }
    }

  
    .faq-section {
      background: #ffffff;
      border-top: 1px solid var(--line);
    }

    .faq-list {
      margin-top: 28px;
      display: grid;
      gap: 10px;
    }

    .faq-list details {
      border: 1px solid var(--line);
      border-radius: 18px;
      background: #ffffff;
      box-shadow: 0 10px 26px rgba(30,30,25,.05);
      overflow: hidden;
    }

    .faq-list details:focus-within {
      border-color: var(--sage-dark);
      box-shadow: 0 0 0 4px #ffffff, 0 0 0 8px rgba(63, 80, 57, .34), 0 16px 36px rgba(30,30,25,.12);
    }

    .faq-list summary {
      min-height: 56px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 18px;
      padding: 16px 18px;
      color: var(--ink);
      font-weight: 900;
      cursor: pointer;
      list-style: none;
      transition: background-color .16s ease, color .16s ease;
    }

    .faq-list summary::-webkit-details-marker {
      display: none;
    }

    .faq-list summary::after {
      content: "+";
      width: 32px;
      height: 32px;
      display: grid;
      place-items: center;
      flex: 0 0 auto;
      border-radius: 999px;
      background: var(--surface-sage);
      color: var(--sage-dark);
      font-weight: 900;
      border: 1px solid var(--sage-soft);
    }

    .faq-list details[open] summary::after {
      content: "–";
      background: var(--sage-dark);
      color: #ffffff;
    }

    .faq-list summary:hover,
    .faq-list summary:focus-visible {
      background: var(--surface-sage);
      color: var(--sage-dark);
    }

    .faq-list summary:focus-visible {
      outline: 0;
    }

    .faq-list summary:focus-visible::after {
      background: var(--sage-dark);
      color: #ffffff;
      border-color: var(--sage-dark);
    }

    .faq-list p {
      margin: 0;
      padding: 0 18px 18px;
      color: var(--muted);
      line-height: 1.55;
    }

    @media (min-width: 760px) {
      .faq-list {
        grid-template-columns: repeat(2, 1fr);
        gap: 14px;
      }

      .faq-list details {
        align-self: start;
      }
    }

  
    .mobile-menu-backdrop {
      position: fixed;
      inset: var(--admin-bar-offset) 0 0 0;
      z-index: 130;
      background: rgba(28, 24, 19, .38);
      backdrop-filter: blur(4px);
    }

    .mobile-menu {
      position: fixed;
      inset: var(--admin-bar-offset) 0 0 auto;
      z-index: 150;
      width: min(88vw, 380px);
      height: calc(100dvh - var(--admin-bar-offset));
      background: #ffffff;
      box-shadow: -18px 0 48px rgba(30,30,25,.18);
      overflow-y: auto;
    }

    .mobile-menu-panel {
      min-height: 100%;
      display: flex;
      flex-direction: column;
      padding: 18px;
      gap: 18px;
    }

    .mobile-menu-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 14px;
      padding-bottom: 14px;
      border-bottom: 1px solid var(--line);
    }

    .mobile-menu-title {
      font-family: Georgia, "Times New Roman", serif;
      font-size: 1.6rem;
      line-height: 1;
      color: var(--ink);
    }

    .mobile-menu-close {
      width: 44px;
      height: 44px;
      display: grid;
      place-items: center;
      border: 1px solid var(--line);
      border-radius: 999px;
      background: #ffffff;
      color: var(--sage-dark);
      font-size: 1.8rem;
      line-height: 1;
      cursor: pointer;
    }

    .mobile-menu-links {
      display: grid;
      gap: 4px;
    }

    .mobile-menu-links .mobile-menu-list {
      display: grid;
      gap: 4px;
    }

    .mobile-menu-links a {
      min-height: 52px;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 14px;
      border-radius: 16px;
      color: var(--ink);
      font-size: 1.05rem;
      font-weight: 850;
      text-decoration: none;
    }

    .main-nav a,
    .mobile-menu-links a {
      text-decoration: none;
    }

    .mobile-menu-links a::after {
      content: "›";
      color: var(--sage-dark);
      font-size: 1.4rem;
      line-height: 1;
    }

    .mobile-menu-links a:hover,
    .mobile-menu-links a:focus-visible {
      background: var(--surface-sage);
      color: var(--sage-dark);
      outline: none;
    }

    .mobile-menu-languages {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      gap: 10px;
      padding: 14px;
      border: 1px solid var(--line);
      border-radius: 18px;
      background: var(--surface-soft);
      margin-top: auto;
    }

    /* Enfant direct uniquement : ce selecteur atteignait aussi .lang-name et
       .lang-note dans les pastilles, qui heritaient de la couleur du libelle. */
    .mobile-menu-languages > span {
      color: var(--muted);
      font-weight: 800;
    }

    .mobile-menu-languages a {
      min-width: 44px;
      min-height: 38px;
      display: grid;
      place-items: center;
      border-radius: 999px;
      background: var(--sage-dark);
      color: #ffffff;
      font-size: .78rem;
      font-weight: 950;
      letter-spacing: .06em;
      text-decoration: none;
    }

    .mobile-menu-actions {
      display: grid;
      grid-template-columns: 1fr;
      gap: 10px;
    }

    .mobile-menu-actions .btn {
      width: 100%;
      min-height: 48px;
      justify-content: center;
    }

    .hotel-hero {
      width: min(var(--max), 100%);
      margin: 0 auto;
      padding: 72px 18px 56px;
      display: grid;
      gap: 28px;
      align-items: center;
    }

    .hotel-hero-media {
      position: relative;
      overflow: hidden;
      border-radius: var(--radius-lg);
      background: var(--surface-soft);
      box-shadow: var(--shadow);
      aspect-ratio: 4 / 3;
    }

    .hotel-hero-media img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .hotel-hero-copy p:not(.section-kicker) {
      max-width: 48rem;
      color: var(--muted);
      font-size: 1.05rem;
      margin-top: 18px;
    }

    .hotel-hero h1 {
      max-width: 820px;
      font-size: clamp(2.65rem, 8vw, 4.65rem);
      letter-spacing: -.045em;
    }

    .hotel-after-hero {
      padding: 0 18px 56px;
    }

    /* Chapo sous le hero de /chambres, /restaurant et /carte : plus de carte
       autour, une colonne de lecture alignee sur le reste de la page. La carte
       s'etendait sur les 1180px de la section, et son plafond de 74rem ne
       plafonnait rien : les lignes atteignaient 130 caracteres. */
    .hotel-after-hero-card {
      display: grid;
      gap: 18px;
      max-width: 580px;
      margin-inline: auto;
    }

    .hotel-after-hero-card > * {
      margin: 0;
    }

    .hotel-after-hero-card p {
      color: var(--muted);
      font-size: clamp(1.04rem, 1.8vw, 1.22rem);
      line-height: 1.7;
    }

    @media (min-width: 760px) {
      .hotel-after-hero-card {
        max-width: 660px;
      }
    }

    .page-template--standard .page-standard-hero--text-only {
      grid-template-columns: 1fr;
    }

    .page-template--standard .page-standard-hero--text-only .hotel-hero-copy {
      max-width: 920px;
    }

    .page-standard-content-section {
      background:
        linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,.96)),
        linear-gradient(135deg, rgba(117,87,31,.05), rgba(107,126,95,.04));
    }

    /* Pas de carte autour du corps de l'article : une colonne de lecture
       centree, posee sur le fond de la section. Une carte surelevee sert a
       detacher un encart d'une page ; enveloppant l'article entier, elle ne
       signalait plus rien et sa largeur ne pouvait qu'entrer en conflit avec
       celle du texte. C'est donc cette largeur qui fixe la mesure : 580px
       donnent environ 70 caracteres par ligne. Les 18px lateraux de .section
       tiennent lieu de marge sur mobile. */
    .page-standard-content-panel {
      margin-top: 28px;
      width: 100%;
      max-width: 580px;
      margin-inline: auto;
    }

    /* Sur grand ecran la colonne s'elargit un peu : 660px, soit environ 78
       caracteres par ligne. L'interligne genereux (1.78) tient cette longueur ;
       au-dela, l'oeil perd la ligne suivante en revenant a la marge. */
    @media (min-width: 760px) {
      .page-standard-content-panel {
        max-width: 660px;
      }
    }

    .page-standard-content-panel .entry-content {
      display: grid;
      gap: 1rem;
      font-size: 1.04rem;
      line-height: 1.78;
      color: var(--muted);
    }

    .page-standard-content-panel .entry-content > :first-child {
      margin-top: 0;
    }

    .page-standard-content-panel .entry-content > :last-child {
      margin-bottom: 0;
    }

    .page-standard-content-panel .entry-content h2,
    .page-standard-content-panel .entry-content h3 {
      color: var(--ink);
      font-family: Georgia, "Times New Roman", serif;
      line-height: 1.04;
      letter-spacing: -.03em;
      margin-top: 1.2rem;
      margin-bottom: .1rem;
    }

    .page-standard-content-panel .entry-content h2 {
      font-size: clamp(1.7rem, 4.8vw, 2.65rem);
    }

    .page-standard-content-panel .entry-content h3 {
      font-size: clamp(1.35rem, 3vw, 1.7rem);
    }

    .page-standard-content-panel .entry-content p {
      color: var(--muted);
      margin: 0;
    }

    .page-standard-content-panel .entry-content ul,
    .page-standard-content-panel .entry-content ol {
      margin: .35rem 0 0;
      padding-left: 1.2rem;
      display: grid;
      gap: .55rem;
    }

    .page-standard-content-panel .entry-content li {
      color: var(--muted);
    }

    .page-standard-content-panel .entry-content li::marker {
      color: var(--gold);
      font-weight: 800;
    }

    .page-standard-content-panel .entry-content a {
      color: var(--sage-dark);
      font-weight: 700;
      text-decoration: underline;
      text-decoration-thickness: 1.5px;
      text-underline-offset: 3px;
    }

    .page-standard-content-panel .entry-content blockquote {
      margin: 1.4rem 0 0;
      padding: 20px 22px;
      border-left: 4px solid var(--gold);
      background: rgba(117, 87, 31, .05);
      border-radius: 0 18px 18px 0;
      color: var(--ink);
      font-size: 1.06rem;
      line-height: 1.65;
    }

    /* Un media colle dans l'editeur arrive avec ses dimensions d'origine : la
       video Tebeo fait 540px de large. Les enfants d'une grille refusent par
       defaut de descendre sous leur taille intrinseque, donc un seul embed
       elargissait toute la page et faisait defiler l'article horizontalement
       sur telephone. min-width: 0 leve ce plancher, le reste ramene chaque
       media dans la colonne. */
    .page-standard-content-panel .entry-content > * {
      min-width: 0;
    }

    .page-standard-content-panel .entry-content :is(img, video, iframe, embed, object) {
      max-width: 100%;
    }

    .page-standard-content-panel .entry-content img {
      border-radius: 22px;
      box-shadow: 0 14px 36px rgba(30,30,25,.08);
      height: auto;
    }

    /* Les lecteurs video sont donnes en 16/9 : en imposant le rapport, la
       hauteur suit la largeur reduite au lieu de laisser des bandes noires. */
    .page-standard-content-panel .entry-content iframe {
      width: 100%;
      aspect-ratio: 16 / 9;
      height: auto;
      border: 0;
      border-radius: 22px;
    }

    .page-standard-content-panel .entry-content .wp-block-image,
    .page-standard-content-panel .entry-content .wp-block-buttons,
    .page-standard-content-panel .entry-content .wp-block-columns {
      max-width: 100%;
    }

    .page-standard-stack {
      display: grid;
      gap: 18px;
      margin-top: 28px;
    }

    .page-standard-block {
      display: grid;
      gap: 18px;
      padding: 18px;
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      background: #ffffff;
      box-shadow: 0 14px 36px rgba(30,30,25,.08);
    }

    .page-standard-block-media {
      overflow: hidden;
      border-radius: var(--radius-md);
      background: var(--surface-soft);
      aspect-ratio: 4 / 3;
    }

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

    .page-standard-block-copy h3 {
      font-family: Georgia, serif;
      font-size: clamp(1.55rem, 4vw, 2.1rem);
      line-height: 1.05;
      font-weight: 500;
      margin-bottom: 12px;
    }

    .page-standard-block-copy .entry-content > :first-child {
      margin-top: 0;
    }

    .page-standard-block-copy p,
    .page-standard-block-copy li {
      color: var(--muted);
    }

    .page-standard-block-actions {
      margin-top: 18px;
    }

    .access-page .access-hero {
      width: min(var(--max), 100%);
      margin: 0 auto;
    }

    .access-page .access-hero .hotel-hero-media img {
      object-position: left center;
    }

    .access-page .access-band-visual {
      overflow: hidden;
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      background: var(--surface-soft);
      box-shadow: var(--shadow);
      margin-top: 18px;
    }

    .access-page .access-band-visual img {
      display: block;
      width: 100%;
      height: auto;
      object-fit: cover;
    }

    .access-band-body {
      display: grid;
      gap: 18px;
    }

    .access-band-map {
      margin-top: 18px;
      margin-inline: auto;
      overflow: hidden;
      border: 1px solid var(--line);
      border-radius: 18px;
      background: #ffffff;
      aspect-ratio: 1 / 1;
      width: 100%;
    }

    .access-band-map iframe {
      display: block;
      width: 100%;
      height: 100%;
      min-height: 0;
      border: 0;
    }

    .rooms-grid {
      display: grid;
      gap: 18px;
      margin-top: 30px;
    }

    .room-card {
      display: grid;
      gap: 18px;
      padding: 18px;
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      background: #ffffff;
      box-shadow: 0 14px 36px rgba(30,30,25,.08);
    }

    .room-card img {
      width: 100%;
      aspect-ratio: 4 / 3;
      object-fit: cover;
      border-radius: var(--radius-md);
      background: var(--surface-soft);
    }

    .room-card h3 {
      font-family: Georgia, "Times New Roman", serif;
      font-size: 1.75rem;
      line-height: 1.05;
      font-weight: 500;
      margin: 6px 0 10px;
    }

    .room-card p,
    .room-card li {
      color: var(--muted);
    }

    .room-card ul {
      display: grid;
      gap: 4px;
      margin-top: 12px;
      padding-left: 18px;
    }

    .room-meta {
      color: var(--gold) !important;
      font-size: .78rem;
      font-weight: 900;
      letter-spacing: .14em;
      text-transform: uppercase;
    }

    .hotel-info-grid {
      display: grid;
      gap: 28px;
    }

    .hotel-facts {
      display: grid;
      gap: 12px;
    }

    .hotel-facts article {
      display: grid;
      gap: 4px;
      padding: 18px;
      border: 1px solid var(--line);
      border-radius: var(--radius-md);
      background: #ffffff;
    }

    .hotel-facts strong {
      color: var(--ink);
      font-size: 1.02rem;
    }

    .hotel-facts span {
      color: var(--muted);
    }

    .access-page .access-facts-grid {
      margin-top: 30px;
    }

    .access-page .access-facts-grid article {
      min-width: 0;
      overflow-wrap: anywhere;
      word-break: normal;
    }

    .access-teaser {
      margin-top: 18px;
      padding: 22px;
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      background: #ffffff;
      box-shadow: 0 14px 36px rgba(30,30,25,.08);
      display: grid;
      grid-template-rows: auto 1fr auto;
      gap: 12px;
      max-width: none;
    }

    /* Le titre de carte est un h3 sur l'accueil, ou plusieurs cartes suivent un
       h2 de section, et un h2 sur /infos-pratiques, ou la carte est seule et
       porte le titre de sa section. Meme apparence dans les deux cas. */
    .access-teaser h2,
    .access-teaser h3 {
      font-family: Georgia, "Times New Roman", serif;
      font-size: clamp(1.7rem, 4vw, 2.4rem);
      line-height: 1;
      font-weight: 500;
      color: var(--ink);
    }

    .access-teaser p:not(.section-kicker) {
      color: var(--muted);
      max-width: 52rem;
    }

    .access-teaser-html {
      display: grid;
      align-content: start;
      gap: 12px;
      color: var(--muted);
    }

    .access-teaser-html > * {
      margin: 0;
    }

    .access-teaser-html ul,
    .access-teaser-list {
      margin: 0;
      padding-left: 1.2rem;
      color: var(--muted);
    }

    .access-teaser-html li {
      display: list-item;
      margin-top: 8px;
    }

    .access-teaser-list {
      display: grid;
      gap: 8px;
    }

    .access-teaser-list li {
      display: list-item;
    }

    .access-teaser-html strong,
    .access-teaser-list strong {
      color: var(--ink);
      font-weight: 800;
    }

    .access-teaser .btn {
      align-self: end;
      margin-top: auto;
      width: 100%;
    }

    .practical-promo-grid {
      display: grid;
      align-items: stretch;
      gap: 18px;
      margin-top: 20px;
    }

    @media (min-width: 980px) {
      .practical-promo-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .access-teaser-html > h3 {
        min-height: 1.05em;
      }

      .access-teaser-html > p {
        min-height: 3.15em;
      }
    }

    .hotel-booking-card {
      max-width: none;
    }

    .destination-grid {
      display: grid;
      gap: 16px;
      margin-top: 30px;
    }

    .destination-card {
      display: grid;
      gap: 10px;
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      background: #ffffff;
      box-shadow: 0 14px 36px rgba(30,30,25,.08);
      overflow: hidden;
    }

    .destination-card img {
      width: 100%;
      height: 220px;
      object-fit: cover;
      background: var(--surface-soft);
    }

    .destination-card .destination-index,
    .destination-card h3,
    .destination-card p,
    .destination-card .destination-cta {
      margin-left: 22px;
      margin-right: 22px;
    }

    .destination-card .destination-cta {
      justify-self: start;
      margin-bottom: 22px;
    }

    .hero-media-actions {
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      display: flex;
      justify-content: center;
      padding: 18px;
    }

    .hotel-hero-media .hero-media-cta {
      backdrop-filter: blur(6px);
      background: rgba(255, 255, 255, .88);
    }

    .destination-card h3 {
      font-family: Georgia, "Times New Roman", serif;
      font-size: 1.9rem;
      line-height: 1.05;
      font-weight: 500;
    }

    .destination-card p {
      color: var(--muted);
    }

    .destination-index {
      color: var(--gold);
      font-size: .76rem;
      font-weight: 900;
      letter-spacing: .16em;
      margin-top: 10px;
    }

    .destination-card p {
      margin-bottom: 22px;
    }

    .photo-credits {
      color: var(--muted);
      font-size: .82rem;
      margin-top: 18px;
    }

    .photo-credits summary {
      cursor: pointer;
      color: var(--sage-dark);
      font-weight: 900;
    }

    .photo-credits p {
      margin-top: 8px;
      max-width: 900px;
    }

    .photo-credits a {
      color: var(--sage-dark);
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .read-more-grid {
      display: grid;
      gap: 12px;
      margin-top: 24px;
    }

    .read-more-card {
      display: grid;
      grid-template-columns: 180px minmax(0, 1fr);
      gap: 0;
      border: 1px solid var(--line);
      border-radius: 18px;
      background: #ffffff;
      overflow: hidden;
      box-shadow: 0 8px 20px rgba(30,30,25,.05);
    }

    .read-more-card-media {
      width: 100%;
      position: relative;
      aspect-ratio: 4 / 3;
      min-height: 140px;
      background: var(--surface-soft);
      overflow: hidden;
    }

    .read-more-card-media--placeholder {
      display: grid;
      place-items: center;
      background:
        linear-gradient(135deg, rgba(223, 232, 221, .85), rgba(234, 216, 179, .55)),
        var(--surface-soft);
      color: var(--sage-dark);
      text-align: center;
      padding: 18px;
    }

    .read-more-card-media--placeholder span {
      max-width: 12ch;
      font-size: .84rem;
      line-height: 1.25;
      letter-spacing: .08em;
      text-transform: uppercase;
      font-weight: 800;
    }

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

    .read-more-card-copy {
      display: grid;
      gap: 8px;
      padding: 14px 16px 16px;
      align-content: center;
    }

    .read-more-card-copy h3 {
      margin: 0;
      font-family: Georgia, "Times New Roman", serif;
      font-size: 1.25rem;
      line-height: 1.12;
      font-weight: 500;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .read-more-card-copy p {
      margin: 0;
      color: var(--muted);
      font-size: .94rem;
      line-height: 1.45;
      display: -webkit-box;
      -webkit-line-clamp: 2;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .read-more-link {
      display: inline-flex;
      align-items: center;
      width: fit-content;
      color: var(--ink);
      font-size: .9rem;
      font-weight: 800;
      text-decoration: underline;
      text-decoration-thickness: 1.5px;
      text-underline-offset: 3px;
      padding-bottom: 0;
      border-bottom: 0;
    }

    .tourism-featured-page {
      display: grid;
      grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
      gap: 0;
      margin-top: 24px;
      border: 1px solid var(--line);
      border-radius: 28px;
      overflow: hidden;
      background: #ffffff;
      box-shadow: 0 12px 30px rgba(30, 30, 25, .07);
    }

    .tourism-featured-page-media {
      min-height: 240px;
      background: var(--surface-soft);
    }

    .tourism-featured-page-media img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .tourism-featured-page-copy {
      display: grid;
      gap: 10px;
      align-content: center;
      padding: 24px 26px;
    }

    .tourism-featured-page-kicker {
      color: var(--gold);
      font-size: .76rem;
      line-height: 1.1;
      letter-spacing: .18em;
      font-weight: 900;
      text-transform: uppercase;
    }

    .tourism-featured-page-copy h3 {
      font-family: Georgia, "Times New Roman", serif;
      font-size: clamp(1.65rem, 2.4vw, 2.35rem);
      line-height: 1.04;
      font-weight: 500;
      max-width: 18ch;
    }

    .tourism-featured-page-copy p {
      color: var(--muted);
      max-width: 60ch;
    }

    @media (max-width: 759px) {
      .read-more-card {
        grid-template-columns: 1fr;
      }

      .read-more-card-media,
      .read-more-card-media img {
        min-height: 160px;
      }

      .tourism-featured-page {
        grid-template-columns: 1fr;
      }

      .tourism-featured-page-media {
        min-height: 220px;
      }

      .tourism-featured-page-copy {
        padding: 18px 18px 20px;
      }
    }

    .restaurant-dishes {
      display: grid;
      gap: 18px;
      margin-top: 30px;
      align-items: stretch;
    }

    .restaurant-dish-card {
      overflow: hidden;
      border: 1px solid var(--line);
      border-radius: 24px;
      background: #ffffff;
      box-shadow: 0 14px 36px rgba(30,30,25,.08);
      display: grid;
      grid-template-rows: auto 1fr;
    }

    .restaurant-dish-media {
      margin: 0;
      background: var(--surface-soft);
      aspect-ratio: 4 / 3;
      overflow: hidden;
    }

    /* Les photos de plats sont en portrait, le plat un peu au-dessus du
       centre : cadrer a 30 % du haut, et non au milieu, le garde entier, au
       prix du bord de l'assiette. Sans effet sur une photo en paysage. */
    .restaurant-dish-media img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: 50% 30%;
    }

    .restaurant-dish-content {
      display: grid;
      grid-template-rows: auto auto 1fr auto;
      gap: 10px;
      padding: 18px 18px 20px;
    }

    .restaurant-dish-kicker {
      color: var(--gold);
      font-size: .76rem;
      line-height: 1.1;
      letter-spacing: .18em;
      font-weight: 900;
      text-transform: uppercase;
    }

    .restaurant-dish-card h3 {
      font-family: Georgia, "Times New Roman", serif;
      font-size: clamp(1.55rem, 2vw, 2.05rem);
      line-height: 1.02;
      font-weight: 500;
      color: var(--ink);
    }

    .restaurant-dish-description {
      color: var(--muted);
    }

    .restaurant-dish-meta {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 10px;
      padding-top: 4px;
      flex-wrap: wrap;
      align-self: end;
    }

    .restaurant-dish-price {
      font-family: Georgia, "Times New Roman", serif;
      font-weight: 600;
      font-size: 1.4rem;
      color: var(--gold);
      margin-left: auto;
    }

    .restaurant-dishes--featured {
      margin-top: 22px;
    }

    .restaurant-dishes--full {
      margin-top: 24px;
    }

    /* Nom du plat seul : un titre, dans le style du surtitre. */
    .restaurant-dish-card h3.restaurant-dish-kicker {
      font-family: inherit;
      font-size: .76rem;
      line-height: 1.35;
      font-weight: 900;
      color: var(--gold);
    }

    /* Actualites */
    .about-news-actions {
      margin-top: 26px;
    }

    .actualites-hero .hotel-hero-media img {
      object-position: 50% 40%;
    }

    .section.actualites {
      padding-top: 0;
    }

    .actualites-list {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
      gap: 22px;
      margin: 28px 0 0;
      padding: 0;
      list-style: none;
    }

    /* Toute la carte est cliquable, par son titre : un seul lien, lu une
       seule fois. */
    .actualite-card {
      position: relative;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      border: 1px solid var(--line);
      border-radius: var(--radius-md);
      background: #ffffff;
      box-shadow: 0 14px 36px rgba(30, 30, 25, .08);
      transition: box-shadow .2s ease, transform .2s ease;
    }

    .actualite-card:hover,
    .actualite-card:focus-within {
      box-shadow: var(--shadow);
      transform: translateY(-2px);
    }

    /* Cadre fixe : dans une carte en colonne, la hauteur propre de l'image
       l'emporterait sur les proportions. */
    .actualite-media {
      position: relative;
      flex: none;
      aspect-ratio: 16 / 10;
      overflow: hidden;
      background: var(--surface-soft);
    }

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

    .actualite-body {
      display: flex;
      flex: 1;
      flex-direction: column;
      gap: 10px;
      padding: 18px 20px 22px;
    }

    .actualite-meta {
      margin: 0;
      color: var(--gold);
      font-size: .76rem;
      letter-spacing: .14em;
      font-weight: 900;
      text-transform: uppercase;
    }

    .actualite-title {
      margin: 0;
      font-family: Georgia, "Times New Roman", serif;
      font-size: 1.35rem;
      line-height: 1.2;
      font-weight: 500;
    }

    .actualite-title a {
      color: var(--ink);
      text-decoration: none;
    }

    .actualite-title a::after {
      content: "";
      position: absolute;
      inset: 0;
    }

    .actualite-title a:focus-visible {
      outline: none;
    }

    .actualite-card:focus-within {
      outline: 3px solid var(--sage-dark);
      outline-offset: 3px;
    }

    .actualite-excerpt {
      margin: 0;
      color: var(--muted);
    }

    .actualite-more {
      margin: auto 0 0;
      padding-top: 6px;
      color: var(--sage-dark);
      font-weight: 700;
    }

    .actualite-inner {
      max-width: 48rem;
    }

    .actualite-figure {
      margin: 24px 0 0;
      overflow: hidden;
      border-radius: var(--radius-md);
    }

    .actualite-figure img {
      display: block;
      width: 100%;
      height: auto;
    }

    .actualite-content {
      margin-top: 24px;
    }

    .actualite-content p,
    .actualite-content li {
      color: var(--muted);
      font-size: 1.05rem;
    }

    .actualite-content p {
      margin: 0 0 1em;
    }

    .actualite-content h2,
    .actualite-content h3 {
      margin: 1.6em 0 .5em;
      color: var(--ink);
      font-family: Georgia, "Times New Roman", serif;
      font-weight: 500;
      line-height: 1.1;
    }

    .actualite-content h2 {
      font-size: clamp(1.5rem, 3.6vw, 2.1rem);
    }

    .actualite-content blockquote {
      margin: 1.4em 0;
      padding: 4px 0 4px 22px;
      border-left: 3px solid var(--gold);
    }

    .actualite-content blockquote p {
      margin: 0;
      color: var(--ink);
      font-family: Georgia, "Times New Roman", serif;
      font-size: 1.25rem;
      line-height: 1.45;
      font-style: italic;
    }

    .actualite-content a {
      color: var(--sage-dark);
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .actualite-content .actualite-source {
      margin-top: 2em;
      padding-top: 1em;
      border-top: 1px solid var(--line);
      font-size: .92rem;
    }

    .actualite-content iframe {
      display: block;
      max-width: 100%;
      margin: 0 0 1em;
    }

    .actualite-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 32px;
    }

    @media (prefers-reduced-motion: reduce) {
      .actualite-card {
        transition: none;
      }

      .actualite-card:hover,
      .actualite-card:focus-within {
        transform: none;
      }
    }

    /* Galerie */
    .galerie-hero .hotel-hero-media img {
      object-position: 50% 30%;
    }

    .hero--sans-photo {
      grid-template-columns: 1fr !important;
    }

    /* La grille suit le bandeau, sans le grand blanc d'une nouvelle section. */
    .section.galerie {
      padding-top: 0;
    }

    .hero-intro {
      max-width: 44rem;
    }

    .galerie-albums ul {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin: 24px 0 0;
      padding: 0;
      list-style: none;
    }

    .galerie-albums a {
      display: inline-block;
      padding: 8px 18px;
      border: 1px solid var(--line);
      border-radius: 999px;
      color: var(--ink);
      font-weight: 700;
      text-decoration: none;
    }

    .galerie-albums a[aria-current="page"] {
      background: var(--sage-dark);
      border-color: var(--sage-dark);
      color: #ffffff;
    }

    .galerie-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr));
      gap: 18px;
      margin: 28px 0 0;
      padding: 0;
      list-style: none;
    }

    .galerie-item {
      margin: 0;
    }

    .galerie-hint {
      margin: 0;
      color: var(--muted);
    }

    .galerie-link {
      position: relative;
      cursor: zoom-in;
      display: block;
      overflow: hidden;
      border-radius: var(--radius-md);
      background: var(--surface-soft);
      aspect-ratio: 4 / 3;
    }

    /* Meme cadrage que les cartes de plats : le plat entier, le bord de
       l'assiette au besoin coupe. */
    .galerie-link img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: 50% 30%;
      transition: transform .3s ease;
    }

    .galerie-link:hover img,
    .galerie-link:focus-visible img {
      transform: scale(1.03);
    }

    /* Loupe toujours visible : sur un telephone, il n'y a pas de survol pour
       montrer qu'une photo s'agrandit. */
    .galerie-zoom {
      position: absolute;
      right: 12px;
      bottom: 12px;
      display: grid;
      place-items: center;
      width: 40px;
      height: 40px;
      border-radius: 50%;
      background: rgba(255, 255, 255, .92);
      color: var(--ink);
      box-shadow: 0 4px 14px rgba(30, 30, 25, .18);
      transition: transform .2s ease;
    }

    .galerie-link:hover .galerie-zoom,
    .galerie-link:focus-visible .galerie-zoom {
      transform: scale(1.1);
    }

    .galerie-item figcaption {
      margin-top: 10px;
      color: var(--gold);
      font-size: .76rem;
      line-height: 1.35;
      letter-spacing: .18em;
      font-weight: 900;
      text-transform: uppercase;
    }

    .galerie-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-top: 36px;
    }

    /* La remise a zero des marges du theme annule le centrage natif d'une
       <dialog> : il est retabli ici. La largeur suit la photo. */
    .galerie-lightbox {
      position: fixed;
      inset: 0;
      margin: auto;
      width: fit-content;
      max-width: calc(100vw - 32px);
      height: fit-content;
      max-height: calc(100vh - 32px);
      padding: 0;
      border: 0;
      border-radius: var(--radius-md);
      background: #111110;
      color: #ffffff;
      overflow: hidden;
    }

    .galerie-lightbox::backdrop {
      background: rgba(10, 10, 9, .85);
    }

    .galerie-lightbox-figure {
      margin: 0;
      display: grid;
      justify-items: center;
    }

    .galerie-lightbox-figure img {
      display: block;
      max-width: 100%;
      max-height: calc(100vh - 110px);
      object-fit: contain;
    }

    .galerie-lightbox-figure figcaption {
      padding: 14px 64px 16px;
      text-align: center;
      font-weight: 700;
    }

    .galerie-lightbox button {
      position: absolute;
      display: grid;
      place-items: center;
      width: 48px;
      height: 48px;
      border: 0;
      border-radius: 50%;
      background: rgba(255, 255, 255, .92);
      color: var(--ink);
      font-size: 1.9rem;
      line-height: 1;
      cursor: pointer;
    }

    .galerie-lightbox-close {
      top: 12px;
      right: 12px;
    }

    .galerie-lightbox-nav {
      top: 50%;
      transform: translateY(-50%);
    }

    .galerie-lightbox-prev {
      left: 12px;
    }

    .galerie-lightbox-next {
      right: 12px;
    }

    @media (prefers-reduced-motion: reduce) {
      .galerie-link img {
        transition: none;
      }

      .galerie-link:hover img,
      .galerie-link:focus-visible img,
      .galerie-link:hover .galerie-zoom,
      .galerie-link:focus-visible .galerie-zoom {
        transform: none;
      }

      .galerie-zoom {
        transition: none;
      }
    }

    .carte-section {
      display: grid;
      gap: 18px;
      margin-top: 28px;
    }

    .carte-section:first-child {
      margin-top: 0;
    }

    .carte-section-head {
      display: flex;
      align-items: center;
      gap: 12px;
    }

    .carte-hero-grid,
    .restaurant-page-hero-grid {
      display: grid;
      gap: 18px;
    }

    .carte-hero-text,
    .restaurant-page-intro {
      color: var(--muted);
      max-width: 760px;
    }

    .carte-hero-actions,
    .restaurant-page-hero-panel,
    .restaurant-page-menu-head {
      display: grid;
      gap: 14px;
    }

    .carte-hero-actions,
    .restaurant-page-hero-panel {
      align-content: start;
    }

    .carte-hero-actions {
      align-self: center;
      justify-self: center;
    }

    .hotel-hero .carte-hero-actions {
      align-self: start;
      justify-self: start;
    }

    .restaurant-page-hero-panel {
      padding: 22px;
      border-radius: 24px;
      border: 1px solid var(--line);
      background: var(--surface-soft);
    }

    .restaurant-page-menu-head {
      margin-bottom: 18px;
      align-items: end;
    }

    .profile-grid {
      display: grid;
      gap: 22px;
    }

    .profile-card,
    .profile-points article {
      border: 1px solid var(--line);
      border-radius: var(--radius-lg);
      background: #ffffff;
      box-shadow: 0 14px 36px rgba(30,30,25,.08);
    }

    .profile-card {
      padding: 26px;
    }

    .profile-photo {
      width: 100%;
      height: 320px;
      object-fit: cover;
      object-position: center top;
      border-radius: var(--radius-md);
      margin-bottom: 22px;
      background: var(--surface-soft);
    }

    .profile-card h1,
    .profile-card h2 {
      font-family: Georgia, "Times New Roman", serif;
      font-size: clamp(2.2rem, 8vw, 4rem);
      line-height: 1;
      font-weight: 500;
      margin-bottom: 16px;
    }

    .profile-card p {
      color: var(--muted);
      margin-top: 12px;
    }

    .profile-points {
      display: grid;
      gap: 12px;
    }

    .profile-points article {
      display: grid;
      gap: 6px;
      padding: 20px;
    }

    .profile-points strong {
      color: var(--ink);
      font-size: 1.05rem;
    }

    .profile-points span {
      color: var(--muted);
    }

    @media (min-width: 760px) {
      .hotel-hero {
        grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
        padding-top: 96px;
      }

      .access-page .access-facts-grid--repere {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .rooms-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .hotel-info-grid {
        grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
      }

      .hotel-facts--two-col {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .destination-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }

      .destination-card img {
        height: 240px;
      }

      .restaurant-dishes {
        grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
      }

      .carte-hero-grid,
      .restaurant-page-hero-grid {
        grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
        align-items: start;
      }

      .restaurant-page-menu-head {
        grid-template-columns: minmax(0, 1fr) auto;
      }

      .carte-hero-actions {
        justify-self: center;
        align-self: center;
      }

      .hotel-hero .carte-hero-actions {
        justify-self: start;
        align-self: start;
      }

      .access-page .access-band-map {
        max-width: 720px;
        justify-self: center;
      }

      .page-standard-block {
        grid-template-columns: minmax(0, 1fr) minmax(0, .95fr);
        align-items: center;
      }

      .page-standard-block--reverse {
        grid-template-columns: minmax(0, .95fr) minmax(0, 1fr);
      }

      .page-standard-block--reverse .page-standard-block-media {
        order: 2;
      }

      .page-standard-block--reverse .page-standard-block-copy {
        order: 1;
      }

      .page-standard-block--text-only {
        grid-template-columns: 1fr;
      }

      .profile-grid {
        grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
        align-items: start;
      }
    }

    @media (min-width: 760px) {
      .mobile-menu,
      .mobile-menu-backdrop,
      .burger-button {
        display: none !important;
      }
    }

    @media (max-width: 759px) {
      body.mobile-menu-open {
        overflow: hidden;
      }
    }

    .error-inner {
      display: grid;
      gap: 18px;
      max-width: 46rem;
    }

    .error-links,
    .error-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
    }

    .error-links {
      margin-top: 6px;
    }

    .error-actions {
      margin-top: 18px;
      padding-top: 18px;
      border-top: 1px solid var(--line);
    }

    /* Carte : liste des menus, et pages de menu. */

    /* Great Vibes, l'ecriture de la carte d'origine, pour le nom des menus,
       leurs sections et leur prix. Hebergee par le site, et non chargee depuis
       Google Fonts qui recevrait l'adresse IP de chaque visiteur ; le
       navigateur ne la telecharge que sur les pages qui l'emploient. */
    @font-face {
      font-family: "Great Vibes";
      font-style: normal;
      font-weight: 400;
      font-display: swap;
      src: url("../fonts/great-vibes-latin.woff2") format("woff2");
    }
    .carte-menus-list {
      display: grid;
      gap: 1rem;
      grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr));
      margin: 1.5rem 0 0;
      padding: 0;
      list-style: none;
    }

    .carte-menus-item a {
      display: block;
      height: 100%;
      padding: 1.25rem 1.5rem;
      border: 1px solid var(--line);
      border-radius: 12px;
      background: var(--surface);
      color: var(--ink);
      text-decoration: none;
    }

    .carte-menus-item a:hover,
    .carte-menus-item a:focus-visible {
      border-color: var(--gold);
    }

    .carte-menus-name {
      display: block;
      font-family: "Great Vibes", Georgia, "Times New Roman", serif;
      font-size: 2.1rem;
      line-height: 1.2;
    }

    .carte-menus-price {
      display: block;
      margin-top: .1rem;
      color: var(--gold);
      font-family: "Great Vibes", Georgia, "Times New Roman", serif;
      font-size: 1.75rem;
      line-height: 1.2;
    }

    /* /carte : on vient pour les menus. Bandeau plus bas, et la liste le suit
       de pres, pour qu'elle entre dans le premier ecran. */
    .carte-page .carte-hero {
      padding-top: 40px;
      padding-bottom: 20px;
    }

    .carte-page .carte-hero .hotel-hero-media {
      aspect-ratio: 16 / 9;
    }

    .carte-page .carte-menu {
      padding-top: 16px;
    }

    .carte-page .carte-menu .section-title {
      margin-bottom: 4px;
      font-size: clamp(1.75rem, 3.2vw, 2.4rem);
    }

    .carte-page .carte-menu .carte-menus-item a {
      text-align: center;
    }

    .carte-menus-summary {
      display: block;
      margin-top: .35rem;
      color: var(--muted);
    }

    .carte-menu-inner {
      max-width: 44rem;
      text-align: center;
    }

    .carte-menu-inner .section-title {
      margin-bottom: .5rem;
      font-family: "Great Vibes", Georgia, "Times New Roman", serif;
      font-size: clamp(3rem, 9vw, 5rem);
      font-weight: 400;
      /* Les titres du theme sont resserres (-.04em) : une ecriture liee n'en
         a pas besoin, et ses mots se colleraient. */
      letter-spacing: normal;
      word-spacing: .08em;
      line-height: 1.15;
    }

    .carte-menu-content h2,
    .carte-menu-content h3 {
      margin: 2rem 0 .5rem;
      color: var(--gold);
      font-family: "Great Vibes", Georgia, "Times New Roman", serif;
      font-size: 2.25rem;
      font-weight: 400;
      line-height: 1.2;
    }

    .carte-menu-content ul,
    .carte-menu-content ol {
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .carte-menu-content li {
      margin: .45rem 0;
    }

    .carte-menu-content p {
      color: var(--muted);
      font-style: italic;
    }

    /* Separateur : les asterisques de la carte d'origine, comme dans le PDF. */
    .carte-menu-content hr,
    .carte-menu-separator {
      height: auto;
      margin: 1.5rem auto .25rem;
      overflow: visible;
      border: 0;
      background: none;
      text-align: center;
    }

    .carte-menu-content hr::after,
    .carte-menu-separator::after {
      content: "****";
      color: var(--gold);
      font-family: "Great Vibes", Georgia, "Times New Roman", serif;
      font-size: 1.75rem;
      letter-spacing: .15em;
      line-height: 1;
    }

    .carte-menu-content hr + h2,
    .carte-menu-content hr + h3 {
      margin-top: .75rem;
    }

    .carte-menu-mentions {
      margin-top: 2.5rem;
      color: var(--muted);
      font-size: .875rem;
    }

    .carte-menu-actions {
      display: flex;
      flex-wrap: wrap;
      gap: .75rem;
      justify-content: center;
      margin-top: 1.5rem;
    }

    .carte-menu-price {
      margin: 0 0 1.5rem;
      color: var(--gold);
      font-family: "Great Vibes", Georgia, "Times New Roman", serif;
      font-size: 2.75rem;
      line-height: 1.2;
    }

    .carte-menu-content .carte-menu-choice {
      margin: -.5rem 0 .6rem;
      font-size: .95rem;
    }
