/* Cucina Mamma — editorial direction and motion. Existing identity, new composition. */
:root{--editorial-ease:cubic-bezier(.19,1,.22,1)}
.header-inner{min-height:104px}.header{background:var(--paper)}.header .brand img{width:78px;height:78px}.nav>a{font-size:12px}
.opening{padding-top:26px;padding-bottom:0}.opening-heading{padding-bottom:20px}.opening-heading .eyebrow{font-size:10px}.opening-grid{display:block}.opening-copy{display:grid;grid-template-columns:1fr auto;gap:24px 48px;padding:0 0 28px}.opening h1{grid-column:1/-1;max-width:none;font-size:clamp(80px,12.7vw,206px);line-height:.82;letter-spacing:-.035em;margin:0;padding:6px 0 12px;text-wrap:initial}.opening h1 .hero-line{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em;color:var(--tomato);-webkit-text-stroke:0}.opening h1 .hero-line-inner{display:block;color:inherit;-webkit-text-stroke:inherit}.opening h1 .hero-line-outline{color:transparent;-webkit-text-stroke:1.5px var(--tomato)}.opening-copy>p{max-width:43ch;font-size:14px;line-height:1.7;margin:0;align-self:center}.opening .hero-actions{align-self:center;gap:28px}.opening-address{margin:0;font-size:9px;letter-spacing:.12em;grid-column:1/-1;padding-top:4px}.opening-photo{position:relative;left:50%;width:100vw!important;max-width:none;margin:0 0 0 -50vw!important;aspect-ratio:auto;height:clamp(340px,42vw,640px);overflow:hidden;border-radius:0;background:#e7dac6}.opening-photo>picture{height:100%;width:100%}.opening-photo>picture img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 51%;transform:none}.opening-photo figcaption{bottom:0;background:transparent;color:#fffaf2;text-shadow:0 1px 14px #26160e;padding:22px var(--space);z-index:2}.opening-photo::after{content:"";position:absolute;inset:65% 0 0;background:linear-gradient(transparent,rgb(35 24 15 / .46));pointer-events:none}.opening .round-note{top:24px;right:var(--space);width:82px;height:82px;font-size:23px;border-width:2px;z-index:2}.opening-bottom{margin:0;padding-block:22px;border-top:0}.opening-bottom a{display:inline-flex;align-items:center;min-height:44px}
/* A dedicated ordering spread instead of two consecutive full-screen pizza banners. */
body:has(.opening) .uber-banner-shop.wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;background:#eadfcf;margin-top:0;margin-bottom:0;overflow:clip}
body:has(.opening) .uber-banner-shop .uber-banner-photo{width:100%;height:auto!important;aspect-ratio:16/9!important;align-self:center}
body:has(.opening) .uber-banner-shop .uber-banner-photo img{object-fit:contain}
body:has(.opening) .uber-banner-shop .uber-banner-copy{padding:clamp(26px,4vw,64px);background:var(--paper)}
body:has(.opening) .uber-banner-shop h2{font-size:clamp(32px,3.5vw,54px);line-height:.96;text-wrap:balance;margin-block:18px}
body:has(.opening) .uber-banner-shop p:not(.eyebrow){font-size:13px;line-height:1.7}
body:has(.opening) .order-choice{gap:10px;margin-top:22px}
body:has(.opening) .order-choice :is(.pickup-order,.delivery-order){min-height:50px;font-size:13px;padding:12px 18px;flex-basis:190px;border-radius:0;border-width:1px}
body:has(.opening) .order-choice .uber-order{background:transparent;color:var(--tomato);border-radius:0;min-height:44px;padding:6px 0;font-size:11px;border-bottom:1px solid var(--tomato)}
.scroll-ribbon{padding:18px 0}.scroll-ribbon>div{font-size:clamp(32px,4.6vw,70px);will-change:transform}
.section-heading{margin-bottom:32px}.section-heading h2{font-size:clamp(54px,6.8vw,104px)}.section-heading>p{line-height:1.7}
.editorial-gallery{padding-block:0 30px}.editorial-gallery-head{padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:28px}.editorial-gallery-head p{font-size:12px}
/* Swiper keeps direct touch and mouse interaction; images retain their source proportions. */
.cm-swiper{position:relative;overflow:hidden;width:100%;min-width:0;cursor:grab}.cm-swiper:active{cursor:grabbing}
.cm-swiper .swiper-wrapper{display:flex;box-sizing:content-box;align-items:stretch;scroll-snap-type:none!important;scrollbar-width:none;gap:0!important;overflow:visible!important;left:auto!important;width:100%!important;margin:0!important;padding:0!important;transform:none;touch-action:pan-y}
.cm-swiper .swiper-slide{flex-shrink:0!important;min-width:0;width:100%!important;max-width:none!important;flex-basis:auto!important;scroll-snap-align:none;align-self:stretch;height:auto;display:flex;flex-direction:column;user-select:none}
.editorial-gallery .cm-swiper .swiper-slide{width:42vw!important;max-width:620px!important}
.editorial-gallery .cm-swiper .swiper-slide img{display:block;width:100%;height:auto!important;max-height:none;aspect-ratio:auto!important;object-fit:contain;transform:none;border-radius:0}
.cm-swiper .swiper-slide figcaption{padding:16px 0;font-size:12px;line-height:1.5}
.cm-swiper .swiper-slide img{pointer-events:none}.cm-swiper .swiper-wrapper:focus-visible{outline:0}.cm-swiper:focus-within{outline:2px solid var(--tomato);outline-offset:5px}
.drinks-grid .cm-swiper .swiper-slide{width:100%!important}.drinks-grid .cm-swiper .swiper-slide img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transform:none}
.scene-gallery-wide .cm-swiper .swiper-slide{width:58%!important}.scene-gallery-wide .cm-swiper .swiper-slide img{width:100%;height:clamp(340px,36vw,520px);object-fit:cover;transform:none}
.carousel-controls{border-top:1px solid var(--line);padding-top:12px;margin-top:6px}.carousel-position{letter-spacing:.1em}.carousel-controls>button{border-color:var(--tomato)}.carousel-controls .carousel-dots button::before{width:5px;height:5px}.carousel-controls .carousel-dots button[aria-current=true]::before{transform:scaleX(3);border-radius:2px}
/* Editorial service doors expand on pointer or keyboard focus. */
.services-bridge{display:flex;gap:2px;padding-top:40px;padding-bottom:70px}.services-bridge .service-card{flex:1;min-height:440px;min-width:0;padding:clamp(24px,4vw,58px);border:0;box-shadow:none;transition:flex .65s var(--editorial-ease)}.services-bridge .service-card strong{font-family:var(--display);font-size:clamp(44px,5.5vw,84px);font-weight:800;text-transform:uppercase;line-height:.9;max-width:12ch}.services-bridge .service-card span{font-size:10px}.services-bridge .service-card small{font-size:13px;max-width:28ch}.services-bridge .service-card::before{transform:scale(1.025);transition:transform 1.1s var(--editorial-ease);background-position:var(--photo-x,50%) var(--photo-y,50%)}.services-bridge .service-card::after{background:linear-gradient(0deg,rgb(37 21 14 / .84),rgb(37 21 14 / .08))}.service-card-action{font-size:10px;min-height:48px;margin-top:18px;gap:32px}.service-card-action span{font-size:22px!important}
.kitchen-chapter{padding:80px 0;overflow:clip}.kitchen-grid{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:7vw;align-items:center}.kitchen-grid h2{font-size:clamp(70px,8vw,120px);margin:28px 0}.kitchen-film{overflow:hidden;aspect-ratio:4/5}.kitchen-film .kitchen-poster{display:block;width:100%;height:100%;object-fit:cover;transform:none}.kitchen-grid p:not(.eyebrow){max-width:32ch}.kitchen-grid .text-link{min-height:44px}
.pantry{padding-block:90px}.pantry-layout{gap:7vw}.pantry-copy h2{font-size:clamp(58px,7.6vw,108px)}.pantry-copy>p:not(.eyebrow){max-width:40ch}.drinks-section{padding:64px 0}.drinks-grid{gap:6vw}.drinks-grid h2{font-size:clamp(50px,6.3vw,90px)}
/* Typography that flows rather than splitting into five narrow lines. */
.page-intro{padding-block:42px 38px}.page-intro h1{font-size:clamp(70px,8.6vw,132px);line-height:.9;text-wrap:balance;max-width:14ch}.page-intro .intro-row{align-items:end;gap:5vw}.page-intro .intro-row>p{font-size:14px;max-width:36ch;line-height:1.75}.page-intro .eyebrow{margin-bottom:26px}
.shop-toolbar{gap:16px}.shop-filter{position:relative;gap:4px;isolation:isolate;padding:5px;scrollbar-width:none;background:#eee3d3;border-radius:0}.shop-filter button{position:relative;border:0;border-radius:0;background:transparent;z-index:1;color:var(--tomato);min-height:44px;padding-inline:16px;transition:color .2s}.shop-filter button[aria-pressed=true]{background:transparent;border-color:transparent;color:var(--paper)}.shop-filter .category-indicator{position:absolute;inset:5px auto 5px 0;background:var(--tomato);z-index:0;pointer-events:none;will-change:transform,width}.shop-photo img{background:#eee4d5}.shop-card{border:0;background:transparent;overflow:visible}.shop-card-body{padding:18px 0}.shop-card .shop-heart{top:12px;right:12px;width:44px;height:44px}.shop-add{border-radius:0;min-height:44px;font-size:12px;letter-spacing:.01em}.shop-title{font-size:16px}.shop-price small{font-size:10px;max-width:29ch;line-height:1.5}.shop-card:hover{box-shadow:none}
.btn{border-radius:0;position:relative;overflow:hidden;isolation:isolate;transition:background .2s,color .2s,transform .25s var(--editorial-ease)}.btn:active{transform:scale(.98)}.text-link{min-height:40px}.shop-actions button{min-height:44px}
.footer-brand .footer-word{font-size:clamp(80px,9vw,130px)}.footer-main{padding-top:15px;padding-bottom:60px}.footer-social a{min-height:44px}
@media(hover:hover) and (pointer:fine){.services-bridge:has(.service-card:hover) .service-card:not(:hover){flex:.75}.services-bridge .service-card:hover,.services-bridge .service-card:focus-visible{flex:1.25}.services-bridge .service-card:hover::before{transform:scale(1.08)}.btn:hover{transform:translateY(-2px)}}
@media(min-width:1101px){.kitchen-grid{min-height:790px}.kitchen-grid>div{align-self:center}}
@media(max-width:1100px){.header .brand img{width:66px;height:66px}.opening h1{font-size:13vw}.opening-copy{gap:22px}.opening .hero-actions{gap:20px}.opening .hero-actions .btn{gap:20px}.services-bridge .service-card{min-height:360px}.kitchen-grid h2{font-size:8vw}}
@media(max-width:760px){
 .header-inner{min-height:90px}.header .brand img{width:64px;height:64px}.opening{padding-top:24px}.opening-heading{padding-bottom:22px;align-items:center}.opening-heading .eyebrow{font-size:9px;letter-spacing:.09em;max-width:70%}.opening-heading .small-label{font-size:8px;text-align:right;max-width:65px}.opening h1{font-size:clamp(48px,13.5vw,100px);line-height:.86;letter-spacing:-.025em;padding-block:0 8px}.opening h1 .hero-line-outline{-webkit-text-stroke:1px var(--tomato)}.opening-copy{display:block;padding-bottom:24px}.opening-copy>p{font-size:13px;line-height:1.7;margin:20px 0}.opening .hero-actions{flex-wrap:nowrap;gap:22px}.opening .hero-actions .btn{min-width:0;gap:18px;padding:13px 16px;font-size:11px}.opening .text-link{font-size:11px;white-space:nowrap}.opening-address{display:block;margin-top:22px;font-size:8px;max-width:none}.opening-address br{display:none}.opening-photo{height:clamp(300px,90vw,560px);aspect-ratio:auto!important}.opening-photo>picture img{object-fit:cover;object-position:center}.opening .round-note{width:66px;height:66px;font-size:18px;top:16px;right:16px}.opening-photo figcaption{font-size:8px;padding:18px var(--space)}.opening-bottom{font-size:8px;padding-block:12px;gap:12px}.opening-bottom>span{max-width:44%}.opening-bottom a{font-size:8px}.opening-bottom a span{font-size:20px;margin-left:7px}
 body:has(.opening) .uber-banner-shop.wrap{display:flex;flex-direction:column;margin-block:0}.uber-banner-shop .uber-banner-photo{order:1}body:has(.opening) .uber-banner-shop .uber-banner-copy{order:0;padding:32px var(--space);width:100%}body:has(.opening) .uber-banner-shop h2{font-size:clamp(34px,10vw,56px);text-align:left;max-width:17ch}body:has(.opening) .order-choice{display:grid;grid-template-columns:1fr;gap:8px}body:has(.opening) .order-choice :is(.pickup-order,.delivery-order){width:100%;min-height:48px}body:has(.opening) .order-choice .uber-order{justify-self:start;width:auto}
 .section{padding-top:52px;padding-bottom:52px}.section-heading h2{font-size:clamp(42px,13vw,76px);line-height:.9}.editorial-gallery{padding-bottom:12px}.editorial-gallery-head{gap:16px;padding-bottom:16px;margin-bottom:20px}.editorial-gallery-head p{font-size:11px}.editorial-gallery .cm-swiper{position:relative;left:50%;width:100vw;margin-left:-50vw}.editorial-gallery .cm-swiper .swiper-slide{width:82vw!important;max-width:none!important}.editorial-gallery .cm-swiper .swiper-slide figcaption{padding:14px 22px;font-size:12px}.editorial-gallery .carousel-controls{padding-inline:0}
 .drinks-grid .cm-swiper,.scene-gallery-wide .cm-swiper{width:100%;left:auto;margin:0}.drinks-grid .cm-swiper .swiper-slide{width:88%!important}.scene-gallery-wide .cm-swiper .swiper-slide{width:88%!important}.cm-swiper .swiper-slide figcaption{padding:14px var(--space)}.scene-gallery-wide .cm-swiper .swiper-slide img{height:auto;aspect-ratio:4/3;object-fit:cover}.scene-gallery-track{height:auto}
 .services-bridge{display:flex;flex-direction:column;padding-block:16px 0;gap:2px}.services-bridge .service-card{width:100%;flex:none;min-height:320px;padding:28px var(--space)}.services-bridge .service-card strong{font-size:clamp(44px,13vw,72px);max-width:12ch}.service-card-action{width:auto;margin-top:14px}
 .kitchen-chapter{padding-block:48px}.kitchen-grid{grid-template-columns:1fr;gap:28px}.kitchen-grid h2{font-size:clamp(54px,16vw,90px);line-height:.88}.kitchen-grid p:not(.eyebrow){font-size:14px;max-width:36ch}.kitchen-film{aspect-ratio:1;position:relative;left:50%;width:100vw;margin-left:-50vw}.kitchen-grid .kitchen-film img{width:100%;height:100%;object-fit:cover}
 .pantry{padding-block:52px}.pantry-copy h2{font-size:clamp(50px,14vw,82px)}.drinks-section{padding-block:48px}.drinks-grid h2{font-size:clamp(42px,12.5vw,74px)}.drinks-grid>div:last-child{padding-inline:0}.drinks-grid{gap:28px}.drinks-grid>div:last-child p:not(.eyebrow){font-size:14px}.gathering-bottom{display:grid;gap:20px}.gathering-bottom .btn{justify-self:start}.bonne-mere{margin-top:44px}
 .page-intro{padding-block:32px}.page-intro h1,.shop-intro h1{font-size:clamp(44px,12.5vw,72px)!important;line-height:.92!important;max-width:none;letter-spacing:-.025em}.page-intro .intro-row>p{font-size:13px;line-height:1.7;max-width:42ch;margin-top:22px}.page-intro .eyebrow{font-size:9px;margin-bottom:22px}.shop-intro .intro-row{display:block}.shop-grid{gap:24px 14px}.shop-card-body{padding:14px 0}.shop-title{font-size:14px;line-height:1.35;margin:7px 0 12px}.shop-category{font-size:8px}.shop-price{font-size:17px}.shop-price small{font-size:9px}.shop-card .shop-heart{width:38px;height:38px;top:8px;right:8px}.shop-filter{margin-inline:0;gap:2px}.shop-filter button{padding-inline:13px;font-size:11px}.shop-add{font-size:11px}
 .footer-brand .footer-word{font-size:clamp(70px,23vw,112px)}.footer-main{padding-top:0;padding-bottom:38px}.mobile-bottom button{font-size:11px}
}
@media(max-width:360px){.opening h1{font-size:13.2vw}.opening .hero-actions{gap:16px}.opening .hero-actions .btn{padding:12px;font-size:10px}.opening .text-link{font-size:10px}.opening-heading .eyebrow{font-size:8px}.opening-address{font-size:7px}.opening-bottom{font-size:7px}}
@media(prefers-reduced-motion:reduce){.services-bridge .service-card,.service-card::before,.btn{transition:none!important}.scroll-ribbon>div{transform:none!important}.opening h1 .hero-line-inner{transform:none!important}.cm-swiper .swiper-wrapper{transition-duration:0ms!important}.shop-filter .category-indicator{will-change:auto}}
.motion-preference{font:inherit;font-size:11px;min-height:44px;background:transparent;border:0;border-bottom:1px solid currentColor;color:inherit;padding:0;cursor:pointer}
.cm-motion-reduced{scroll-behavior:auto!important}.cm-motion-reduced *, .cm-motion-reduced *::before,.cm-motion-reduced *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.cm-motion-reduced .hero-line-inner{transform:none!important}.cm-motion-reduced .scroll-progress{display:none}.cm-motion-reduced .services-bridge .service-card{flex:1!important}
.legal-links a{display:inline-flex;align-items:center;min-height:44px}
@media(max-width:760px){footer{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.footer-bottom{padding-bottom:20px}}
@media(max-width:760px){.footer-brand{gap:10px}.footer-brand .footer-word{font-size:clamp(60px,20vw,110px)}.footer-brand img{width:clamp(60px,20vw,100px)}}
.cm-icon{display:inline-block;width:1.1em;height:1.1em;vertical-align:-.15em;fill:none;stroke:currentColor;stroke-width:1.65;flex-shrink:0}
.cm-motion-reduced .service-card::before,.cm-motion-reduced .shop-photo img{transform:none!important}
@media(prefers-reduced-motion:reduce){.services-bridge .service-card{flex:1!important}.service-card::before{transform:none!important}}
.services-bridge .service-card{transform:none!important}.services-bridge .service-card:focus-visible{outline:2px solid var(--paper);outline-offset:-8px}
.route-option .cm-icon{width:18px;height:18px}

/* Packshots client : conserver l’emballage entier dans la galerie. */
.drinks-grid .scene-gallery-track img[src*="catalogue-client-20261016/"],.drinks-grid .cm-swiper .swiper-slide img[src*="catalogue-client-20261016/"]{object-fit:contain;background:#f6eedf}

@media(max-width:760px){body:has(.opening) .uber-banner-shop .uber-banner-photo{aspect-ratio:1/1!important;height:auto!important}body:has(.opening) .uber-banner-shop .uber-banner-photo picture,body:has(.opening) .uber-banner-shop .uber-banner-photo img{display:block;width:100%;height:auto!important;aspect-ratio:1/1!important;object-fit:contain!important}}

/* Même format pour toutes les images du carrousel lifestyle sur mobile. */
@media(max-width:760px){.editorial-gallery .cm-swiper .swiper-slide img,.editorial-gallery .cm-swiper .swiper-slide:first-child img{aspect-ratio:4/5!important;object-fit:cover}.editorial-gallery .cm-swiper .swiper-slide.duo-friends{width:82vw!important}}

/* « Buon appetito » défile de façon continue, sans dépendre de la position sur la page. */
.scroll-ribbon{overflow:hidden}
.scroll-ribbon>div{display:block;width:max-content;white-space:nowrap;animation:cm-ribbon-marquee 24s linear infinite;will-change:transform}
@keyframes cm-ribbon-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.scroll-ribbon>div{animation:none;transform:none!important}}

/* Align the location link as a pill button; keep its label and arrow centered. */
.opening .hero-actions .text-link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-width:160px;min-height:52px;padding:0 18px;border:1px solid currentColor;border-radius:999px;line-height:1.2;text-align:center;text-decoration:none;white-space:nowrap}
.opening .hero-actions .text-link span{flex:none}
@media(max-width:760px){.opening .hero-actions .text-link{min-height:48px;padding-inline:16px;font-size:11px}}
