/*
Theme Name: maferme-theme
Theme URI: https://maferme.fr/
Author: Ma Ferme
Author URI: https://maferme.fr/
Description: Thème WordPress professionnel, léger et maintenable (restaurant / bar / événements).
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 8.0
License: GPL-2.0-or-later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: maferme-theme
Tags: custom-menu, featured-images, full-width-template, theme-options, translation-ready
*/

/* Les styles sont dans assets/css/main.css */

/* -------------------------------------------------------------------------- */
/* Sections ajoutées (BEM)                                                    */
/* -------------------------------------------------------------------------- */

.reviews .section-head {
  margin-bottom: 14px;
}
.mf-reviews__grid,
.reviews__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.mf-reviews__card,
.reviews__card {
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(28, 28, 28, 0.08);
  border-radius: 16px;
  padding: 18px 18px 16px;
}
.mf-reviews__rating,
.reviews__rating {
  margin: 0 0 10px;
  letter-spacing: 0.08em;
  color: var(--brand);
  font-weight: 700;
}
.mf-reviews__text,
.reviews__text {
  margin: 0 0 14px;
  color: var(--text);
  line-height: 1.55;
}
.mf-reviews__meta,
.reviews__meta {
  margin: 0;
  color: var(--muted);
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 8px;
}
.mf-reviews__name,
.reviews__name {
  color: var(--text);
}
.mf-reviews__dot,
.reviews__dot {
  opacity: 0.7;
}
.reviews__embed {
  max-width: 1100px;
}

.hours__card {
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(28, 28, 28, 0.08);
  border-radius: 16px;
  overflow: hidden;
}
.hours__row {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 14px;
  padding: 14px 16px;
}
.hours__row + .hours__row {
  border-top: 1px solid rgba(28, 28, 28, 0.08);
}
.hours__title {
  font-weight: 800;
  color: var(--text);
  display: block;
}
.hours__range {
  display: block;
  color: var(--muted);
  font-weight: 600;
  margin-top: 2px;
}
.hours__value {
  color: var(--text);
  font-weight: 600;
  line-height: 1.45;
}

/* Bandeau : "Nous vous accueillons" (home) */
.mf-hours-band{
  padding: 0 0 var(--space-5);
  margin-top: -92px;
  position: relative;
  z-index: 5;
}
.mf-hours-band__inner{
  margin-top: -26px;
  border-radius: 16px;
  border: 1px solid rgba(0,0,0,.10);
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.76));
  box-shadow: 0 18px 60px rgba(17,17,17,.12);
  padding: 14px 16px;
}
.mf-welcome__kicker{
  margin: 0 0 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 850;
  font-size: .78rem;
  color: rgba(28,28,28,.72);
}
.mf-welcome__services{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 12px;
}
.mf-welcome__service{
  margin:0;
  padding: 10px 10px;
  border-radius: 12px;
  border: 1px solid rgba(0,0,0,.08);
  background: rgba(255,255,255,.70);
  display:flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-weight: 750;
}
.mf-welcome__label{
  color: rgba(28,28,28,.86);
  font-weight: 850;
}
.mf-welcome__value{
  color: rgba(28,28,28,.74);
  white-space: nowrap;
}
.mf-seasons{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.mf-season{
  border: 1px solid rgba(0,0,0,.08);
  border-radius: 14px;
  background: rgba(255,255,255,.86);
  padding: 14px 14px;
}
.mf-season__head{
  margin: 0 0 8px;
  display:flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}
.mf-season__title{
  font-weight: 900;
  letter-spacing: -.4px;
  color: var(--text);
}
.mf-season__range{
  color: rgba(28,28,28,.68);
  font-weight: 650;
  font-size: .92rem;
}
.mf-season__compact{
  margin: 0;
  color: rgba(28,28,28,.82);
  font-weight: 750;
  line-height: 1.55;
}
.mf-season__compact + .mf-season__compact{
  margin-top: 6px;
}

/* Composant: Horaires & réservation (liste) */
.mf-hrs{
  border: 1px solid rgba(0,0,0,.10);
  border-radius: 14px;
  background: rgba(255,255,255,.78);
  padding: 12px 12px;
}
.mf-hrs__title{
  margin: 0 0 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 850;
  font-size: .78rem;
  color: rgba(28,28,28,.72);
}
.mf-hrs__list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.mf-hrs__item{
  display:flex;
  align-items: baseline;
  justify-content: flex-start;
  gap: 8px;
  font-weight: 700;
}
.mf-hrs__label{
  font-weight: 850;
  color: rgba(28,28,28,.88);
}
.mf-hrs__value{
  color: rgba(28,28,28,.80);
}
.mf-hrs__value::before{
  content: ": ";
  opacity: .7;
}

/* Section: Horaires & réservation (mise en forme recommandée) */
.mf-hours-resa .mf-resa-card{
  margin-top: 12px;
  border-radius: 16px;
  border: 1px solid rgba(0,0,0,.12);
  background: linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.78));
  box-shadow: 0 18px 60px rgba(17,17,17,.12);
  padding: 14px 14px;
}
.mf-hours-resa .btn--stack{
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  padding-top: 10px;
  padding-bottom: 10px;
}
.mf-hours-resa .btn--stack .btn__kicker{
  letter-spacing: .10em;
  text-transform: uppercase;
  font-size: .72rem;
  font-weight: 850;
  opacity: .92;
}
.mf-hours-resa .btn--stack .btn__value{
  font-size: 1.05rem;
  font-weight: 900;
  letter-spacing: -.2px;
}
.mf-hours-resa .mf-resa-card__lines{
  display:grid;
  gap: 8px;
}
.mf-hours-resa .mf-resa-card__line{
  display:grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  gap: 12px;
  font-weight: 800;
}
.mf-hours-resa .mf-resa-card__label{
  color: rgba(28,28,28,.88);
  font-weight: 900;
}
.mf-hours-resa .mf-resa-card__value{
  color: rgba(28,28,28,.74);
  white-space: nowrap;
  text-align: right;
  font-weight: 850;
}
.mf-hours-resa .mf-resa-card__divider{
  height: 1px;
  background: rgba(0,0,0,.10);
  margin: 12px 0;
}
.mf-hours-resa .mf-resa-card__season + .mf-resa-card__season{
  margin-top: 12px;
}
.mf-hours-resa .mf-resa-card__season-head{
  margin: 0 0 8px;
  display:flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}
