/* Finitions communes aux deux propositions Cucina Mamma. */

/* Chaque étape du carrousel présente une famille de vrais produits du catalogue. */
.drinks-grid .product-family-slide .product-group-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: repeat(2, minmax(0, 1fr));
  gap: 5px;
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  background: #d9c8b5;
}
.drinks-grid .scene-gallery-track .product-family-slide .product-group-grid img {
  display: block;
  width: 100%;
  height: 100% !important;
  max-width: 100%;
  aspect-ratio: 1 !important;
  object-fit: cover !important;
  background: #f4ebdd;
  transform: none !important;
}
.drinks-grid .product-family-slide figcaption {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-block: 13px;
}
.drinks-grid .product-family-slide figcaption strong {
  font-size: clamp(14px, 1.2vw, 18px);
  line-height: 1.25;
}
.drinks-grid .product-family-slide figcaption span {
  color: var(--muted, #6c584c);
  font-size: 11px;
  font-weight: 500;
  text-align: right;
}

/* Les quatre photos lifestyle ont le même cadrage et la même largeur. */
.editorial-gallery .story-carousel figure.duo-friends,
.editorial-gallery .cm-swiper .swiper-slide.duo-friends {
  flex-basis: min(42vw, 620px) !important;
  width: min(42vw, 620px) !important;
  max-width: 620px !important;
}
.editorial-gallery .duo-friends picture,
.editorial-gallery .duo-friends picture img {
  display: block;
  width: 100%;
}
.editorial-gallery .duo-friends picture img {
  height: auto !important;
  aspect-ratio: 4 / 5 !important;
  object-fit: contain !important;
}
.variant-one .editorial-gallery .story-carousel figure.duo-friends {
  flex-basis: clamp(230px, 28vw, 360px) !important;
  width: clamp(230px, 28vw, 360px) !important;
  max-width: 360px !important;
}
.variant-one .editorial-gallery .story-carousel figure.duo-friends picture img {
  height: auto !important;
  aspect-ratio: 4 / 5 !important;
  object-fit: contain !important;
}
.variant-one .story-carousel,
.variant-one .scene-gallery-track {
  touch-action: pan-y;
}

/* La photo Marseille garde sa force sans occuper plusieurs écrans sur ordinateur. */
@media (min-width: 761px) {
  .marseille-story .life-grid.life-grid-single {
    position: relative;
    left: auto;
    width: min(100%, 760px);
    max-width: 760px;
    margin: 0 auto;
    transform: none;
    display: block;
    overflow: hidden;
  }
  .marseille-story .life-grid.life-grid-single > figure {
    width: 100%;
  }
  .marseille-story .life-grid.life-grid-single img {
    width: 100%;
    height: clamp(430px, 45vw, 620px) !important;
    max-height: 620px !important;
    object-fit: cover !important;
    object-position: center 78%;
  }
}

/* Invitation à laisser un avis : une action claire, puis les avis existants. */
.review-section .review-foot {
  display: block;
  max-width: 760px;
  margin: 22px auto 0;
  padding: 0;
  border: 0;
}
.review-invite {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(250px, .85fr);
  align-items: center;
  gap: clamp(24px, 4vw, 48px);
  padding: clamp(24px, 3.5vw, 38px);
  background: #813c32;
  color: #fff8ec;
}
.review-invite-label {
  margin: 0 0 10px !important;
  color: #efd0b4 !important;
  font-size: 10px !important;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.review-invite h3 {
  margin: 0 0 14px;
  color: inherit;
  font: 400 clamp(27px, 3vw, 38px)/1.07 Georgia, serif;
  letter-spacing: -.035em;
  text-transform: none;
}
.review-invite-copy > p:last-child {
  max-width: 35ch;
  color: #f5e6d6 !important;
  font-size: 13px !important;
  line-height: 1.55;
}
.review-invite-actions {
  display: grid;
  justify-items: stretch;
  gap: 9px;
}
.review-invite-actions a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 50px;
  padding: 12px 16px;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
.review-invite-actions a span { font-size: 19px; line-height: 1; }
.review-invite-actions .review-write {
  background: #fff8ec;
  color: #813c32;
}
.review-invite-actions .review-all {
  width: 100%;
  background: transparent;
  border: 1px solid #dcbca3;
  color: #fff8ec;
  white-space: normal;
}
.review-invite-actions a:hover,
.review-invite-actions a:focus-visible { transform: translateY(-2px); }
.review-invite-actions .review-write:hover,
.review-invite-actions .review-write:focus-visible { background: #f2dfc9; }
.review-invite-actions .review-all:hover,
.review-invite-actions .review-all:focus-visible { background: #fff8ec; color: #813c32; }
.review-invite-actions a:focus-visible { outline: 3px solid #fff8ec; outline-offset: 3px; }
.review-invite-actions small { color: #f3dfcf; font-size: 10px; line-height: 1.45; }
.review-section .review-source {
  max-width: 760px;
  margin: 12px auto 0;
  color: #6d5c51;
  font-size: 10px;
  line-height: 1.5;
}

/* Les pages légales sont accessibles dans la navigation principale du pied de page. */
.footer-information {
  margin-top: 30px;
  padding-top: 19px;
  border-top: 1px solid rgb(255 248 236 / .45);
}
.footer-main .footer-information .small-label {
  margin-bottom: 9px;
  font-size: 10px;
}
.footer-information .legal-links {
  display: grid;
  justify-items: start;
  gap: 2px;
  padding: 0;
}
.footer-main .footer-information .legal-links a {
  min-height: 36px;
  padding: 7px 0;
  font-size: 12px;
  line-height: 1.3;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}

@media (max-width: 760px) {
  .editorial-gallery .story-carousel figure.duo-friends,
  .editorial-gallery .cm-swiper .swiper-slide.duo-friends {
    flex-basis: 82vw !important;
    width: 82vw !important;
    max-width: none !important;
  }
  .variant-one .editorial-gallery .story-carousel figure.duo-friends {
    flex-basis: 100vw !important;
    width: 100vw !important;
    max-width: 100vw !important;
  }
  .drinks-grid .product-family-slide figcaption { display: block; }
  .drinks-grid .product-family-slide figcaption span {
    display: block;
    margin-top: 4px;
    text-align: left;
  }
  .review-invite { grid-template-columns: 1fr; gap: 22px; }
  .review-invite-actions a { min-height: 54px; }
  .review-section .review-source { margin-top: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .review-invite-actions a { transition: none; }
  .review-invite-actions a:hover,
  .review-invite-actions a:focus-visible { transform: none; }
}

/* Finitions demandées par Cucina Mamma — navigation plus douce et hiérarchie simplifiée */
:where(.btn,.pickup-order,.delivery-order,.pickup-open,.filter,.shop-add,.pickup-next,.nav-call,.review-write,.review-all,.footer-order,.service-card-action){border-radius:999px!important}
.menu-toggle .sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.menu-bars{display:inline-flex;flex-direction:column;gap:4px}
.menu-bars i{display:block;width:19px;height:2px;background:currentColor;border-radius:2px}
.hero-stamp{width:clamp(110px,12vw,150px);height:clamp(110px,12vw,150px);font-size:clamp(23px,2.2vw,30px)}
.order-choice{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:center;margin-top:22px}
.order-choice :where(.pickup-order,.delivery-order){min-height:54px;padding:12px 18px;display:flex;align-items:center;justify-content:center;gap:12px;text-align:center;font-size:clamp(13px,1.1vw,16px);line-height:1.25}
.review-slide-top{display:none!important}
.review-nav{justify-content:flex-end}
.review-count{font-size:12px!important;letter-spacing:.08em;color:var(--tomato,#813c32)}
.review-foot .review-invite{border-radius:22px}
.review-invite-actions{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px}
.review-invite-actions :where(.review-write,.review-all){width:auto;min-height:44px;padding:11px 18px}
.visit-strip .btn{justify-content:center}
.footer-order{white-space:nowrap}
.service-card-action{width:max-content;max-width:100%;padding:11px 18px}
@media(max-width:760px){.hero-stamp{width:92px;height:92px;font-size:20px}.order-choice{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.order-choice :where(.pickup-order,.delivery-order){min-height:48px;padding:10px 9px;font-size:12px;gap:6px}.review-invite-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}.review-invite-actions :where(.review-write,.review-all){justify-content:center;padding:10px 12px;font-size:12px}.footer-order{font-size:12px!important}}

.header{position:sticky!important;top:0;z-index:30;background:var(--paper,#f6eddf)}
.menu-toggle[aria-expanded="true"] .menu-bars i:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] .menu-bars i:first-child{transform:translateY(7px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] .menu-bars i:last-child{transform:translateY(-7px) rotate(-45deg)}
.family-photo-placeholder{min-height:460px;display:grid;place-items:center;padding:32px;text-align:center;color:#76564c;background:linear-gradient(135deg,#efe2d0,#f7eee1);border:1px dashed #a97b6d;border-radius:24px;font-weight:700}

/* Ajustement global des boutons et cartes après retour du client */
:where(.btn,.text-link,.pickup-order,.delivery-order,.pickup-open,.pickup-add,.shop-add,.pickup-next,.nav-call,.filter,.shop-filter button,.review-write,.review-all,.service-card-action,.mobile-bottom button,.shop-actions button){border-radius:999px}
.menu-toggle{border-radius:14px!important}
@media(min-width:761px){.marseille-story .life-grid-single .life-main{max-height:560px;overflow:hidden}.marseille-story .life-grid-single .life-main img{width:100%;max-height:560px;object-fit:cover}}
