/* MÉRA — compositions téléphone et tablette.
   Aucun style de page n'est modifié à partir de 1024px.
   Les éléments ajoutés pour ces formats restent absents du rendu desktop. */
.compact-only { display: none; }

@media (max-width: 1023.98px) {
  .compact-only { display: block; }
  .compact-desktop-only { display: none; }
  a.compact-only { display: inline-flex; }

  /* Une réservation accessible depuis chaque page, sans ouvrir le menu. */
  .compact-header-cta {
    align-items: center;
    gap: 0.65rem;
    margin-left: auto;
    min-height: 44px;
    color: var(--color-cobalt);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-decoration: none;
    text-transform: uppercase;
  }
  .site-header__inner { gap: 1rem; }
  .menu-toggle { margin-left: 0; }
  .is-menu-open .compact-header-cta { visibility: hidden; }
  .js .site-nav { padding-top: 1.5rem; }
  .js .site-nav__link { min-height: 4rem; }
  .site-nav__link[aria-current="page"] { color: var(--color-cobalt); }

  /* Lecture immédiate : les titres ne restent plus cachés sous un masque.
     Les photos restent stables pendant le défilement. */
  .js [data-reveal] { opacity: 1; transform: none; transition-duration: 280ms; }
  .js [data-reveal="clip"] .reveal-line { transform: none; transition: none; }
  .js [data-reveal="media"] img {
    clip-path: none;
    transform: none;
    transition: none;
  }
  .hero__title-text, .hero__media, .hero__kicker,
  .hero__manifesto, .hero__cta, .hero__intro { animation: none; }

  .module-text, .rsv-text, .jrn-feature__text, .jrn-item__text {
    font-size: 1rem;
    line-height: 1.5;
  }
  .link-arrow { max-width: 100%; }
  .link-arrow__label { min-width: 0; }
  .module-title, .maison-title, .rsv-title { line-height: 1.05; }
  .rsv-field__input, .rsv-field__hint, .jrn-news__input { font-size: 1rem; }
  .btn { min-height: 3.25rem; }
  .edito-text, .art-p { line-height: 1.6; }
  .art-hero__title { line-height: 1.02; }
  .edito-section__caption[data-placeholder], .art-caption[data-placeholder] { display: none; }

  /* Les informations connues remplacent les coordonnées encore à fournir. */
  .site-footer__infos:has([data-placeholder]), .site-footer__aside { display: none; }
  .site-footer { padding-block: 2.5rem 1.5rem; }
  .site-footer__main { gap: 1.5rem; }
  .site-footer__nav-list { gap: 0.5rem 1.5rem; }
  .site-footer__link { display: inline-flex; align-items: center; min-height: 44px; }
  .compact-footer-details {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 2rem;
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--color-rule-on-dark-soft);
    font-family: var(--font-serif);
    font-size: 1rem;
    line-height: 1.6;
  }
  .compact-footer-details .t-label { color: var(--color-muted-on-dark); }
  .site-footer__legal { margin-top: 1.5rem; }

  .hero__intro { display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; }
  .hero__lead { order: 0; margin: 0; }
  .compact-hero-reserve { order: 1; gap: 1.25rem; justify-content: space-between; }
  .hero__intro > .link-arrow { order: 2; }
}

