/* Adaptation commune à toutes les pages : téléphone, tablette et écrans tactiles. */
.container { width:min(calc(100% - var(--gutter) * 2 - env(safe-area-inset-left) - env(safe-area-inset-right)),var(--max)); }
.header { padding-top:max(10px,env(safe-area-inset-top)); padding-left:max(var(--gutter),env(safe-area-inset-left)); padding-right:max(var(--gutter),env(safe-area-inset-right)); }
.header__logo,.header__cta,.burger { flex-shrink:0; }
:where(.section-head,.founder__grid,.services__grid,.hscroll__track,.bento,.footer__top,.contact-intro,.location-grid,.press-reports,.page-hero__grid,.nail-story__grid,.nail-offer__grid)>* { min-width:0; }
:where(.service__body,.hero__lead,.hero__ctas,.location-actions,.footer__col) { min-width:0; }
:where(.eyebrow,.breadcrumb,.location-email,.footer__col a) { max-width:100%; overflow-wrap:anywhere; }
.eyebrow { line-height:1.6; }
.eyebrow__num { flex-shrink:0; }
:where(main section[id],main article[id]) { scroll-margin-top:100px; }
:where(a,button,summary) { -webkit-tap-highlight-color:rgba(244,198,175,.22); }
.btn { max-width:100%; }

/* Le menu reste défilable même en paysage, sans déplacer la page derrière. */
html.menu-open,html.menu-open body { overflow:hidden; overscroll-behavior:none; }
.menu { height:100dvh; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; justify-content:flex-start; gap:32px; padding-top:calc(100px + env(safe-area-inset-top)); padding-left:max(var(--gutter),env(safe-area-inset-left)); padding-right:max(var(--gutter),env(safe-area-inset-right)); }
.menu__nav { flex-shrink:0; }
.menu__nav a { font-size:clamp(2rem,6.5svh,4.4rem); line-height:1.15; min-height:44px; padding-block:5px; }
.menu__foot { margin-top:auto; flex-shrink:0; }
.menu__foot p { overflow-wrap:anywhere; }
.menu-open .header__bar { background:rgba(18,11,14,.94) !important; }