.mf-hours-resa .mf-resa-card__season-title{
  font-weight: 950;
  letter-spacing: -.3px;
  color: var(--text);
}
.mf-hours-resa .mf-resa-card__season-range{
  color: rgba(28,28,28,.66);
  font-weight: 750;
  font-size: .92rem;
  white-space: nowrap;
}
.mf-hours-resa .mf-resa-card__season-lines{
  display:grid;
  gap: 6px;
}
.mf-hours-resa .mf-resa-card__season-line{
  display:grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  gap: 12px;
  font-weight: 750;
}
.mf-hours-resa .mf-resa-card__season-label{
  color: rgba(28,28,28,.86);
  font-weight: 900;
}
.mf-hours-resa .mf-resa-card__season-value{
  color: rgba(28,28,28,.78);
  text-align: right;
  white-space: nowrap;
  font-weight: 800;
}
.mf-hours-resa .mf-resa-card__season-value::before{
  content: ": ";
  opacity: .7;
}

/* Photo: boost léger */
.mf-hours-resa .split__media img{
  filter: brightness(1.05) contrast(1.1) saturate(1.1);
}

/* Horaires dans le footer */
.footer-hours{
  margin-top: 14px;
  max-width: 520px;
}
.footer-hours .hours__card{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
}
.footer-hours .hours__row + .hours__row{
  border-top: 1px solid rgba(255,255,255,.12);
}
.footer-hours .hours__row{
  grid-template-columns: 170px 1fr;
  padding: 12px 12px;
}
.footer-hours .hours__title{
  color: rgba(255,255,255,.94);
}
.footer-hours .hours__range{
  color: rgba(255,255,255,.70);
}
.footer-hours .hours__value{
  color: rgba(255,255,255,.86);
}

/* Footer: horaires sous les CTA (colonne droite) */
.site-footer .footer-actions{
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
}
.site-footer .footer-actions__ctas{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.site-footer .footer-actions__ctas .mf-btn,
.site-footer .footer-actions__ctas .btn{
  white-space: nowrap;
}

/* Footer: version sombre du bloc "Horaires & réservation" */
.site-footer .footer-hours .mf-hrs__title{
  color: rgba(255,255,255,.72);
  margin-top: 0;
}
.site-footer .footer-hours .mf-hrs__label{
  color: rgba(255,255,255,.92);
}
.site-footer .footer-hours .mf-hrs__value{
  color: rgba(255,255,255,.82);
}
.site-footer .footer-hours .mf-hrs__list{
  gap: 6px;
}

/* Footer: Horaires (compact, scannable) */
.mf-footer-hours__title{
  margin: 0 0 10px;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 850;
  font-size: .78rem;
  color: rgba(255,255,255,.72);
}
.mf-footer-hours__grid{
  display:grid;
  gap: 10px;
}
.mf-footer-hours__season{
  padding: 10px 10px;
  border-radius: 14px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
}
.mf-footer-hours__season-title{
  margin: 0 0 8px;
  display:flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-weight: 900;
  letter-spacing: -.3px;
  color: rgba(255,255,255,.92);
}
.mf-footer-hours__season-range{
  color: rgba(255,255,255,.68);
  font-weight: 750;
  font-size: .9rem;
  white-space: nowrap;
}
.mf-footer-hours__list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap: 6px;
}
.mf-footer-hours__item{
  display:flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-weight: 750;
}
.mf-footer-hours__label{
  color: rgba(255,255,255,.90);
  font-weight: 850;
  white-space: nowrap;
}
.mf-footer-hours__value{
  color: rgba(255,255,255,.78);
  text-align: right;
}