/* Téléphone : une lecture continue, des marges communes, des blocs jointifs. */
@media (max-width: 767.98px) {
  .hero, .jrn-hero, .rsv-hero { min-height: 0; }
  .hero__media {
    flex: none;
    height: clamp(18rem, 90vw, 28rem);
    aspect-ratio: auto;
  }
  .hero__inner { padding-block: 2rem; }
  .hero__lead { font-size: clamp(1.5rem, 6.7vw, 1.85rem); line-height: 1.15; }
  .compact-hero-reserve { width: 100%; }
  .hero__intro > .link-arrow { align-self: center; }
  .jrn-hero__media { flex: none; min-height: 0; height: clamp(18rem, 85vw, 26rem); }
  .jrn-hero__inner { padding-block: 1.75rem; }
  .maison-hero__media { height: clamp(23rem, 110vw, 32rem); aspect-ratio: auto; }
  .rsv-hero__visual { flex: none; }
  .rsv-hero__media { flex: none; min-height: 0; height: clamp(23rem, 110vw, 32rem); }

  .maison__inner, .resa, .maison-lieu__content, .maison-brigade__content,
  .maison-resa__content, .carte-produits__block, .jrn-feature__body,
  .jrn-news, .rsv-form, .rsv-comptoir__content, .rsv-infos {
    padding-block: 2rem;
  }
  .module-text { max-width: 42ch; }
  .maison__title, .edition__title { font-size: clamp(2.25rem, 10vw, 2.75rem); }
  .maison__text { font-size: 1rem; line-height: 1.5; }
  .maison__media { margin-bottom: 2rem; }
  .produits, .cuisine { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); min-height: 15rem; }
  .produits__body, .cuisine__body { padding-block: 2rem; gap: 1.25rem; }
  .produits .module-title, .cuisine .module-title { font-size: clamp(1.3rem, 6vw, 1.625rem); }
  .produits__media img, .cuisine__media img { position: absolute; inset: 0; }
  .journal-teaser { padding-block: 2rem; gap: 1.25rem; }
  .journal-teaser__intro { padding: 0; }
  .journal-teaser .module-title { font-size: clamp(1.6rem, 7.5vw, 2rem); }
  .journal-teaser__link { border-top: 0; }
  .resa__btn, .maison-resa__btn { width: 100%; }

  .maison-duo { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); }
  .maison-matieres { padding-block: 2rem; gap: 1rem; }
  .maison-matieres .maison-title { font-size: clamp(1.25rem, 5.8vw, 1.5rem); }
  .maison-matieres .module-text { font-size: 0.9375rem; line-height: 1.5; }
  .maison-title--ruled { gap: 0.75rem; }
  .maison-title--ruled::after { width: 1.5rem; }
  .maison-lieu__content, .maison-brigade__content, .maison-resa__content { gap: 1rem; }
  .maison-resa .maison-title { font-size: 1.625rem; }
  .jrn-list { padding-block: 2rem; }
  .jrn-list__grid { gap: 2.5rem; }
  .jrn-item--desktop { display: block; }
  .jrn-feature__title { font-size: clamp(2rem, 9.5vw, 2.75rem); line-height: 1; }
  .jrn-feature__text, .jrn-item__text, .jrn-news__text { line-height: 1.5; }
  .jrn-edition__body { padding-block: 2rem; }
  .rsv-form__form { row-gap: 1.25rem; }
  .rsv-field__input { min-height: 3.25rem; }
  .rsv-field__input--area { min-height: 8rem; }
  .edito-section, .edito-band, .edito-cta, .art-body { padding-block: 2.5rem; }
  .edito-hero { min-height: 28rem; }
  .edito-section__head { grid-template-columns: 2rem minmax(0, 1fr); }
  .edito-section__media { margin-bottom: 1.25rem; }
  .edito-section__title { font-size: clamp(1.5rem, 6.4vw, 1.85rem); }
}

@media (min-width: 360px) and (max-width: 767.98px) {
  :root { --grid-gutter: 1.25rem; }
}

@media (max-width: 359.98px) {
  .jrn-news__row { grid-template-columns: minmax(0, 1fr); gap: 0.75rem; }
  .jrn-news__input { border-right: 1px solid var(--color-rule-on-light-soft); }
}

