/*
Theme Name: Horeca Site
Description: Le site d'un établissement Horeca Pilot. Nom, logo, couleurs, polices, coordonnées et horaires viennent du dashboard (plugin SF Connector) : rien n'est à dessiner.
Version: 3.3.0
Requires PHP: 8.0
Text Domain: horeca-site
*/

/* L'habillage du site : un seul thème, un seul habillage (décision Xavier 2026-10-06, fin des modèles du Brief 22). Les couleurs et polices viennent des variables --hs-* posées par functions.php depuis le dashboard. */

/* Modèle « Classique » (Brief 22) : le site d'origine, avant la galerie de
   modèles. Point de départ conseillé pour un nouveau modèle : le recopier,
   puis tout changer. Toutes les couleurs et polices passent par les
   variables --hs-* posées par functions.php depuis le dashboard. */

/* Les couleurs et les polices sont posées par functions.php depuis le
   dashboard ; les valeurs ci-dessous ne servent que si l'API ne répond pas. */
:root {
  --hs-primary: #1f2937;
  --hs-secondary: #b45309;
  --hs-accent: #f8f5f0;
  --hs-title-color: #1f2937;
  --hs-body-color: #26221d;
  --hs-title-font: 'Playfair Display', Georgia, serif;
  --hs-body-font: 'Lora', Georgia, serif;
  --hs-width: 72rem;
  --hs-gutter: clamp(1.25rem, 4vw, 2.5rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background: #fff;
  color: var(--hs-body-color);
  font-family: var(--hs-body-font);
  font-size: 1.0625rem;
  line-height: 1.65;
}
img { max-width: 100%; height: auto; }
a { color: var(--hs-secondary); text-underline-offset: 0.2em; }
a:hover { color: var(--hs-primary); }
h1, h2, h3 {
  font-family: var(--hs-title-font);
  color: var(--hs-title-color);
  font-weight: 500;
  line-height: 1.15;
  margin: 0 0 0.6em;
  text-wrap: balance;
}
h1 { font-size: clamp(2.25rem, 5vw, 3.75rem); }
h2 { font-size: clamp(1.75rem, 3.2vw, 2.5rem); }
h3 { font-size: 1.35rem; }
p { margin: 0 0 1.1em; }
:focus-visible { outline: 2px solid var(--hs-secondary); outline-offset: 3px; }

.hs-wrap { width: min(100% - 2 * var(--hs-gutter), var(--hs-width)); margin-inline: auto; }
.hs-narrow { width: min(100% - 2 * var(--hs-gutter), 46rem); margin-inline: auto; }
.hs-skip { position: absolute; left: -999px; }
.hs-skip:focus { left: 1rem; top: 1rem; z-index: 100; background: #fff; padding: 0.5rem 1rem; }

/* ---- Boutons ---------------------------------------------------------- */
.hs-button, .sf-button {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 46px; padding: 0.6rem 1.5rem;
  border: 1px solid var(--hs-secondary); border-radius: 2px;
  background: var(--hs-secondary); color: #fff;
  font-family: var(--hs-body-font); font-size: 0.95rem; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none;
  transition: background-color 0.2s, color 0.2s, border-color 0.2s;
}
.hs-button:hover, .sf-button:hover { background: var(--hs-primary); border-color: var(--hs-primary); color: #fff; }
.hs-button--ghost { background: transparent; border-color: currentColor; color: inherit; }
.hs-button--ghost:hover { background: #fff; border-color: #fff; color: var(--hs-primary); }

/* ---- En-tête ---------------------------------------------------------- */
.hs-header {
  position: sticky; top: 0; z-index: 50;
  background: rgb(255 255 255 / 0.94); backdrop-filter: blur(8px);
  border-bottom: 1px solid rgb(0 0 0 / 0.08);
}
.hs-header-inner { display: flex; align-items: center; gap: 1.5rem; min-height: 108px; }
.hs-brand { display: flex; align-items: center; gap: 0.75rem; text-decoration: none; margin-right: auto; }
/* Un logo rond ou carré a besoin de hauteur pour rester lisible. */
.hs-brand img { height: 100px; width: auto; display: block; padding-block: 4px; }
@media (max-width: 900px) { .hs-header-inner { min-height: 76px; } .hs-brand img { height: 70px; } }
.hs-brand-name { font-family: var(--hs-title-font); font-size: 1.6rem; color: var(--hs-title-color); letter-spacing: 0.01em; }
.hs-nav ul { display: flex; gap: 1.6rem; list-style: none; margin: 0; padding: 0; }
.hs-nav a {
  color: var(--hs-body-color); text-decoration: none; font-size: 0.92rem; font-weight: 600;
  letter-spacing: 0.06em; text-transform: uppercase; padding: 0.5rem 0; border-bottom: 2px solid transparent;
}
.hs-nav a:hover, .hs-nav .current-menu-item > a { border-bottom-color: var(--hs-secondary); color: var(--hs-primary); }
.hs-menu-toggle { display: none; }

@media (max-width: 900px) {
  .hs-menu-toggle {
    display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px;
    border: 1px solid rgb(0 0 0 / 0.15); border-radius: 2px; background: #fff; color: var(--hs-primary); cursor: pointer;
  }
  .hs-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 1px solid rgb(0 0 0 / 0.08); }
  .hs-nav.is-open { display: block; }
  .hs-nav ul { flex-direction: column; gap: 0; padding: 0.5rem var(--hs-gutter) 1rem; }
  .hs-nav a { display: block; padding: 0.85rem 0; border-bottom: 1px solid rgb(0 0 0 / 0.06); }
  .hs-header .hs-button { display: none; }
}

/* ---- Hero (accueil) et bandeau de page -------------------------------- */
.hs-hero {
  position: relative; display: grid; align-items: end; min-height: min(86vh, 46rem);
  background: var(--hs-primary) center / cover no-repeat; color: #fff;
}
.hs-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgb(0 0 0 / 0.72), rgb(0 0 0 / 0.15) 60%, rgb(0 0 0 / 0.3)); }
.hs-hero-inner { position: relative; padding-block: clamp(3rem, 9vh, 6rem); }
.hs-hero h1 { color: #fff; max-width: 18ch; margin-bottom: 0.35em; }
.hs-hero-lead { font-size: clamp(1.1rem, 2vw, 1.4rem); max-width: 40ch; opacity: 0.92; font-style: italic; }
.hs-hero-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.75rem; }

.hs-page-head { background: var(--hs-accent); padding-block: clamp(2.5rem, 7vw, 4.5rem); text-align: center; }
.hs-page-head h1 { margin: 0; }
.hs-page-head p { margin: 0.9rem auto 0; max-width: 46ch; font-style: italic; font-size: 1.15rem; }
.hs-page-head::after { content: ''; display: block; width: 3rem; height: 2px; margin: 1.5rem auto 0; background: var(--hs-secondary); }

/* ---- Sections --------------------------------------------------------- */
.hs-section { padding-block: clamp(3rem, 8vw, 6rem); }
.hs-section--tint { background: var(--hs-accent); }
.hs-section--dark { background: var(--hs-primary); color: #fff; }
.hs-section--dark h2, .hs-section--dark h3 { color: #fff; }
.hs-section--dark a { color: #fff; }
.hs-eyebrow { display: block; margin-bottom: 0.8rem; color: var(--hs-secondary); font-size: 0.85rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; }
.hs-section--dark .hs-eyebrow { color: #fff; opacity: 0.75; }
.hs-center { text-align: center; }
.hs-story { font-size: 1.15rem; }
.hs-story > p:first-of-type::first-letter { font-family: var(--hs-title-font); font-size: 3.4em; float: left; line-height: 0.85; padding: 0.06em 0.12em 0 0; color: var(--hs-secondary); }

.hs-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr)); gap: 1rem; margin-top: 2.5rem; font-size: 1rem; }
.hs-card { background: #fff; border: 1px solid rgb(0 0 0 / 0.08); padding: 1.5rem 1.35rem; }
.hs-card h3 { margin-bottom: 0.5rem; }
.hs-card p { margin: 0; }
.hs-card a { font-weight: 600; }

.hs-split { display: grid; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); gap: clamp(2rem, 6vw, 5rem); align-items: start; }

.hs-teaser { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem; margin-top: 2.5rem; }
.hs-teaser a { display: block; aspect-ratio: 4 / 3; overflow: hidden; }
.hs-teaser img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s; }
.hs-teaser a:hover img { transform: scale(1.05); }
@media (max-width: 640px) { .hs-teaser { grid-template-columns: repeat(2, 1fr); } }

.hs-content > *:last-child { margin-bottom: 0; }
.hs-content h2 { margin-top: 1.6em; }

/* ---- Horaires et contact (plugin) ------------------------------------- */
.sf-hours { margin: 0; }
.sf-hours-day { display: flex; justify-content: space-between; gap: 1.5rem; padding: 0.55rem 0; border-bottom: 1px solid rgb(128 128 128 / 0.25); }
.sf-hours dt { font-weight: 600; }
.sf-hours dd { margin: 0; text-align: right; }
.sf-hours-day.is-closed dd { opacity: 0.6; font-style: italic; }
/* Les fermetures exceptionnelles sous la grille (3.3.0) : discrètes, même famille. */
.sf-hours-closures-title { margin: 1rem 0 0.35rem; font-weight: 600; }
.sf-hours-closures { list-style: none; margin: 0; padding: 0; }
.sf-hours-closures li { padding: 0.3rem 0; opacity: 0.8; font-size: 0.95em; }
.sf-contact { font-style: normal; font-size: 1.15rem; }
.sf-contact p { margin: 0 0 0.4rem; }
.sf-contact-phone a { font-family: var(--hs-title-font); font-size: 1.9rem; text-decoration: none; }

/* ---- La carte (plugin) ------------------------------------------------ */
.sf-menu-section { margin-bottom: 3.5rem; }
.sf-menu-section h3 { font-size: 1.9rem; text-align: center; margin-bottom: 1.6rem; }
.sf-menu-section h3::after { content: ''; display: block; width: 2.5rem; height: 2px; margin: 0.8rem auto 0; background: var(--hs-secondary); }
.sf-menu-section ul { list-style: none; margin: 0; padding: 0; }
.sf-menu-section li { display: grid; grid-template-columns: 1fr auto; column-gap: 1.25rem; padding: 0.9rem 0; border-bottom: 1px dotted rgb(0 0 0 / 0.22); }
.sf-menu-section li br { display: none; }
.sf-menu-dish-name { font-family: var(--hs-title-font); font-size: 1.2rem; color: var(--hs-title-color); }
.sf-menu-dish-price { font-weight: 600; white-space: nowrap; color: var(--hs-secondary); }
.sf-menu-dish-description { grid-column: 1 / -1; font-size: 0.97rem; font-style: italic; opacity: 0.8; }

/* ---- Chambres (plugin) ------------------------------------------------ */
.sf-rooms { display: grid; gap: 2.5rem; }
.sf-room { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: clamp(1.25rem, 4vw, 3rem); align-items: center; }
.sf-room:nth-child(even) .sf-room-photo { order: 2; }
.sf-room--no-photo { grid-template-columns: 1fr; padding: 2rem; background: var(--hs-accent); }
.sf-room-photo { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.sf-room-meta { color: var(--hs-secondary); font-weight: 600; letter-spacing: 0.02em; }
.sf-rooms-info { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid rgb(0 0 0 / 0.12); text-align: center; font-style: italic; }
@media (max-width: 720px) { .sf-room { grid-template-columns: 1fr; } .sf-room:nth-child(even) .sf-room-photo { order: 0; } }

/* ---- Galerie (plugin) : le thème reprend la main sur les filtres ------- */
.sf-gallery-filters { justify-content: center; }
.sf-gallery-filter { border-radius: 2px; font-family: var(--hs-body-font); font-size: 0.85rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.sf-gallery-filter.is-active { background: var(--hs-primary); border-color: var(--hs-primary); }
.sf-gallery-item { border-radius: 0; }

/* ---- Pied de page ----------------------------------------------------- */
.hs-footer { background: var(--hs-primary); color: rgb(255 255 255 / 0.82); padding-block: 3.5rem 2rem; font-size: 0.97rem; }
.hs-footer h2 { color: #fff; font-size: 1.7rem; margin-bottom: 0.6rem; }
.hs-footer h3 { color: #fff; font-family: var(--hs-body-font); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; margin-bottom: 0.9rem; }
.hs-footer a { color: #fff; }
.hs-footer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 2.5rem; }
.hs-footer .sf-contact { font-size: 1rem; }
.hs-footer-menu { list-style: none; margin: 0; padding: 0; }
.hs-footer-menu li { padding: 0.25rem 0; }
.hs-footer .sf-contact-phone a { font-size: 1.4rem; }
.hs-footer-bottom { margin-top: 3rem; padding-top: 1.5rem; border-top: 1px solid rgb(255 255 255 / 0.15); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem 2rem; font-size: 0.85rem; opacity: 0.75; }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* ---- Menus temporaires (plugin, 20e) ----------------------------------- */
.sf-special-menu-buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.75rem; margin: 0 0 3rem; }
.hs-hero .sf-special-menu-buttons { margin: 1.25rem 0 0; }
.sf-special-menu { text-align: center; }
.sf-special-menu-photo { width: 100%; max-height: 24rem; object-fit: cover; border-radius: 2px; margin-bottom: 2.5rem; }
.sf-special-menu-intro { font-size: 1.1rem; font-style: italic; margin-bottom: 2.5rem; }
.sf-special-menu-course { margin-bottom: 2.25rem; }
.sf-special-menu-course h3 { font-size: 0.85rem; font-family: var(--hs-body-font); font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--hs-secondary); margin-bottom: 0.6rem; }
.sf-special-menu-dish { font-family: var(--hs-title-font); font-size: 1.3rem; color: var(--hs-title-color); margin: 0.2rem 0; }
.sf-special-menu-desc { font-size: 0.95rem; opacity: 0.75; margin: -0.1rem 0 0.7rem; }
.sf-special-menu-or { font-size: 0.9rem; font-style: italic; opacity: 0.7; margin: 0.1rem 0; }
.sf-special-menu-price { font-family: var(--hs-title-font); font-size: 1.9rem; color: var(--hs-title-color); margin: 2.5rem 0 0.5rem; }
.sf-special-menu-price::before { content: ''; display: block; width: 3rem; height: 2px; margin: 0 auto 1.5rem; background: var(--hs-secondary); }
.sf-special-menu-price span { font-family: var(--hs-body-font); font-size: 1rem; opacity: 0.8; }
.sf-special-menu-footnote { font-size: 0.95rem; opacity: 0.8; }
.sf-special-menu-book { margin-top: 2rem; }

/* ---- Site sur mesure (2026-10-06) : textes de l'API et allures ---------
   Le rendu d'origine (body.hs-hero-full.hs-titles-centered.hs-cards-tiles)
   ne passe par AUCUNE règle de ce bloc : un site sans contenu API reste celui
   d'avant. Chaque allure tient sans photo, sans logo, sans hôtel, avec un nom
   long, et au doigt dès 360 px. Aucune animation nouvelle. ---------------- */

/* Aperçu du brouillon (`?apercu=brouillon`) : un bandeau en tête, sans bouton. */
.hs-preview-banner { background: var(--hs-secondary); color: #fff; text-align: center; font-size: 0.85rem; font-weight: 600; letter-spacing: 0.04em; padding: 0.55rem var(--hs-gutter); }

/* Introduction de la page contact (au-dessus des coordonnées) ; mentions légales du pied. */
.hs-intro { font-size: 1.2rem; line-height: 1.55; margin-bottom: 2.25rem; }
.hs-footer-legal { margin: 0.75rem 0 0; font-size: 0.8rem; opacity: 0.7; }

/* La photo du bandeau quand elle n'est pas en fond plein cadre (allures split et band). */
.hs-hero-media { margin: 0; overflow: hidden; }
.hs-hero-media img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Bandeau « split » : le titre sur fond principal à gauche, la photo à droite ;
   dessous en mobile. Sans photo, la bande de couleur porte le titre seule. */
.hs-hero-split .hs-hero { grid-template-columns: minmax(0, 1fr); align-items: stretch; min-height: 0; }
.hs-hero-split .hs-hero::before { content: none; }
.hs-hero-split .hs-hero-inner { padding-block: clamp(3.5rem, 10vw, 7rem); }
.hs-hero-split .hs-hero-media { aspect-ratio: 4 / 3; }
@media (min-width: 60rem) {
  .hs-hero-split .hs-hero:has(.hs-hero-media) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: min(78vh, 44rem); }
  /* Le texte occupe la moitié gauche ; son bord gauche est celui de la colonne du site (72 rem centrés), jamais moins que la gouttière. */
  .hs-hero-split .hs-hero:has(.hs-hero-media) .hs-hero-inner { width: 100%; margin: 0; padding-inline: max(var(--hs-gutter), calc(100% - var(--hs-width) / 2)) var(--hs-gutter); align-self: center; }
  .hs-hero-split .hs-hero-media { aspect-ratio: auto; }
}

/* Bandeau « band » : pas de photo plein cadre — une bande de couleur principale,
   le titre dedans, la photo en vignette arrondie qui déborde sur la page (ou rien). */
.hs-hero-band { --hs-hang: clamp(2rem, 8vw, 5rem); }
.hs-hero-band .hs-hero { min-height: 0; align-items: start; }
.hs-hero-band .hs-hero::before { content: none; }
.hs-hero-band .hs-hero-inner { padding-block: clamp(3.5rem, 9vw, 6rem) clamp(3rem, 7vw, 4.5rem); text-align: center; }
.hs-hero-band .hs-hero h1, .hs-hero-band .hs-hero-lead { margin-inline: auto; }
.hs-hero-band .hs-hero-actions, .hs-hero-band .hs-hero .sf-special-menu-buttons { justify-content: center; }
.hs-hero-band .hs-hero-media { position: relative; z-index: 1; width: min(100% - 2 * var(--hs-gutter), 56rem); aspect-ratio: 16 / 9; margin: 0 auto calc(-1 * var(--hs-hang)); border-radius: 1rem; box-shadow: 0 24px 48px -20px rgb(0 0 0 / 0.5); }
.hs-hero-band .hs-hero:has(.hs-hero-media) + .hs-section { padding-top: calc(clamp(3rem, 8vw, 6rem) + var(--hs-hang)); }
.hs-hero-band.hs-titles-left .hs-hero-inner { text-align: left; }
.hs-hero-band.hs-titles-left .hs-hero h1, .hs-hero-band.hs-titles-left .hs-hero-lead { margin-inline: 0; }
.hs-hero-band.hs-titles-left .hs-hero-actions, .hs-hero-band.hs-titles-left .hs-hero .sf-special-menu-buttons { justify-content: flex-start; }
.hs-hero-band.hs-titles-left .hs-hero-media { margin-inline: max(var(--hs-gutter), calc((100% - var(--hs-width)) / 2)) auto; }

/* Titres « left » : titres de section et d'accueil alignés à gauche, filet court en couleur secondaire. */
.hs-titles-left .hs-center { text-align: left; }
.hs-titles-left .hs-hero h1::before { content: ''; display: block; width: 3rem; height: 2px; margin-bottom: 1.25rem; background: var(--hs-secondary); }
.hs-titles-left .hs-page-head { text-align: left; }
.hs-titles-left .hs-page-head p { margin-inline: 0; }
.hs-titles-left .hs-page-head::after { margin-inline: max(var(--hs-gutter), calc((100% - var(--hs-width)) / 2)) auto; }
.hs-titles-left .hs-section h2::after { content: ''; display: block; width: 3rem; height: 2px; margin-top: 0.9rem; background: var(--hs-secondary); }

/* Cartes « stripes » : une liste, un filet entre chaque carte, sans fond ni cadre. */
.hs-cards-stripes .hs-cards { grid-template-columns: minmax(0, 1fr); gap: 0; border-top: 1px solid rgb(0 0 0 / 0.14); }
.hs-cards-stripes .hs-card { display: grid; grid-template-columns: minmax(7rem, 13rem) minmax(0, 1fr); column-gap: 2rem; row-gap: 0.35rem; align-items: baseline; padding: 1.4rem 0; background: none; border: 0; border-bottom: 1px solid rgb(0 0 0 / 0.14); }
.hs-cards-stripes .hs-card h3 { margin: 0; font-size: 1.25rem; }
@media (max-width: 40rem) { .hs-cards-stripes .hs-card { grid-template-columns: minmax(0, 1fr); } }

/* ---- Sélecteur de langue (chantier traduction, 3.1.0) -----------------
   Rien de tout ceci ne s'applique à un site sans langue allumée : le
   sélecteur n'est alors pas rendu. Codes en majuscules dans la voix du menu
   (corps gras, lettres espacées), la langue de la page soulignée du filet
   secondaire comme l'entrée active du menu ; 44 px au doigt partout. En
   tête sur grand écran, dans le volet du menu en mobile. ------------------ */
.hs-visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.hs-lang ul { display: flex; align-items: center; gap: 0.125rem; list-style: none; margin: 0; padding: 0; }
.hs-lang a {
  display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 0.45rem;
  color: var(--hs-body-color); opacity: 0.62; text-decoration: none;
  font-family: var(--hs-body-font); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.1em;
  border-bottom: 2px solid transparent; transition: opacity 0.2s, color 0.2s;
}
.hs-lang a:hover { opacity: 1; color: var(--hs-primary); }
.hs-lang a[aria-current] { opacity: 1; color: var(--hs-primary); border-bottom-color: var(--hs-secondary); }
.hs-header-inner > .hs-lang { margin-left: 0.25rem; padding-left: 1.25rem; border-left: 1px solid rgb(0 0 0 / 0.12); }
.hs-nav .hs-lang { display: none; }
@media (max-width: 900px) {
  .hs-header-inner > .hs-lang { display: none; }
  .hs-nav .hs-lang { display: block; padding: 0.9rem var(--hs-gutter) 1.1rem; border-top: 1px solid rgb(0 0 0 / 0.06); }
  .hs-nav .hs-lang ul { gap: 0.5rem; flex-wrap: wrap; }
  .hs-nav .hs-lang a { display: inline-flex; min-width: 56px; padding: 0 0.75rem; border: 1px solid rgb(0 0 0 / 0.15); border-radius: 2px; opacity: 1; }
  .hs-nav .hs-lang a[aria-current] { background: var(--hs-primary); border-color: var(--hs-primary); color: #fff; }
}

/* ---------------------------------------------------------------------------
   « Un site commun » ou « deux sites » (2026-10-07) : l'accueil de l'hôtel
   (page-hotel.php) et le pied des pages de l'hôtel (parts/footer-hours.php).
   --------------------------------------------------------------------------- */
.hs-hero-meta { margin: 0.9rem 0 0; font-size: 0.95rem; letter-spacing: 0.04em; opacity: 0.88; }
.hs-hero-band .hs-hero-meta { margin-inline: auto; }
.hs-center-actions { justify-content: center; }
.hs-hotel-restaurant h2 { margin-bottom: 0.6rem; }
.hs-hotel-restaurant p { max-width: 46ch; margin-inline: auto; }
.hs-footer-times { margin: 0 0 0.75rem; font-size: 1rem; }