.insta__head {
  display: flex;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
}
.mf-instagram__embed {
  /* Les plugins gèrent souvent leur propre grille.
     On garde un conteneur neutre + des gardes-fous. */
  max-width: 1100px;
}
.mf-instagram__embed #sb_instagram #sbi_images,
.mf-instagram__embed #sbi_images {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}
.mf-instagram__embed #sb_instagram #sbi_images .sbi_item,
.mf-instagram__embed #sbi_images .sbi_item {
  width: auto !important;
  margin: 0 !important;
}
.mf-instagram__embed #sb_instagram #sbi_images .sbi_photo_wrap,
.mf-instagram__embed #sbi_images .sbi_photo_wrap {
  border-radius: 14px;
  overflow: hidden;
}
.mf-instagram__embed #sb_instagram #sbi_images .sbi_photo,
.mf-instagram__embed #sbi_images .sbi_photo {
  display: block;
  width: 100%;
  aspect-ratio: 1 / 1;
  background-size: cover;
  background-position: center;
}
.mf-instagram__fallback {
  margin: 0;
}

/* Footer trust (badges + partenaires + paiements) */
.footer-trust {
  margin-top: 22px;
  padding: 22px 0 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  gap: 18px 34px;
}

.footer-trust__group {
  display: grid;
  gap: 10px;
  justify-items: center;
  text-align: center;
}

.footer-trust__label {
  margin: 0;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.78);
  font-weight: 700;
}

.footer-trust__items {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 14px 18px;
}

.footer-trust__img {
  width: auto;
  opacity: 0.85;
  transition: opacity 0.2s ease;
}

.footer-trust__img:hover {
  opacity: 1;
}

/* Tailles harmonisées (desktop) */
.footer-trust__group--badges .footer-trust__img { height: 40px; }
.footer-trust__group--partners .footer-trust__img { height: 32px; }
.footer-trust__group--payments .footer-trust__img { height: 30px; }

/* Exceptions */
.footer-trust__img--rainbow { height: 34px !important; } /* ~10-15% plus petit */
.footer-trust__img--animals { height: 44px !important; } /* légèrement plus grand */
.footer-trust__img--ticket { height: 30px !important; }

@media (max-width: 980px) {
  .mf-reviews__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .hours__row {
    grid-template-columns: 200px 1fr;
  }
  .mf-instagram__embed #sb_instagram #sbi_images,
  .mf-instagram__embed #sbi_images {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .mf-reviews__grid {
    grid-template-columns: 1fr;
  }
  .hours__row {
    grid-template-columns: 1fr;
  }
  .footer-hours .hours__row{
    grid-template-columns: 1fr;
  }
  .mf-hours-band__inner{
    margin-top: -18px;
  }
  .mf-welcome__services{
    grid-template-columns: 1fr;
  }
  .mf-welcome__service{
    padding: 10px 12px;
  }
  .mf-seasons{
    grid-template-columns: 1fr;
  }
  .mf-season__head{
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
  }
  .mf-season__compact{
    font-weight: 700;
  }
  .mf-hours-band{
    margin-top: -66px;
  }
  .mf-hrs__item{
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
  }
  .mf-footer-hours__item{
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
  }
  .mf-footer-hours__value{
    text-align: left;
  }
  .mf-hours-resa .mf-resa-card__line,
  .mf-hours-resa .mf-resa-card__season-line{
    grid-template-columns: 1fr;
  }
  .mf-hours-resa .mf-resa-card__value,
  .mf-hours-resa .mf-resa-card__season-value{
    text-align: left;
  }
  .mf-hours-resa .mf-resa-card__season-head{
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
  }
  .mf-instagram__embed #sb_instagram #sbi_images,
  .mf-instagram__embed #sbi_images {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 768px) {
  .site-footer .footer-actions{
    align-items: flex-start;
  }
  .site-footer .footer-actions__ctas{
    justify-content: flex-start;
  }
}

@media (max-width: 768px) {
  .footer-trust {
    gap: 14px 18px;
    padding: 18px 0 8px;
  }

  /* Tailles harmonisées (mobile) */
  .footer-trust__group--badges .footer-trust__img { height: 32px; }
  .footer-trust__group--partners .footer-trust__img { height: 26px; }
  .footer-trust__group--payments .footer-trust__img { height: 24px; }

  .footer-trust__img--rainbow { height: 28px !important; }
  .footer-trust__img--animals { height: 36px !important; }
}