/* iPad portrait / tablettes : compositions propres, sans étirer le desktop. */
@media (min-width: 768px) and (max-width: 1023.98px) {
  :root { --grid-gutter: 2rem; }
  .site-main { --module-pad-x: 2rem; --module-pad-y: 2.5rem; }

  /* Accueil : le nom en tête, la cuisine photographiée au contact du texte. */
  .hero { display: grid; grid-template-columns: minmax(0, 42fr) minmax(0, 58fr); overflow: hidden; }
  .hero__inner { display: contents; }
  .hero__media {
    position: relative;
    inset: auto;
    grid-column: 2;
    grid-row: 2;
    height: 28rem;
    aspect-ratio: auto;
  }
  .hero__media img { object-position: 52% 50%; }
  .hero__title {
    position: relative;
    inset: auto;
    grid-column: 1 / -1;
    grid-row: 1;
    margin: 0 var(--grid-gutter) 1.5rem;
    padding-top: 0.16em;
    font-size: 21.8vw;
    line-height: 0.85;
  }
  .hero__inner .hero__kicker, .hero__inner .hero__manifesto, .hero__inner .hero__cta { display: none; }
  .hero__intro.until-md {
    display: flex !important; /* Composition tablette : réutilise l'introduction mobile. */
    position: relative;
    inset: auto;
    grid-column: 1;
    grid-row: 2;
    justify-content: center;
    gap: 1.5rem;
    padding: 2rem var(--grid-gutter);
  }
  .hero__lead { font-size: clamp(1.7rem, 3.3vw, 2.1rem); line-height: 1.15; }
  .hero__lead br { display: none; }
  .compact-hero-reserve { font-size: 0.6875rem; padding-inline: 1rem; width: 100%; }

  .edition { padding-block: 2.5rem; }
  .edition__grid { grid-template-columns: minmax(0, 40fr) minmax(0, 60fr); column-gap: 2rem; }
  .edition__aside { grid-column: 1; }
  .edition__main { grid-column: 2; }
  .edition__title { font-size: 3.5rem; }
  .edition__menu .menu-item__name, .edition__menu .menu-item__price { font-size: 0.875rem; }
  .edition__menu .menu-item__desc { font-size: 0.9375rem; line-height: 1.4; }
  .home .maison { --maison-split: 44%; min-height: 26rem; }
  .maison__content { max-width: 34%; gap: 1.25rem; }
  .maison__title { font-size: 3.5rem; }
  .maison__index { margin-top: 0; }
  .maison__btn { width: 100%; font-size: 0.6875rem; padding-inline: 0.75rem; }
  .produits, .cuisine { min-height: 22rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .produits__body, .cuisine__body { padding: 2rem; gap: 1.25rem; }
  .produits__media img, .cuisine__media img { position: absolute; inset: 0; }
  .produits .module-title, .cuisine .module-title { font-size: 2rem; }
  .produits .module-text, .cuisine .module-text { font-size: 1.125rem; line-height: 1.5; }
  .home-duo--resa { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .resa { padding: 2.5rem 2rem; }
  .resa .module-title { font-size: 2rem; }
  .resa__btn { width: 100%; }
  .journal-teaser { grid-template-columns: minmax(0, 1fr); padding: 2.5rem 2rem; gap: 1.5rem; }
  .journal-teaser__intro { padding: 0; gap: 1rem; }
  .journal-teaser .module-title { font-size: 2rem; }
  .journal-teaser__article { display: none; }
  .journal-teaser__media { aspect-ratio: 2 / 1; align-self: stretch; }

  /* Carte et Journal : texte à gauche, photographie entière à droite. */
  .carte-hero, .jrn-hero { display: grid; grid-template-columns: minmax(0, 45fr) minmax(0, 55fr); min-height: 0; }
  .carte-hero__media, .jrn-hero__media {
    position: relative; inset: auto; grid-column: 2; grid-row: 1;
    aspect-ratio: auto; min-height: 0; mask-image: none; -webkit-mask-image: none;
  }
  .carte-hero__inner, .jrn-hero__inner {
    grid-column: 1; grid-row: 1; height: auto; padding: 2.5rem var(--grid-gutter);
    display: flex; flex-direction: column; align-items: flex-start; gap: 1.25rem;
  }
  .carte-hero__inner > *, .jrn-hero__inner > * { position: static; inset: auto; margin: 0; max-width: 100%; }
  .carte-hero__title, .carte-hero__title[data-reveal="clip"],
  .jrn-hero__title, .jrn-hero__title[data-reveal="clip"] {
    position: static; margin: 0; padding-top: 0.12em;
    font-size: clamp(3.75rem, 8.3vw, 5rem); line-height: 0.9; white-space: normal;
  }
  .carte-hero__edition { gap: 0.5rem 1rem; }
  .carte-hero__edition-num { font-size: 1.75rem; }
  .carte-hero__dates { font-size: 0.9375rem; }
  .carte-hero__intro { width: auto; font-size: 1.125rem; line-height: 1.5; }
  .carte-hero__index { width: 100%; font-size: 0.75rem; line-height: 1.45; padding-top: 1.25rem; }
  .carte-hero__tag, .jrn-hero__tag { display: none; }
  .jrn-hero__kicker { font-size: 1rem; line-height: 1.35; }
  .jrn-hero__text { font-size: 1.125rem; line-height: 1.5; }
  .jrn-hero__rule { width: 3rem; }
  .jrn-hero__cta { font-size: 0.75rem; }
  .jrn-img--hero { --pos: 65% 50%; }
  .carte-menu { padding-block: 2.5rem; }
  .carte-menu__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
  .carte-menu__aside { grid-column: 1 / -1; }
  .carte-menu__media { aspect-ratio: 3 / 1; }
  .carte-menu__col { grid-column: auto; }
  .carte-menu .menu-item__name, .carte-menu .menu-item__price { font-size: 1rem; }
  .carte-produits { grid-template-columns: repeat(2, minmax(0, 1fr)); min-height: 0; }
  .carte-produits__media { grid-column: 2; grid-row: 1 / span 2; }
  .carte-produits__block { grid-column: 1; padding: 2rem; gap: 1rem; }
  .carte-produits__block .module-title { font-size: 2rem; }
  .carte-editions__inner { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .carte-editions__all { justify-self: start; }
  .carte-resa { grid-template-columns: 1fr 1fr; }
  .carte-resa__lieu { right: 50%; }

  /* Maison et réservation : photo en tête, repères dans une bande lisible. */
  .maison-hero, .rsv-hero { display: block; min-height: 0; }
  .maison-hero__visual, .rsv-hero__visual { position: relative; inset: auto; display: block; }
  .maison-hero__media, .rsv-hero__media { position: relative; inset: auto; aspect-ratio: 16 / 9; min-height: 0; }
  .maison-hero__title, .maison-hero__title[data-reveal="clip"],
  .rsv-hero__title, .rsv-hero__title[data-reveal="clip"] {
    position: absolute; top: auto; bottom: 6rem; left: var(--grid-gutter); right: var(--grid-gutter);
    margin: 0; padding-top: 0.12em; font-size: 7rem; line-height: 0.85;
    color: var(--color-ivory); white-space: normal;
  }
  .maison-hero__lines:not(.maison-hero__lines--over), .rsv-hero__lines:not(.rsv-hero__lines--over) { clip-path: none; }
  .maison-hero__lines--over, .rsv-hero__lines--over { display: none; }
  .maison-hero__lines::first-line { font-size: 1em; }
  .maison-hero__kicker, .rsv-hero__kicker {
    top: auto; bottom: 2rem; left: var(--grid-gutter); right: var(--grid-gutter);
    font-size: 1rem; line-height: 1.35; color: var(--color-ivory);
  }
  .maison-hero__inner, .rsv-hero__inner { display: flex; justify-content: space-between; align-items: center; gap: 2rem; height: auto; padding-block: 1.5rem; }
  .maison-hero__inner > *, .rsv-hero__inner > * { position: static; margin: 0; }
  .maison-hero__index { grid-template-columns: 2.5rem 1fr; padding: 0; background: none; font-size: 0.75rem; line-height: 1.4; }
  .rsv-hero__info { font-size: 0.75rem; line-height: 1.4; }
  .maison-hero__cta, .rsv-hero__cta { color: var(--color-black); gap: 1rem; text-align: left; }
  .maison-hero__cta-label, .rsv-hero__cta-label { font-size: 0.75rem; line-height: 1.4; }
  .maison-hero__cta .btn-round, .rsv-hero__cta .btn-round { width: 3rem; height: 3rem; }
  .maison-lieu { grid-template-columns: minmax(0, 52fr) minmax(0, 48fr); min-height: 22rem; }
  .maison-brigade { grid-template-columns: minmax(0, 48fr) minmax(0, 52fr); min-height: 22rem; }
  .maison-lieu__content, .maison-brigade__content, .maison-matieres, .maison-resa__content { padding: 2rem; gap: 1rem; justify-content: center; }
  .maison-lieu .maison-title, .maison-brigade .maison-title, .maison-matieres .maison-title, .maison-resa .maison-title { font-size: 2rem; line-height: 1.05; margin: 0; gap: 1rem; }
  .maison-lieu .module-text, .maison-brigade .module-text, .maison-matieres .module-text, .maison-resa .module-text { max-width: 100%; font-size: 1.125rem; line-height: 1.5; margin: 0; }
  .maison-lieu .link-arrow, .maison-brigade .link-arrow, .maison-matieres .link-arrow { font-size: 0.75rem; margin: 0; }
  .maison-duo { grid-template-columns: minmax(0, 48fr) minmax(0, 52fr); min-height: 22rem; }
  .maison-matieres { order: 1; }
  .maison-cuisine { order: 2; }
  .maison-atmosphere, .maison-resa__tags { display: none; }
  .maison-resa { grid-template-columns: minmax(0, 52fr) minmax(0, 48fr); min-height: 20rem; }
  .maison-resa .maison-title { font-size: 1.75rem; }
  .maison-resa__btn { margin-top: 0.5rem; }

  .jrn-feature { grid-template-columns: 1fr 1fr; align-items: stretch; gap: 0; padding: 0; min-height: 22rem; }
  .jrn-feature__media { height: auto; margin: 0; }
  .jrn-feature__body { justify-content: center; padding: 2rem; gap: 1rem; }
  .jrn-feature .jrn-feature__title[data-reveal="clip"], .jrn-feature__title { font-size: 2.5rem; line-height: 1; margin: 0; }
  .jrn-feature__text { font-size: 1.125rem; line-height: 1.5; margin: 0; }
  .jrn-br { display: inline; }
  .jrn-list { padding-block: 2.5rem; min-height: 0; }
  .jrn-list__grid { gap: 1.5rem; }
  .jrn-item article { height: 100%; gap: 1rem; }
  .jrn-item + .jrn-item::before { display: none; }
  .jrn-item__media { height: auto; aspect-ratio: 4 / 3; margin: 0; }
  .jrn-item__title { font-size: 1.5rem; line-height: 1.08; margin: 0; }
  .jrn-item__text { font-size: 1.0625rem; line-height: 1.5; margin: 0; }
  .jrn-item .jrn-read { margin-top: auto; }
  .jrn-edition { grid-template-columns: 1fr 1fr; min-height: 18rem; }
  .jrn-edition__body { justify-content: center; gap: 1rem; padding: 2rem; }
  .jrn-edition__title { font-size: 2.5rem; }
  .jrn-edition__dates, .jrn-edition__text { font-size: 1rem; line-height: 1.5; margin: 0; }
  .jrn-edition__quote { display: none; }
  .jrn-news { display: block; min-height: 0; padding-block: 2.5rem; }
  .jrn-news__intro { padding: 0; }
  .jrn-news__title { font-size: 2rem; }
  .jrn-news__text { font-size: 1.125rem; line-height: 1.5; margin-top: 0.75rem; }
  .jrn-news__form { margin-top: 1.5rem; }
  .jrn-news__row { grid-template-columns: minmax(0, 1fr) auto; }
  .jrn-news__input, .jrn-news__btn { min-height: 3.25rem; height: auto; }

  .rsv-form { display: block; min-height: 0; padding: 2.5rem var(--grid-gutter); }
  .rsv-form__intro { padding: 0; }
  .rsv-form .rsv-title { font-size: 2.25rem; }
  .rsv-form__text { max-width: 44ch; font-size: 1.125rem; line-height: 1.5; margin-top: 1rem; }
  .rsv-form__form { margin: 2rem 0 0; padding: 0; border: 0; gap: 1.5rem; min-height: 0; }
  .rsv-field:nth-of-type(n + 3) { margin-top: 0; }
  .rsv-field__label { margin: 0; font-size: 0.75rem; }
  .rsv-field__control { margin-top: 0.5rem; }
  .rsv-field__input { min-height: 3.25rem; }
  .rsv-field__input--area { min-height: 8rem; }
  .rsv-field__help, .rsv-field__error { font-size: 0.8125rem; }
  .rsv-form__actions { margin-top: 0; }
  .rsv-form__submit { width: 100%; min-height: 3.25rem; }
  .rsv-salle, .rsv-comptoir { grid-template-columns: 1fr 1fr; min-height: 20rem; }
  .rsv-salle__content, .rsv-comptoir__content { justify-content: center; padding: 2rem; gap: 1rem; }
  .rsv-salle .rsv-title, .rsv-comptoir .rsv-title { font-size: 2rem; }
  .rsv-salle .rsv-text, .rsv-comptoir .rsv-text { font-size: 1.125rem; line-height: 1.5; margin: 0; }
  .rsv-salle .link-arrow, .rsv-comptoir .link-arrow { margin: 0; font-size: 0.75rem; }
  .rsv-infos { padding-block: 2.5rem; }
  .rsv-infos .rsv-title { font-size: 2rem; }
  .rsv-infos__list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; margin-top: 2rem; }
  .rsv-info { grid-template-columns: minmax(0, 1fr); gap: 0.75rem; }
  .rsv-info + .rsv-info { padding-left: 1.5rem; }
  .rsv-info__icon { width: 1.5rem; height: 1.5rem; margin: 0; }
  .rsv-info__label { margin: 0; font-size: 0.75rem; }
  .rsv-info__text { font-size: 1rem; line-height: 1.5; }
  .edito-hero { min-height: 32rem; padding: 3rem var(--grid-gutter); }
  .edito-hero__title { font-size: 5.5rem; line-height: 0.95; }
  .edito-hero__lead { font-size: 1.25rem; }
  .edito-section, .edito-band, .edito-cta, .art-body, .art-next { padding-block: 3rem; column-gap: 2rem; }
  .edito-section__head { grid-template-columns: 2.25rem minmax(0, 1fr); }
  .edito-text, .art-p { font-size: 1.125rem; }
  .edito-section__title { font-size: 2rem; }
  .art-hero { padding-block: 3rem 2rem; column-gap: 2rem; }
  .art-hero__title { font-size: 3.5rem; line-height: 1; }
}