/* Navigation compacte pour tablettes, y compris les modèles larges tactiles. */
@media (max-width:1100px), (hover:none), (pointer:coarse) {
 .header__nav { display:none; }
 .header__cta { margin-left:auto; }
 .burger { display:grid; }
 .header__bar { gap:clamp(10px,2vw,24px); }
 .footer { position:relative; bottom:auto; }
 .hero { height:auto; min-height:100svh; display:flex; flex-direction:column; }
 .hero__inner { height:auto; flex:1; padding-top:clamp(120px,17svh,190px); padding-bottom:calc(118px + var(--r-section)); }
 .media__stage { min-height:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; place-items:stretch; }
 .media__center { grid-column:1/-1; max-width:820px; justify-self:center; margin-bottom:36px; }
 .float { position:relative; inset:auto; width:auto !important; transform:none !important; }
 .float .float__inner { aspect-ratio:4/3 !important; }
 .section-head { grid-template-columns:minmax(0,1fr); }
 .footer__top { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:1100px) {
 :root { --section-y:clamp(72px,10vw,116px); }
 .founder__grid,.services__grid,.page-hero__grid,.nail-story__grid,.nail-offer__grid { grid-template-columns:minmax(0,1fr); }
 .founder__visual { max-width:640px; width:100%; }
 .founder__content { padding-top:0; }
 .services__video-wrap { position:relative; top:0; justify-content:center; }
 .services__video { height:min(66svh,560px); }
 .nail-film { max-width:560px; width:100%; justify-self:center; }
 .bento { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:none; }
 .bento__card { min-height:280px; }
 .bento__card--team,.bento__card--ambiance { grid-column:1/-1; grid-row:auto; min-height:420px; }
 .bento__card--premium,.bento__card--quality { grid-column:auto; grid-row:auto; }
 .hero { height:auto; min-height:100svh; display:flex; flex-direction:column; }
 .hero__inner { height:auto; flex:1; padding-top:clamp(120px,17svh,190px); padding-bottom:calc(118px + var(--r-section)); }
 .hero__bottom { align-items:flex-start; gap:24px; }
 .hero__ctas { gap:20px; }
 .hero__lead { max-width:52ch; }
}
@media (min-width:768px) and (max-width:1100px) {
 .hero__title { font-size:clamp(5rem,13.5vw,9rem); }
 .hero__line--indent { padding-left:5vw; }
 .footer__top { gap:36px 48px; }
 .location-content { padding:24px; }
 .location-content h3 { font-size:clamp(2.3rem,4.2vw,3rem); }
 .press-reports { gap:32px; }
}
@media (max-width:767px) {
 :root { --section-y:clamp(64px,12vw,88px); --gutter:clamp(16px,5vw,32px); }
 body { font-size:1rem; }
 .header__bar { padding-left:12px; gap:10px; }
 .hero__title { font-size:clamp(3.3rem,15.5vw,6.5rem); line-height:.96; margin-block:20px 28px; }
 .hero__line--indent { padding-left:0; }
 .hero__eyebrow { max-width:34ch; font-size:.68rem; letter-spacing:.1em; }
 .hero__inner { padding-top:calc(112px + env(safe-area-inset-top)); padding-bottom:calc(110px + var(--r-section)); }
 .hero__bottom { display:grid; gap:24px; }
 .hero__ctas { align-items:flex-start; }
 .title-xl { font-size:clamp(2.5rem,10vw,4.8rem); line-height:1; }
 .section-head { gap:22px; margin-bottom:40px; }
 .btn { --h:54px; font-size:.875rem; gap:12px; padding-left:20px; }
 .btn--sm { --h:44px; padding-inline:18px; }
 .link-line { min-height:44px; display:inline-flex; align-items:center; }
 .manifesto__text { font-size:clamp(2rem,8.4vw,3.5rem); line-height:1.1; }
 .manifesto__foot { align-items:flex-start; }
 .founder__content .title-xl { font-size:clamp(3.2rem,13vw,6rem); }
 .founder__badge { width:clamp(92px,25vw,126px); }
 .service__link { grid-template-columns:24px minmax(0,1fr) 40px; gap:10px; padding:22px 4px; }
 .service__name { font-size:clamp(1.6rem,6.5vw,2.8rem); line-height:1.1; overflow-wrap:anywhere; hyphens:auto; }
 .service__desc { font-size:.875rem; }
 .service__go { width:40px; height:40px; }
 .services__video { width:min(100%,315px); height:auto; aspect-ratio:9/16; }
 .media__stage { gap:12px; }
 .media__title { font-size:clamp(2.7rem,11vw,5rem); }
 .float .float__inner { aspect-ratio:4/5 !important; }
 .float__tag { left:8px; right:8px; bottom:8px; padding:6px 8px; font-size:.6rem; letter-spacing:.05em; }
 .footer__top { grid-template-columns:minmax(0,1fr); }
 .footer__bottom { padding-right:0; padding-bottom:calc(84px + env(safe-area-inset-bottom)); }
 .footer__word { font-size:18.5vw; }
 .footer__col a { min-height:44px; }
 .footer__ico { flex-shrink:0; }
 .page-hero { padding-top:calc(120px + env(safe-area-inset-top)); padding-bottom:60px; }
 .page-hero h1 { font-size:clamp(2.8rem,12vw,5.5rem); overflow-wrap:anywhere; }
 .page-hero__actions { gap:16px; }
 .location-content { padding:24px 20px; }
 .location-actions { gap:12px 24px; }
 .location-phone,.contact-whatsapp { min-height:44px; display:inline-flex; align-items:center; }
 .location-email { min-height:44px; padding-block:8px; }
 .social-links .link-line { min-height:44px; }
 .offer-table th { padding-right:14px; overflow-wrap:anywhere; }
 .offer-table strong { font-size:1.25rem; }
 .offer-coupon { padding:20px; }
 .contact-intro,.location-grid,.press-reports { grid-template-columns:minmax(0,1fr); }
 .nail-guarantee strong { font-size:clamp(3.5rem,15vw,5rem); }
 .reviews__badge { flex-wrap:wrap; border-radius:22px; gap:8px 12px; }
}
@media (max-width:560px) {
 .bento { grid-template-columns:minmax(0,1fr); }
 .bento__card--premium,.bento__card--quality { min-height:240px; }
 .hscroll__track { grid-template-columns:minmax(0,1fr); }
}
@media (max-height:540px) and (orientation:landscape) {
 .hero { height:auto; min-height:100svh; }
 .hero__inner { padding-top:110px; padding-bottom:calc(100px + var(--r-section)); }
 .hero__title { font-size:clamp(3.4rem,8vw,6rem); line-height:.95; }
 .hero__line--indent { padding-left:0; }
 .hero__bottom { align-items:flex-start; }
 .menu { padding-top:calc(84px + env(safe-area-inset-top)); gap:24px; }
 .menu__nav a { font-size:2.1rem; }
 .menu__foot { margin-top:10px; }
 .header { padding-top:max(6px,env(safe-area-inset-top)); }
}
/* Défilement natif et cartes d'avis que l'on peut lire à son rythme au doigt. */
@media (hover:none), (pointer:coarse) {
 .cursor { display:none !important; }
 .has-cursor,.has-cursor a,.has-cursor button { cursor:auto; }
 .marquee--reviews { overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x proximity; scrollbar-width:thin; }
 .marquee--reviews .marquee__track { width:max-content; transform:none !important; }
 .marquee--reviews .marquee__group { padding-inline:var(--gutter); }
 .review { width:min(84vw,400px); scroll-snap-align:center; }
 .service__link:hover .service__body { transform:none; }
 .footer__col a,.social-links a,summary { min-height:44px; }
}
/* La photo agrandie et ses commandes tiennent dans la hauteur réellement visible. */
.gallery-dialog { max-width:min(calc(100vw - 24px - env(safe-area-inset-left) - env(safe-area-inset-right)),1120px); max-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); padding:14px; overscroll-behavior:contain; }
.gallery-dialog img { max-width:100%; max-height:calc(100dvh - 190px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); touch-action:pan-y pinch-zoom; user-select:none; }
.gallery-dialog__nav { gap:12px; }
.gallery-dialog button { min-width:44px; }
@media (max-width:380px) {
 .gallery-dialog button { padding-inline:14px; font-size:.875rem; }
 .gallery-dialog__bar { gap:10px; }
 .preloader__meta { gap:24px; font-size:.65rem; }
 .preloader__inner { max-width:calc(100vw - 32px); }
}
